## Bachelor of Science - Computer Science

The Computer Science Major allows students to pursue a concentrated study of computer science, along with another discipline (the “Computing + X” model). Students will study the foundations of computing, including mathematics, programming, computing theory, operating systems and networking. These foundations are complemented by the knowledge accumulated in other disciplines such as biology, geographic information systems, mathematics or chemistry. The result is a unique degree featuring strength in computing, breadth in general education, and a focus on a particular discipline of interest.

Required core courses

The 16 required core courses in the BSc Computer Science consist of the following:

- COMP 1631 - Introduction to Computer Science I
- COMP 1633 - Introduction to Computer Science II
- COMP 2613 - Introduction to Computability
- COMP 2631 - Information Structures I
- COMP 2633 - Foundations of Software Engineering
- COMP 2655 - Computing Machinery I
- COMP 2659 - Computing Machinery II
- COMP 3309 - Information Technology and Society
- COMP 3614 - Algorithms and Complexity
- COMP 3649 - Programming Paradigms
- COMP 3659 - Operating Systems
- MATH 1200 - Calculus for Scientists I
- MATH 1203 - Linear Algebra for Scientists and Engineers
- MATH 1271 - Discrete Mathematics
- MATH 2234 - Concepts of Mathematical Statistics
- PHIL 1179 - Introduction to Symbolic Logic

Approved Options

Students must take three of the following courses as Approved Options.

- COMP 2521 - Database I: Data Modeling and Query Languages
- COMP 3533 - Network Infrastructure and Security
- COMP 3553 - Human-Computer Interaction
- COMP 3612 - Web Development for Computer Science
- COMP 3625 - Artificial Intelligence
- COMP 3626 - Evolutionary Computation
- MATH 2101 - Abstract Algebra
- MATH 2200 - Calculus for Scientists II

**Note**: Courses used as approved options can not also be used to satisfy the requirements for the cognate.

#### Approved Senior Options

Students must take three of the following courses as Approved Senior Option.

- COMP 4513 - Web III: Advanced Web Development
- COMP 4555 - Games Development
- COMP 4622 - Advanced Databases
- COMP 4630 - Machine Learning
- COMP 4633 - Advanced Software Engineering
- COMP 4635 - Distributed Systems
- COMP 5690 - Senior Computer Science Project
- MATH 3101 - Numerical Analysis
- MATH 4111 - Cryptography

Electives

- Four elective courses.

General Education

Ten courses must be completed to meet the General Education requirements to graduate with a B.Sc. in Computer Science.

- Four courses will be taken at the foundational level: one from each of the thematic clusters.
- Three courses will be taken at the second tier: no more than one from each of the three thematics clusters: Values, Beliefs and Identity, Community and Society, and Communication.
- Three courses must be taken at the third tier, selected from at least two of the thematic clusters.

#### Cognate courses

Cognate courses are courses from outside a defined discipline that complements and enhances the breadth of knowledge and skills found in the area of study. Students are required to choose one cognate section and complete the 4 required courses.

Astronomy Cognate

**Required courses:**

- ASTR 2107 - Celestial Mechanics and Relativity
- MATH 2200 - Calculus for Scientists II
- PHYS 1201 - Classical Physics I

*One of the following:*

- ASTR 1301 - Planetary Astronomy
- ASTR 1303 - Stars, Galaxies, and Cosmology

#### Biology Cognate

**Required courses:**

- BIOL 1202 - Introduction to Cell Biology
- BIOL 1204 - The Evolution of Eukaryotes
- Any two additional BIOL prefixed courses at the 2000-level or higher.

#### Chemistry Cognate

**Required courses:**

- CHEM 1201 - General Chemistry - Structure and Bonding
- CHEM 1202 - General Chemistry - Introduction to Quantitative Chemistry
- Any two additional CHEM prefixed courses at the 2000-level or higher.

Geographic Information Systems Cognate

**Required courses:**

- GEOG 1101 - The Physical Environment
- GEOG 1105 - Introduction to Mapping, GIS and Remote Sensing
- GEOG 2553 - Geographic Information Systems
- GEOG 3553 - Spatial Analysis and GIS

#### Geoscience Cognate

**Required courses:**

- GEOL 1101 - The Dynamic Earth
- GEOL 1103 - Earth Through Time
- Any two additional GEOL prefixed courses at the 2000-level or higher*

**Note:***GEOL 2151, GEOL 2153, GEOL 2155 or GEOL 2157 may not be used towards the cognate.

#### Mathematics Cognate

**Four of the following courses:**

- MATH 2101 - Abstract Algebra
- MATH 2200 - Calculus for Scientists II
- MATH 2307 - Differential Equations I
- MATH 2311 - Linear Algebra II
- MATH 3200 - Mathematical Methods

#### Physics Cognate

*Required courses:*

- MATH 2200 - Calculus for Scientists II
- PHYS 1201 - Classical Physics I
- PHYS 1202 - Classical Physics II
- PHYS 2201 - Acoustics, Optics and Radiation