Recursive Thinking
|
Time: Wednesdays, 1:35 - 2:40
Location: 309 Kariotis
Instructor: Paul A. Steckler
Office: 222D Egan
Phone: 373-4211
Office hours: 3:00 - 4:00 Wednesdays, or by appointment
E-mail: steck@ccs.neu.edu
Required text: Class handouts (also posted on the Web)
Recommended: THE LITTLE SCHEMER, 4th ed., D. P. Friedman and M. Felleisen
THE SCHEME PROGRAMMING LANGUAGE, 2d ed., K. Dybvig
Online at http://www.scheme.com/tspl2d/
GöDEL, ESCHER, BACH, D. Hofstadter
Course summary: This course is meant to make you fluent in programming with recursion. Although you have undoubtedly seen recursion in other classes, you have probably not thought about it in a systematic way. We'll write recursive programs that operate on recursive data types, and explore the connection between recursion and iteration. In addition, we'll look at some commonly-used higher-order operations on recursive data types. As a by-product, you'll become familiar with programming in the Scheme programming language.
Some of the assignments will involve programming for the Web.
Prerequisites: Algorithms and Data Structures 2 (COM1201). Willingness to think hard!
Software: DrScheme is installed on the CCS Unix and Windows 2000 systems. At the Unix prompt, enter drscheme. You can download DrScheme to your own computer from http://www.drscheme.org/. In years past, students were able to use other implementations of Scheme for this course. This year, you'll need to use DrScheme.
Handouts: In lieu of a conventional textbook, class handouts will provide the material for the course. The handouts will also be posted on the course Web page. Lectures will be based on the handouts.