The CS faculty revised the curriculum, because computer science has become too large to learn in four years. The faculty decided that the best response is to reduce the set of classes that students are required to take, so as to enable students to pursue their interests by choosing upper-division elective courses. The old curriculum had eleven CS courses that students were required to take, leaving little time for electives. The new curriculum has only six. This gives students the opportunity to dive into concentration areas, or to study computer science more broadly by sampling from various subareas.
Our Entry-Level courses and prerequisites require students to take our CS courses in a specific order for their first few semesters. You can see the flowchart below:
Core CS Classes
All CS students are required to take six core classes, two of each in Programming, Systems and Theory:
*Starting in Fall 2013, CS 311 and CS 311H replace the old CS 313K Logic, Sets and Functions and CS 313H Logic, Sets and Functions. Also, CS 331 and CS 331H replace the old CS 378 Algorithms and Complexity and CS 378H Algorithms and Complexity: Honors.