Lectures

Date Topic Do Read Note
Sep 2 Convocation No class
Sep 4 What Can a Computer Do? CIPL, Ch. 1 & 2
OpSem, Ch. 1
Sep 9 Induction Primer PLLC, Ch. 2
OpSem, Ch. 2
Sep 11 Syntax & Grammars CIPL, Ch. 4.1
OpSem, Ch. 3
Sep 16 Big-Step Operational Semantics Due: Assgn. 0 OpSem, Ch. 4
Sep 18 Small-Step Operational Semantics OpSem, Ch. 5
Sep 23 Alpha, Beta, Eta Due: Assgn. 1 CIPL, Ch. 4.2
Sep 25 Lambda Calculus in Small Steps PLLC, Ch 4.1&4.2
Sep 30 Lambda Calculus in Big Steps Due: Assgn. 2 PLLC, Ch 4.1&4.2
Oct 2 Intro to Ruby: Classes & Objects CIPL, Ch 10
Intro to Ruby
Prog. Ruby, Classes
Why's, Ch. 3
Notes Script 1
Notes Script 2
Oct 7 Compositional Interpreters Due: Assgn. 3 Notes Script
Oct 9 List Processing CIPL, Ch 3&4.4 Notes Script
Oct 14 Higher-Order Functions Due: Assgn. 4 CIPL, Ch 3&4.4 Notes Script
Oct 16 MIDTERM EXAM
Oct 21 Algebraic Data Types CIPL, Ch 5 Notes Script
Oct 23 Syntactic Interpreters Notes Script
Oct 28 The Extensibility Matrix Due: Assgn. 5 Notes Script
Oct 30 The Rules of Types CIPL, Ch 6
Static Semantics
Nov 4 Subtyping & Polymorphism Due: Assgn. 6 CIPL, Ch 6
Nov 6 Type Checking & Inference Extra Credit: E.C. 1 CIPL, Ch 6 Notes Script
Nov 11 Veteran's Day Due: Assgn. 7 No class
Nov 13 Static & Dynamic Scope CIPL, Ch 7
Nov 18 Abstract Machines Due: Assgn. 8 CIPL, Ch 8
Nov 20 Closures & Stacks CIPL, Ch 8
Nov 25 Effective Machines Due: Assgn. 9 CIPL, Ch 8
Nov 27 Thanksgiving No class
Dec 2 Continuations & Control Extra Credit: E.C. 2 CIPL, Ch 8 Notes Script 1
Notes Script 2
Dec 4 The Paradox of Computation Notes Script 1
Notes Script 2
Dec 9 Logic Programming Due: Assgn. 10 CIPL, Ch 15 Notes Script
Dec 11 Concurrent Programming Due: Paper CIPL, Ch 14
LYSE
Notes Script
Dec 15 Final Submission Cutoff Due: Everything
Dec 15-19 FINAL EXAM

Topics

Programming Languages: What, Why, & How?

Induction: The Workhorse of Programming Languages

Operational Semantics: Big & Small

  • • Concepts

    • Big-Step Operational Semantics: also known as "natural semantics", evaluation, derivation trees
    • Small-Step Operational Semantics: reduction rules, evaluation contexts
  • • Reading

  • • Exercises

Lambda Calculus: The Laws of Functions

Object-Oriented Programming

Functional Programming

The Expression Problem

Type Systems

Binding & Scope

Machines & Effects

Continuations: Capturing the Future