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.
Courses by Topic Area
|Algorithm and Theory Area||2210||Theory of Computation|
|2220||Logic in Computer Science|
|3210||Computational Game Theory|
|3225||GIS Algorithms and Data Structures*|
|Artificial Intelligence Area||2400||Artificial Intelligence|
|3420||Optimization and Uncertainty|
|Systems Area||2320||Principles of Programming Languages|
* Denotes a Projects Course