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, using the Scheme programming language.

Units: 4

Prerequisites: High school algebra.

Credit Restrictions: Refer to computer science service course restrictions.

Summer: 14 hours of lecture per week
Fall: 2 hours of lecture per week
Spring: 2 hours of lecture per week

Grading basis: letter

Final exam status: Written final exam conducted during the scheduled final exam period

Class homepage on inst.eecs

Department Notes: 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.