CS 442/642: lecture notes
Reference materials and sample programs are often copyrighted may be used only by the participants of the class.
Week 1:
Introduction
,
Core of an Imperative Language
[Ch 1; Exercises: 2.2, 2.3, 6.2, 6.4, 7.1, 9.1 ]
Week 2:
The Abstraction Principle
Variables and Type Structures
[Ch 2; Exercises: 1.2, 2.2, 6.2, 7.3, 8.3, 8.4, 10.2, 12.1, 14.1 ]
Week 3:
The Parametrization Principle
[Ch 3; Exercises: 3.4, 4.1, 4.4, 5.2, 7.1d, 8.2]
Week 4:
The Qualification Principle
[Ch 4; Exercises: 2.2, 3.2, 5.1, 7.1, 10.1]
Week 5:
Imperative Language Revisited
[Ch 5; Exercises: 2.2, 4.1a-b, 5.5a, 5.7, 8.1],
Lambda Calculus
[Ch 6.1-3; Exercises: 1.3, 1.5, 1.6, 2.1, 2.2, 2.5, 3.2]
Week 6:
Typed Lambda Calculus
, [Ch 6.4-6; Exercises: 4.1, 4.3, 6.1, 6.2]
Functional Languages
[Ch 7.1-5; Exercises: 2.1, 2.2, 3.2, 4.1]
Week 7: reading week
Week 8: Midterm review, Midterm
Week 9:
Let-polymorphism and Type Inference
[Ch 7.10; Exercises: 10.2, 10.3, 10.5],
SML/NJ Tutorial
(
SML tutorial
), assignment 2
Week 10:
Logics and Type Systems
[Ch 8.1-5; Exercises: 0.2, 1.1, 2.1, 2.6]
Week 11:
Logic Programming Languages
Week 12:
Imperative Addons to Functional Languages
(
more extensive tutorial
)
Semantics of PL Revisited
(
full exposition [requires serious math]
) [Ch 1.6-8, 2.8, 6.5-6, 7.5; Exercises: Ch1:6.2, 6.3, 6.5; Ch2: 8.2, 8.4; Ch6:5.1]
Week 13: slack and review for final