Please note:

To view the current Academic Calendar, go to www.sfu.ca/students/calendar.html.

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

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 – 7:20 PM
Fr 5:30 PM – 6:20 PM
SWH 10081, Burnaby
SWH 10081, Burnaby
CMPT 732 - Programming for Big Data 1 (6)

This course is one of two lab courses that are part of the Professional Master’s Program in Big Data in the School of Computing Science. This lab course aims to provide students with the hands-on experience needed for a successful career in Big Data in the information technology industry. Many of the assignments will be completed on massive publically available data sets giving them appropriate experience with cloud computing and the algorithms and software tools needed to master programming for Big Data. Over 13 weeks of lab work and 12 hours per week of lab time, the students will obtain a solid background in programming for Big Data.

CMPT 733 - Programming for Big Data 2 (6)

This course is one of two lab courses that are part of the Professional Masters Program in Big Data in the School of Computing Science. This lab course aims to provide students with the hands-on experience needed for a successful career in Big Data in the information technology industry. Many of the assignments will be completed on massive publically available data sets giving them appropriate experience with cloud computing and the algorithms and software tools needed to master programming for Big Data. Over 13 weeks of lab work and 12 hours per week of lab time, and building on the previous lab course CMPT 731, the students will obtain a solid background in programming for Big Data. Prerequisite: CMPT 732: Programming for Big Data 1.

Section Instructor Day/Time Location
G100 Jiannan Wang
Steven Bergner
Mo 1:30 PM – 3:20 PM
AQ 3149, Burnaby
G101 Tu 1:30 PM – 5:20 PM
SECB 1010, Burnaby
G102 Th 1:30 PM – 5:20 PM
SECB 1010, Burnaby
G103 Fr 1:30 PM – 5:20 PM
SECB 1010, Burnaby
G200 Fr 10:00 AM – 12:50 PM
SWH 10051, Burnaby
G201 We 10:00 AM – 12:50 PM
SECB 1013, Burnaby
G202 Th 10:00 AM – 12:50 PM
SECB 1013, Burnaby
G400 Mo 1:30 PM – 3:20 PM
AQ 5037, Burnaby
G401 We 1:00 PM – 4:50 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 Tu 8:30 AM – 10:20 AM
Fr 8:30 AM – 9:20 AM
AQ 3181, Burnaby
WMC 3520, 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.

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 1:30 PM – 2:20 PM
Fr 12:30 PM – 2:20 PM
AQ 3005, Burnaby
AQ 3005, 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.

Section Instructor Day/Time Location
G100 Yasutaka Furukawa
We 3:30 PM – 4:20 PM
Fr 2:30 PM – 4:20 PM
AQ 3153, Burnaby
AQ 3153, Burnaby
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.

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
Mo 10:30 AM – 11:20 AM
We 10:30 AM – 11:20 AM
Fr 10:30 AM – 11:20 AM
AQ 3159, Burnaby
AQ 3159, Burnaby
AQ 3153, 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.

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.

Section Instructor Day/Time Location
G100 Ouldooz Baghban Karimi
Tu 11:30 AM – 1:20 PM
Fr 12:30 PM – 1:20 PM
SWH 10051, Burnaby
AQ 5016, Burnaby
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 (6)

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
Tu 10:30 AM – 11:20 AM
Th 9:30 AM – 11:20 AM
REMOTE LEARNING, Burnaby
REMOTE LEARNING, Burnaby
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 - Statistical Machine Learning (3)

Statistical foundation for machine learning algorithms, emphasizing bias-variance tradeoff. Students will learn principles for choosing effective methods and tailoring them to fit a given learning problem. Potential topics include probabilistic graphical models, maximum likelihood estimation, latent variables and the EM algorithm, convex optimization, and variational and sampling-based methods.

Section Instructor Day/Time Location
G100 Maxwell Libbrecht
Mo 10:30 AM – 11:20 AM
Th 10:30 AM – 12:20 PM
REMOTE LEARNING, Burnaby
REMOTE LEARNING, 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 We 2:30 PM – 5:20 PM
SWH 10051, 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 Mo 3:30 PM – 4:20 PM
Th 2:30 PM – 4:20 PM
AQ 5016, Burnaby
AQ 2104, Burnaby
CMPT 981 - Special Topics in Theoretical Computing Science (3)

Section Instructor Day/Time Location
G100 Andrei Bulatov
Tu 2:30 PM – 4:20 PM
Th 2:30 PM – 3:20 PM
AQ 5019, Burnaby
AQ 5046, Burnaby
G101 Th 3:30 PM – 4:20 PM
AQ 5046, Burnaby
CMPT 982 - Special Topics in Networks and Systems (3)

Section Instructor Day/Time Location
G100 Tu 8:30 AM – 10:20 AM
Fr 8:30 AM – 9:20 AM
REMOTE LEARNING, Burnaby
REMOTE LEARNING, 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 5016, Burnaby
BLU 10921, Burnaby
CMPT 984 - Special Topics in Databases, Data Mining, Computational Biology (3)

Section Instructor Day/Time Location
G100 Keval Vora
Fr 2:30 PM – 5:20 PM
SWH 10041, 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.

Section Instructor Day/Time Location
G200 Tu 10:30 AM – 12:20 PM
Fr 10:30 AM – 11:20 AM
AQ 5016, Burnaby
AQ 4150, Burnaby

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.

Section Instructor Day/Time Location
G300 Mo, Tu, We, Th, Fr 8:00 AM – 8:00 PM
,
G700 Mo, Tu, We, Th, Fr 8:00 AM – 8:00 PM
,
CMPT 629 - Graduate Project (3)

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

Co-op

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.