Site Navigation
Welcome
Important Notice and Disclaimer
Academic Schedule
Types of Credentials and Sub-Degree Nomenclature
Undergraduate Degrees with a Major
Combined Degrees
Minor Programs
Student and Campus Services
Admissions
Academic Regulations
Co-operative Education/Internship
Tuition and General Fees
Awards and Financial Assistance
International Foundations Program
Faculty of Arts
Cumming School of Medicine
Faculty of Environmental Design
Faculty of Graduate Studies
Haskayne School of Business
Faculty of Kinesiology
Faculty of Law
Faculty of Nursing
Qatar Faculty
Schulich School of Engineering
Faculty of Science
1. Summary of Programs
2. Faculty Student Affairs
3. Faculty Regulations
4. Program Details
4.1 Biological Sciences
4.2 Chemistry
4.3 Computer Science
4.3.1 Programs in Computer Science
4.3.2 BSc Major and Honours in Computer Science Internship Programs
4.3.3 Combined Degree Programs
4.3.4 Required Courses - Minor Program
4.4 Geoscience
4.5 Mathematics and Statistics
4.6 Non-Departmental Programs: Data Science, Environmental Science, Nanoscience, Natural Sciences, Neuroscience
4.7 Physics and Astronomy
4.8 International Foundations Program (IFP) – Faculty of Science
5. Administration
Faculty of Social Work
Faculty of Veterinary Medicine
Werklund School of Education
Embedded Certificates
Continuing Education
COURSES OF INSTRUCTION
About the University of Calgary
Who's Who
Glossary of Terms
Contact Us
Archives
University of Calgary Calendar 2018-2019 Faculty of Science 4. Program Details 4.3 Computer Science 4.3.1 Programs in Computer Science
4.3.1 Programs in Computer Science
Admission

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
Required Courses - BSc Major Program

6 units (1.0 full-course equivalent) - One of the following three sets of courses:

21 units (3.5 full-course equivalents) - Computer Science 313, 331, 355, 359, 413, 449 and 457

3 units (0.5 full-course equivalent) - Software Engineering 300 or 301

12 units (2.0 full-course equivalents) - One of Mathematics 211 or 213; one of Mathematics 249 or 265 or 275; one of Mathematics 271 or 273; and one of Statistics 213, 321, or an alternative course in Statistics with the consent of the Department (Statistics 321 is preferred)

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) - 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, 231 or Data Science 211 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 non-credit, on-line course in order to be qualified for senior courses in theoretical computer science. Students may contact the Department of Computer Science in order to register in this course.
  • 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.
  • Statistics 321 has one of Mathematics 253 or 267 or 277 as a prerequisite.
  • 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:

27 units (4.5 full-course equivalents) - Computer Science 313, 331, 355, 359, 413, 449, 457 and 502

3 units (0.5 full-course equivalent) - Software Engineering 300 or 301

12 units (2.0 full-course equivalents) - One of Mathematics 211 or 213, one of Mathematics 249 or 265 or 275, one of Mathematics 271 or 273, and one of Statistics 213, 321, or an alternate course in Statistics with the consent of the Department (Statistics 321 is preferred)

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) - 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, 231 or Data Science 211 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 non-credit, on-line course in order to be qualified for senior courses in theoretical computer science. Students may contact the Department of Computer Science in order to register in this course.
  • 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.
  • Statistics 321 has one of Mathematics 253 or 267 or 277 as a prerequisite.
  • 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:

15 units (2.5 full-course equivalents) - Computer Science 331, 355, 441, 449, and 481

3 units (0.5 full-course equivalent) - Software Engineering 300 or 301

9 units (1.5 full-course equivalents) - One of Mathematics 211 or 213, one of Mathematics 249 or 265 or 275, and one of Mathematics 271 or 273

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, 231 or Data Science 211 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 non-credit, on-line course in order to be qualified for senior courses in theoretical computer science. Students may contact the Department of Computer Science in order to register in this course.
  • 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
  • Students unable to take Philosophy 279 in first year may substitute Philosophy 377. 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 Program Advising 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.

First Year

 

Computer Science 231

Computer Science 233

Mathematics 211

Mathematics 271

Required course in Mathematics and Statistics

Required course in Mathematics and Statistics

Philosophy 279

Option

Option

Non-science option

Second Year

 

Computer Science 331

Computer Science 313

Computer Science 355

Computer Science 359

Philosophy 314 or option

Software Engineering 300

Option

Philosophy 379 or option

Non-science option

Philosophy 314 or non-science option

Third Year

 

Computer Science 4131

Option in the Field of Computer Science

Computer Science 4491

Option in the Field of Computer Science

Computer Science 4571

Option in the Field of Computer Science

Option

Option

Non-science option

Non-science option

Fourth Year

 

Computer Science 5022

Computer Science 5022

Option in the Field of Computer Science

Option in the Field of Computer Science

Option in the Field of Computer Science

Option in the Field of Computer Science

Option

Option in the Field of Computer Science

Option

Option  

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.

2Computer Science 502 is required for the Honours program. Computer Science Majors interested in a research project should consider Computer Science 503.

Concentrations

Students 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:

A. Concentration in Computer Game Development

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.

B. Concentration in Software Engineering

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.

C. Concentration in Theoretical Computer Science

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.

D. Concentration in Scientific Computation

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.

E. Concentration in Human-Computer Interactions

Notes:

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

F. Concentration in Computer Graphics

Notes:

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

G. Concentration in Information Security

Note: Honours students interested in Information Security should consider the use of Computer Science 502.04 to complete the Honours requirement for Computer Science 502. Computer Science 418 is recommended over Pure Mathematics 418.

H. Concentration in Networks and Distributed Computing

Note: Computer Science 526 is recommended over Computer Science 525, 528 or 530.

I. Concentration in Visualization and Analytics

Note: Students are strongly encouraged to complete both Computer Science 583 and 599.87.