Algorithms

Summary

Computer Science 301 deals with the design, formulation, and implementation of algorithms, including issues of correctness and efficiency, and with the data structures on which commonly occurring algorithms operate.

Textbooks

Requirements

The instructor

John David Stone

Office: Science 2418
Telephone: extension 3181
E-mail: stone@cs.grinnell.edu
Office hours: Mondays, 10 a.m. to 12 m.; Tuesdays, 10 a.m. to 12 m.; Thursdays, 2:15 to 4:15 p.m.; and by appointment.

Handouts

In some of our Scheme programming, it will be useful to extend the syntax of the language to include new kinds of derived expressions, to simplify or regularize the code. The handout ``Macros in Scheme'' describes the mechanics of introducing such syntax extensions.

Algorithms for functional programming uses two extensions to standard Scheme: receive-expressions and a limited form of exception handling. The handout ``Two useful extensions to standard Scheme'' describes these extensions and explains how they are implemented.

Answers to the questions on the first hour examination, the second hour examination, and the final examination are now available.

A few algorithms in Scheme

Timetable

Sessions of this course will meet from 2:15 to 3:15 p.m. on Mondays, Wednesdays, and Fridays, from August 25 through December 8, except for October 16, 18, and 20 (fall break) and November 24 (Thanksgiving recess).

The hour exams will be held on September 25 and November 3. The final exam is scheduled for December 14, at 2 p.m. Please take this date into account when making end-of-the-semester travel plans.

Miscellaneous links

Composing unary procedures in Java (and invoking composites)


This document is available on the World Wide Web as

http://www.cs.grinnell.edu/~stone/courses/algorithms/

created July 2, 2000
last revised January 8, 2001

John David Stone (stone@cs.grinnell.edu)