Computer Science Division

Course Title
CS 3 - Introduction to Symbolic Programming

Abbreviated Course Title

Instructors in Charge
Mike Clancy Senior Lecturer
Brian Harvey, Lecturer.

Catalog Data
4 units; 2 hrs lecture, 1 hr discussion section, average of 6 hrs. self-scheduled programming laboratory. Offered fall, spring, and summer terms.

This course is a "Computer Science Service Course"; credit restrictions appear at the beginning of the EECS section of the Berkeley General Catalog.

High School algebra.

Catalog Description
Introduction to computer programming, emphasizing symbolic computation and functional programming style. Students will write a project of at least 200 lines of code, in a dialect of the LISP programming language.

Expanded Description
Topics covered are the following:
  1. Exploration: introduction to the course and to programming.
  2. Procedures and functions: evaluation, words and lists, functional programming.
  3. Variables: data types, inputs to procedures and functions, scope of variables, assignment.
  4. Predicates: conditional evaluation.
  5. Recursion (several models): linear- and tree-recursive operations.
  6. Planning and debugging.
  7. Functional operators.
  8. Other control structures, e.g. iteration, non-local exit.
  9. Other data structures, e.g. trees, hash tables, property lists, files.
  10. Programs as data.

One of the following:

Simply Scheme: Introducing Computer Science,
second edition, Brian Harvey and Matt Wright, MIT Press, 1999.

Exploring Computer Science with Scheme,
Oliver Grillmeyer, Springer-Verlag, 1998.

September 1999