Computer Science Honours (B.Sc.) (75 credits)
Offered by: Computer Science (Faculty of Science)
Degree: Bachelor of Science
Program credit weight: 75
Program Description
Students may complete this program with a minimum of 72 credits or a maximum of 75 credits depending if they are exempt from taking COMP 202 Foundations of Programming..
Honours students must maintain a CGPA of at least 3.00 during their studies and at graduation.
Degree Requirements — B.Sc.
This program is offered as part of a Bachelor of Science (B.Sc.) degree.
To graduate, students must satisfy both their program requirements and their degree requirements.
- The program requirements (i.e., the specific courses that make up this program) are listed under the Course Tab (above).
- The degree requirements—including the mandatory Foundation program, appropriate degree structure, and any additional components—are outlined on the Degree Requirements page.
Students are responsible for ensuring that this program fits within the overall structure of their degree and that all degree requirements are met. Consult the Degree Planning Guide on the SOUSA website for additional guidance.
Note: For information about Fall 2025 and Winter 2026 course offerings, please check back on May 8, 2025. Until then, the "Terms offered" field will appear blank for most courses while the class schedule is being finalized.
Required Courses (46-49 credits)
Course | Title | Credits |
---|---|---|
COMP 202 | Foundations of Programming. 1 | 3 |
Foundations of Programming. Terms offered: Summer 2025 Introduction to computer programming in a high level language: variables, expressions, primitive types, methods, conditionals, loops. Introduction to algorithms, data structures (arrays, strings), modular software design, libraries, file input/output, debugging, exception handling. Selected topics. | ||
COMP 206 | Introduction to Software Systems. | 3 |
Introduction to Software Systems. Terms offered: this course is not currently offered. Comprehensive overview of programming in C, use of system calls and libraries, debugging and testing of code; use of developmental tools like make, version control systems. | ||
COMP 250 | Introduction to Computer Science. | 3 |
Introduction to Computer Science. Terms offered: this course is not currently offered. Mathematical tools (binary numbers, induction,recurrence relations, asymptotic complexity,establishing correctness of programs). Datastructures (arrays, stacks, queues, linked lists,trees, binary trees, binary search trees, heaps,hash tables). Recursive and non-recursivealgorithms (searching and sorting, tree andgraph traversal). Abstract data types. Objectoriented programming in Java (classes andobjects, interfaces, inheritance). Selected topics. | ||
COMP 252 | Honours Algorithms and Data Structures. | 3 |
Honours Algorithms and Data Structures. Terms offered: this course is not currently offered. The design and analysis of data structures and algorithms. The description of various computational problems and the algorithms that can be used to solve them, along with their associated data structures. Proving the correctness of algorithms and determining their computational complexity. | ||
COMP 273 | Introduction to Computer Systems. | 3 |
Introduction to Computer Systems. Terms offered: this course is not currently offered. Number representations, combinational and sequential digital circuits, MIPS instructions and architecture datapath and control, caches, virtual memory, interrupts and exceptions, pipelining. | ||
COMP 302 | Programming Languages and Paradigms. | 3 |
Programming Languages and Paradigms. Terms offered: this course is not currently offered. Programming language design issues and programming paradigms. Binding and scoping, parameter passing, lambda abstraction, data abstraction, type checking. Functional and logic programming. | ||
COMP 303 | Software Design. | 3 |
Software Design. Terms offered: this course is not currently offered. Principles, mechanisms, techniques, and tools for object-oriented software design and its implementation, including encapsulation, design patterns, and unit testing. | ||
COMP 310 | Operating Systems. | 3 |
Operating Systems. Terms offered: this course is not currently offered. Control and scheduling of large information processing systems. Operating system software - resource allocation, dispatching, processors, access methods, job control languages, main storage management. Batch processing, multiprogramming, multiprocessing, time sharing. | ||
COMP 330 | Theory of Computation. | 3 |
Theory of Computation. Terms offered: this course is not currently offered. Finite automata, regular languages, context-free languages, push-down automata, models of computation, computability theory, undecidability, reduction techniques. | ||
COMP 350 | Numerical Computing. | 3 |
Numerical Computing. Terms offered: this course is not currently offered. Computer representation of numbers, IEEE Standard for Floating Point Representation, computer arithmetic and rounding errors. Numerical stability. Matrix computations and software systems. Polynomial interpolation. Least-squares approximation. Iterative methods for solving a nonlinear equation. Discretization methods for integration and differential equations. | ||
COMP 362 | Honours Algorithm Design. | 3 |
Honours Algorithm Design. Terms offered: this course is not currently offered. Basic algorithmic techniques, their applications and limitations. Problem complexity, how to deal with problems for which no efficient solutions are known. | ||
COMP 400 | Project in Computer Science | 4 |
Project in Computer Science Terms offered: this course is not currently offered. A research project in any area of computer science, involving a programming effort and/or a theoretical investigation, and supervised by a faculty member in the School of Computer Science. Final written report required. | ||
MATH 222 | Calculus 3. | 3 |
Calculus 3. Terms offered: Summer 2025 Taylor series, Taylor's theorem in one and several variables. Review of vector geometry. Partial differentiation, directional derivative. Extreme of functions of 2 or 3 variables. Parametric curves and arc length. Polar and spherical coordinates. Multiple integrals. | ||
MATH 223 | Linear Algebra. | 3 |
Linear Algebra. Terms offered: this course is not currently offered. Review of matrix algebra, determinants and systems of linear equations. Vector spaces, linear operators and their matrix representations, orthogonality. Eigenvalues and eigenvectors, diagonalization of Hermitian matrices. Applications. | ||
MATH 240 | Discrete Structures. | 3 |
Discrete Structures. Terms offered: this course is not currently offered. Introduction to discrete mathematics and applications. Logical reasoning and methods of proof. Elementary number theory and cryptography: prime numbers, modular equations, RSA encryption. Combinatorics: basic enumeration, combinatorial methods, recurrence equations. Graph theory: trees, cycles, planar graphs. | ||
MATH 340 | Discrete Mathematics. 2 | 3 |
Discrete Mathematics. Terms offered: this course is not currently offered. Discrete Mathematics and applications. Graph Theory: matchings, planarity, and colouring. Discrete probability. Combinatorics: enumeration, combinatorial techniques and proofs. | ||
MATH 350 | Honours Discrete Mathematics . 2 | 3 |
Honours Discrete Mathematics . Terms offered: this course is not currently offered. Discrete mathematics. Graph Theory: matching theory, connectivity, planarity, and colouring; graph minors and extremal graph theory. Combinatorics: combinatorial methods, enumerative and algebraic combinatorics, discrete probability. |
- 1
Students who have sufficient knowledge in a programming language do not need to take COMP 202 Foundations of Programming..
- 2
Students take either MATH 340 Discrete Mathematics. or MATH 350 Honours Discrete Mathematics ..
Complementary Courses (27 credits)
6 credits selected from:
Course | Title | Credits |
---|---|---|
MATH 318 | Mathematical Logic. | 3 |
Mathematical Logic. Terms offered: this course is not currently offered. Propositional logic: truth-tables, formal proof systems, completeness and compactness theorems, Boolean algebras; first-order logic: formal proofs, Gödel's completeness theorem; axiomatic theories; set theory; Cantor's theorem, axiom of choice and Zorn's lemma, Peano arithmetic; Gödel's incompleteness theorem. | ||
MATH 323 | Probability. | 3 |
Probability. Terms offered: Summer 2025 Sample space, events, conditional probability, independence of events, Bayes' Theorem. Basic combinatorial probability, random variables, discrete and continuous univariate and multivariate distributions. Independence of random variables. Inequalities, weak law of large numbers, central limit theorem. | ||
MATH 324 | Statistics. | 3 |
Statistics. Terms offered: this course is not currently offered. Sampling distributions, point and interval estimation, hypothesis testing, analysis of variance, contingency tables, nonparametric inference, regression, Bayesian inference. |
20 credits selected from computer science courses at the 300 level or above (except COMP 364 Computer Tools for Life Sciences. and COMP 396 Undergraduate Research Project.) and ECSE 539 Advanced Software Language Engineering.. At least 12 credits must be at the 500 level.