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.
|Algorithm and Theory Track||2210||Theory of Computation|
|3225||GIS Algorithms and Data Structures
|Artificial Intelligence Track||2400||Artificial Intelligence|
|3415||Robotics (Projects Course)|
|3425||Optimization and Uncertainty|
|Systems Track||2300||Computer Organization|
|2325||Principles of Programming Languages
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.