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
Courses by Topic Area
Catalogue Number |
Course Title |
|
Algorithm and Theory Area | 2210 | Theory of Computation |
2220 | Logic in Computer Science | |
3210 | Computational Game Theory | |
3225 | GIS Algorithms and Data Structures* | |
3250 | Computational Geometry | |
Artificial Intelligence Area | 2400 | Artificial Intelligence |
3400 | Cognitive Architecture | |
3420 | Optimization and Uncertainty | |
3445 | Nature-Inspired Computation* | |
3455 | Machine Learning* | |
3715 | Human-Computer Interaction* | |
3725 | Computational Creativity* | |
Systems Area | 2320 | Principles of Programming Languages |
3300 | Computer Networks | |
3310 | Operating Systems | |
3325 | Distributed Systems* |
* Denotes a Projects Course