Computer Science

Computer Science is the theoretical study and practical application of computation, including such topics as: design and maintenance of software systems, distributed systems, human-computer interaction, computational modeling, artificial intelligence, mobile computing, programming languages, image processing, and computer graphics.  The use of information technology in almost every corner of human activity continues to create opportunities for our graduates.

The Department of Computer Science offers comprehensive degree programs designed to prepare graduates for careers across all sectors of the information technology industry, as well as for graduate studies and research. Detailed information regarding these programs can be found by following the links below.

The following Computer Science degree programs have been accredited by the Canadian Information Processing Society's (CIPS) Computer Science Accreditation Council (CSAC).

Our most common program.  It provides a sound background in Computer Science and allows students flexibility to choose courses based on interest.

The 4-year B.Sc. program is a comprehensive program in Computer Science and provides ample depth and significant breadth of the field. The core of the program balances practice with theoretical topics and mathematics. The program also allows the student some flexibility to pursue some topics in more depth, or to obtain more breadth.  

This program is accredited by the Canadian Information Processing Society's (CIPS) Computer Science Accreditation Council (CSAC).

Resources:

The Honours B.Sc. program is a rigourous program in Computer Science and provides ample depth and significant breadth of the field.  This program is quite practical, and prepares students for Graduate Studies.  In this program, students are more restricted in their choice of courses. Students must apply to the College to enter an honours program.

This program is accredited by the Canadian Information Processing Society's (CIPS) Computer Science Accreditation Council (CSAC).

Resources:

The B.Sc. Honours Software Engineering Option program is a very practical program in Computer Science. This program will be of interest to students who intend to enter industry and work on large software systems.  In this program, students are more restricted in their choice of courses. Students must apply to the College to enter an Honours program.

This program is accredited by the Canadian Information Processing Society's (CIPS) Computer Science Accreditation Council (CSAC).

Resources:

We also offer the following Computer Science degree programs which are not accredited by CIPS:

For students who wish to combine rigourous study in two disciplines, the Double Honours program allows students to combine the study of Computer Science and another discipline. This program provides ample depth and significant breadth of the field.  This program is quite practical, and prepares students for Graduate Studies.  Students are more restricted in their choice of courses.  This program is not accredited.

Students interested in entering an Honours program should consult advisors in the department concerned before registering for their second year. Of the 120 credit units required for the B.A. Honours degree, at least 66 credit units must be at the senior level.  Application for admission to Honours is not considered until successful completion of at least 60 credit units with a Cumulative Weighted Average of at least 70% overall and at least 70% in the subject of Honours.  For further details, please see the Academic Information and Policies section.

There are two versions of the program.  Students will choose Major 1 from one discipline, and combine it with Major 2 from another. 

Using Computer Science as Major 1

The prerequisite structure of courses in C6 (Majors Requirement) of this program assumes 9 credit units of Mathematics or Statistics, 6 credit units of which are required in C4.  Students wishing to combine this program with another double honours program will need at least 3 additional credit units in Mathematics or Statistics (STAT 245.3 recommended).

Students wishing to combine this program with a Double Honours Major 2 in a Type C program that requires additional Mathematics or Statistics beyond those stated in C4 will be able to meet all prerequisites of courses in C6 of this program.  However, students in specializations with minimal mathematics requirements may not be able to meet the prerequisites for courses in C6 without taking additional Mathematics or Statistics.  For these students, the recommended courses are MATH 110.3, MATH 266.3 or MATH 164.3 (formerly MATH 264.3), STAT 245.3.

Using Computer Science as Major 2

The prerequisite structure of courses in C6 (Majors Requirement) of this program assume 9 credit units of Mathematics or Statistics.  The recommended courses are MATH 110.3, MATH 266.3 or MATH 164.3 (formerly MATH 264.3), STAT 245.3.

Resources:

This degree program is ideally suited as an add-on to a 4-year degree in another field.  It provides a more comprehensive training in Computer Science than the Minor. However, this program does not include enough training in Computer Science to meet the requirements for accreditation, and is therefore not sufficient preparation, on its own, for many careers in the high tech industry.

Resources:

Note: Advising sheet for second degree students in Engineering can be found further down on this page

A Minor in Computer Science can be obtained by taking 18 credit units or more of Computer Science courses in conjunction with a major in a different subject or an interdisciplinary program. A good choice if you want to show that you have taken a significant amount of Computer Science outside your chosen major. The Minor will be awarded if the following conditions on CMPT courses are met:

At least 3 credit units of CMPT must be at the 300- or 400-level.
At most 3 credit units from CMPT 100.3, CMPT 102.3, CMPT 105.3, CMPT 111.3, CMPT 113.3, CMPT 116.3, and CMPT 175.3, CMPT 140.3, CMPT 141.3
Courses listed under the “C4 Major Requirement” of the student’s program Major cannot be used to meet requirements for the Minor.

Resources:

The Certificate in Computing provides students with an opportunity to develop their computing literacy to equip them with the fundamentals of programming and software development, which can be applied to other areas of study or work. This program is not intended to prepare students for careers in software development, but to give professionals (and future professionals) in many fields the skills to apply computing to their activities, increasing their productivity.

Resources:

The CSAC works with academic institutions to ensure that educational degree programs prepare students for the demands of the Computing and Information Systems profession. Completion of accredited computer information systems programs assist graduates in pursuing the Information Systems Professional of Canada (I.S.P.) designation. More information about CIPS and the professional certification program can be obtained at http://www.cips.ca.

Second Degree Programs for Engineering Students

Students can complete the requirements for 2 degrees, subject to the requirements set by the University.

Some of the more common second degree programs are outlined on this page. The outlines provide suggestions about how to choose and arrange classes.  The information here is provided for convenience, and reference only.  These program sheets show typical programs, but they do not outline all the possibilities or requirements.  Students interested in doing a second degree should consult a Computer Science advisor.

To complete a B.Sc. 3 year degree in Computer Science, a student in Electrical Engineering can combine some of the credits required by the Engineering degree with at least 30cu which are used only for the B.Sc.  Students must also satisfy the B.Sc. 3 year requirements, and have at most 48cu at the junior level.

Resources:

To complete a B.Sc. 3 year degree in Computer Science, a student in Engineering Physics can combine some of the credits required by the Engineering degree with at least 30cu which are used only for the B.Sc.  Students must also satisfy the B.Sc. 3 year requirements, and have at most 48cu at the junior level.

Resources:

To complete the B.Sc. program, a CME student may use courses required by the CME program, but the student must complete at least 30 cu of courses in Arts and Science that are not already being counted towards the CME degree. In the programs described on this page, these courses are labelled with an "A" in the rightmost column. There is some flexibility in the assignment of courses from both programs, but the 30 cu requirement must be met.

For students entering the CME program in 2012 or later, there are two options for obtaining a second degree in Computer Science by adding an extra year (roughly) of study.  

Taking Computer Software Stream: B.Sc. Four-year
Taking Digital Signal Processing and Applications stream: B.Sc. Three-year
Students who entered the CME program prior to 2012 should consult an advisor.

Variation 1: B.Sc. Four-Year for Students in Computer Software Stream

This degree will build on the Computer Science stream. It will require 15cu of CMPT courses over and above the Computer Science requirements, and 15cu of other Arts and Science courses.

Variation 2: B.Sc. Three-Year for Students in Digital Signal Processing and Applications Stream

This degree, coupled with the DSPA stream, will give a student roughly the same degree of training as the Computer Software stream.  Effectively, this degree will allow you to obtain training in all 3 CME streams, by combining the 2 degrees.  A B.Sc. Four-year degree is possible, but it may require more than 5 years to complete the 2 degrees.

Students in Electrical Engineering (EE), Engineering Physics (EP), and Computer Engineering (CME) can complete their Engineering degree and a Computer Science degree in as little as 5 years.

Other second degree programs are possible, including Double Honours degrees.  In all cases, the student interested in this kind of program should consult an academic advisor as soon as possible.