CS 109: Computing Concepts: Creative Machines?


Hampshire College, Amherst MA
Spring, 2001



Lee Spector, lspector@hampshire.edu
413-559-5352, ASH 201

Teaching Assistant

Mingda Zhao, mzhao@hampshire.edu

Meeting times

Tuesdays and Thursdays, 9:00-10:20 AM


Adele Simmons Hall (ASH) Room 111

Class web page


Class email list



This course is an introduction to computer science framed by the question, "Is it possible for a computer to be creative?" The core areas of computer science will be introduced, including algorithms, complexity, computability, programming languages, data structures, systems, and artificial intelligence, with an eye toward the insights that they can provide about issues of computational creativity. Students will complete several projects, some of which should involve programming. The Lisp programming language (which is also used in CS 263: Artificial Intelligence) will be taught, and features of the C programming language will also be covered. No previous experience with computers or with programming is required.


This course is intended to serve students with a wide range of backgrounds, including students with no computer experience and students with significant computer and programming experience. Students with little previous experience should resist being intimidated by the more difficult readings, etc., and bear in mind that I take background into account in writing evaluations. If a reading or a class discussion is over your head, try to extract the gist of it (which may be all that you need at this point in your learning) and talk to me or the TA if you need to understand more. Students with extensive previous experience should note that the class is structured to provide ample opportunities for more advanced work˝feel free to talk to me about ideas for projects, etc.


Each student is expected to attend consistently, to read all assigned readings, to participate actively in class discussions, and to complete the following assignments:

First Lisp A short Lisp programming assignment to demonstrate basic understanding of Lisp.
Lisp Tool Lisp code that may help in the production of creative programs by others in the class.
Midterm Project Open-ended.
Project Presentation In-class presentation of the midterm project; approximately 5 minutes.
Final Project Open-ended.

An "open-ended" project may be a philosophical paper, technical paper, computer program, artwork, etc.; as long as it clearly addresses the material covered in the course.

Suggestion for both projects: produce a Lisp program that performs a creative task, using tools produced by others in the class.

Students are urged to consult with the professor before starting each project. Course evaluations will briefly describe the completed projects; students should bear this in mind when choosing the topics and forms for their projects.


Required Computer Science: An Overview (6th Edition), by J. Glenn Brookshear.

Required ANSI Common Lisp, by Paul Graham.

Optional The Creative Mind: Myths and Mechanisms, by Margaret A. Boden.

Optional Common LispCraft, by Robert Wilensky.

Optional C By Example, by Greg Perry.

All texts will be available on reserve for short-term (3 hr.) borrowing from the Hampshire College Library.


Any "Common Lisp" environment can be used for programming assignments. The Macintoshes in ASH 126 are available at various posted hours and will have installed copies of Macintosh Common Lisp. Student unix accounts should have access to Franz Allegro Common Lisp and CMU Common Lisp. Students wishing to run Lisp on their own machines have several options available; see the class web page and bring related questions to class.


This course will not follow a rigid, pre-specified schedule but will instead be paced to the progress and interests of the students. The basic sequence of topics is presented below but other topics and readings may also be added; changes will be discussed and announced in class.

This page is maintained by Lee Spector and was last updated on September 4, 2001