CS Courses and Major

Highlights

Curriculum

Student-Faculty Projects

People

Facilities

CS Community

Additional Links

The CS Curriculum Continues to Evolve

For many years, our CS curriculum has had a multi-level structure.

CSC 151 with Sam Rebelsky

Within this framework, the faculty continually refine courses and the curriculum, in order to keep the curriculum at the cutting edge regarding content and pedagogy. In 2007-2008, this process led to a reordering of topics in the introductory three-course sequence, the addition of new courses, and a refinement of the computer science major to allow somewhat greater flexibility.

Introductory CS with Janet Davis

The Old and New CS Curriculum and the Transition Between Them

The following table provides details of the old and new CS curriculum. A transition page outlines some transitional issues in moving from the old curriculum to the new.

Curriculum in the 2007-2008 Catalog Curriculum beginning in 2008-2009
Catalog Description Major and courses Major and courses
Diagram of Courses Diagram of Courses before 2008 Course Diagram 2008-2009
Introductory 3-course Sequence CSC 151 (functional problem solving with Scheme)
CSC 152 (object-oriented problem solving with Java) CSC 161 (imperative problem solving with C)
CSC 201 (low-level problem solving with C) CSC 207 (object-oriented problem solving and data structures with Java)
CS Major Requirements (Summary) Intro. sequence (CSC 151, 152, 201) Intro. sequence (CSC 151, 161, 207)
"under the hood" course (CSC 211 or 213)
algorithms (CSC 301)
programming language concepts (CSC 302) programming language design and translation (CSC 302 or 362)
project-based course (CSC 223 or 362) project-based course (CSC 323 or 325)
theory of computation (CSC 341)
supporting math (Math 218) math prerequisite (Math 218)
Some Upper-level, Regularly-offered Courses CSC 205, Computational Linguistics
CSC 211, Computer Organization and Architecture
CSC 213, Operating Systems and Parallel Algorithms
CSC 261, Artificial Intelligence
CSC 301, Algorithms CSC 301, Analysis of Algorithms
CSC 302, Programming Language Concepts
CSC 362, Compilers
CSC 364, Computer Networks
CSC 223, Software Design CSC 323, Software Design
  CSC 232, Human-Computer Interaction
  CSC 325, Databases and Web Application Design

This document is available on the World Wide Web as

http://www.cs.grinnell.edu/