Students interested in Computer Science may elect to pursue a major or minor in computer Science,  or an interdisciplinary major in computer science and mathematics.

Computer Science Curriculum

Students start by taking Introduction to Computer Science (csci1101), which provides a basic introduction to computational thinking via programming.

After 1101, students continue with  Data Structures (csci2101) and  Algorithms, which provide a deeper understanding of programming and a foundation of algorithmic problem solving.  

Data Structures has 1101 as a prerequisite. Students with AP credit or prior experience in computer science may be able to skip 1101 and register directly for Data Structures by taking a placement test; please talk to someone in the department for details. 

Algorithms has 2101 as a prerequisite. If for whatever reason  you want to take Algorithms before, or at the same time as Data Structures,  please contact the idepartment.  In the past we waived the 2101 prerequisite for students with a strong mathematical background. 

Subsequent courses are distributed across three major topic areas: Systems, Algorithms, and Artificial Intelligence (see table below). Students may also pursue independent studies.

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

Curriculum map

Catalogue Number

Course Title

Algorithm and Theory Track 2210  Theory of Computation
3225 GIS Algorithms and Data Structures
(Projects Course)
3250 Computational Geometry
Artificial Intelligence Track 2400 Artificial Intelligence
3400 Cognitive Architecture
3415 Robotics (Projects Course)
3425 Optimization and Uncertainty
3440 Nature-Inspired Computation
(Projects Course)
3725 Computational Creativity
Systems Track 2300 Computer Organization
2310 Operation Systems
2325 Principles of Programming Languages
(Projects Course)
2505 Mobile Computing
(Projects Course)
3325 Distributed Systems
(Projects Course)
3300                             Networks

Guidelines for Advanced Placement in Computer Science

Students who received scores of four or higher on the Computer Science A or the Computer Science AB Advanced Placement Exams will be awarded one advanced placement credit upon completion of a Computer Science course, level 2101 or higher, with a grade of C or better. Students should consult the department regarding placement.