See the subsections on Enrolment Limitations in Section 3 (Faculty Regulations) and in Section 5 (Program Details) under Computer Science.
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: One of Philosophy 249, 329, or an alternative course, including an introduction to professional ethics, with the consent of the Department (Philosophy 329 is preferred when available);
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.
Notes:
Courses used to satisfy the above Logic Requirement, Ethics Requirement and Non-CPSC Requirement must include at least 9 units (3.0 full-course equivalents) chosen from Faculties other than the Faculty of Science. Of these 9 units (3.0 full-course equivalents), students must take at least 6 units (1.0 full-course equivalent) from the Faculty of Arts. The 9 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 9 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 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: One of Philosophy 249, 329, or an alternative course, including an introduction to professional ethics, with the consent of the Department (Philosophy 329 is preferred when available);
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.
Notes:
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: They are only open to students who are also registered in a BA program offered by the Faculty of Arts. Students interested in these programs 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: One of Philosophy 249, 329, or an alternative course, including an introduction to professional ethics, with the consent of the Department (Philosophy 329 is preferred when available);
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: Non-Science options. These courses will make up the Arts component of the students major program but may not be chosen from the courses listed in Table I in 3.4 Program Requirements without consent of the Department.
6 units (1.0 full-course equivalent) - Options.
Notes:
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.
Science 311 may be counted among the 18 units (3.0 full-course equivalents) from other Faculties.
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 Management Information Systems (MGIS) 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 five 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 year 1 and 2 of the program.
*Computer Science 319 may be taken as an alternative to Computer Science 331 and may be a better choice for students who have not completed Mathematics 271 or 273 in first year. This course is normally available during the Winter Term.
**Students 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 seven areas of interest by including a specified set of courses, into 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.
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 Management Information Systems 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.
C. Concentration in Algorithms and Complexity Theory
Note: Honours students interested in Algorithms and Complexity Theory should consider the use of Computer Science 502.02 to complete the Honours requirement for Computer Science 502.
12 units (2.0 full-course equivalents) in science excluding courses in the field of Computer Science and excluding courses offered by the Department of Mathematics and Statistics.
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.
*The Scientific Computation Concentration in Computer Science is undergoing review. Students interested in this program should seek advice from a program advisor in the Undergraduate Science Centre.
Honours students interested in Human-Computer Interactions 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.
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.
*Students 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.