Students are required to work more independantly than during their undergraduate studies, especially on their project. At the start of the year each student chooses a year-project, a large-scale software construction or research problem, to work on independantly, under the supervision of a staff member. Students also complete six modules, chosen from a number of advanced topics in Computer Science, and classes often include discussions on known solutions, cutting edge research, or open problems in the field studied.
63444-771 | Honors Project in Computer Science (CS771) | (1st and 2nd Semester) | (Honours) |
The Honours curriculum comprises 6 modules and a year project. Each module is worth 16 credits, while the project is worth 32 credits. Students may earn at most 32 credits from outside the Computer Science Division towards their Honours degree, but this is subject to the consent of Computer Science. Students are expected to devote at least 12 hours per week per module, including lectures. The rest of the time should be devoted to the year project.
18139-797 | Honours Overview (CS797) | (1st and 2nd Semester) | (Honours) |
Stream Computer Science This stream consists of 6 modules of 16 credits each, as well as a compulsory programming project of 32 credits. At most two modules may be taken from related departments with the permission of the Department of Mathematical Sciences (Division Computer Science). Not all modules are necessarily offered each year. Stream Data Science This stream consists of 5–8 compulsory modules which includes a compulsory programming project. The remaining credits to reach the required credit total are modules in Computer Science or selected modules in Mathematical Statistics. Not all modules are necessarily offered each year.
64947-712 | Advanced Algorithms (CS712) | (1st Semester) | (Honours) |
This course resumes the study of algorithms and data structures where it left off in RW214. We discuss various algorithmic paradigms (such as divide-and-conquer, greedy algorithms, dynamic programming, and randomized algorithms), algorithmic applications (such as graphs, heaps, and trees), and the basics of the theory of computation.
64955-713 | Theoretical Computer Science (CS713) | (1st Semester) | (Honours) |
The module continues from Computer Science 324 and covers time and space complexity, NP completeness, probabilistic algorithms, interactive proofs, and zero knowledge proofs. It concludes with a overview of quantum computers and quantum algorithms.
64963-714 | Concurrent Programming 1 (CS714) | (1st Semester) | (Honours) |
This module covers an overview of the field of concurrency, its theoretical principles, the design, implementation and verification of concurrent systems, and practical aspects of distributed and parallel programming. It is focused around selected important topics.
64971-716 | Advanced Topics in Computer Science 1 (CS716) | (1st Semester) | (Honours) |
Selected topics of current interest presented by lecturers or visiting researchers.
14195-742 | Machine Learning A (CS742) | (1st Semester) | (Honours) |
Prominent machine-learning concepts and tasks. Selected feature extraction or dimensionality reduction techniques. Introduction to probabilistic modelling and latent variable models. Fundamental paradigms in parameter estimation.
14066-791 | Space Science Algorithms (CS791) | (1st Semester) | (Honours) |
Algorithms and techniques in Space Science, with applications.
63452-711 | Automata Theory & Applications (CS711) | (2nd Semester) | (Honours) |
An introduction to the theory of automata and computability.
11788-741 | Machine Learning (CS741) | (2nd Semester) | (Honours) |
This module is an introduction to selected topics in machine learning.
65005-743 | Simulation of Networks (CS743) | (2nd Semester) | (Honours) |
This course presents some models which are used to evaluate the performance of communication networks.
13944-795 | Functional Programming (CS795) | (2nd Semester) | (Honours) |
This module gives an introduction to the functional programming paradigm
14065-796 | Software Verification and Analysis (CS796) | (2nd Semester) | (Honours) |
Introduction to various techniques for software quality management.