CS2135 Programming Language Concepts
Lecture and Reading Schedule

Note 1: you may do the readings from either or both of The Little Schemer and How to Design Programs (HTDP). Use whichever book you prefer. We will follow the HTDP style more closely in class, but some students find the question-answer style of The Little Schemer to be helpful in learning the material.

Note 2: The "Extra Exercises" column provides additional practice exercises that you can try. These will not be graded, and are separate from the homework assignments. You are always welcome to bring questions on these practice problems to office hours. We strongly recommend that you try some of these exercises as you will need to be comfortable programming in Scheme by the third week of the course!


Functional Programming



DateLecture TopicReadingsExtra ExercisesDueNotes
8/30Introduction to Scheme Little Schemer: Chapter 1
HTDP Chapter 2
HTDP Chapter 3
Little Schemer questions
HTDP Section 2.2 Exercises
HTDP Section 2.3 Exercises
HTDP Section 3.3 Exercises
   
8/31Symbols and Conditionals HTDP Chapter 4
HTDP Chapter 5
HTDP Section 4.3 Exercises
HTDP Section 4.4 Exercises
HTDP Section 5.1 Exercises
Homework 0
 
9/3Labor Day -- no class        
9/4Structures and Lists HTDP Chapter 6
HTDP Chapter 7
HTDP Section 6.3 Exercises
HTDP Section 6.4 Exercises
HTDP Section 6.7 Exercises
HTDP Section 7.2 Exercises
  Notes on structs
9/6Lists, lists, and more lists Little Schemer: Chapters 2, 3, and 5
HTDP Chapter 9
HTDP Chapter 10
Little Schemer questions
HTDP Section 9.5 Exercises
HTDP Section 10.1 Exercises
Homework 1
 
9/7Lists of structures HTDP Chapter 10.2
HTDP Section 10.2 Exercises
  Notes on design process [ppt]
Notes on design process [pdf]
9/10Map, filter, and higher-order-functions HTDP Chapter 20
HTDP Chapter 22
    Notes [ppt]
Notes [pdf]
9/11More on map and filter        
9/13Trees HTDP Chapter 14
  Homework 2
Notes on trees [ppt]
Notes on trees [pdf]
9/14More trees HTDP Chapter 15
     
9/17Scoping HTDP Chapter ??
Scoping Exercises
  Static and Dynamic Scoping

Language Modeling and Interpreters



DateLecture TopicReadingsExtra ExercisesDueNotes
9/18Language Modeling; Arithmetic Interpreters Little Schemer: Chapter 6
HTDP Chapter ??
     
9/20Interpreters 2 HTDP Chapter ??
  Homework 3
 
9/21Interpreters 3       Eval/Curly Data Defn FAQ
9/22[Saturday -- due date only]     Project, Part 1
 
9/24Midterm exam -- In class        
9/25Interpreters with Delayed Substitution       Notes on delayed substitution
The Revised Interpreter

Web Programming and Compilers



DateLecture TopicReadingsExtra ExercisesDueNotes
9/27The Nature of Web Programming     Homework 4
Notes on Web Programs
9/28Introduction to Continuation-Passing Style   see the notes
  Notes on Tail Calls
10/1More on Continuation-Passing Style       CPS examples
10/2A Continuation-Passing Style Compiler       CPS compiler
10/4A CPS Compiler: number?, var?, and plus?     Homework 5
CPS compiler
10/5A CPS Compiler: proc? and apply?       CPS compiler

State and Objects



DateLecture TopicReadingsExtra ExercisesDueNotes
10/8Set! and Local       notes
10/9Objects       notes
10/11Inheritence     Homework 6
notes on inheritence
10/12Functional and Object-Oriented Programming       notes
10/15Web Cookies       notes
10/16Implementing Set!: Environments versus Stores     Homework 7
Implementing set! with environments
Threading environments
10/18Final exam -- In class        


A MzScheme script generated this page on Wed Oct 17 13:48:39 EDT 2001.