Photo for Mohammed Qasem

Mohammed Qasem, PhD, MSc, BSc

ATS Assistant Lecturer, Augustana - Sciences

Contact

ATS Assistant Lecturer, Augustana - Sciences
Email
mqasem@ualberta.ca
Address
2 - 331 Faith & Life Centre
4901-46 Ave
Camrose AB
T4V 2R3

Overview

Area of Study / Keywords

Program: Computing Science and Mathematics


About

Mohammed Qasem is an Assistant Lecturer in the Department of Computing Science at Augustana, where he has worked since July 2019. Before joining Augustana, he taught programming, visual programming, logic design, computer architecture, and operating systems, and worked as a Software Developer at Manitoba Hydro International. His research focuses on computational intelligence and algorithmic optimization.


Research

Dr. Qasem’s research focuses on computational intelligence and algorithmic optimization, with a particular interest in Swarm Intelligence (SI) and ant-inspired algorithms. His work explores how collective behaviors in natural systems can inspire computational solutions to complex problems. His research includes applying swarm-based methods to data analytics, clustering, large-scale dynamic data classification, and social network mining.




Teaching

My teaching philosophy centers on being a trainer rather than a traditional instructor. I strive to create an inclusive and supportive learning environment and adapt my teaching approaches to meet the diverse needs of students in computing science.



Courses

AUCSC 111 - Introduction to Computational Thinking and Problem Solving

An introduction to computational thinking, problem solving, and the fundamental ideas of computing. Topics include algorithms, abstraction, and modelling; the syntax and semantics of a high-level language (e.g. Python); fundamental programming concepts and data structures, including simple containers (variables, arrays, lists, strings, dictionaries); sequencing, conditionals and repetition; documentation and style; object-oriented programming; exceptions and error handling; graphical user interfaces and event-driven programming; recursion; simple algorithm analysis and run- time efficiency. Prerequisite: Mathematics 30-1. Note: Credit may be obtained for only one of AUCSC 111 or AUCSC 113 (2023).


AUCSC 218 - Web Design, Development and Scripting

Introduction to modern web architectures and technologies. Web platforms and standards. Client-side/server-side programming and web languages (e.g. HTML, JavaScript, PHP, CSS, Node.js). Introduction to internet security. Design and implementation of a simple web application. Prerequisite: one of AUCSC 113 (2023) or AUSCI 135, or AUCSC 111.


AUCSC 310 - Algorithm Design and Analysis

Algorithm design techniques (divide-and-conquer, dynamic programming, the greedy method). Merge-sort and the analysis of divide-and-conquer algorithms with recurrence relations; bucket-sort, radix-sort, and the lower bound on sorting; comparison of sorting algorithms. Trees, binary trees, search trees, their implementation, traversal, and search and update operations. Introduction to graph theory; data structures for the representation of graphs, digraphs, and networks, and their associated algorithms (traversal, connected components, topological sorting, minimum- spanning trees, shortest paths, transitive closure). Dynamic equivalence relations and union-find sets; amortized analysis. String matching. Prerequisites: AUCSC 112, or AUCSC 211 and AUSCI 235; and AUMAT 250.


AUCSC 395 - Directed Study I

Intensive study of a specific area of Computing Science as defined by the student and a supervising instructor, including completion of a software project in the selected area. Prerequisite: 9 units of senior-level Computing Science. Notes: Admission to AUCSC 395 normally requires a minimum GPA of 3.0 in Computing Science. An Application for Individual Study must be completed and approved before registration in the course.


AUCSC 401 - Professional Practicum I

A four-month work experience placement focused on gaining practical experience in software development and/or information systems, and an appreciation of the demands and responsibilities of the computing profession. Upon completion of the work experience term, the student must submit a report to the Department which summarizes, evaluates, and reflects on the work performed and the knowledge and experience gained during the placement. Prerequisites: At least 18 units in Computing Science, third-year standing, and consent of the Department. Note: Participation in the practicum is by application only, and is restricted to Computing Science majors.


AUCSC 450 - Parallel and Distributed Computing

Parallel architectures, programming language constructs for parallel computing, parallel algorithms and complexity. Message-passing, remote procedure call, and shared-memory models. Synchronization and data coherence. Load balancing and scheduling. Appropriate applications. Prerequisites: AUCSC 250 and AUCSC 370.


AUCSC 480 - Operating Systems Concepts

Operating system functions, concurrent process coordination, scheduling and deadlocks, memory management and virtual memory, secondary storage management and file systems, protection. Prerequisites: AUCSC 250 and AUCSC 370. Note: Credit may be obtained for only one of AUCSC 480 and AUCSC 380 (2022).


AUSCI 385B - Mentoring in Computing and Mathematics

This course involves tutoring students learning first-year material in mathematics and computing science for 3 hours per week in the Math & Computing Support Centre (MCSC). Tutors will also receive coaching from the MCSC Director in how best to perform their duties. Prerequisites: 15 units in MAT or CSC and third-year standing.


Browse more courses taught by Mohammed Qasem