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
School of Architecture, Planning and Landscape
Faculty of Arts
Cumming School of Medicine
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 Combined Degree Programs
4.3.3 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 Science Internship Program
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
Summary of Changes for 2020/21 Calendar
University of Calgary Calendar 2020-2021 Faculty of Science 4. Program Details 4.3 Computer Science 4.3.1 Programs in Computer Science
4.3.1 Programs in Computer Science
Courses constituting the field of Computer Science
Required Courses - BSc Major Program

Students must successfully complete a minimum of 60 units, to a maximum of 66 units, in Courses Constituting the Field of Computer Science while fulfilling the following requirements:

6 units - One of the following three sets of courses:

21 units - Computer Science 2511, 3312, 351, 355, 413, 449 and 457

3 units - Software Engineering 300 or 301

9 units - From the Field of Computer Science at the 300 level or above

12 units - From the Field of Computer Science at the 400 level or above

9 units - From the Field of Computer Science at the 500 level or above

6 units - One of Mathematics 211 or 213; one of Mathematics 249 or 265 or 275

3 units - Logic Requirement: Philosophy 279 or 377

3 units - Ethics Requirement: Philosophy 314

12 units - Breadth Requirement: Options selected from faculties other than the Faculty of Science, excluding courses in Table I. Science 311 may be counted among the 12 units from other faculties.

30 units - Non-Major Field Requirement: Options that are not in the Field of Computer Science

6 units - Options

1Students may complete Mathematics 271 or 273 in lieu of Computer Science 251 with consent of the Department. Students with Mathematics 271 or 273 will be required to complete Statistics 213, or obtain consent of the Department, in order to register for Computer Science 351.

2Students 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 319 will be required to complete a non-credit, on-line course in order to be qualified for senior courses in theoretical computer science.

Required Courses - BSc Honours Program

Students must successfully complete a minimum of 66 units, to a maximum of 78 units, in Courses Constituting the Field of Computer Science while fulfilling the following requirements:

6 units - One of the following three sets of courses:

27 units - Computer Science 2511, 3312, 351, 355, 413, 449, 457 and 502

3 units - Software Engineering 300 or 301

6 units - From the Field of Computer Science at the 300 level or above

9 units - From the Field of Computer Science at the 400 level or above

15 units - From the Field of Computer Science at the 500 level or above

6 units - One of Mathematics 211 or 213, one of Mathematics 249 or 265 or 275

3 units - Logic Requirement: Philosophy 279 or 377

3 units - Ethics Requirement: Philosophy 314

12 units - Breadth Requirement: Options selected from faculties other than the Faculty of Science, excluding courses in Table I. Science 311 may be counted among the 12 units from other faculties.

18 units - Non-Major Field Options that are not in the Field of Computer Science

12 units - Options

1Students may complete Mathematics 271 or 273 in lieu of Computer Science 251 with consent of the Department. Students with Mathematics 271 or 273 will be required to complete Statistics 213, or obtain consent of the Department, in order to register for Computer Science 351.

2Students 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 319 will be required to complete a non-credit, on-line course in order to be qualified for senior courses in theoretical computer science.

Recommended Program Sequence BSc in Computer Science (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 lists present a commonly used sequence. For information about alternatives, see the note on First Courses in Computer Science, 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.

First Year

  1. Computer Science 231
  2. Computer Science 233
  3. Computer Science 251
  4. Philosophy 279
  5. Mathematics 211
  6. Mathematics 249 or 265
  7. Non-Science option (Breadth Requirement)
  8. Non-Science option (Breadth Requirement)
  9. Non-Major Field Requirement: Option not in the Field of Computer Science
  10. Non-Major Field Requirement: Option not in the Field of Computer Science

Second Year

  1. Computer Science 331
  2. Computer Science 355
  3. Computer Science 351
  4. Software Engineering 300
  5. Option from the Field of Computer Science (300 level or above)
  6. Option from the Field of Computer Science (300 level or above)
  7. Philosophy 314
  8. Non-Science option (Breadth Requirement)
  9. Non-Major Field Requirement: Option not in the Field of Computer Science
  10. Non-Major Field Requirement: Option not in the Field of Computer Science

Third Year

  1. Computer Science 413
  2. Computer Science 449
  3. Computer Science 457
  4. Option in the Field of Computer Science (300 level or above) for Majors/Option in the Field of Computer Science (400 level or above) for Honours
  5. Option in the Field of Computer Science (400 level or above)
  6. Option in the Field of Computer Science (400 level or above)
  7. Non-Science option (Breadth Requirement)
  8. Non-Major Field Requirement: Option not in the Field of Computer Science
  9. Non-Major Field Requirement: Option not in the Field of Computer Science
  10. Non-Major Field Requirement: Option not in the Field of Computer Science

Fourth Year

  1. Option in the Field of Computer Science (400 level or above) for Majors/Computer Science 502A for Honours
  2. Option in the Field of Computer Science (400 level or above) for Majors/Computer Science 502B for Honours
  3. Option in the Field of Computer Science (500 level or above)
  4. Option in the Field of Computer Science (500 level or above)
  5. Option in the Field of Computer Science (500 level or above)
  6. Non-Major Field Requirement: Option not in the Field of Computer Science for Majors/Option in Computer Science (500 level or above) for Honours
  7. Non-Major Field Requirement: Option not in the Field of Computer for Majors/Option in Computer Science (500 level or above) for Honours
  8. Non-Major Field Requirement: Option not in the Field of Computer Science
  9. Option
  10. Option

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.

Students must successfully complete a minimum of 51 units, to a maximum of 66 units, in Courses Constituting the Field of Computer Science while fulfilling the following requirements:

6 units - One of the following three sets of courses:

18 units - Computer Science 2511, 3312, 355, 441, 449, and 481

3 units - Software Engineering 300 or 301

6 units - From the Field of Computer Science at the 300 level or above

12 units - From the Field of Computer Science at the 400 level or above

6 units - From the Field of Computer Science at the 500 level or above

6 units - One of Mathematics 211 or 213; and one of Mathematics 249 or 265 or 275

6 units - Logic Requirement: One of Philosophy 279 or 377 and 379

3 units - Ethics Requirement: Philosophy 314

9 units - Breadth Requirement: Options from faculties other than the Faculty of Science, excluding courses in Table I. Of these, at least 6 units must be from the Faculty of Arts. Science 311 may be counted among the courses from other faculties.

30 units - Non-Major Field Requirement: Options that are not in the Field of Computer Science

15 units - Options

1Students may complete Mathematics 271 or 273 in lieu of Computer Science 251 with consent of the Department. Students with Mathematics 271 or 273 will be required to complete Statistics 213, or obtain consent of the Department, in order to register for Computer Science 351.

2Students 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 319 will be required to complete a non-credit, on-line course in order to be qualified for senior courses in theoretical computer science.

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.