This is a Project page, written Thu Nov 22 22:45:32 EST 2007.
(Note: do not attempt this project till you have completed Lab1.)
Part A: A whole lotta LISP
In Lab1, you were shown how to:
- create a "make.lisp" file that controls a set of files
- write test cases using "(egs :topic)" and run test cases using (demo :topic)
Your task in this project is to apply that knowledge to show you understand Norvig's LISP code in chapters 1,2,3. For each chapter:
- Create a separate directory "proj1/chX"
- Create a different "make.lisp" file in each directory that only loads files in that directory
- Enter in code from Norvig chapter X
- Create one "(egs :X)" test suite for each second-level heading that you don't skip over.
With each eg, write 2 lines explaining what is going on here and include an expected output.
- Create a "demos.lisp" file that contains
"(egs :all)" that calls all the other "egs" (if you don't understand this bit, go back and look at the lab1 "demos.lisp" file).
Only do code from the following sections:
-
1.1, 1.2, 1.4, 1.5, 1.6, 1.7, 2.2, 2.3, 2.5, 3.1, 3.3, 3.5, 3,6, 3.8, 3.10, 3.12, 3.14, 3.15, 3.19
Part B: A Little Bit of Grammar
Modify the grammar on page 30 of Norvig to describe the sequence of cs/ee subjects required to get a cs/ee/ce degree at WVU.
- Create a new directory "proj1/degree"
- Create a file "proj1/degree/make.lisp" file.
- Install just enough of the chapter 2 code into this new directory so the grammar can run.
- Create example code in "proj1/degree/demos.lisp#(egs :all)" which, if executed, shows three different student plan of studies.
- Comment your code.
What to hand in
Comment your code
Zip up the entire "proj1" directory to "proj1.zip"
Submit the zip to Ecampus.
How this code will be tested
-
With your whole group in attendance...
-
I will unzip your zip
-
In each directory,
I will run "(load "make.lisp") (egs :all)" (in SLIME, on a CSEE LINUX box).
-
For each member of the group in turn,
I will point to ten random parts of the code and ask them to explain it to me (no hints from other members of the team). I will expect you to know your code.
Study hint
Any code in sections
1.1, 1.2, 1.4, 1.5, 1.6, 1.7, 2.2, 2.3, 2.5, 3.1, 3.3, 3.5, 3,6, 3.8, 3.10, 3.12, 3.14, 3.15, 3.19
may be asked in the mid-session quiz.