Courses
CS 3S. Introduction to Symbolic Programming
Current Schedule (Spring 2008)
- CS 3S: Dan Garcia, C10 Hearst A
Description
Catalog Description: (1-4 units) The same material as CS3 but in a self-paced format: introduction to computer programming, emphasizing symbolic computation and functional programming style, using the Scheme programming language.
Prerequisites: High School Algebra
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.
Topics covered:
- The Scheme evaluator: atoms and use of built-in Scheme functions
- Definition of functions, scope of variables
- Predicates and conditional evaluation
- Lists
- Linear recursion
- Planning and debugging
- Tree recursion
- Advanced data structures
- Functional operators
