See the Faculty of Science subsections on Enrolment Limitations in Section 3 Faculty Regulations and Program Details in Section 4.
In some cases, courses that are no longer offered can be substituted for newer courses listed in the following requirements. Additional information about course substitutions is available from the Department of Computer Science.
Courses constituting the field of Computer Science
3 units (0.5 full-course equivalent) - Logic Requirement: Philosophy 279 or 377
3 units (0.5 full-course equivalent) - Ethics Requirement: Philosophy 314
24 units (4.0 full-course equivalents) - Taken from the field of Computer Science: 9 units (1.5 full-course equivalents) of these must be numbered 500 or above, 12 units (2.0 full-course equivalents) at the 400 level or above, and 3 units (0.5 full-course equivalent) at the 300 level or above
36 units (6.0 full-course equivalents) - Non-CPSC Requirement: Options that are not in the field of Computer Science
12 units (2.0 full-course equivalents) - Options (see Notes)
Notes:
Students who complete Computer Science 217 or 231 are only permitted to count a maximum of 6 units (1.0 full-course equivalent) of computer science at the 200 level toward the BSc Major program. Students who complete Computer Science 235 are only permitted to count a maximum of 3 units (0.5 full-course equivalent) of computer science at the 200 level toward the BSc Major program.
Students who have completed Computer Science 319, prior to admission to a program in Computer Science, may use this course in lieu of Computer Science 331 as a program requirement. Students with Computer Science 319 will be required to complete a block week course (Computer Science 105) in order to be qualified for senior courses in theoretical computer science.
Courses used to satisfy the above Logic Requirement, Ethics Requirement and Non-CPSC Requirement must include at least 9 units (1.5 full-course equivalents) chosen from Faculties other than the Faculty of Science. Of these 9 units (1.5 full-course equivalents), students must take at least 6 units (1.0 full-course equivalent) from the Faculty of Arts. The 9 units (1.5 full-course equivalents) from other Faculties may not be chosen from the courses listed in Table I in 3.4 Program Requirements.
Science 311 may be counted among the 9 units (1.5 full-course equivalents) from other Faculties.
The Department offers several concentrations that can provide focus on specific areas of computer science. Students interested in these concentrations need to choose their options carefully, including the options taken in the first two years of the program, to fulfill the concentration requirements.
Required Courses - BSc Honours Program
6 units (1.0 full-course equivalent) - One of the following three sets of courses:
3 units (0.5 full-course equivalent) - Logic Requirement: Philosophy 279 or 377
3 units (0.5 full-course equivalent) - Ethics Requirement: Philosophy 314
24 units (4.0 full-course equivalents) - Taken from the field of Computer Science: 15 units (2.5 full-course equivalents) of these courses must be at the 500 level or above, and 9 units (1.5 full-course equivalents) at the 400 level or above
24 units (4.0 full-course equivalents) - Non-CPSC Requirement: Options that are not in the field of Computer Science
18 units (3.0 full-course equivalents) - Options (see Notes)
Notes:
Students who complete Computer Science 217 or 231 are only permitted to count a maximum of 6 units (1.0 full-course equivalent) of computer science at the 200 level toward the BSc Honours program. Students who complete Computer Science 235 are only permitted to count a maximum of 3 units (0.5 full-course equivalent) of computer science at the 200 level toward the BSc Honours program.
Students who have completed Computer Science 319, prior to admission to a program in Computer Science, may use this course in lieu of Computer Science 331 as a program requirement. Students with Computer Science 319 will be required to complete a block week course (Computer Science 105) in order to be qualified for senior courses in theoretical computer science.
Courses used to satisfy the above Logic Requirement, Ethics Requirement and Non-CPSC Requirement must include at least 18 units (3.0 full-course equivalents) chosen from Faculties other than the Faculty of Science. Of these 18 units (3.0 full-course equivalents), students must take at least 6 units (1.0 full-course equivalent) from the Faculty of Arts.
The 18 units (3.0 full-course equivalents) from other Faculties may not be chosen from the courses listed in Table I in 3.4 Program Requirements.
Science 311 may be counted among the 18 units (3.0 full-course equivalents) from other Faculties.
The Department offers several concentrations that can provide focus on specific areas of computer science. Students interested in these concentrations need to choose their options, including the options taken in the first two years of the program, carefully to fulfill the concentration requirements.
Required Courses - BA Major Program
The BA program in Computer Science is undergoing review. Students interested in this program should seek advice from a program advisor in the Undergraduate Science Centre. Many options for diversifying a BSc in Computer Science are available to students.
This program is available to students wishing to complete a double major with an Arts discipline: It is only open to students who are also registered in a BA program offered by the Faculty of Arts. Students interested in this program should contact the Department of Computer Science for advice concerning the choice of courses in Computer Science that would complement their studies in Arts.
6 units (1.0 full-course equivalent) - One of the following three sets of courses:
6 units (1.0 full-course equivalent) - Logic Requirement: One of Philosophy 279 or 377 and 379
3 units (0.5 full-course equivalent) - Ethics Requirement: Philosophy 314
24 units (4.0 full-course equivalents) - Taken from the field of Computer Science: one numbered 500 or above, two numbered 400 or above, and one numbered 300 or above
48 units (8.0 full-course equivalents) - Breadth requirement: Options from Faculties other than the Faculty of Science (check Table I in 3.4 Program Requirements for ineligible courses). Of these, at least 6 units (1.0 full-course equivalent) must be from the Faculty of Arts. Science 311 may be counted among the courses from other Faculties.
6 units (1.0 full-course equivalent) - Options
Notes:
Students who complete Computer Science 217 or 231 are only permitted to count a maximum of 6 units (1.0 full-course equivalent) of computer science at the 200 level toward the BA Major Program. Students who complete Computer Science 235 are only permitted to count a maximum of 3 units (0.5 full-course equivalent) of computer science at the 200 level toward the BA Major program.
Students who have completed Computer Science 319, prior to admission to a program in Computer Science, may use this course in lieu of Computer Science 331 as a program requirement. Students with Computer Science 319 will be required to complete a block week course (Computer Science 105) in order to be qualified for senior courses in theoretical computer science.
Courses used to satisfy the above Logic Requirement, Ethics Requirement and Non-CPSC Requirement must include at least 18 units (3.0 full-course equivalents) chosen from Faculties other than the Faculty of Science. Of these 18 units (3.0 full-course equivalents), students must take at least 6 units (1.0 full-course equivalent) from the Faculty of Arts.
Recommendations
Computer Science 101 and 102 are recommended but not required. These are offered during Block Weeks preceding the beginning of session, but may not be available in all years.
Students unable to take Philosophy 279 in first year may substitute Philosophy 377 and should take this course in the Fall of second year. Philosophy 379 is not required for a BSc in Computer Science but is recommended. This course is required for a BA in Computer Science.
A course in technical writing, such as Communications Studies 363 or Science 311, is highly recommended. If no such course is available then any course in which a student's writing will be assessed should be considered.
Courses offered by the Haskayne School of Business are often a good choice for non-science options for future software developers. Space permitting, and provided the Area Chair and Associate Dean (Undergraduate Affairs) in the Haskayne School of Business have given approval, registration in restricted Business Technology Management (BTMA) courses may be permitted. Consult the Undergraduate Programs Office in the Haskayne School of Business (Scurfield Hall 351) for details.
To ensure compliancy with CSAC accreditation breadth requirements, students should ensure that they complete 30 units (5.0 full-course equivalents) that are not in computer science or mathematics as part of their degree program, provided that program requirements allow for this course selection.
Recommended Program Sequence BSc (Majors and Honours)
There are many sequences in which courses can be taken in order to complete requirements for the BSc in Computer Science and BSc Honours in Computer Science programs. In general, the following tables simply list one commonly used sequence. For information about alternatives, see the note on “First Courses in Computer Science,” above, the preceding list of requirements for whichever Computer Science program is of interest, the above recommendations, and recommendations concerning Mathematics and Statistics courses that are included in the description of Mathematics and Statistics programs.
Students interested in a specific concentration need to choose their computer science, science and non-science options according to the concentration requirements. This includes options taken in years 1 and 2 of the program.
1Students are encouraged to complete these required 400-level courses in Computer Science as soon as possible. Choice of 500-level options in Computer Science will be limited if this advice is not followed.
ConcentrationsStudents may focus their program on one of nine areas of interest by including a specified set of courses in their Major or Honours degree. Successful completion will mean that the area of concentration will appear on the transcript. The concentrations and course requirements are:
Note: Students interested in taking courses offered by the Department of Art to complete these requirements are encouraged to contact that department for permission to enrol in courses normally restricted to BFA Art students.
9 units (1.5 full-course equivalents) chosen from courses labelled Software Engineering, Computer Science 4991 or 5991
6 units (1.0 full-course equivalent) chosen from courses labelled Software Engineering, Computer Science 411, 441, 453, 471, 4991, 527, 528, 559, 567, 571, 585 or 5991
3 units (0.5 full-course equivalent) chosen from Economics 201 or courses offered by the Haskayne School of Business
Notes:
The Haskayne School of Business will consider waiving the prerequisites for senior courses (particularly Business Technology Management 463 and 465) on an individual request basis. Students should contact the particular Area Chair in the Haskayne School of Business regarding prerequisite waivers.
Honours students interested in Software Engineering should consider the use of Computer Science 502.06 to complete the Honours requirement for Computer Science 502.
1Students interested in using Computer Science 499 or 599 should contact the department to determine which topics, if any, are being offered in a given year that may be used to fulfill the requirements of this concentration.
Note: Honours students interested in Theoretical Computer Science should consider the use of Computer Science 502.02 to complete the Honours requirement for Computer Science 502.
9 units (1.5 full-course equivalents) chosen from Computer Science 453, 461, 531, 535, 559, 571, 572, 583, 5991 and 6011, of which, a maximum of 3 units (0.5 full-course equivalent) may be at the 400 level
Note: Honours students interested in Scientific Computation should consider the use of Computer Science 502.05 to complete the Honours requirement for Computer Science 502.
1Students interested in using Computer Science 599 or 601 should contact the department to determine which topics, if any, are being offered in a given year that may be used to fulfill the requirements of this concentration.
Honours students interested in Human-Computer Interactions should consider the use of Computer Science 502.07 to complete the Honours requirement for Computer Science 502.
Students interested in taking courses offered by the Department of Art to complete these requirements are encouraged to contact that department for permission to enrol in courses normally restricted to BFA Art students.
Honours students interested in Computer Graphics should consider the use of Computer Science 502.03 to complete the Honours requirement for Computer Science 502.
Students interested in taking courses offered by the Department of Art to complete these requirements are encouraged to contact that department for permission to enrol in courses normally restricted to BFA Art students.
1Students interested in using Computer Science 599 should contact the department to determine which topics, if any, are being offered in a given year that may be used to fulfill the requirements of this concentration.