¶¡ÏãÔ°AV

Software Systems Major Program

School of Computing Science | Faculty of Applied Sciences
¶¡ÏãÔ°AV Calendar 2013 Spring

This program provides skills, knowledge and thought processes necessary for professional software production, while also providing a broad background of various computing systems that graduates encounter in their careers.

¶¡ÏãÔ°AV Requirements

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 ¶¡ÏãÔ°AV

¶¡ÏãÔ°AV 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. ¶¡ÏãÔ°AV averages are calculated over a set of courses satisfying particular breadth constraints.

Consult an Applied Sciences Advisor for requirements governing high school direct entry or direct transfer from another post-secondary institution.

Internal Transfer

Internal transfer allows students to transfer, within ¶¡ÏãÔ°AV, from one faculty to another. Once you have completed our three qualifying courses (see below) you can apply for internal transfer into the School of Computing Science. ¶¡ÏãÔ°AV students applying for School of Computing Science admission are selected on the basis of an admission computing-related grade point average (CRGPA). 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 ¶¡ÏãÔ°AV or elsewhere. All three courses must be completed prior to application. For more information, contact an Applied Sciences Advisor.

Continuation Requirements

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

Graduation Requirements

A GPA of 2.00 must be obtained for upper division courses used to fulfill the program requirements.

Prerequisite Grade Requirement

Computing science course entry requires a grade of C- or better in each prerequisite course.

A minimum 2.40 CGPA is required for 200, 300 and 400 division CMPT courses. For complete information, contact an Applied Sciences Advisor.

First Year Requirements

The first year of Software Systems begins with Systems One, a curriculum for students in the Faculty of Applied Sciences at Surrey. The courses required for Systems One are included in the following list of requirements.

Program Requirements

Students complete the following:

Systems Requirements

Students complete at least 18 units, including all of

  • CMPT 150 Introduction to Computer Design (3)
  • CMPT 250 Introduction to Computer Architecture (3)
  • CMPT 300 Operating Systems I (3)
  • ENSC 182 Mechatronics Design I (3)

and two of

  • CMPT 170 Introduction to Web Application Development (3)
  • CMPT 371 Data Communications and Networking (3)
  • CMPT 471 Networking II (3)
  • CMPT 354 Database Systems I (3)
  • CMPT 454 Database Systems II (3)
  • CMPT 401 Operating Systems II (3)
  • CMPT 432 Real-time Systems (3)
  • CMPT 433 Embedded Systems (3)
  • CMPT 470 Web-based Information Systems (3)

Fundamentals Requirements

Students complete at least 27 units including all of

  • CMPT 105W Process, Form, and Convention in Professional Genres (3)
  • CMPT 106 Applied Science, Technology and Society (3)
  • CMPT 307 Data Structures and Algorithms (3)
  • CMPT 322W Professional Responsibility and Ethics (3)
  • MACM 101 Discrete Mathematics I (3)
  • MACM 201 Discrete Mathematics II (3)
  • MATH 151 Calculus I (3)
  • MATH 232 Applied Linear Algebra (3)

and one of

  • STAT 101 Introduction to Statistics (3)
  • STAT 270 Introduction to Probability and Statistics (3)

Software Engineering Requirements

Students complete a total of 27 units including all of

  • CMPT 130 Introduction to Computer Programming I (3)
  • CMPT 135 Introduction to Computer Programming II (3)
  • CMPT 213 Object oriented design in Java (3)
  • CMPT 225 Data Structures and Programming (3)
  • CMPT 276 Introduction to Software Engineering (3)
  • CMPT 373 Software Development Methods (3)
  • CMPT 379 Principles of Compiler Design (3)
  • CMPT 473 Software Quality Assurance (3)

and one of

  • CMPT 375 Mathematical Foundations of Software Technology (3)
  • CMPT 383 Comparative Programming Languages (3)
  • CMPT 384 Symbolic Computing (3)
  • CMPT 477 Introduction to Formal Verification (3)
  • CMPT 474 Web Systems Architecture (3)

Specialization Requirements

All students are required to complete a specialization consisting of nine additional CMPT or MACM units at the 300 or 400 division to be chosen from any one area in Table I. This specialization must be approved by the School of Computing Science.

Table I –

Artificial Intelligence

  • CMPT 310 Artificial Intelligence Survey (3)
  • CMPT 340 Biomedical Computing (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 418 Computational Cognitive Architecture (3)
  • CMPT 419 Special Topics in Artificial Intelligence (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 Image Synthesis (3)
  • CMPT 464 Geometric Modeling in Computer Graphics (3)
  • CMPT 466 Animation (3)
  • CMPT 467 Visualization (3)
  • CMPT 468 Introduction to Computer Music and Sound Synthesis (3)
  • CMPT 468 Introduction to Computer Music and Sound Synthesis (3)
  • CMPT 469 Special Topics in Computer Graphics (3)

Computing Systems

  • CMPT 300 Operating Systems I (3)
  • CMPT 305 Computer Simulation and Modeling (3)
  • CMPT 371 Data Communications and Networking (3)
  • CMPT 379 Principles of Compiler Design (3)
  • CMPT 401 Operating Systems II (3)
  • CMPT 431 Distributed Systems (3)
  • CMPT 432 Real-time Systems (3)
  • CMPT 433 Embedded Systems (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 301 Information Systems Management (3)
  • CMPT 354 Database Systems I (3)
  • CMPT 370 Information System Design (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 470 Web-based Information Systems (3)
  • CMPT 474 Web Systems Architecture (3)

Programming Languages and Software

  • CMPT 373 Software Development Methods (3)
  • CMPT 375 Mathematical Foundations of Software Technology (3)
  • CMPT 383 Comparative Programming Languages (3)
  • CMPT 384 Symbolic Computing (3)
  • CMPT 473 Software Quality Assurance (3)
  • CMPT 475 Software Engineering II (3)
  • CMPT 477 Introduction to Formal Verification (3)
  • CMPT 481 Functional Programming (3)
  • CMPT 489 Special Topics in Programming Language (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 408 Theory of Computing Networks/Communications (3)
  • CMPT 409 Special Topics in Theoretical Computing Science (3)
  • MACM 300 Introduction to Formal Languages and Automata with Applications (3)

Elective Courses

In addition to the courses listed above, students should consult an Applied Sciences Advisor to plan the remaining required elective courses.

Depth Requirement

Students must complete at least nine CMPT or MACM units at the 400 division.

Writing, Quantitative, and Breadth Requirements

Students admitted to ¶¡ÏãÔ°AV beginning in the fall 2006 term must meet writing, quantitative and breadth requirements as part of any degree program they may undertake. See Writing, Quantitative, and Breadth Requirements for university-wide information.

WQB Graduation Requirements
A grade of C- or better is required to earn W, Q or B credit.
Requirement

Units

Notes
W - Writing

6

Must include at least one upper division course, taken at ¶¡ÏãÔ°AV within the student’s major subject
Q - Quantitative

6

Q courses may be lower or upper division
B - Breadth

18

Designated Breadth Must be outside the student’s major subject, and may be lower or upper division
6 units Social Sciences: B-Soc
6 units Humanities: B-Hum
6 units Sciences: B-Sci

6

Additional Breadth

6 units outside the student’s major subject (may or may not be B-designated courses, and will likely help fulfil individual degree program requirements)
Additional breadth units must be from outside the student's major and may be B-designated (B-Hum, B-Soc, B-Sci courses). Students choosing to complete a joint major, joint honours, double major, two extended minors, an extended minor and a minor, or two minors may satisfy the breadth requirements (designated or not designated) with courses completed in either one or both program areas.

Residency Requirements and Transfer Credit

The University’s residency requirement stipulates that, in most cases, total transfer and course challenge credit may not exceed 60 units, and may not include more than 15 units as upper division work.

  • At least half of the program’s total units must be earned through ¶¡ÏãÔ°AV study
  • At least two thirds of the program’s total upper division units must be earned through ¶¡ÏãÔ°AV study
  • At least two thirds of the upper division units in the courses of a school offering (or joint offering) a program must be earned through that school at ¶¡ÏãÔ°AV

For information regarding transfer, consult an Applied Sciences Advisor.

Co-operative Education and Work Experience

All computing science students are strongly encouraged to explore the opportunities that Work Integrated Learning (WIL) can offer. Please contact a computing science co-op advisor during your first year of studies to ensure that you have all of the necessary courses and information to help plan for a successful co-op experience.

Return to computing science index page.

For calendar technical problems or errors, contact calendar-sfu@sfu.ca | Calendar changes and corrections