EECS 325 Exercises and Applications
NOTE 1: Always check your code with
the Unit Tester and the Lisp Critic before submitting.
Even when there are no unit tests, all code can and should
be checked with the Lisp Critic. If I notice mistakes in code that
the Critic catches, I stop reviewing and return the code to you to run
the Lisp Critic on.
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 here
for why tab characters should not be in code.) You also lose your code
when you leave Lisp.
Exercises versus Applications
Exercises are small coding problems. Like calisthenics, they help you
focus on and strengthen specific "coding muscles."
Applications are larger coding problems, requiring you to master
and apply multiple coding skills and basic AI concepts.
Both are critical for me to get a
measure of what you know (see the
rules on grading). In the first third of the course, you'll mostly
do exercises, unless you already know a lot of Lisp. As the course progresses,
you should shift over to more application work.
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
- Do some (but not all) exercises from every chapter of Graham
that has exercises, and/or the Lisp
exercises, to show breadth of Lisp skills
- Do as many of the applications as you can
to show your AI skills
Don't put off the applications. Mix them in with the
book exercises as soon as you've done the first 5 basic chapters of Graham.
Exercises
- 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.
- 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.
Applications
- Robot Planner -- a logic-based robot planner,
modeled after the classic Shakey robot system
- Critic Rule Editor -- a browser-based editor for the Lisp Critic rules
- Knowledge Editor -- a browser-based editor for a frame representation
system, similar in spirit but not look-and-feel to
Protege.
- HR Matcher -- an intelligent human resource jobs to applicants matching
system
- Super Creanimate -- a conversational user-driven tour through
biological reasoning on form and function
Comments?
Send mail to Chris Riesbeck.