Description of the

Computer Science Curriculum

Grinnell College


Grinnell's computer science curriculum includes courses at several levels:

Introductory Courses

Computer science recognizes four problem-solving approaches as being fundamental to work in the discipline. Each approach involves a distinct way of thinking, and each is supported by a range of computer languages. These paradigms may be outlined as follows:

Since different approaches have advantages for different problems, people involved with computing should be comfortable with several of these paradigms. Thus, Grinnell's first courses in computer science (CS 151-152 or CS 153) introduce three problem-solving paradigms: the functional, imperative, and object-oriented paradigms.

CS 151-152: CS 151 introduces one approach (functional programming with Scheme) and some imperative programming. CS 152 builds on this experience by considering object-oriented paradigm with Java. Together, CS 151-152 provide students with multiple views of problem solving and with experience with two important programming languages.

CS 153: CS 153 combines major elements of CS 151-152, assuming students already have a familiarity with imperative programming (in some language) and some acquaintance with elementary data types. With this initial background, students finishing CS 153 will have a similar problem-solving background to those completing CS 151-152.

Core Courses

Grinnell's core computer-science courses cover fundamental areas of the discipline, as identified in national recommendations:

In addition, students should have experience with at least one major project. Such a project provides perspective on material from other courses, includes collaboration and teamwork as vital components, and emphasizes oral and written communication skills. Students gain experience with such work through independent projects with faculty, interactions with departments throughout the campus, and specific courses work. Project-based courses include CS 223, Software Design, and CS 362, Compilers.

Courses Beyond the Core

Elective courses build upon the core -- expanding Grinnell's computer science curriculum in several significant areas. Specific courses include:

Students also frequently engage in a variety of independent projects and special topics courses. In the past, this work has included study of the following topics:

Software Engineering Font Recognition
Data Communication and Local-Area Networks Computer Simulation
Formalizations of Natural Languages Language Analysis
Artificial Intelligence and Scheme Neural Networks
C Programming and X-Windows Logic and Languages
Artificial Intelligence and Theorem ProvingExpert Systems
Computational Linguistics Databases
Software Design and Implementation Interprocess Communication
Software Optimization Pattern Recognition
Parallel Algorithms Denotational Semantics
Mail Client Development Game Design

In addition, 7-12 students have worked worked on research projects with computer science faculty each of the last several summers.

Courses for Non-Majors

Most students at Grinnell use computers for such activities as e-mail, surfing the World Wide Web, and word processing. The campus contains hundreds of workstations throughout the dorms and academic buildings, and students have unlimited, free use of these facilities. In order to help students become comfortable with the hardware and software available, Grinnell's Computer Services Department conducts many non-credit workshops on specific software packages and techniques.

Beyond this general level of computer usage, the Mathematics and Computer Science Department offers two courses which help students increase their abilities to utilize computers in helping to solve problems and their understanding of computers:

References/National Recommendations

Grinnell's computer science curriculum is strongly influenced by recommendations of the Liberal Arts Computer Science Consortium and ACM -- the Association for Computing Machinery.

The Liberal Arts Computer Science Consortium is an active group of faculty from liberal arts colleges and has been meeting to discuss curricula for over a decade. Over the years, the group has produced two major curricular recommendations:

Over the years, the ACM and the IEEE Computer Society have collaborated on more general collections of guidelines:

created January 26, 1998
last revised July 15, 2002

Valid HTML 3.2!
For more information, please contact Henry M. Walker at (