The Department of Computer Science has proposed, and the College has approved, some significant changes in the curriculum, which will go into effect in fall 2008. Computer science majors in the classes of 2009 and 2010 may need to plan their courses and interpret the prerequisites with some care. This document provides general guidance in this process. We encourage students to talk with the Department faculty as questions or special circumstances arise.
One of the changes is that the course on object-oriented programming and data structures, which is usually the second computer science course that a prospective major takes, and the course on low-level procedural programming, which is usually the third such course, will trade places in the new curriculum. After CSC 151 (which will now be titled "Functional problem solving"), prospective majors will take a new course, CSC 161, "Imperative problem solving," which will deal with low-level programming in C. After than, they will take another new course, CSC 207, "Algorithms and object-oriented design," which will deal with object-oriented programming at a somewhat higher level than the current CSC 152 course.
Allowing for this swap, CSC 151, 152, and 201 in the current curriculum match reasonably well with the components of the new CSC 151/161/207 sequence. The following recommendations consider students at each stage of these sequences.
New students will take CSC 151. Only the title of this course has changed.
Students who have completed CSC 151 and LIN 114, "Introduction to general linguistics," also are eligible to take CSC 205, "Computational linguistics."
Current students who have completed only CSC 151 will move into the new sequence, taking CSC 161 as their next course; CSC 152 will not be offered again.
Current students who have taken CSC 152 are encouraged to take the some of the following courses.
Current students who have completed the CSC 151/152/201 sequence have satisfied the prerequisites that are equivalent to CSC 151/161/207 in the new curriculum.
We have also made several changes in the range and structure of the upper-division courses in computer science:
The new major provides more options than the current major, and any course that counts for the current major will count for the new major as well. The following notes explain how certain courses will work during the transition to the new major.
The following table clarifies prerequisites for computer science courses for the transition year 2008-2009. Courses are ordered by the semester they are offered. Prerequisites marked with an asterisk (*) follow the structure of the old curriculum.
| Course | When offered | Normal (new) prerequisite | Prerequisite for 2008-2009 |
|---|---|---|---|
| 151, "Functional problem solving" | Fall & Spring | None | (no change) |
| 161, "Imperative problem solving" | Fall & Spring | 151 | (no change) |
| 205, "Computational linguistics" | Fall | 151 or 153, and LIN 114 | (no change) |
| 213, "Operating systems and parallel algorithms" | Fall | 161 | 201* |
| 301, "Analysis of algorithms" | Fall | 207 and MAT 218 | 152 or 153, and MAT 218* |
| 325, "Databases and Web application design" | Fall | 207 | 152 or 153 |
| 105, "The Digital Age" | Spring | None | (no change) |
| 153, "Computer science fundamentals" | Spring | consult CS faculty | (no change) |
| 201, "Data representation, memory management, and formal methods" | Spring | last offering | 152 |
| 207, "Algorithms and object-oriented design" | Spring | 161 | (no change) |
| 295 "Computer graphics" | Spring | special topic | 161 or 201, and MAT 131 |
| 302 "Programming language concepts" | Spring | 207 | 301* |
| 364 "Computer networks" | Spring | 211 or 213 | 201 or 211 or 213 |
| 341 "Automata, formal languages, and computational complexity" | Spring | 153 or 161, and MAT 218 | 152 or 153 or 161, and MAT 218 |
| Course | When offered | Normal (new) prerequisite | Prerequisite for 2008-2009 |
This document is available on the World Wide Web as
http://www.cs.grinnell.edu/transition-advice.xhtml