The Computer Science Curriculum 

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. 

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. 

The prerequisite structure

Open the curriculm chart pdf.

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)
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

Independent Study, Honors, and Student/Faculty Research

Research experience is invaluable both for graduate study and in industry, and students are encouraged to collaborate with faculty on research projects through independent studies, honors projects, and summer research. Such collaborations can lead to co-authorship of a paper and the opportunity to attend a national or international conference.

The Major in Computer Science

The computer science major consists of  one mathematics course (1000-level or above) and nine computer science courses 2000-level or above, as follows: 

  • Data Structures (csci2101)
  • Algorithms (csci2200)
  • Seven elective classes 2000-level or above,  satisfying: 
    • at least one course in each of the three major areas (Systems, Algorithms, AI)
    • at least one Projects course
    • at least three 3000-level courses

Independent studies at the intermediate and advanced levels may be used to fulfill one of these elective requirements. However,  

  • At most one independent study (including those for Honors) can count towards the CS major.  
  • Independent studies cannot fulfill the area requirements and the 3000-level requirement. 

Courses taken to fulfill the requirements must be taken for regular letter grades (not Credit/D/Fail) and with a minimum earned grade of C-. 

For courses at 2000-level or above, a grade of C- or better must be earned in the courses in order to serve as a prerequisite for another computer science course. 

At most two of the courses for the major can be transfer credit from other institutions. 

Note that Data Structures has csci1101 (Introduction to Computer Science) as a pre-requisite. 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 (talk to someone in the department for details).   

Timeline: It is strongly encouraged that students intending to major in CS take at least three classes by their spring semester of their sophomore year.  Usually the students start by taking the CS intro sequence, which is 1101, 2101 and 2200. 

The Minor in Computer Science

The minor consists of five computer science courses (1000-level or above)

Independent studies cannot count towards the computer science minor. 

Courses taken to fulfill the requirements must be taken for regular letter grades (not Credit/D/Fail) and with a minimum earned grade of C-. 

For courses at 2000-level or above, a grade of C- or better must be earned in the courses in order to serve as a prerequisite for another computer science course. 

At most one of the course for the minor can be transfer credit from anoother institution. 

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

Interdisciplinary Computer Science-Mathematics Major

The department participates in an interdisciplinary major program in computer science and mathematics.