Prerequisites

The Computer Science Department utilizes a system of prerequisites to ensure that students are adequately prepared to succeed in their classes.

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

Prerequisite Flow Chart

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