CS 3S. Introduction to Symbolic Programming (Self-Paced)
Catalog Description: The same material as 3 but in a self-paced format; introduction to computer programming, emphasizing symbolic computation and functional programming style, using the Scheme programming language. Units assigned depend on amount of work completed. The first two units must be taken together.
Prerequisites: High school algebra.
Credit Restrictions: Refer to computer science service course restrictions. Course may be repeated up to 4 units.
Fall: 1.0-4.0 hours of self-paced and 3.0-9.0 hours of laboratory per week
Spring: 1.0-4.0 hours of self-paced and 3.0-9.0 hours of laboratory per week
Grading basis: letter
Final exam status: Written final exam conducted during the scheduled final exam period
Course objectives: We intend in this course for students to learn to program in a dialect of the Lisp programming language-specifically, to become comfortable with recursion and applicative operators-and to gain in addition some appreciation of the algorithms underlying modern tools like databases, spreadsheets, and expert systems. As their final project requires a fair bit of software engineering, they will also be making design decisions (algorithm, data structure, time-vs-space, etc) and considering various implementation trade-offs.
- The Scheme evaluator: atoms and use of built-in Scheme functions
- Definition of functions, scope of variables
- Predicates and conditional evaluation
- Linear recursion
- Planning and debugging
- Tree recursion
- Advanced data structures
- Functional operators