CS 510 outline by week

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.

28 August
Functional programming basics: Scheme data types and procedures.

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.)

4 Sept
Holiday, no classes.

Spend this week exercising your way through the Little Schemer!

11 Sept
XML and the design of Scheme. Recursion and inductive reasoning.

Reading/Homework (for next week): LS (Little Schemer) through Ch 5 and EOPL Ch 1.1 and 1.2.

18 Sept
Tail recursion. Scheme procedures and closures.

Reading for next week: LS ch 8. (And review EOPL ch 1.1 and 1.2.) Homework due 6pm on 25th: EOPL Exercise 1.15 (page 24), numbers 1-5, 7, and 9.

25 Sept
Lexical scope. Data abstraction.

Reading for next week: EOPL ch 1.3, 2.1, 2.2.

Homework due 5pm on 2 Oct: hw2.txt

2 Oct
The EOPL/Scheme facilities for abstract syntax trees. Review for exam.

9 Oct
Fall recess, no class
11 Oct
Monday schedule

EXAM: 90 minutes; you may bring one sheet of paper with notes but no other materials.

16 Oct
(chronological middle of semester) Environment-passing interpreters: basics.

Reading for next week:

In class we'll use 3-1.scm which in turn uses environment-as-ribcage.scm. (Don't forget the code distributed at the EOPL home page too.)

Homework due 5pm on 30 Oct: hw3.txt. Here is 3-5.scm.

23 Oct
Environment-passing interpreters: Local binding and procedures.

Reading: EOPL ch 3.4-3.5.

30 Oct
Environment-passing interpreters: Recursion.

Reading for next week: EOPL ch 3.6-3.9.

Homework due 6 Nov, 5pm: hw4.txt. 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.

6 Nov
Environment-passing interpreters: Variable assignment and Parameter passing. Statements.

Last homework: hw5.txt The first part is due 27 Nov at 11pm; the second part is due 4 Dec at 11pm.

13 Nov
Introduction to types. Enforcing abstraction boundaries.

Reading: EOPL 4.1, 4.2.

20 Nov

Type inference.

EXAM: 90 minutes. You may bring one sheet of paper with humanly-readable notes but no other materials.

Reading: EOPL 4.3, 4.4

Here are revised versions of the code: 4-2-classroom.scm and 4-4-classroom.scm.

27 Nov
Objects, classes and subtyping.

Reading: EOPL 5.1-5.3 and 6.1

Here are the slides, courtesy of Prof. Duggan: DomSubtyping.pdf

4 Dec
(last day of class) Object-oriented design patterns for implementing interpreters and checkers. Java inner classes, scoping and nested procedures. Wrap-up and review for final exam.

Here are the slides, courtesy of Prof. Duggan: DomSubtyping.pdf DomJavaEvalAndNestedClass.pdf

11 Dec
final exam



David Naumann 2006-12-08