Mohammed Qasem, PhD, MSc, BSc

ATS Assistant Lecturer, Augustana - Sciences

Contact

ATS Assistant Lecturer, Augustana - Sciences
Email
mqasem@ualberta.ca
Phone
(780) 679-1116
Address
1-15 Heather Brae Hall
4901-46 Ave
Camrose AB
T4V 2R3

Overview

About

Mohammed Qasem is an assistant lecturer at the department of computing science. He recently started working at Augustana in July of 2019. Prior to arriving at Augustana, he has taught introductory programming courses, visual programming, logic design, computer architecture, and operating systems. He also worked at Manitoba Hydro International as a Software Developer. His research centers mostly on three areas: (i) ant-inspired clustering models and their applications to dynamic real-world clustering problems; (ii) semi-supervised classification and clustering; (iii) aspect-based sentiment analysis. 


Research

A swarm of organisms, following simple rules, can achieve incredible intelligent tasks. This natural behaviour is called Swarm Intelligence (SI) and is pervasive through diverse ecological systems. An individual ant, for instance, can perform minimal functions, but an ant colony can perform complicated, intelligent tasks such as building bridges, creating superhighways, collecting and sorting piles of food and waging war. More interestingly, such tasks are achieved without central control and beyond the comprehension of any single ant. A colony of ants is self-organized by a process called stigmergy, a small action by individual ant stimulates others to behave differently, leading to a new pattern of behaviour — likewise, flocks of birds, herds of animals, schools of fish and beehives. Very generally, Dr. Qasem primary field of research interest is SI. Within SI, he focused on ant-inspired algorithms with their applications to data analytics. His doctoral research centers on developing two clustering algorithms, inspired by how real ants sort their nests, and their application to classifying large-scale dynamic data. Dr. Qasem current research work focuses on swarm intelligence for social network mining.




Teaching

Teaching philosophy in a nutshell

“All students can learn and succeed, but not in the same way and not in the same day”.

– William G. Spady

 My role as a facilitator (rather than a traditional instructor) is central to my teaching philosophy. I perceive myself as a facilitator in the sense that I take responsibility for the learning environment: it is my responsibility to find out the best approach for teaching computing science in different classes.


Fall 2019

AUCSC 450 Parallel and Distributed Systems

AUCSC 310 Algorithm Design and Analysis 

Past Courses

Digital Logic Design

Computer Architecture and Organization 

Operating System Concepts

Visual Programming 

C/C++ Programming

Data Structures

Computer Science Fundamentals


Courses

AUCSC 113 - Foundational 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; recursion; simple algorithm analysis and run- time efficiency. Prerequisite: Mathematics 30-1. Note: Credit may be obtained for only one of AUCSC 111 (2021), AUCSC 113 and AUCSC 120 (2019).


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: AUCSC 112 (2021), or one of AUCSC 113 or AUSCI 135.


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).


AUIDS 201 - Collaborative Learning

The course allows students to learn about approaches, methodologies and/or analytic techniques specific to a discipline, while offering an opportunity to practice working collaboratively in groups on a large project. Prerequisite: AUIDS 101.


AUSCI 135 - Practical Introduction to Computational Thinking and Problem Solving

Through teamwork and programming in a scripting language (such as Python or Ruby), this course introduces computational thinking, problem solving, and the fundamental ideas of computing science. Driven by building a computer application, students will use algorithms, abstraction and modelling, learning the syntax and semantics of a high-level language, investigate fundamental programming concepts and data structures, and use basic software development methods and tools. Documentation standards, object-orientated programming, and exception handling will be required in the computer application. Geographical user interfaces and event-driven programming may also be included. Prerequisite. Mathematics 30-1. Note: Credit may be obtained for only one of AUCSC 111 (2021) and AUSCI 135.


Browse more courses taught by Mohammed Qasem