Prerequisites
Computer Science Curriculum
Most students start by taking either Introduction to Computer Science (csci1101) or Programming with Data (csci1103), both of which provide an introduction to computational thinking via programming. See the Introductory Courses page for more details.
After the introductory course, students continue with Data Structures (csci2101), which is the gateway into the more advanced courses of the Department. Most advanced electives are categorized into three topic areas: Systems, Algorithms and Theory, and Artificial Intelligence (see table below).
Students from all departments are welcome in Computer Science. Should you be interested in taking a course, but are not sure how it might fit in with your studies, please feel free to contact any of our faculty with your questions.
Prerequisite Structure

Courses by Topic Area
Catalogue Number |
Course Title |
|
Algorithm and Theory Area | 2210 | Theory of Computation |
3210 | Computational Game Theory | |
3225 | GIS Algorithms and Data Structures* | |
3240 | Computational Complexity | |
3250 | Computational Geometry | |
3260 | Quantum Computation | |
Artificial Intelligence Area | 2400 | Artificial Intelligence |
3465 | Financial Machine Learning | |
3485 | Deep Learning for Computer Vision | |
3725 | Computational Creativity* | |
Systems Area | 2320 | Principles of Programming Languages |
3310 | Operating Systems | |
3325 | Distributed Systems* | |
3330 | Cybersecurity |
* Denotes a Projects Course