¶¡ÏãÔ°AV

Please note:

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

| ¶¡ÏãÔ°AV Calendar | Summer 2021

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 ¶¡ÏãÔ°AV'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/specializations are suitable for students with a strong aptitude for computer science, or other quantitative fields, such as engineering and mathematics.

¶¡ÏãÔ°AV Requirements

A student must satisfy the university admission requirements for a Master's program as stated in Section 1.3.6a of the Graduate ¶¡ÏãÔ°AV section of the ¶¡ÏãÔ°AV 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 credits of undergraduate courses will also meet the GPA requirements for admission to the program.

The School's Graduate ¶¡ÏãÔ°AVs 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, and a choice of specialization 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.

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.

and at least two of

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
Jian Pei
May 12 – Aug 9, 2021: Tue, 10:30 a.m.–12:20 p.m.
May 12 – Aug 9, 2021: Fri, 10:30–11:20 a.m.
Burnaby
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.

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

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.

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.

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.

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 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
May 12 – Aug 9, 2021: Tue, 12:30–2:20 p.m.
May 12 – Aug 9, 2021: Fri, 12:30–1:20 p.m.
Burnaby
Burnaby
CMPT 982 - Special Topics in Networks and Systems (3)

Section Instructor Day/Time Location
Tao Wang
May 12 – Aug 9, 2021: Mon, 2:30–3:20 p.m.
May 12 – Aug 9, 2021: Thu, 2:30–4:20 p.m.
Burnaby
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.

Section Instructor Day/Time Location
TBD
TBD
TBD
TBD
TBD
TBD
TBD
TBD
TBD
TBD
TBD
TBD
CMPT 629 - Graduate Project (3)

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

Big Data Specialization

Students complete all of the above requirements and both of

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.

or

Visual Computing Specialization

Students complete all of the above requirements and both of

CMPT 742 - Practices in Visual Computing I (6)

Lab practices, combined with instructional offerings, for students to acquire the hands-on experience necessary for a successful career in Visual Computing in the information technology sector. Topics covered will include fundamental and prevalent problems from application domains in the fields of computer graphics, computer vision, human-computer interaction, medical image analysis, as well as visualization. Prerequisite: This course is only available to students enrolled into the Visual Computing Specialization of the Professional Master's program in Computer Science.

CMPT 743 - Practices in Visual Computing II (6)

Lab practices, combined with instructional offerings, for students to acquire the hands-on experience necessary for a successful career in Visual Computing in the information technology sector. Topics covered will include fundamental and prevalent problems from application domains in the fields of computer graphics, computer vision, human-computer interaction, medical image analysis, as well as visualization. Prerequisite: CMPT 742.

or

Cybersecurity Specialization

Students complete all of the above requirements and both of

CMPT 782 - Cybersecurity Lab I (6)

Simulating real attacks on software systems to assess the risk associated with potential security breaches to provide students with hands-on experience necessary for a successful career path in the cybersecurity field. Students are trained as penetration testers to learn how to discover vulnerabilities, exploit vulnerabilities, and to determine what attackers might gain after a successful vulnerability exploitation. Prerequisite: This course is only available to students enrolled into the Cybersecurity concentration of the Professional Computer Science master’s program.

CMPT 783 - Cybersecurity Lab II (6)

Students will learn the fundamental principles of system and network security by studying attacks on computer systems, network and cloud infrastructure and how to prevent and detect them. The focus is on hands-on experiences. Students will be able to explain and reproduce former and recent system attacks, build network defensive systems, and design computer systems that are immune to these attacks. Prerequisite: CMPT 782. This course is only available to students enrolled into the Cybersecurity concentration of the Professional Computer Science master’s program.

* Recommended for students in the Big Data Specialization

** Recommended for students in the Visual Computing Specialization

*** Recommended for students in the Cybersecurity Specialization

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