OFFICE HOURS: 2:30 - 4:00, WF, in 213 Macquarrie Hall.
PHONE: (408) 924-5065
EMAIL: pearce@mathcs.sjsu.edu
URL: www.mathcs.sjsu.edu/faculty/pearce/pearce.html
LECTURES:
sec 1: 9:30 - 10:20 in MH 422
sec 2: 10:30 - 11:20 in MH 234
TEXT: Programming and Meta Programming in Scheme; Pearce;
Springer 1998. Course materials are posted on the web at www.mathcs.sjsu.edu/faculty/pearce/scheme.
HARDWARE: Versions of Scheme run on Windows, Macintosh, Linux, and Sun platforms.
SOFTWARE: You can use any version of Scheme you want, as long as your programs adhere to the ANSI/IEEE Scheme standard. Free implementations of Scheme are available on the web. Follow the links on the course web page to get to download sites. The recommended implementation is Dr. Scheme.
PREREQUISITES: CS 46B with a grade of C- or better.
GRADING: 70% of your grade will be based on two midterms, four to six homework assignments, and four to six quizzes. The remaining 30% will be determined by the final exam. Consult the course web page for homework policies.
COURSE OUTLINE: A major trend in the 1980s was the emergence of programming languages that supported programming paradigms other than the traditional, machine-centered imperative paradigm. Languages like Smalltalk and C++ supported the object paradigm, Prolog and SQL supported the relational paradigm, while Scheme, Haskel, and Miranda supported the functional paradigm.
This course will introduce the functional programming paradigm through subsets of the Scheme language. The functional paradigm eschews machine-oriented concepts like variable, state, and assignment that impose execution order dependencies and memory management responsibilities on programs and programmers. Instead, mathematical functions are the basic components that comprise both the data and subroutines of functional programs, and function composition is the glue that holds functional programs together.
Scheme is a dialect of the LISP language. The course does not assume prior knowledge of Scheme. Scheme will be introduced in parallel with the functional paradigm. Scheme is a simple yet powerful language that is used for artificial intelligence, semantic prototyping, and teaching.