This is a preliminary outline that is subject to change. It will be updated during the semester. This is where homework assignments will be posted as well.
Reading/Homework: LS (Little Schemer) chapters 1 and 2. Learn how to use DrScheme and try the examples on the machine. Try to go on to chapter 3. (Nothing to submit for a grade, however.)
Here are slides for first and second parts of today's lecture.
Basics of Scheme.
Recursively specified data. Recursively specified programs. Recursion and inductive reasoning.
Reading/Homework (for next week): LS (Little Schemer) through Ch 5 and EOPL Ch 1.1 and 1.2.
Reading for next week: LS ch 8. (And review EOPL ch 1.1 and 1.2.)
Homework due 5pm on 5 Feb: hw1.txt
Homework due 5pm on 12 Feb: hw2.txt
Reading for next week: EOPL ch 1.3. You might want to read ahead to 2.1, 2.2.
Reading for next week: EOPL 2.1, 2.2. (DO NOT read EOPL 2.4, or if you do, don't start coding using ``set!''.)
Review for exam.
EXAM: you may bring one sheet of paper with humanly-readable notes on both sides, but no other materials.
Homework: Read EOPL chapt 2.3, 3.1, 3.2. Also skim Appendix A.
In class we'll use 3-1-classroom.scm which in turn uses environment-as-ribcage.scm. (Don't forget the code distributed at the EOPL home page too.)
Environment-passing interpreters: Local binding and procedures.
Reading: EOPL ch 3.3-3.5.
In class we'll use 3-5-classroom.scm.
Homework due 5pm on 28 Mar: hw3.txt.
Environment-passing interpreters: Recursion.
Reading for next week: EOPL ch 3.6-3.9.
Here is a sample solution to the previous homework: sample-sol-hw3.scm.
Here is the interpreter from section 3.6 (slightly modified from the EOPL code) 3-6-basis-classroom.scm, and the EOPL code for three implementations of environments: 3-6-letrec1.scm, 3-6-letrec2.scm, and 3-6-letrec3.scm.
Environment-passing interpreters: Variable assignment and Parameter passing. Statements.
In addition, here is homework due 15 April, 5pm: hw4.txt.
Reading for next week: EOPL 4.1, 4.2.
EXAM: 90 minutes. You may bring one sheet of paper with humanly-readable notes on both sides, but no other materials. Covers through chapter 3.
Introduction to types. Enforcing abstraction boundaries.
Here are revised versions of the code: 4-2-classroom.scm and 4-4-classroom.scm.
Last homework: hw5.txt, due midnight on May 4.
Here are the slides, courtesy of Prof. Duggan: DomSubtypingRev.pdf
Last reading of the course: EOPL 5.1-5.3 and 6.1
Object-oriented design patterns for implementing interpreters and checkers. Java inner classes, scoping and nested procedures.
Here are the slides, courtesy of Prof. Duggan: DomJavaEvalAndNestedClass.pdf
Please don't forget to complete a course evaluation at http://www.stevens.edu/assess