Lower Division Requirements
Students complete at least 48 units, including one of
MATH 150 - Calculus I with Review (4)
MATH 151 - Calculus I (3)
MATH 154 - Mathematics for the Life Sciences I (3) **
MATH 157 - Calculus I for the Social Sciences (3) **
and one of
MATH 152 - Calculus II (3)
MATH 155 - Mathematics for the Life Sciences II (3) **
MATH 158 - Calculus II for the Social Sciences (3) **
and one of
MATH 232 - Applied Linear Algebra (3)
MATH 240 - Algebra I: Linear Algebra (3)
and one of
BUS 232 - Business Statistics (3)
STAT 270 - Introduction to Probability and Statistics (3)
STAT 271 - Probability and Statistics for Computing Science (3)
and one of
COGS 100 - Exploring the Mind (3)
or one course chosen from the social sciences electives list in the computing science major program's lower division requirements
** with a grade of at least B+, and with school permission
Computing Science Requirements
Students complete at least 21 units, including either both of
CMPT 120 - Introduction to Computing Science and Programming I (3)
CMPT 125 - Introduction to Computing Science and Programming II (3)
or both of
CMPT 130 - Introduction to Computer Programming I (3)
CMPT 135 - Introduction to Computer Programming II (3)
and all of
CMPT 105W - Social Issues and Communication Strategies in Computing Science (3)
CMPT 225 - Data Structures and Programming (3)
CMPT 276 - Introduction to Software Engineering (3)
CMPT 295 - Introduction to Computer Systems (3)
MACM 101 - Discrete Mathematics I (3)
and one of
CMPT 210 - Probability and Computing (3)
MACM 201 - Discrete Mathematics II (3)
Linguistics Requirements
Students complete at least nine units, including both
LING 220 - Introduction to Linguistics (3)
LING 282W - Writing for Linguistics (3)
Upper Division Requirements
Computing Science Requirements
Students complete at least 24 units, including all of
CMPT 300 - Operating Systems I (3)
CMPT 307 - Data Structures and Algorithms (3)
CMPT 310 - Introduction to Artificial Intelligence (3)
CMPT 413 - Computational Linguistics (3)
and four courses chosen from four distinct concentration areas as listed in Table I. CMPT 308 and 379 are recommended.
Table I - Computing Science Concentrations
ARTIFICIAL INTELLIGENCE
CMPT 310 - Introduction to Artificial Intelligence (3)
CMPT 340 - Biomedical Computing (3)
CMPT 410 - Machine Learning (3)
CMPT 411 - Knowledge Representation (3)
CMPT 412 - Computational Vision (3)
CMPT 413 - Computational Linguistics (3)
CMPT 414 - Model-Based Computer Vision (3)
CMPT 417 - Intelligent Systems (3)
CMPT 419 - Special Topics in Artificial Intelligence (3)
CMPT 420 - Deep Learning (3)
COMPUTER GRAPHICS AND MULTIMEDIA
CMPT 361 - Introduction to Computer Graphics (3)
CMPT 363 - User Interface Design (3)
CMPT 365 - Multimedia Systems (3)
CMPT 461 - Computational Photography and Image Manipulation (3)
CMPT 464 - Geometric Modelling in Computer Graphics (3)
CMPT 466 - Animation (3)
CMPT 467 - Visualization (3)
CMPT 469 - Special Topics in Computer Graphics (3)
COMPUTING SYSTEMS
CMPT 300 - Operating Systems I (3)
CMPT 305 - Computer Simulation and Modelling (3)
CMPT 371 - Data Communications and Networking (3)
CMPT 379 - Principles of Compiler Design (3)
CMPT 403 - System Security and Privacy (3)
CMPT 431 - Distributed Systems (3)
CMPT 433 - Embedded Systems (3)
CMPT 450 - Computer Architecture (3)
CMPT 471 - Networking II (3)
CMPT 479 - Special Topics in Computing Systems (3)
CMPT 499 - Special Topics in Computer Hardware (3)
INFORMATION SYSTEMS
CMPT 353 - Computational Data Science (3)
CMPT 354 - Database Systems I (3)
CMPT 362 - Mobile Applications Programming and Design (3)
CMPT 372 - Web II - Server-side Development (3)
CMPT 441 - Computational Biology (3)
CMPT 454 - Database Systems II (3)
CMPT 456 - Information Retrieval and Web Search (3)
CMPT 459 - Special Topics in Database Systems (3)
CMPT 474 - Web Systems Architecture (3)
PROGRAMMING LANGUAGES AND SOFTWARE
CMPT 373 - Software Development Methods (3)
CMPT 383 - Comparative Programming Languages (3)
CMPT 384 - Symbolic Computing (3)
CMPT 473 - Software Testing, Reliability and Security (3)
CMPT 475 - Requirements Engineering (3)
CMPT 477 - Introduction to Formal Verification (3)
CMPT 489 - Special Topics in Programming Languages (3)
THEORETICAL COMPUTING SCIENCE
CMPT 307 - Data Structures and Algorithms (3)
CMPT 308 - Computability and Complexity (3)
CMPT 404 - Cryptography and Cryptographic Protocols (3)
CMPT 405 - Design and Analysis of Computing Algorithms (3)
CMPT 406 - Computational Geometry (3)
CMPT 407 - Computational Complexity (3)
CMPT 409 - Special Topics in Theoretical Computing Science (3)
CMPT 476 - Introduction to Quantum Algorithms (3)
MACM 300 - Introduction to Formal Languages and Automata with Applications (3)
Linguistics Requirements
Students complete at least 21 units, including both of
LING 321 - Phonology (3)
LING 322 - Syntax (3)
and one of
LING 400 - Formal Linguistics (3)
LING 450 - Computational Linguistics (3)
and 12 units chosen from
LING 323 - Morphology (3)
LING 324 - Semantics (3)
LING 330 - Phonetics (3)
LING 401 - Topics in Phonetics (3)
LING 480 - Topics in Linguistics I (3) *
LING 481 - Topics in Linguistics II (3) *
* when offered with a suitable topic
Elective Courses
In addition to the courses listed above, students should consult an academic advisor to plan the remaining required elective courses.
Other Requirements
Depending on the student’s choice, either a bachelor of arts from the Faculty of Arts and Social Sciences (FASS), or a bachelor of science from the Faculty of Applied Sciences (FAS) will be awarded. Students must fulfil their chosen faculty’s distinct requirements.
Faculty of Arts and Social Sciences Degree Requirements
For all bachelor of arts (BA) programs, students complete 120 units, which includes
at least 60 units that must be completed at Simon Fraser University
at least 45 upper division units, of which at least 30 upper division units must be completed at Simon Fraser University
at least 60 units (including 21 upper division units) in Faculty of Arts and Social Sciences courses
satisfaction of the writing, quantitative, and breadth requirements
an overall cumulative grade point average (CGPA) and upper division overall CGPA of at least 2.0, and program CGPA and upper division program CGPA of at least 2.0 on the course work used to satisfy the minimum program requirements. FASS departments may define additional GPA requirements for their respective programs.
Show less