Computing Science Major

The Computing Science Major is a 4-year degree consisting of a minimum of 120 units to graduate. Students may follow the course planners below to focus on one of Artificial Intelligence, Computing Systems, Programming Languages and Software, Information Systems, Theory or Computer Graphics and Multimedia. In their graduating term, students who complete any one of the concentration course planners are eligible to request a letter from the School of Computing Science indicating that they have completed the respective concentration. 

Graduation planners for the major with no concentration are available here. Speak to a FAS advisor or refer to the SFU calendar for more details.

See upcoming course schedules.

Core Curriculum

The table that follows is a suggested first- and second-year program plan.

Notes:

  • Students are free to make changes to the sequence in which these courses are taken as long as course prerequisites are met. 
  • Only specifically required courses are listed below. In order to graduate in 4 years, studying 2 semesters per year, students need to select electives to ensure they have an average of 15 units (5 courses) per semester.
  • Students with questions are strongly encouraged to contact an advisor. 
  • The schedule below represents a student beginning in Fall - some adjustments may be necessary based on course offerings in other semesters.
  • Students are strongly recommended to take three co-op terms in their academic career to better define their area of interest in Computing Science. To find out more about cooperative work experience, please visit the Computing Science cooperative education website.
 
CORE COURSE GUIDANCE PER TERM IN 1ST TWO YEARS
Fall
  • CMPT 120*
  • MATH 151 or 150A
  • MACM 101
  • CMPT 105WC
  • One Breadth course (WQB)B
Spring
  • CMPT 125
  • MATH 152
  • MATH 240 or 232E,
  • One Breadth course (WQB)B
  • One Elective Course
Fall
  • CMPT 225
  • CMPT 295
  • CMPT 210 
  • One Elective Course
  • One Breadth course (WQB)B
Spring
  • CMPT 276
  • STAT 271
  • One Elective Course
  • Two (2) Breadth courses (WQB)B

 

*If you have programming experience, the School will allow you to take a knowledge test. The test will determine whether you can bypass CMPT 120 and move directly into CMPT 125.  For more information and to take the test, visit here

A. MATH 151 requires a prerequisite high school Math 12 grade of at least “A.” MATH 150 requires a  prerequisite high school Math 12 grade of at least “B+.”

B. See WQB course information here.

C. CMPT 105W offered most Fall and Spring Terms.

E. Students who want a more rigorous approach to Linear Algebra are encouraged to take MATH 240.

During completion of the majority of your 100 and 200 level courses, review your options for 300 and 400 level courses. Research the six areas of concentration and read course descriptions in the calendar.

Artificial Intelligence Concentration

Artificial Intelligence is the study of the design of intelligent agents and systems, and spans areas such as machine learning, natural language processing, computer vision and robotics.

For suggested course planner, see the Graduation Planner form here.

Computing Systems Concentration

Systems specializations manage how complex components interact with each other and how they use resources. They are at the foundation of every computing environment and help computers perform efficiently and securely. Skills in systems are in demand across the industry in order to help companies get the most out of their hardware and software.

For suggested course planner, see the Graduation Planner form here.

Programming Languages and Software Concentration

New languages continue to be developed to provide more effective tools for the implementation of software products. The increased size and complexity of many solutions requires better languages and supporting software to make their realization practical as commercial products.

For suggested course planner, see the Graduation Planner form here.

Information Systems Concentration

Cloud Computing

This area embraces software engineering and database systems design, and provides the academic preparation necessary for the efficient and effective development of large software products and the design and management of computer information systems, specifically in cloud and backend development.

For detailed suggested planner, see the Graduation Planner form here.

Mobile and Web Development

This area embraces software engineering and database systems design, and provides the academic preparation necessary for the efficient and effective development of large software products and the design and management of computer information systems, specifically to support mobile and web applications.

For suggested course planner, see the Graduation Planner form here.

Theory Concentration

Theoretical computer science focuses on mathematical tools and techniques for the formal analysis of computer algorithms. It provides the mathematical basis for classifying the difficulty of solving problems and for demonstrating the correctness of solutions. The applications of these theoretical techniques have a broad range of applications including quantum computing, cryptography and security.

For suggested course planner, see the Graduation Planner form here.

 

Visual and Interactive Computing

With the rise in popularity of visual interfaces and particularly multimedia systems, the demand for expertise in this area has greatly increased. Topics include graphical interfaces, modeling, rendering, animation, visualization, and multimedia design.

For suggested course planner, see the Graduation Planner form here.