Please note:

To view the current Academic Calendar, go to

School of Computing Science | Faculty of Applied Sciences Simon Fraser University Calendar | Spring 2023

Professional Computer Science

Master of Science

The master of science in professional computer science program engages students in developing deep knowledge and practical skills in specialized areas of computer science. The program trains computational specialists who can construct models, develop algorithms, and write software using state-of-the-art graduate-level knowledge and techniques. Students take instructional and lab courses, in a cohort, and complete a co-op through SFU's co-op program, allowing them to tackle real-world scientific, engineering, and socioeconomic problems and gain valuable project management experiences while expanding their network of industrial contacts. This full-time master’s program is suitable for students with a strong aptitude for computer science, or other quantitative fields, such as engineering and mathematics.

Admission Requirements

A student must satisfy the university admission requirements for a master's program as stated in Section 1.3.6a of the Graduate Admission section of the SFU calendar, and the student must hold a bachelor's degree, or equivalent in computer science or a related field, with a minimum cumulative grade point average (GPA) of 3.00 (on a scale of 0.00 - 4.33) or the equivalent. Alternatively, a minimum GPA of 3.33/4.33 on the last 60 units of undergraduate courses will also meet the GPA requirements for admission to the program.

The School's Graduate Admissions Committee may recommend, at its discretion, admission to the professional master's program to exceptional students without an undergraduate degree in computer science or a related field.

Students who do not meet the minimum university requirements may be recommended as conditional or qualifying students as per Graduate General Regulation (GGR) 1.3.8 or 1.3.9.

For further information on conditional or qualifying admission requirements, please contact the Program Coordinator.

Program Requirements

This program consists of course work, co-op, or graduate project for a minimum of 30 units.

The program requires students to maintain a minimum 3.0 CGPA throughout their graduate career.

Students complete all of

CMPT 726 - Machine Learning (3)

Machine Learning is the study of computer algorithms that improve automatically through experience. Provides students who conduct research in machine learning, or use it in their research, with a grounding in both the theoretical justification for, and practical application of, machine learning algorithms. Covers techniques in supervised and unsupervised learning, the graphical model formalism, and algorithms for combining models. Students who have taken CMPT 882 (Machine Learning) in 2007 or earlier may not take CMPT 726 for further credit.

Section Instructor Day/Time Location
G200 Ke Li
We 5:30 PM – 6:20 PM
Fr 4:30 PM – 6:20 PM
AQ 3150, Burnaby
AQ 3150, Burnaby
CMPT 732 - Professional Master's Program Lab I (6)

The first of two lab courses that are part of the professional master’s program in the School of Computing Science. Aims to provide students with experience needed for a successful career in the information technology industry. Students will learn core concepts of artificial intelligence, applied data science, and system and network security. Specifically, this includes data analytics, advanced statistics and data visualization, deep learning, and anomaly detection.

CMPT 733 - Professional Master's Program Lab II (6)

The second of two lab courses that are part of the professional master's program in the School of Computing Science. Aims to provide students with experience needed for a successful career in the information technology industry. Students will learn core concepts of artificial intelligence, applied data science, and system and network security. Specifically, this includes data analytics, advanced statistics and data visualization, deep learning, and anomaly detection. Prerequisite: CMPT 732.

Section Instructor Day/Time Location
G100 Steven Bergner
Th 2:30 PM – 4:20 PM
AQ 3153, Burnaby
G101 Steven Bergner
Tu 1:30 PM – 5:20 PM
SECB 1010, Burnaby
G103 Steven Bergner
Th 9:30 AM – 1:20 PM
SECB 1010, Burnaby
G200 Ali Mahdavi Amiri
Fr 9:30 AM – 12:20 PM
WMC 3533, Burnaby
G201 Ali Mahdavi Amiri
Fr 2:30 PM – 5:20 PM
SECB 1010, Burnaby
G400 Tao Wang
Th 9:30 AM – 11:20 AM
SECB 1013, Burnaby
G401 Tao Wang
Th 1:30 PM – 5:20 PM
SECB 1010, Burnaby
CMPT 756 - Distributed and Cloud Systems (3)

Students will learn principles and techniques for processing various data types at real-world scale using distributed and cloud computing resources. Fundamentals of approximation and distributed algorithms will be covered. Handling of large-scale image and video datasets, massive graphs, as well as structured and unstructured text datasets will be studied. Designing and building robust software systems using multicore processors, processor accelerators (e.g., Graphics Processing Units) and cloud resources will be introduced.

Section Instructor Day/Time Location
G100 Ouldooz Baghban Karimi
Tu 8:30 AM – 10:20 AM
Th 8:30 AM – 9:20 AM
SSCC 9001, Burnaby
SSCC 9001, Burnaby

and at least two of

CMPT 713 - Natural Language Processing (3)

Natural Language Processing is the automatic analysis of human languages such as English, Korean, and thousands of others analyzed by computer algorithms. Unlike artificially created programming languages where the structure and meaning of programs is easy to encode, human languages provide an interesting challenge, both in terms of its analysis and the learning of language from observations. Covers NLP tasks such as language modeling, machine translation, multilingual processing, information extraction, question answering, and other topics relevant to modern NLP. Students with credit for CMPT 825 or CMPT 413 may not take this course for further credit.

Section Instructor Day/Time Location
G200 Angel Chang
We, Th 1:00 PM – 2:20 PM
AQ 3159, Burnaby
CMPT 741 - Data Mining (3)

The student will learn basic concepts and techniques of data mining. Unlike data management required in traditional database applications, data analysis aims to extract useful patterns, trends and knowledge from raw data for decision support. Such information are implicit in the data and must be mined to be useful.

Section Instructor Day/Time Location
G100 Ke Wang
We 2:30 PM – 3:20 PM
Fr 2:30 PM – 4:20 PM
SSCK 9500, Burnaby
AQ 3159, Burnaby
CMPT 757 - Frontiers of Visual Computing (3)

A seminar-oriented course covering the latest technological advances and trends in visual computing and relevant domains. The focus is on relating fundamental visual computing concepts and techniques to the inception, evolution, and future prospects of these trend-setting technologies. Prerequisite: This course is only available to students enrolled into the Visual Computing Specialization of the Professional Master's program in Computer Science.

CMPT 762 - Computer Vision (3)

Selected topics in computer vision including cameras, edge detection, feature matching, optical flow, alignment, epipolar geometry, stereo, structure-from-motion, recognition, segmentation, detection, and deep learning.

CMPT 764 - Geometric Modelling in Computer Graphics (3)

Advanced topics in geometric modelling and processing for computer graphics, such as Bezier and B-spline techniques, subdivision curves and surfaces, solid modelling, implicit representation, surface reconstruction, multi-resolution modelling, digital geometry processing (e.g., mesh smoothing, compression, and parameterization), point-based representation, and procedural modelling. Prerequisite: CMPT 361, MACM 316. Students with credit for CMPT 464 or equivalent may not take this course for further credit.

Section Instructor Day/Time Location
G100 Andrea Tagliasacchi
Th 2:30 PM – 5:20 PM
ASB 9838, Burnaby
CMPT 766 - Computer Animation and Simulation (3)

Selected topics in computer animation and simulation, including 3D character animation and control, facial animation, simulation of natural phenomena (i.e. fluids, crowd simulation, and deformation of pliant materials).

Section Instructor Day/Time Location
G100 KangKang Yin
Tu 10:30 AM – 12:20 PM
Fr 10:30 AM – 11:20 AM
BLU 9660, Burnaby
AQ 3149, Burnaby
CMPT 767 - Visualization (3)

Advanced topics in data visualization. Topics covered may include principles of data representation, data presentation, data interaction, data physicalization, data and visualization literacy, data visualization and diversity, open data, and public personal data visualization. Students with credit for CMPT 878 or 775 may not take this course for further credit.

CMPT 770 - Parallel and Distributed Computing (3)

Principles involved in designing modern parallel and distributed software systems. The course focuses on covering key concepts like concurrency, synchronization, consistency models and fault tolerance. Involves multiple programming projects and reading articles on recent trends in parallel and distributed computing.

CMPT 780 - Computer Security and Ethics (3)

Cybersecurity involves technology, people, information, and processes to enable assured operations in the existence of vulnerabilities, and adversaries who exploit them. Students will gain insight into the importance and landscape of cybersecurity, understand its career paths, and learn about cyber risk management, network and cloud security, system and software security, and cyber ethics and law.

CMPT 784 - Cyber Risk Assessment and Management (3)

Cyber risk assessment and management has become a fundamental component of business operations. Understanding risk mitigation is an essential skill for business leaders, thought leaders, analysts, as well as security and technology specialists. This course equips students with a comprehensive understanding of how to identify, manage, estimate, and prioritize cyber risks, threats and vulnerabilities.

CMPT 785 - Secure Software Design (3)

The security of software depends on how well the requirements match the needs that the software is to address, how well the software is designed, implemented, tested, and deployed and maintained. This is an advanced course on the rigorous development and use of software that reliably preserves the security properties of the information and systems it protects.

Section Instructor Day/Time Location
G100 Mohammad Tayebi
Mo 5:30 PM – 8:20 PM
BLU 10021, Burnaby
CMPT 786 - Cloud and Network Security (3)

The course covers network attacks as well as techniques to defend against them. This includes protocol-specific attacks (e.g., TCP/IP and BGP) and generic attacks (e.g., Denial of Service); infrastructure topics such as centralized control, SDN, virtualization, NFV, intrusion detection; and new technologies related to containers, IoT, access, 5G.

CMPT 787 - Ethical Hacking (3)

Development of the structured knowledge base of penetration testing to validate security measures and identify vulnerabilities and providing solutions for tightening system and network security and protecting data from unauthorized access. Provides an understanding of how vulnerable systems can be compromised as a means to motivate how to strengthen the defense.

CMPT 788 - Information Privacy (3)

Technological innovation in how individuals, organizations, and governments collect and share personal information have raised serious concerns. Data breaches have grown in frequency over the past decade, exposing us to identity theft, financial fraud and intellectual property theft. Introduces fundamental privacy concepts in a broad sense with emphasis on challenging and emerging research topics in privacy.

CMPT 789 - Applied Cryptography (3)

Explores modern cryptographic and cryptoanalytics techniques in detail, and emphasizes how such mechanisms can be effectively used within larger security systems, and finding their vulnerabilities. Topics covered include cryptographic primitives, public key encryption, digital signature, message authentication codes, cryptographic protocols, and attacks.

CMPT 820 - Multimedia Systems (3)

This seminar course covers current research in the field of multimedia computing. Topics include multimedia data representation, compression, retrieval, network communications and multimedia systems. Computing science graduate student or permission of instructor. Equivalent Courses: CMPT880.

CMPT 822 - Computational Vision (3)

A seminar based on the artificial intelligence approach to vision. Computational vision has the goal of discovering the algorithms and heuristics which allow a two dimensional array of light intensities to be interpreted as a three dimensional scene. By reading and discussing research papers - starting with the original work on the analysis of line drawings, and ending with the most recent work in the field - participants begin to develop a general overview of computational vision, and an understanding of the current research problems.

IAT 814 - Visualization and Visual Analytics (3)

Provides a cognitive and computational framework for understanding and designing graphical and visual representations. Investigates several psychological and computational models of diagram processing, and explores diverse interactive graphical systems.

Section Instructor Day/Time Location
G100 Lyn Bartram
Mo 2:30 PM – 5:20 PM
SRYC 5100, Surrey
STAT 852 - Modern Methods in Applied Statistics (4)

An advanced treatment of modern methods of multivariate statistics and non-parametric regression. Topics may include: (1) dimension reduction techniques such as principal component analysis, multidimensional scaling and related extensions; (2) classification and clustering methods; (3) modern regression techniques such as generalized additive models, Gaussian process regression and splines. Prerequisite: STAT 830 and STAT 853 or permission of instructor.

and one of

CMPT 727 - Mathematical and Probabilistic Foundations of Machine Learning (3)

Using machine learning algorithms effectively requires understanding their theoretical and conceptual basis. Covers mathematical and probabilistic foundations of machine learning, placing learning methods in a unified framework based on Bayesian reasoning. Students will acquire skills for formulating models, deriving optimization algorithms, and choosing effective approaches for a given learning problem. Topics include parameter estimation, optimization, linear classification and regression, regularization, and probabilistic graphical models.

Section Instructor Day/Time Location
G100 Maxwell Libbrecht
We 1:30 PM – 2:20 PM
Fr 12:30 PM – 2:20 PM
WMC 2200, Burnaby
WMC 2200, Burnaby
CMPT 728 - Deep Learning (3)

Machine learning has become the main framework for building programs that perform intelligent tasks. In fields such as computer vision and natural language processing, many recent successes have been achieved using neural nets with several layers, so-called deep neural nets. Students will look at deep neural nets, techniques for training them from data, and significant applications. They will be presented with network architectures such as convolutional neural nets, autoencoders, recurrent neural nets, long-short term memory networks, and generative adversarial networks. Advanced training techniques to be described include dropout, batch normalization, and adaptive step size selection.

CMPT 729 - Reinforcement Learning (3)

Reinforcement learning is the branch of machine learning that studies learning to act. Agents observe, predict, and act to change their environment. Reinforcement learning has notable success in learning to play video & board games, improving robot performance, and task scheduling. Many recent successes have utilized neural nets, an approach known as deep reinforcement learning.

CMPT 763 - Biomedical Computer Vision (3)

Selected topics in biomedical imaging. Computer visions, medical data and image representation, file formats, segmentation, registration, classification, anatomical shape modeling, machine and deep learning tools and methods.

CMNS 815 - Social Construction of Communication Technologies (5)

A study of the social theory of information technologies, examining issues affecting computer-mediated communication.

CMPT 829 - Special Topics in Bioinformatics (3)

Examination of recent literature and problems in bioinformatics. Within the CIHR graduate bioinformatics training program, this course will be offered alternatively as the problem-based learning course and the advanced graduate seminar in bioinformatics (both concurrent with MBB 829). Prerequisite: Permission of the instructor.

CMPT 889 - Special Topics in Interdisciplinary Computing (3)

Section Instructor Day/Time Location
G100 Guillaume Colley
We 9:30 AM – 12:20 PM
WMC 2503, Burnaby
G200 IIia Lvovski
Tu 4:30 PM – 6:20 PM
Th 4:30 PM – 5:20 PM
WMC 3210, Burnaby
WMC 3510, Burnaby
CMPT 980 - Special Topics in Computing Science (3)

This course aims to give students experience to emerging important areas of computing science. Prerequisite: Instructor discretion.

Section Instructor Day/Time Location
G100 Anders Miltner
Mo 5:30 PM – 6:20 PM
We 4:30 PM – 6:20 PM
WMC 2503, Burnaby
WMC 2503, Burnaby
G200 Deepak Rout
Mo 10:30 AM – 11:20 AM
Th 10:30 AM – 12:20 PM
AQ 5005, Burnaby
AQ 5005, Burnaby
CMPT 982 - Special Topics in Networks and Systems (3)

Section Instructor Day/Time Location
G100 Uwe Glaesser
Mo 2:30 PM – 3:20 PM
Th 2:30 PM – 4:20 PM
AQ 5019, Burnaby
RCB 6122, Burnaby
G200 William Sumner
Tu 12:30 PM – 2:20 PM
Fr 12:30 PM – 1:20 PM
BLU 10921, Burnaby
SWH 10061, Burnaby
CMPT 983 - Special Topics in Artificial Intelligence (3)

Section Instructor Day/Time Location
G100 Angel Chang
Mo 10:30 AM – 11:50 AM
We 10:30 AM – 11:50 AM
AQ 5029, Burnaby
AQ 5019, Burnaby
CMPT 984 - Special Topics in Databases, Data Mining, Computational Biology (3)

Section Instructor Day/Time Location
G100 Tianzheng Wang
Th 8:30 AM – 11:20 AM
AQ 5016, Burnaby
G200 Heju Jiang
Mo 8:30 AM – 10:20 AM
Fr 8:30 AM – 9:20 AM
AQ 5007, Burnaby
AQ 5007, Burnaby
CMPT 985 - Special Topics in Graphics, HCI, Visualization, Vision, Multimedia (3)

Examines current research topics in computer graphics, human computer interaction (including audio), computer vision and visualization.

and a minimum of one co-op or graduate project

CMPT 626 - Graduate Co-op I (3)

This course is the first term of work experience in the School of Computing Science Co-operative Education Program for graduate students. Units of this course do not count towards computing science breadth requirements. Graded on a satisfactory/unsatisfactory basis. Prerequisite: 12 units of CMPT coursework at the 700-level or higher with a CGPA of at least 3.0. Department Consent is required for enrollment.

CMPT 629 - Graduate Project (3)

Graded on a satisfactory/unsatisfactory basis. Prerequisite: Permission of the Graduate Program Chair.

Section Instructor Day/Time Location
G100 TBD


All students are required to apply for a co-op. With assistance from the co-op coordinator for this program, students will be expected to find a suitable industry partner. Students may complete one or two terms of co-op. The latter option is in place to satisfy requests from our industrial partners for continuity and to carry out a large-scale project. Students are required to enroll in at least one of the program courses in the term following their co-op.

A co-op is an integral part of this program. However, it is offered on a competitive basis.

In the event that a student is unable to secure a co-op during the summer term, they will be required to go on academic break since no courses will be offered. The student will be able to apply for a co-op in the subsequent term or, if unsuccessful, will be required to undertake additional course work. In consultation with the program director, the student may complete a graduate project in their final term to fulfil program requirements.

Program Length

Students are expected to complete the program requirements in four terms.

Academic Requirements within the Graduate General Regulations

All graduate students must satisfy the academic requirements that are specified in the Graduate General Regulations, as well as the specific requirements for the program in which they are enrolled.