cs 325 home

Syllabus


Overview

You learn by doing. There are two kinds of doing in this class:

Both are critical. You will be graded on the level of effort you put in both activities. Ideally, both should be fun, challenging, and motivating, in their separate ways.

The first thing to read is how you submit work for review. This information is critical!

The Class Project

Class lectures and class assignments will be organized around the class project.

This year, the class project will be some sort of intelligent web-based information system, but exactly what will be determined in class discussions, as we try to answer the AI question.

The AI question, by the way, is not

What is intelligence?

It's

Why are computers so stupid?

Answer the first question and you still don't know what to do. Answer the second question and you have an AI thesis.

So we'll be asking the question "Why is the web so stupid?" and once we have an answer, we'll have a programming project.


Personal Exploration

Everyone has different things they like to do, and different learning styles. In parallel with the class-driven project, you should also be moving as quickly as possibly through Paul Graham's ANSI Common Lisp. You should finish that book by quarter's end at least, though many of you will be done with it sooner.

To paraphrase Yoda from Star Wars:

Reading means nothing. There is only doing.

Do the exercises at the end of each chapter and in the various exercise files. If you have trouble, email your problems to c25. Put something like "Question about Ex xxx" in the Subject.

Use the rules for submission to decide when your answers qualify for submitting to me. Do not send answers to every exercise to me. Many exercises are simply too trivial to merit submission.

Pay particular attention to the example applications in Graham, such as the HTML generator (Chapter 16) and the Ray Tracer (Chapter 9). Pick one or two that particularly interest you and generate your own exercises from them. For example, the string substitution application (Chapter 7) is a fine place to start to build a tool for updating links in HTML files (you'll need to add a HTML parser for tags).


Comments? Send mail to Chris Riesbeck.