We use cookies on this site to enhance your experience.
By selecting “Accept” and continuing to use this website, you consent to the use of cookies.
Departmental course information is provided for your convenience only.
Schedules, including times and locations of classes are subject to change and should be confirmed on LORIS:
The department attempts to provide a full range of core courses and electives. However, every course listed in this section is not available in every session, every campus/location, or every year.
Fall 2025: CP600; CP610; CP612; CP630; CP640; CP670; CP683; CP699.
Winter 2026: CP600; CP601; CP612; CP614; CP630; CP631; CP640; CP650; CP680; CP683; CP699.
Spring 2026: CP600; CP612; CP614; CP620; CP631; CP670; CP683; CP685; CP699.
All courses offered as part of the Master of Applied Computing program are listed below.
The techniques of algorithm design form one of the core practical technologies of computer science. This course focuses on advanced techniques for designing and analysing algorithms, and explores their use in a variety of application areas. Topics include: sorting and search algorithms, graph traversal algorithms, combinatorial search, heuristics methods, and dynamic programming, intractable problems. Students learn the skill of recognizing computational complexities of computing problems and designing solutions for them.
This seminar focuses on the fundamentals of technology entrepreneurship. It involves taking a technology idea and finding a high-potential commercial opportunity, gathering resources such as talent and capital, figuring out how to sell and market the idea, and managing rapid growth. It also involves incorporating a new technology idea into an existing business. There will be guest lecturers from the industry.
Data analysis is a burgeoning field that allows organizations to discover patterns in data to help explain current behaviours or predict future outcomes. In this course, students learn the theories, techniques and practices involved in modern data analysis in order to effectively collect, process, interpret and use data in decision making. The course utilizes case studies from fields such as finance and statistics to expose students to topics including data collection, storage, processing, representation, and reporting, and also further develop their decision-making skills using decision trees and artificial intelligence.
Algorithms and issues in applied cryptography. Topics include block ciphers, stream ciphers, public-key cryptography, AES, elliptic curve cryptosystems, blockchain, digital signatures, zero knowledge proofs. Also, current issues in information security such as privacy enhancing technologies and post quantum cryptography.
Multiple organizations across multiple industries (e.g., finance, retail, manufacturing, communication) are mining and analyzing incredibly large sets of data in order to predict consumer behaviour and trends. In this course, students use the principles of data mining and practical knowledge to visualize and analyze data using data mining software such as Weka.
With today's consumers spending more time on their mobiles than on their PC, new methods of empirical stochastic modeling have emerged that can provide marketers with detailed information about the products, content, and services their customers' desire. This course builds on Data Analysis by focusing explicitly on the unique data offered by mobile devices. Students learn about the types of data that can be mined from mobile devices including analyzing Wi-Fi and GPS data from websites and mobile applications. Other topics include: modeling mined data via artificial intelligence software and monetizing mobile devices' desires and preferences.
Enterprise computing offers integrated solutions to organizations that need help managing a variety of problems including software development, resource management and data analytics. This course extends traditional Computer Science education through a practical skills-based application focused on enterprise computing which integrates IT management and application development. Students examine the principles, techniques and practices in modern enterprise computing with a focus on backend business logic computing and the technical foundation of data analysis. Students will learn to manage all aspects of enterprise computing solutions including security, user experience, optimization, and distributed databases. Practical knowledge is further developed through lab work, case studies and guest-lectures of IT managers.
Parallel computing is ubiquitous today for problems which require more resources than a single serial computer can provide. Programming parallel computers requires new paradigms,algorithms and programming tools.This course covers fundamentals of parallel programming, illustrated with applications developed and tested by students on a parallel computing system provided for the course. The parallel programming paradigms to be covered include OpenMP for multicore shared memory computers, MPI for distributed memory parallel computers, CUDA programming for GPUs (Graphic Processing Units), and Apache Hadoop/Spark for big data processing on computer clusters. The course will focus on the challenges in developing practical parallel programs that scale efficiently with available computing resources.
Machine learning is the science of getting computers to act without being explicitly programmed. In the past decade, machine learning has given us self-driving cars, practical speech recognition, effective web search, and a vastly improved understanding of the human genome. This course focuses on machine learning, data mining, and statistical pattern recognition. Topics include supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks) and unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning). Students work with variety of learning algorithms and evaluate which are most likely to be successful.
The user interface, also called UI or user experience, is the "front end" of a website, computer application, or software program that people interact with. Competitive advantage can be won or lost depending on the design of the user interface. To be effective, modern software application designs must support not only the required functionality but also fully engage users. Throughout this course, students apply proven user interface design practices to gather requirements, reduce user input errors, and provide intuitive navigation pathways through complex applications to ensure usability.
Apple iPhones are one of the most popular smartphones on the market today, with thousands of applications downloaded every day. This course provides students with the knowledge to develop applications for iPhones, iPads, and iPods, using the Cocoa Touch framework on iOS and introducing students to the programming language Swift. More specifically, students learn how to develop interfaces for mobile devices and the challenges faced when developing applications that use different input modalities. Other topics include web services and memory management for mobile devices.
As the worldwide smartphone market continues to grow, so does the demand for mobile applications. This course provides students with the skills for creating and deploying applications for mobile devices using Android, the most widely used operating system. With an emphasis on the Model-View-Controller paradigm this course provides students with the foundational knowledge that underlies many popular programming languages. The course cumulates with the development of an original Android application. Knowledge of Java is required.
This course is available only to students in the Co-Operative Education Option and will be completed in the term following their co-op terms. Students will complete a major project that integrates their academic and work experience. Students, with approval from the instructor, select a topic for an in-depth study. Students have the option to ask a full-time faculty member to supervise their project, in consultation with the instructor. Project topics might include a new contribution to a scientific area related to the students' work experience, or computer code to implement solutions to a computing problem. The students' performance is evaluated based on course attendance, the written report, and oral presentations.
Individual study of a special topic not offered in existing courses at an advanced level under the supervision of a faculty member or other supervisor approved by the Department. The topics and evaluation scheme must be approved by the Department.
This course features a detailed examination of a special topic not covered by the Department's regular course offerings.
This course is designed for students who take the course-based option in the Master of Applied Computing program. The instructor selects topics for study. The course material is presented through lectures, and possibly guest-speaker seminars. Students, with approval from the instructor, select a topic for an in-depth study. Students have the option to ask a full-time faculty member to supervise their project, in consultation with the instructor. Project topics might include a new contribution to a scientific area, or computer code to implement solution to a computing problem. The students' performance is evaluated based on course attendance, the written report, and oral presentations.
Students will complete a thesis based on original research and defend it before an examining committee.
A thesis for the Master's degree must show familiarity with previous work in the field of Computer Science and must demonstrate the ability to carry out research, organize results, and defend the approach and conclusions in a scholarly manner.
The MAC program will follow the university regulations governing the Master's Thesis.