Mohammed Qasem, PhD, MSc, BSc
Contact
ATS Assistant Lecturer, Augustana - Sciences
- mqasem@ualberta.ca
- Address
-
2 - 331 Faith & Life Centre
4901-46 AveCamrose ABT4V 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.