Grinnell's introductory courses introduce fundamental views of problem solving and different supporting programming languages. Upper-level courses fall into two main categories:
Core courses address fundamental topics that are recommended by national curricular guidelines. The Computer Science Major incorporates these core topics into mandated courses:
To address pragmatic issues of scheduling (e.g., students considering off-campus study), the major requires only one of CSC 211 or 213, one of 302 or 362, and one of 323 or 325. Both 211 and 213 are strongly recommended, and together these courses address content areas of the national curricular guidelines.
The Computer Science Department offers a range of electives to extend student backgrounds beyond the undergraduate core. In addition to regularly scheduled courses, special topics courses address particular interests of both students and faculty.
Some recently-offered electives have included artificial intelligence, computer networks, computer graphics, computational linguistics, and human-computer interfaces.
Complementing regular courses, students work with faculty on a wide range of guided reading courses, independent projects, and mentored advanced projects.