An introduction to programming in the symbolic, functional language Scheme. Mechanisms for implementing Scheme, including meta-circular interpreters, dynamic storage allocation, and garbage collection. Applications of Scheme to selected problems from Artificial Intelligence. (Prerequisite: CSC 210.)
| Instructor: | James Moen | |
| E-mail: | moen@augsburg.edu | |
| Phone: | 612 330-1142 | |
| Office: | Sverdrup 203F | |
| Office Hours: | To be announced | |
| Classroom: | Sverdrup 204 | |
| Classroom Hours: | 6:00 PM-9:00 PM Thursday |
I'm often in my office at other times during the day, not just during my regular office hours. You may visit my office (almost) any time I am there. You may also phone or send email at any time.
Richard Kelsey, William Clinger, and Jonathan Rees (editors). ``Revised5 Report on the Algorithmic Language Scheme.'' 1998.
This report is widely available for free on the Internet. You can find it using a Google search. You can also download a copy here, in PDF or Postscript. I may also ask you to read other papers from the Internet. I'll tell you where to find them when we need them.
I'll assign homework every Thursday at the end of class. It will be due on the following Thursday. Homework will be accepted up to one calendar day late, but with a 20% penalty. All submissions are final.
Most homework assignments will involve writing programs in Scheme. You must turn in a listing of your program, and a copy of the actual output produced by your program. Your programs will be graded both on correctness (are they free of errors?) and on style (are they easy to understand?).
If you turn in homework by email, you must send it as an ordinary text file. Please don't use proprietary file formats (like Microsoft Word). My computer can't read them.
There will be three examinations in this course: two one-hour midterms, and a two-hour final. All examinations will be ``open book,'' so you will be able to use books and your class notes to help you answer questions. See the schedule for (approximate) dates.
Students are expected to be familiar with Augsburg College's policies on academic honesty. You will be required to sign a statement indicating that you understand these policies. Although you may exchange ideas with other students, everything you turn in must be your own work. Copying assignments, or parts of assignments, is not permitted!
I'll assign points for each homework assignment and each examination. Your final grade will be based on the number of points you get during the term. About 60% of your grade will be determined by homework, and about 40% will be determined by examinations.
This schedule is approximate. I may change it during the term. The first part of the course deals with the programming language Scheme. The second part deals wit how Scheme works internally, and the third deals with some applications of Scheme to Artificial Intelligence.
|   | Date | Lecture Topics |
|   | Sep 7 | History. Functional programming. Symbolic data. |
|   | Sep 14 | Recursion and iteration. List processing. |
|   | Sep 21 | Higher-order functions. |
|   | Sep 28 | Data abstraction. |
|   | Oct 5 | Data objects with state. |
|   | Oct 12 | 1st Midterm Exam. Internal representations. |
|   | Oct 19 | Memory management. Garbage collection. |
|   | Oct 26 | The metacircular interpreter. |
|   | Nov 2 | Metalinguistic abstraction. |
|   | Nov 9 | 2nd Midterm Exam. Artificial intelligence. |
|   | Nov 16 | Means-ends analysis. Problem reduction. |
|   | Nov 23 | No class. |
|   | Nov 30 | Heuristic search. |
|   | Dec 7 | Rule-based programming. |
|   | Dec 14 | Genetic algorithms. |
|   | Dec 21 | Final Exam (6:30-8:30 PM) |