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.

15 Jan
Course introduction. XML and the design of Scheme. 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.)

Here are slides for first and second parts of today's lecture.

22 Jan

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.

29 Jan
Tail recursion. Scheme procedures and closures -- higher order procedures.

Reading for next week: LS ch 8. (And review EOPL ch 1.1 and 1.2.)

Homework due 5pm on 5 Feb: hw1.txt

5 Feb
Lexical scope.

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.

12 Feb
CANCELLED for SNOW

19 Feb
Monday schedule -- no class this week

26 Feb
Data abstraction. The EOPL/Scheme facilities for abstract syntax trees.

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.

4 Mar
Procedural representation of data structures. Environment-passing interpreters: basics.

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

11 Mar

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.

18 Mar
Spring break - no class this week.

25 Mar

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.

1 Apr

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.

8 Apr

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.

15 Apr
More on types. Type inference.

Last homework: hw5.txt, due midnight on May 4.

22 Apr
Objects, classes and subtyping.

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

Last reading of the course: EOPL 5.1-5.3 and 6.1

29 Apr
(last day of class)

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

6 May
final exam 8-12am



naumann 2008-05-04