Course Title: Concepts of Programming Languages
Course Number: BU CAS CS 320
Semester: Fall 2004
Instructor: Hongwei Xi (hwxi AT cs DOT bu DOT edu)
------
The following is a *rough* week-by-week course schedule:
Week One
07 Sep, 04 Tu: Introduction
09 Sep, 04 Th: Primitive Expressions, Conditionals
Week Two
14 Sep, 04 Tu: Recursion; Tail-recursion = Iteration
16 Sep, 04 Th: Time complexity, Space complexity
Week Three
21 Sep, 04 Tu: Exponetiation, Primality test based on Fermat's Little Theorem
23 Sep, 04 Th: Higher-order procedures
Week Four
28 Sep, 04 Tu: Higher-order procedures, Continuation
30 Sep, 04 Th: Data Abstraction, Recursion on Lists
Week Five
05 Oct, 04 Tu: Recursion on Lists, Symbolic Data
07 Oct, 04 Th: Huffman Encoding Trees, Multiple Representation for Abstract Data
Week Six
12 Oct, 04 Tu: Data-Directed Programming and Additivity
14 Oct, 04 Th: Assignment and Local State
Week Seven
19 Oct, 04 Tu: Benefits and Costs of Introducing Assignment
21 Oct, 04 Th: The Environment Model of Evaluation
Week Eight
26 Oct, 04 Tu: Modeling with Mutable Data
28 Oct, 04 Th: in-class midterm exam
Week Nine
02 Nov, 04 Tu: Programming with Streams
04 Nov, 04 Th: Concurrency: Time is of the Essence
Week Ten
09 Nov, 04 Tu: Simple Type Theory (I)
11 Nov, 04 Th: Holiday
Week Eleven
16 Nov, 04 Tu: Simple Type Theory (II)
18 Nov, 04 Th: Simple Type Theory (III)
Week Twelve
23 Nov, 04 Tu: A Quick Overview of SML (I)
25 Nov, 04 Th: Holiday
Week Thirteen
30 Nov, 04 Tu: A Quick Overview of SML (II)
02 Dec, 04 Th: A Simple Evaluator for Lambda-Calculus
Week Fourteen
07 Dec, 04 Tu: Structures and Functors
09 Dec, 04 Th: final review