![]() |
![]() |
![]() |
![]() |
School of Computing Science
9971 Applied Science Building, 778.782.4277 Tel, 778.782.3045 Fax,
Director
R.D. Cameron BASc, PhD (Br Col)
Professors Emeriti
- T.W. Calvert BSc(Eng) (Lond), MSEE (Wayne), PhD (Carnegie Tech), PEng
- R. Harrop BA, MA, PhD (Camb)
- W.S. Havens BSc, MSc (Virginia), PhD (Br Col)
- T. Kameda BE, ME (Tokyo), PhD (Prin)
- J.J. Weinkam BS (Xavier), MS (Chic), DSc (Wash)
Professors
- M.S. Atkins BSc (Nott), MPhil (Warw), PhD (Br Col)
- B.K. Bhattacharya MSc (Calc), MSc, PhD (McG)
- F.W. Burton BSc, MA (Colorado), PhD (E Anglia)
- R.D. Cameron BASc, PhD (Br Col)
- V. Dahl MSc (Buenos Aires), PhD (Aix-Marseilles I), Dipl d’Et App (Aix-Marseilles II)
- J.P. Delgrande BSc, MSc, PhD (Tor)
- M.S. Drew BASc, MSc (Tor), PhD (Br Col)
- M. Ester MSc (Dortmund), PhD (Swiss Inst Tech)
- B.V. Funt BSc, MSc, PhD (Br Col)
- Q. Gu BS (Shandong), MS (Ibaraki), PhD (Tohoku)
- A. Gupta BSc (McM), MSc, PhD (Tor)
- R.F. Hadley BA (Virginia), MSc (S Fraser), PhD (Br Col)
- P. Hell BSc (Prague), MSc (McM), PhD (Montr)
- R. Krishnamurti BTech, MTech (IIT Madras), PhD (Penn)
- Z.N. Li BSc (China UST), MSc, PhD (Wis)
- A.L. Liestman BGS (Kansas), MS, PhD (Ill)
- W.S. Luk BA (Lond), MSc (Wat), PhD (Alta)
- J.G. Peters BMath (Wat), MSc, PhD (Tor)
- F. Popowich BSc (Alta), MSc (S Fraser), PhD (Edin)
- S.C. Sahinalp BSc (Bilkent), PhD (Maryland), Canada Research Chair
- T.C. Shermer BES (Johns H), PhD (McG)
- G. Tardos Diploma, PhD (Eötvös Loránd, Budapest), Canada Research Chair
- K. Wang BSc (Chongqing), MSc, PhD (Georgia IT)
Associate Professors
- P. Berenbrink MSc, PhD (Paderborn)
- A. Bulatov MSc (Ural State), PhD (Russian Academy of Science)
- A.F. Ergun BSc (Bilkent), PhD (Cornell)
- U. Glässer BSc, MSc, PhD, Habilitation (Paderborn)
- L.J. Hafer BSEE, MS, PhD (Carnegie-Mellon)
- A. Kirkpatrick BS (Penn State), MS (Maharishi Intl), PhD (Ore)
- D. Mitchell BSc (Tor), MSc (S Fraser), PhD (Tor)
- T. Möller BS (Humboldt), MS, PhD (Ohio State)
- J. Pei BE, ME (Jiao Tong), PhD S Fraser)
- O. Schulte BSc (Tor), MSc, PhD (Carnegie Mellon)
- E. Ternovska BSc (Moscow State), MSc (Russian Academy of Science), PhD (Tor)
- K. Wiese BMath, BSc, MSc (Saarlandes), PhD (Regina)
Assistant Professors
- D. Beyer DrRerNat, DiptInf, PhD (Brandenburg)
- A. Fedorova MS, PhD (Harvard)
- G. Hamarneh BSc (Jordan), MSc, PhD (Chalmers)
- M. Hefeeda BSc, MSc (Mansoura), PhD (Purdue)
- V. Kabanets BSc (Kiev), MSc (S Fraser), PhD (Tor)
- J.C. Liu BSc (Tsinghua), PhD (HKUST)
- G. Mori BSc (Tor), PhD Calif)
- A. Sarkar, BSc (Poona), PhD (Penn)
- T. Smyth BMus (McG), MMus (NY), DPhil (Stan)
- R.T. Vaughan BA (Sus), PhD (Oxf)
- H. Zhang BSc, MSc (Wat), PhD (Tor)
Adjunct Professors
- I. Birol BSc, MSc, PhD (Bogazici)
- A. Cherkasov Dipl (Kazan State), PhD, DSc (SciCoun Russian AcaSci)
- F. Chudak Licentate Math (Buenos Aires), MA (S Carolina), PhD (Cornell)
- A. Condon BSc (UnivColl Cork), PhD (Wash)
- J.C. Dill BASc (Br Col), MS (N Carolina), PhD (Cal Tech), PEng
- G.D. Finlayson BSc (Strath), MSc, PhD (S Fraser)
- F.D. Fracchia BSc (Regina), MS (Wat), PhD (Regina)
- T. Lee BSc, MSc (Br Col), PhD (S Fraser)
- T. Schaub BSc, MSc, PhD (Darmstadt)
- H. Wehn MSc, PhD (McG)
Senior Lecturers
- G. Baker BSc (Qu), MSc (S Fraser)
- B. Bart BSc, BMath (Wat), BEd (WOnt), MSc (S Fraser)
- A.H. Dixon BSc, MSc, PhD (Br Col)
- M.D. Evans BSc, MA (Dal), MSc (Dund), MSc (Birm)
Lecturers
- D. Cukierman BSc (Republica, Uruguay), MSc, PhD (S Fraser)
- T. Donaldson, BSc (S Fraser), MMath, PhD (Wat)
- J. Edgar BSc (Univ Coll, London), MSc (S Fraser)
- H.S. Khangura BSc (Tor), MSc (Br Col)
- A. Lavergne BSc (S Fraser), MSc (Br Col)
- S. Pearce BSc, MSc (Br Col), PhD (Ariz)
- J. Regan BSc (Vic, BC), MS, PhD (Cal Tech)
Associate Members
- P. Borwein, Department of Mathematics
- P. Brantingham, School of Criminology
- C. Chauve, Department of Mathematics
- M.B. Monagan, Department of Mathematics
- F.J. Pelletier, Department of Linguistics, Department of Philosophy
- R.D. Russell, Department of Mathematics
- L. Stacho, Department of Mathematics
- M. Taboada, Department of Linguistics
- L. Trajkovic, School of Engineering Science
- M.R. Trummer, Department of Mathematics
Advisors
For general advice, see , 778.782.3796 Tel, csadvise@cs.sfu.ca
For Simon Fraser University Surrey program advice, see, 778.782.7552 Tel, csadvise@sfu.ca,
To book your own advising appointment, see
For co-operative education advice, see
- Ms. H. Chicoine, Co-operative Education Co-ordinator, 9832 Applied Science Building, 778.782.3917 Tel, chicoine@sfu.ca
Programs Offered
- Computing Science Major: this program leads to a BSc or BA degree with a major or honors in computing science; students may complete specialist programs and concentrations
- Software Systems Major
- Joint Programs
- Post Baccalaureate Diploma in Computing Science
- Second Degree Program
- 91ÅÝܽ – Zhejiang University Dual Degree Program
The school offers a general program leading to a BSc or BA degree with major or honors in computing science, and specialist programs leading to a BSc degree with a computing science major. It also offers many joint major programs, and also participates in the cognitive science program (see “Cognitive Science Program”) and the Management and Systems Science Program see “Management and Systems Science Program”). The school also offers a minor program.
Transfer Credit and Residency Requirements
Transfer students are advised that residency requirements apply to all programs offered or jointly offered by the School of Computing Science. See “Residency Requirements”.
Prerequisite Grade Requirement
Computing science course entry requires a C- or better in each prerequisite course. A minimum 2.40 cumulative grade point average is required for upper division computing courses.
Entry into computing science programs is possible via
- direct admission from high school
- direct transfer from a recognized post-secondary institution, or combined transfer units from more than one post-secondary institution
- internal transfer from within Simon Fraser University
Admission is competitive. A separate admission average for each entry route is established each term, depending on spaces available and subject to the approval of the Dean of Applied Sciences. Admission averages are calculated over a set of courses satisfying particular breadth constraints.
See “Admission and Readmission” for provisions governing high school direct entry or direct transfer from another post-secondary institution.
Please contact an advisor at
Guaranteed Placement Program
This admission entry program has been created for high school students who are not eligible for our direct admission program (based on their high school grade average), but still have a good grade average.
This program assures students of timely access to the courses needed to enter the computing science major or honors programs under the internal transfer model.
Students may continue in the program for up to two years with a 2.40 or better CGPA.
Students who are considering this program are strongly recommended to meet with a school academic advisor within the first two terms of study. See
Internal Transfer
91ÅÝܽ students applying for School of Computing Science admission are selected on the basis of an admission Computing Related Grade Point Average. The CRGPA is calculated over the best three courses chosen as follows.
- one mathematics course chosen from: MACM 101, 201, MATH 150 (or 151), 152 and 240 (or 232)
- one computing course chosen from: CMPT 125 (or 126 or 128), 150, (or ENSC 150), 225, 250 and 275
- one additional mathematics or computing science course chosen from the above lists
No course may be included in the average if it is a duplicate of any previous course completed at Simon Fraser University or elsewhere. All three courses must be completed prior to application. See for information.
Students who do not maintain at least a 2.40 CGPA, will be placed on the school’s probation. Courses available to probationary students may be limited. Each term, these students must consult an advisor prior to enrolment and must achieve either a term 2.40 term GPA or an improved CGPA. Reinstatement from probationary standing occurs when the CGPA improves to 2.40 or better and is maintained.
Students must obtain permission from the department if they wish to complete, for further credit, any course that is a prerequisite for a course the student has already completed with a grade of C- or higher.
Writing, Quantitative, and Breadth Requirements
Students completing degree programs must fulfil writing, quantitative and breadth requirements as part of their program. See “Writing, Quantitative, and Breadth Requirements” for information or visit.
For students entering from 91ÅÝܽ, Chinese language and culture courses completed at Zhejiang University may fulfil up to two Breadth-Social Sciences (B-Soc) and two Breadth-Humanities (B-Hum) requirement.
For students entering from Zhejiang University, selected cultural, social science and humanities courses completed at Zhejiang University may fulfil up to two Breadth-Social Sciences (B-Soc) and two Breadth-Humanities (B-Hum) requirement.
This is a direct admission program and holders of a recognized bachelor's degree in another discipline may follow this program to earn a second degree.
Applicants should indicate their program interest by selecting the computing science, Faculty of Applied Sciences BSc major as their first choice. Applicants are selected primarily on upper division (third and fourth year) performance in the prior bachelor's degree and subsequent professional experience.
Well-prepared students can complete the program in one year (three terms) of full-time study. The ideal preparation is a mathematics background with programming experience comparable to the first two years of the computing science major program and a prior degree in which English was the language of instruction. Students without this may need additional time to complete lower division prerequisites prior to starting upper division courses.
In accord with University regulations, the second degree program consists of the upper division requirements of the full computing science degree, including WQB requirements as assessed by the school. For a general BSc degree majoring in computing science, 45 upper division units must be completed including the 39 upper division units as specified for the major. For more information visit.
These programs are organized to take advantage of many options. Some prepare for employment in computer-related positions in government, business, or industry, and for computing science graduate studies or a related area. This undergraduate degree is appropriate for many interdisciplinary areas.
Lower Division Requirements
Students who plan a major or honors in computing science must complete the courses listed below. It is suggested that students complete a recommended schedule of courses within the first two years.*
Courses
Students complete one of**
CMPT 125-3 Introduction to Computing Science and Programming II
CMPT 126-3 Introduction to Computing Science and Programming
and all of
CMPT 150-3 Introduction to Computer Design
CMPT 225-3 Data Structures and Programming
CMPT 250-3 Introduction to Computer Architecture
CMPT 275-4 Software Engineering I
MACM 101-3 Discrete Mathematics I
MACM 201-3 Discrete Mathematics II
MATH 151-3 Calculus I***
MATH 152-3 Calculus II***
MATH 240-3 Algebra I: Linear Algebra***
and one of
STAT 270-3 Introduction to Probability and Statistics I
BUEC 232-4 Data and Decisions I (with permission of an advisor) 37-38 units
**to aid your choice, prior to enrolment, complete the self-evaluation test at
***MATH 150 may be substituted for MATH 151. MATH 154/155 or MATH 157/158 with a grade of at least B+ may be substituted with school permission. MATH 232 may be substituted for MATH 240.
Students are encouraged to meet the Simon Fraser University undergraduate degree requirements for writing, quantitative, and breadth courses as early as possible in their degree (see “Writing, Quantitative, and Breadth Requirements”).
Upper Division Requirements
Major and honors students must consult an advisor before commencing upper division requirements. For information, see
The primary upper division requirements for a major or honors are structured according to breadth, depth and credential requirements listed below.
Table I – Computing Science Concentrations
CMPT 310-3 Artificial Intelligence Survey
CMPT 340-3 Biomedical Computing
CMPT 411-3 Knowledge Representation
CMPT 412-3 Computational Vision
CMPT 413-3 Computational Linguistics
CMPT 414-3 Model-Based Computer Vision
CMPT 417-3 Intelligent Systems
CMPT 418-3 Computational Cognitive Architecture
CMPT 419-3 Special Topics in Artificial Intelligence
Computer Graphics and Multimedia
CMPT 361-3 Introduction to Computer Graphics
CMPT 363-3 User Interface Design
CMPT 365-3 Multimedia Systems
CMPT 368-3 Introduction to Computer Music Theory and Sound Synthesis
CMPT 461-3 Image Synthesis
CMPT 464-3 Geometric Modeling in Computer Graphics
CMPT 466-3 Animation
CMPT 467-3 Visualization
CMPT 469-3 Special Topics in Computer Graphics
Computing Systems
CMPT 300-3 Operating Systems I
CMPT 305-3 Computer Simulation and Modeling
CMPT 371-3 Data Communications and Networking
CMPT 379-3 Principles of Compiler Design
CMPT 401-3 Operating Systems II
CMPT 431-3 Distributed Systems
CMPT 432-3 Real-time Systems
CMPT 433-3 Embedded Systems
CMPT 471-3 Networking II
CMPT 479-3 Special Topics in Computing Systems
CMPT 499-3 Special Topics in Computer Hardware
Information Systems
CMPT 301-3 Information Systems Management
CMPT 354-3 Database Systems I
CMPT 370-3 Information System Design
CMPT 441-3 Introduction to Computational Biology
CMPT 454-3 Database Systems II
CMPT 456-3 Information Retrieval and Web Search
CMPT 459-3 Special Topics in Database Systems
CMPT 470-3 Web-based Information Systems
CMPT 474-3 Web Systems Architecture
Programming Languages and Software
CMPT 373-3 Software Development Methods
CMPT 383-3 Comparative Programming Languages
CMPT 384-3 Symbolic Computing
CMPT 473-3 Software Quality Assurance
CMPT 475-3 Software Engineering II
CMPT 477-3 Introduction to Formal Verification
CMPT 480-3 Foundations of Programming Languages
CMPT 481-3 Functional Programming
CMPT 489-3 Special Topics in Programming Languages
CMPT 307-3 Data Structures and Algorithms
CMPT 308-3 Computability and Complexity
CMPT 404-3 Cryptography and Cryptographic Protocols
CMPT 405-3 Design and Analysis of Computing Algorithms
CMPT 406-3 Computational Geometry
CMPT 407-3 Computational Complexity
CMPT 408-3 Theory of Computer Networks/Communications
CMPT 409-3 Special Topics in Theoretical Computing Science
MACM 300-3 Introduction to Formal Languages and Automata with Applications
Table II – Application Courses
CMPT 340-3 Computers in Biomedicine
CMPT 441-3 Introduction to Computational Biology
Table III – Computing Mathematics Courses
MACM 316-3 Numerical Analysis I
MACM 401-3 Symbolic Computation
MATH 308-3 Linear Programming
MATH 343-3 Combinatorial Aspects of Computing
MACM 416-3 Numerical Analysis II
The following courses may be counted in one of the above tables with permission of the school.
CMPT 318-3 Special Topics in Computing Science
CMPT 415-3 Special Research Projects
CMPT 416-3 Special Research Projects
CMPT 496-3 Directed Studies
CMPT 497-6 Dual Degree Program Capstone Project
CMPT 498-6 Honors Research Project
Upper Division Requirements for a Major
Breadth Requirement
Five courses from five of the six table 1 areas of concentration must be completed including both of
CMPT 300-3 Operating Systems I
CMPT 307-3 Data Structures and Algorithms 15 units
CMPT 354 is also recommended.
Depth Requirement
Twelve units of additional CMPT courses numbered CMPT 400 or above must be completed (excluding CMPT 415, 416 and 498, which may be included by special permission). 12 units
BSc Credential
For a BSc degree with a major in computing science, the following additional requirements must be met.
• two additional courses chosen from tables I, II or III
• MACM 316 and
• CMPT 320 or CMNS 353
Other courses may be approved on submission of a detailed course outline to the school. 12 units
BEd Credential
For a major in computing science in conjunction with a BEd program as offered by the Faculty of Education, one additional CMPT course chosen from table I or table II must be completed, to total at least 30 upper division units in CMPT courses. 3 units
BA Credential
For a BA degree with a major in computing science within the Faculty of Applied Sciences, the following additional requirements must be met.
• one additional CMPT upper division course chosen from table I or table II must be completed bringing the total upper division units in CMPT courses to a minimum of 30 units.
• a concentration of 15 units in a Faculty of Arts and Social Sciences discipline (department) including at least six units of upper division credit. 18 units
Graduation Requirements
For all computing science major programs, the upper division CMPT GPA of 2.00 must be maintained.
For a computing science major, students complete
• 120 units including an overall minimum of 45 upper division units
• a minimum of at least 30 upper division CMPT units must be counted towards the major and cannot at the same time be counted towards the unit requirements of any other program.
See “Major – Minor Program” for regulations governing university graduation requirements, or see to find “General Information” from the Table of Contents.
Upper Division Requirements for Honors
For a BA or BSc degree with honors in computing science, students fulfil the following requirements for a BA or BSc major in computing science, with the following modifications and additions.
Unit Requirement
Additional computing science courses must be completed to bring the total upper division units in CMPT/MACM to at least 50 within the minimum of 60 upper division units and an overall total of 132 units are required for the degree, together with a graduation grade point average of at least 3.00.
Breadth Requirement
One course each in the six areas of table I is required. These courses must include CMPT 300, 307 and 354.
18 units
Depth Requirement
Six additional courses from table I are required. These courses must include CMPT 405 and at least one other course in the theoretical computing science concentration. At least four of the courses must be numbered 400 or above.
In addition, six units of research courses are required including both of
CMPT 415-3 Special Research Projects
CMPT 416-3 Special Research Projects
or
CMPT 498-6 Honors Research Project 24 units
Concentrations
As part of a major or honors program, students may complete one or more concentrations from these six areas: artificial intelligence, computer graphics and multimedia, computing systems, information systems, programming languages and software engineering, and theoretical computing science.
To complete a concentration, students complete the major or honors requirements, including four courses in the corresponding section of table 1, at least two of which must be at the 400 division. Courses used to meet the requirements of a concentration may also be used to meet other program requirements.
Students must consult an advisor before commencing a specialist program, preferably early in their second year. See
Specialist Program in Multimedia Computing
Lower Division Requirements
Students complete all lower division requirements for the computing science major program plus
FPA 111-3 Issues in the Fine and Performing Arts
plus at least two of
CMNS 259-3 Acoustic Dimensions of Communication I
FPA 147-3 Introduction to Electroacoustic Music
FPA 247-3 Electroacoustic Music I
FPA 289-3 Special Topics in the Fine and Performing Arts I
FPA 290-3 Video Production I 58-61 units
Upper Division Requirements
Students complete at least 39 units of computing science upper division courses, which should include CMPT courses in the following required and elective courses.
Students complete all of
CMPT 300-3 Operating Systems I
CMPT 307-3 Data Structures and Algorithms
CMPT 320-3 Social Implications of a Computerized Society
CMPT 361-3 Introduction to Computer Graphics
CMPT 363-3 User Interface Design
CMPT 365-3 Multimedia Systems
MACM 316-3 Numerical Analysis I 21 units
At least six of the following are required, three of which must be 400 division, three must be designated CMPT and two must be non-CMPT courses.
CMNS 358-4 Sound Tape Recording: Theory and Uses
CMNS 359-4 Acoustic Dimensions of Communication II
CMPT 310-3 Artificial Intelligence Survey
CMPT 354-3 Database Systems and Structures
CMPT 371-3 Data Communications and Networking
CMPT 412-3 Computational Vision
CMPT 414-3 Model-Based Computer Vision
CMPT 461-3 Advanced Computer Graphics
CMPT 466-3 Animation
CMPT 468-3 Introduction to Computer Music and Sound Synthesis
CMPT 469-3 Special Topics in Computer Graphics
FPA 311-5 The Arts in Context: Selected Topics
FPA 353-3 Playmaking IV
FPA 390-3 Video Production II 18 units
Relevant FPA and CMNS lower and upper division special topics courses may be applied to the above requirement with the approval of the director of undergraduate studies in the School of Computing Science. Some FPA courses listed above require prerequisites that are not included here.
Specialist Program in Software Engineering
The completion of a bachelor of science degree in computing science with the completion of a specialist program in software engineering is not a professional engineering degree as it is not certified by professional engineering societies. It is instead an area of study recognized by computing science.
Lower Division Requirements
These requirements are identical to those of the major and honors program listed above.
Upper Division Requirements
Required Courses
Students complete all eight of
CMPT 300-3 Operating Systems I
CMPT 307-3 Data Structures and Algorithms
CMPT 320-3 Social Implications of a Computerized Society
CMPT 354-3 Database Systems I
CMPT 363-3 User Interface Design
CMPT 371-3 Data Communications and Networking
CMPT 475-3 Software Engineering II
MACM 316-3 Numerical Analysis I 24 units
Elective Courses
Students complete five or more courses chosen from the following list, at least three of which must be at the 400 division.
CMPT 301-3 Information Systems Management
CMPT 370-3 Information System Design
CMPT 379-3 Principles of Compiler Design
CMPT 383-3 Comparative Programming Languages
CMPT 401-3 Operating Systems II
CMPT 454-3 Database Systems II
CMPT 459-3 Special Topics In Database Systems
CMPT 470-3 Web-based Information Systems
CMPT 471-3 Networking II
CMPT 477-3 Introduction to Formal Verification
CMPT 487-3 Software Engineering Tools and Environments
CMPT 489-3 Special Topics in Programming Languages
ENSC 351-4 Real Time and Embedded Systems
15 units
Additional upper CMPT courses are required to bring the total CMPT units to 45 or more (ENSC 351 is treated as CMPT credit for this purpose). 6 units
Software Systems Major Program
This program provides skills, knowledge and thought processes necessary for professional software production, while also providing a broad background various computing systems that graduates encounter in their careers. For course planning information, visit
Systems Requirements
Students complete all of
CMPT 150-3 Introduction to Computer Design
CMPT 250-3 Introduction to Computer Architecture
CMPT 300-3 Operating Systems I
and two of
CMPT 170-3 Introduction to Web Application Development
CMPT 371-3 Data Communications and Networking
CMPT 471-3 Networking II
CMPT 354-3 Database Systems I
CMPT 454-3 Database Systems II
CMPT 401-3 Operating Systems II
CMPT 432-3 Real-time Systems
CMPT 433-3 Embedded Systems
CMPT 470-3 Web-based Information Systems
15 units
Fundamentals Requirements
Students complete all of
CMPT 307-3 Data Structures and Algorithms
MACM 101-3 Discrete Mathematics I
MATH 151-3 Calculus I
MATH 232-3 Elementary Linear Algebra
and one of
CMPT 322-3 Professional Responsibility and Ethics
CMPT 322W-3 Professional Responsibility and Ethics
and one of
STAT 101-3 Introduction to Statistics
STAT 270-3 Introduction to Probability and Statistics
18 units
Software Engineering Requirements
Students complete all of
CMPT 212-3 Object-Oriented Applications Design in C++
CMPT 225-3 Data Structures and Programming
CMPT 276-3 Introduction to Software Engineering
CMPT 373-3 Software Development Methods
CMPT 379-3 Principles of Compiler Design
CMPT 473-3 Software Quality Assurance
and either
CMPT 126-3 Introduction to Computing Science and Programming
or
CMPT 128-3 Introduction to Computing Science and Programming for Engineers
or both of
CMPT 120-3 Introduction to Computing Science and Programming I
CMPT 125-3 Introduction to Computing Science and Programming II
and one of
CMPT 383-3 Comparative Programming Languages
CMPT 384-3 Symbolic Computing
CMPT 477-3 Formal Verification
CMPT 474-3 Web Systems Architecture 24-27 units
Specialization Requirements
Students are required to complete a specialization consisting of nine additional CMPT or MACM units at the 300 or 400 division. This specialization must be approved by the School of Computing Science. Preapproved sets of courses can be found at . 9 units
Depth Requirement
Students must complete at least nine CMPT or MACM units at the 400 division.
91ÅÝܽ – Zhejiang University Dual Degree Program
This unique program developed by 91ÅÝܽ and Zhejiang University (China) offers a dual degree, with a major in computing science from both institutions. Program admission inquiries may be sent to cschina@sfu.ca.
Admission Requirements
This is a direct admission program. Simon Fraser University applicants indicate their interest on the Application for Undergraduate Admission to 91ÅÝܽ by selecting the ‘China Dual Degree Zhejiang University’ under Program/Plan in Computing Science, Faculty of Applied Sciences.
Admission is competitive and enrolment is limited.
The program begins each fall term. Applicants must meet the standard requirements for admission to 91ÅÝܽ and the School of Computing Science. Concurrent to the Simon Fraser University admission application, students must also submit a ‘Statement of Interest’ to the SFU-ZU admissions committee, School of Computing Science. Applicants will be selected based on their Statement of Interest and their academic standing. Program admission inquiries may be sent to cschina@sfu.ca.
Program Structure
91ÅÝܽ Students
Students with no previous knowledge of Chinese will complete a five year curriculum with customized intensive Chinese language courses at 91ÅÝܽ in addition to some foundational courses in the Prep/0th year, plus Chinese immersion in the summer.
First and Second Year
91ÅÝܽ students study at Zhejiang University, completing 80 lower division units (including 20 for Chinese language and culture.)
Third and Fourth Year
Students complete 60 units at 91ÅÝܽ (including a minimum of 45 upper division units).
Zhejiang University Students
First and Second Year
Zhejiang University students study at Zhejiang University, completing 80 lower division units plus 18 units (Chinese moral education, etc.).
Third and Fourth Year
Students complete 60 units at 91ÅÝܽ (including a minimum of 45 upper division units).
All core courses are scheduled according to the articulation documents shown on the website . All students in the dual degree program are expected to fulfil the WQB requirements (see “Writing, Quantitative, and Breadth Requirements”) for their Simon Fraser University degree.
The option for work experience is available to students after the fourth term at Zhejiang University.
Upon completion, students receive dual degrees from 91ÅÝܽ and Zhejiang University.
Tuition and Program Fee
All students pay undergraduate fees (including tuition and other fees) to 91ÅÝܽ. All students must pay a $700 program fee each year in addition to the other tuition fees. Students are also responsible for travel, accommodation, insurance, textbooks and general living expenses (noting that in China, books, housing meals, transportation and living expenses will be lower than in Canada). Domestic students pay the basic 91ÅÝܽ tuition. International students attending the SFU-ZU dual degree program pay the basic 91ÅÝܽ tuition in years one and two when studying at Zhejiang University. In years zero, three and four, when studying at 91ÅÝܽ, international students will pay differential tuition fees.
Dual Degree Credential
All students must complete the following Simon Fraser University upper division courses.
CMPT 300-3 Operating Systems I
CMPT 307-3 Data Structures and Algorithms
CMPT 320-3 Social Implications of a Computerized Society
CMPT 354-3 Database Systems I
CMPT 371-3 Data Communications and Networking
CMPT 376-3 Technical Writing and Group Dynamics
MACM 316-3 Numerical Analysis I
two CMPT courses from two different concentrations selected from: artificial intelligence, computer graphics and multimedia, or programming languages and software (see Table I Computing Science Concentration) at the 300 division
four CMPT courses numbered 400 or higher from Table 1 (see “Table I – Computing Science Concentrations” on page 77)
CMPT 497 capstone projects (or six units of approved upper division CMPT courses)
Minimum Credit and Residency Requirement
Students must complete at least 54 units at Zhejiang University (ZU) including at least 34 computing science core course units. Students must also complete at least 54 units at Simon Fraser University. Students admitted from Zhejiang University must complete at least 39 upper division units of these minimum 54 units at Simon Fraser University. Courses completed at ZU are not transfer credits. They are marked as DDP credits in the other credits section of the Simon Fraser University transcript.
Co-operative Education and Work Experience
All students may choose to participate in co-operative education or work placements.
Admission Requirements
Admission to a computing science minor is open to all 91ÅÝܽ students with a major in a discipline other than computing science. Admission is competitive and requires the lower division courses listed below. The admission GPA is established each term, and will never be less than 2.40.
Lower Division Requirements
Students who plan to undertake a minor in computing science should normally obtain credit for the following lower division courses.
one of*
CMPT 125-3 Introduction to Computing Science and Programming II
CMPT 126-3 Introduction to Computing Science and Programming
and all of
CMPT 150-3 Introduction to Computer Design
CMPT 225-3 Data Structures and Programming
MACM 101-3 Discrete Mathematics I
MATH 151-3 Calculus I**
and one of
CMPT 250-3 Introduction to Computer Architecture
CMPT 275-4 Software Engineering I
and one of
PHIL 100-3 Knowledge and Reality
PHIL 120-3 Introduction to Moral Philosophy
TECH 101-3 Fundamentals of Teamwork and Communication II
or any 100 division ENGL course 18-22 units
**MATH 150 may be substituted for MATH 151. MATH 154 or 157 with a grade of at least B+ may be substituted with permission of the school
Upper Division Requirements
For a minor, 15 units of upper division CMPT or MACM courses is required, including at least nine CMPT units chosen from Table I – Computing Science Concentrations (see page 77). 15 units
Graduation Requirements
Computing Science and Linguistics Joint Major Program
The School of Computing Science and the Department of Linguistics offer this joint major in the area of computational linguistics. Contact advisors in both departments for permission to enrol. Student enrolment, appeals and graduation processing are handled by the school.
Lower Division Requirements
Students complete all of
MATH 151-3 Calculus I*
MATH 152-3 Calculus II*
MATH 240-3 Algebra I: Linear Algebra*
and one of
BUEC 232-4 Data and Decisions I
STAT 270-3 Introduction to Probability and Statistics
and one of
COGS 100-3 Introduction to Cognitive Science
or one course chosen from the social sciences electives list in the computing science major program’s lower division requirements 46-51 units
*MATH 150 may be substituted for MATH 151. MATH 154/155 or 157/158 with a grade of at least B+ may be substituted with permission of the school. MATH 232 may be substituted for MATH 240.
Computing Science Requirements
Students complete either
CMPT 126-3 Introduction to Computing Science and Programming*
or both of
CMPT 120-3 Introduction to Computing Science and Programming I*
CMPT 125-3 Introduction to Computing Science and Programming II*
and all of
CMPT 150-3 Introduction to Computer Design
CMPT 225-3 Data Structures
CMPT 275-4 Software Engineering
MACM 101-3 Discrete Mathematics I
MACM 201-3 Discrete Mathematics II
Linguistics Requirements
Students complete all of
LING 220-3 Introduction to Linguistics
LING 221-3 Introduction to Phonetics and Phonology
LING 222-3 Introduction to Syntax
Upper Division Requirements
Computing Science Requirements
(24 units)
Students complete all of
CMPT 300-3 Operating Systems
CMPT 307-3 Data Structures and Algorithms
CMPT 320-3 Social Implications of a Computerized Society
CMPT 413-3 Computational Linguistics
In addition, students choose four courses from the following distinct concentration areas: computer graphics and multimedia; information systems; programming languages and software; computing systems (CMPT 379 is recommended); theoretical computer science (CMPT 308 is recommended).
Linguistics Requirements
(21 units)
Students complete both of
LING 321-3 Phonology
LING 322-3 Syntax
and one of
LING 400-3 Formal Linguistics
MACM 300-3 Introduction to Formal Languages and Automata with Applications
and 12 units chosen from the following
LING 323-3 Morphology
LING 324-3 Semantics
LING 330-3 Phonetics
LING 401-3 Topics in Phonetics
LING 405-3 Topics in Syntax
LING 406-3 Topics in Semantics
LING 480-3 Topics in Linguistics I*
LING 481-3 Topics in Linguistics II*
*when offered with a suitable topic
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, such as FASS breadth requirements, or FAS residency requirements. For details about Faculty requirements, see “Bachelor of Arts Program” on page 88 in the Faculty of Arts and Social Science, and also see “Residency Requirements” on page 76 in the Faculty of Applied Sciences.
Students are encouraged to enrol in the Co-operative Education program.
Computing Science and Molecular Biology and Biochemistry Joint Major Program
The School of Computing Science and the Department of Molecular Biology and Biochemistry offer this joint major program. See “Department of Molecular Biology and Biochemistry” on page 200 within the Faculty of Science.
Computing Science and Philosophy Joint Major Program
The School of Computing Science and the Department of Philosophy co-operate in offering this joint major program. The administrative home is within the Faculty of Applied Sciences for purposes of student enrolment, appeals and graduation processing. Interested students should contact advisors in both departments.
Lower Division Requirements
(50-55 units)
Students complete all of
MATH 152-3 Calculus II
MATH 232-3 Elementary Linear Algebra
and one of
MATH 150-4 Calculus I with Review
MATH 151-3 Calculus I
and one of
BUEC 232-4 Data and Decisions I
STAT 270-3 Introduction to Probability and Statistics
and one physical science course chosen from the physical sciences electives list for the computing science lower division requirements.
Computing Science Requirements
Students complete all of
CMPT 120-3 Introduction to Computing Science and Programming I*
CMPT 125-3 Introduction to Computing Science and Programming II*
CMPT 150-3 Introduction to Computer Design
CMPT 225-3 Data structures
CMPT 275-4 Software Engineering
MACM 101-3 Discrete Mathematics I
MACM 201-3 Discrete Mathematics II
**CMPT 126 may be completed in lieu of CMPT 120 and 125
Philosophy Requirements
Students complete at least 16 units of lower division courses including one of
PHIL 100-3 Knowledge and Reality
PHIL 120-3 Introduction to Moral Philosophy
and one of
PHIL 150-3 History of Philosophy I
PHIL 151-3 History of Philosophy II
and all of
PHIL 201-3 Epistemology
PHIL 203-3 Metaphysics
PHIL 210-4 Deductive Logic
Upper Division Requirements
(44 units)
Computing Science Requirements
Students complete all of
CMPT 300-3 Operating Systems
CMPT 307-3 Data Structures and Algorithms
CMPT 310-3 Artificial Intelligence Survey
CMPT 354-3 Database Management Systems
and one of
CMPT 320-3 Implications of a Computerized Society
PHIL 320-3 Social and Political Philosophy
PHYS 321-3 Moral Issues and Theories
and one of
CMPT 383-3 Comparative Programming Languages
CMPT 384-3 Symbolic Computing
and one 400 division course from the Artificial Intelligence concentration (see “Artificial Intelligence” on page 77)
and one 400 division courses from the theoretical computing science concentration (see “Theoretical Computing Science” on page 78)
Philosophy Requirements
A total of 20 upper division philosophy units are required including
PHIL 341-3 Philosophy of Science
PHIL 343-3 Philosophy of Mind
PHIL 344-4 Philosophy of Language I
and at least one four-unit course at the 400 division.
For a bachelor of arts degree from the Faculty of Arts and Social Sciences, students must fulfil the Faculty of Arts and Social Sciences requirements, such as the breadth requirements (see “Writing, Quantitative, and Breadth Requirements” on page 88).
For a bachelor of science degree from the Faculty of Applied Sciences, students must fulfil the Faculty of Applied Sciences requirements, such as the residency requirements (see “Residency Requirements” on page 76).
The University’s writing, quantitative and breadth requirements must also be completed for either degree (see “Writing, Quantitative, and Breadth Requirements” on page 90).
Co-operative Education
Students are encouraged to enrol in this program.
Information Systems in Business Administration and Computing Science Joint Major Program
In co-operation with the Faculty of Business Administration, the School of Computing Science offers the Information Systems in Business Administration and Computing Science Joint Major Program. For course requirements see the Faculty of Business Administration’s listing on page 148.
Upon completion, students may choose either a BBA (Faculty of Business Administration) or a BSc (Faculty of Applied Sciences) with the completion of MACM 316 and a course from tables I, II, or III (see “Upper Division Requirements” above), excluding CMPT 301, in addition to those listed in the Business Administration section for the joint major.
Computing Science and Molecular Biology and Biochemistry Joint Honors Program
See “Computing Science and Molecular Biology and Biochemistry Joint Honors Program” on page 202.
Computing Science and Philosophy Joint Honors Program
The School of Computing Science and the Department of Philosophy co-operate in offering this joint honors program. The administrative home is within the Faculty of Applied Sciences for purposes of student enrolment, appeals and graduation processing. Interested students should contact advisors in both departments.
At least 132 units is required for an honors degree.
Lower Division Requirements
(53-57 units)
In addition to completing the same lower division requirements as stipulated for the joint major in computing science and philosophy (see “Computing Science and Philosophy Joint Major Program” on page 80), students must also complete
CMPT 250-3 Introduction to Computer Architecture
Upper Division Requirements
(61 units)
Computing Science Requirements
In addition to completing the same lower division requirements as stipulated for the joint major in computing science and philosophy (see “Computing Science and Philosophy Joint Major Program” on page 80), students must also complete
CMPT 405-3 Design and Analysis of Computing Algorithms
Whereas the joint major stipulates that students must complete one 400 division course from the theoretical computing science concentration, joint honors students instead are required to complete any two additional 400 division CMPT course.
Philosophy Requirements
Students complete a total of 28 upper division philosophy units including all of
PHIL 341-3 Philosophy of Science
PHIL 343-3 Philosophy of Mind
PHIL 344-3 Philosophy of Language I
PHIL 477-5 Honors Tutorial I
and one of
PHIL 322-3 History of Ethics
PHIL 331-3 Selected Topics
PHIL 332-3 Selected Topics
PHIL 333-3 Selected Topics
PHIL 350-3 Ancient Philosophy
PHIL 352-3 Seventeen century Philosophy
PHIL 356-3 Century Philosophy
PHIL 357-3 Topics in the History of Philosophy
and one of
PHIL 444-4 Philosophy of Language II
PHIL 455-4 contemporary Issues in Epistemology and Metaphysics
and one four unit course at the 400 division.
Other Requirements
See “Other Requirements” on page 81 within the Joint Major in Computing Science and Philosophy for additional requirements.
Mathematics and Computing Science Joint Honors Program
With the Department of Mathematics, the School of Computing Science offers this joint honors program. For requirements see “Mathematics and Computing Science (MACM) Joint Major and Joint Honors Program” on page 199 in the Department of Mathematics section.
With the Departments of Linguistics, Philosophy and Psychology, the school contributes to the undergraduate program in cognitive science, leading to a BA. See “Cognitive Science Program” on page 98 for details.
Management and Systems Science Program
With the Department of Mathematics, the Department of Economics and the Faculty of Business Administration, the school contributes to the Management and Systems Science Program leading to a BSc. See “Management and Systems Science Program” on page 195 for requirements.
Certificate in Computing Studies
This program provides both part time and full time students with an opportunity to understand the fundamentals of computers and programming without necessarily specializing in computing science.
Program Requirements
(24-28 units)
A 2.00 grade point average is required on the CMPT courses that are used for graduation. Only courses completed at 91ÅÝܽ are used in this calculation.
Required Courses
Students complete one of*
CMPT 125-3 Introduction to Computing Science and Programming II
CMPT 126-3 Introduction to Computing Science and Programming
and all of
CMPT 150-3 Introduction to Computer Design
CMPT 225-3 Data Structures and Programming
and one of
CMPT 275-4 Software Engineering I
CMPT 276-3 Introduction to Software Engineering
and one of
MACM 101-3 Discrete Mathematics I
MATH 240-3 Linear Algebra
STAT 270-3 Introduction to Probability and Statistics
Elective Courses
A total of nine elective units must be completed and must include two of the following lower division electives.
CMPT 110-3 Event-Driven Programming in Visual Basic
CMPT 165-3 Introduction to Multimedia and the Internet
CMPT 212-3 Object-Oriented Applications Design in C++
plus a three unit 300 or 400 division CMPT course.
Post Baccalaureate Diploma in Computing Science
This program is for students who already possess a university degree. It includes studies in computing science at a more advanced level.
Requirements
Students complete an approved program consisting of at least 30 units which include the following or equivalent.
CMPT 300-3 Operating Systems I
CMPT 307-3 Data Structures and Algorithms
CMPT 354-3 Database Systems and Structures
Students complete additional upper division courses to bring the total to at least 30 units. At least 24 units must be CMPT courses. Graduate courses may be included with permission of the school.
Courses must be selected in consultation with a program advisor to achieve a coherent program of study. The student is responsible for satisfying the prerequisites of program courses. This may entail completing more or all courses listed in the lower division requirements of the major in computing science (depending upon the student’s prior transcript).
Co-operative education is a system which combines work experience with academic studies. The student spends alternate terms on campus and in paid, study related jobs.
Arrangements for the work experiences are made through the school’s co-op co-ordinators and the University’s Co-operative Education. For further details, see “Co-operative Education” on page 212.
![]() |
![]() |
![]() |
![]() |