CS 9D. Scheme and Functional Programming for Programmers
Catalog Description: Self-paced course in functional programming, using the Scheme programming language, for students who already know how to program. Recursion; higher-order functions; list processing; implementation of rule-based querying.
Units: 2
Prerequisites: Programming experience similar to that gained in COMPSCI 10 or ENGIN 7.
Credit Restrictions: Students will receive no credit for COMPSCI 9D after completing COMPSCI 61A.
Formats:
Fall: 2 hours of self-paced per week
Spring: 2 hours of self-paced per week
Grading basis: passFail
Final exam status: Written final exam conducted during the scheduled final exam period
Department Notes:
Course objectives: Students are expected to learn the basics of Scheme programming (up through recursion, applicative operators, and the use of functions as first class objects). In the process of learning the language, they will be applying knowledge of mathematics, science and engineering. As many of their projects require 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:
- Functions and recursion using numbers
- Higher-order functions
- Lists and hierarchical data; list-processing recursion; higher-order functions with lists; functions as stored data
- Rule-based programming