NOTE 1: Always check your code with the Unit Tester and the Lisp Critic before submitting. Even the project, where there are no unit tests, can and should be checked with the Lisp Critic. Unchecked code will be returned unreviewed.
NOTE 2: Type your function definitions into a file editor window, not the Lisp Listener window. Using the Listener window produces badly indented code with tab characters. (See http://xarg.net/writing/tabs for why tab characters should never be in code.) You also lose your code when you leave Lisp.
Exercises are like calisthenics. Everyone needs to do them, but at their own pace and in their own order. They also help me get a measure of what you know (see the rules on grading).
These exercises are to give you practice in basic and advanced Lisp programming, as well as AI programming.
Exercises from Graham. A quick guide to the exercises in Graham's ANSI Common Lisp. Read this guide before sending anything from Graham! It says which exercises are OK to submit, and modifies many of them.
Lisp Exercises. General Lisp exercises.
Robot Simulator Exercises. These are exercises to extend and improve the very simple robot plan execution simulator we developed in class. A number of Lisp ideas are explored here.
Challenges. Challenges are typically two or three times longer and/or more difficult than average exercises. They involve the application of multiple skills and the ability to keep complex long code readable and maintainable. Students who come to this course with no prior Lisp or Scheme experience should do at least a few challenges. More experienced programmers should focus on challenges over simpler exercises.
Deductive Retriever Exercises. A few exercises writing rules in the deductive retriever, and some exercises modifying the deductive retriever code.
AI Project Exercises. This set of exercises develops over the quarter. This year, the project will involve web-based knowledge editing, pattern compiling, and semantic matching.
Your goal for this course is to prove to me that you're a good AI programmer. That means showing that you know how to apply the major tools of Lisp to AI problems. The best way to do that is to
Don't put off the Project exercises! Mix them in with the book exercises as soon as you've done the first 5 basic chapters of Graham.
Comments?
Send mail to Chris Riesbeck.