Reviewers' Notebook: The Computer Science Curriculum: Current Circumstances

From CSWiki

Jump to: navigation, search

Our curriculum has much in common with the 2007 Model Curriculum of the Liberal Arts Computer Science Consortium (LACS). Among these are a multi-paradigm approach to problem solving, an emphasis on laboratory-based coursework, and a commitment to a course schedule that is consistent with a liberal arts education. That said, our curriculum also differs from that of the LACS in significant ways. For example, at Grinnell College a department may only require 8 courses for its major, which necessarily reduces the flexibility of our program. At the same time, we place an even stronger emphasis on a multi-paradigm approach than does LACS, introducing students explicitly to three problem-solving strategies in our introductory sequence: functional, object-oriented, and imperative approaches.

The choice of a 3-course introductory sequence deserves comment. Until about five years ago, we offered a more standard 2-course introductory sequence, starting with the functional paradigm in CS1 and continuing with the object-oriented paradigm in CS2. However, we found that students were not getting a strong understanding of low-level concepts such as data representation, memory management, and pointers. To remedy this, a third course was added to the introductory sequence that addresses these issues, using an imperative approach and the C programming language. At present, we are considering a reorganization of these three courses to flow from functional, to imperative, to object-orientation.

Several faculty members in our department also teach courses outside of Computer Science. The culture of our department embraces breadth of scholarship as well as good citizenship, and this is reflected in the fact that we teach non-departmental * general education courses that support other departments and concentrations within the College. Further, the new tenure-track position stems in part from a commitment by our department to teach these courses more frequently than we have in the past. Specifics of scheduling will depend on the scheduling of faculty leaves within the department.

A diagram illustrating the pre-requisite requirements for our courses can be found at http://www.cs.grinnell.edu/~walker/csdept-visitors/cs-courses.xhtml.

Contents

Current Curriculum

Non-Majors Course

  • CSC 105: CS0 focusing on algorithms, systems, and social impacts

Introductory Sequence

  • CSC 151: CS1 in functional paradigm (Scheme)
  • CSC 152: CS2 in object-oriented paradigm (Java)
  • CSC 201: low-level programming concepts, in imperative paradigm (C)

Note: CSC 153 combines CSC151 and CSC152 into a single course for students with significant background (primarily AP).

Core Courses

  • CSC 211: Architecture
  • CSC 213: Operating Systems
  • CSC 223: Software Design
  • CSC 301: Algorithms
  • CSC 302: Programming Language Concepts
  • CSC 341: Automata, Computational Complexity, and Formal Languages

Note:
We encourage majors to take both systems courses (CSC 211 and 213), and we also encourage them to take Electronics (PHY 220).

Supporting Mathematics

  • MAT 218: Combinatorics

Note:
MAT 218 Combinatorics has linear algebra and two semesters of calculus (including multivariable calculus) as prerequisites.

Electives

  • CSC 205: Computational Linguistics
  • CSC 2xx: Human-Computer Interaction (offered for the first time this year)
  • CSC 261: Artificial Intelligence
  • CSC 362: Compilers
  • CSC 364: Computer Networks

Notes:
Our goal is to offer at least one elective each term, on a rotation that allows each faculty member to teach an elective at least once every other year.

With our new tenure-track hire, we expect the list of electives to expand.

Courses we teach outside the CS curriculum

  • Tutorial: (A Grinnell tradition)
  • TEC 154: Technology Studies
  • LIN 114: Introduction to General Linguistics
  • MAT 115: Introductory Statistics

Major Requirements

The CS major requires the introductory sequence, core courses (with some modest choice), and mathematics through MAT 218, Combinatorics. Details are given in Section 1.2 of this review document

Personal tools