Lectures

Date Topic Do Read Note
Jul 6 What are Programming Languages? CIPL, Ch. 1
OpSem, Ch. 1
Jul 6 What Can a Computer Do? Begin: Assgn. 1 CIPL, Ch. 2
Jul 7 Induction Primer PLLC, Ch. 2
OpSem, Ch. 2
Jul 7 Syntax & Grammars CIPL, Ch. 4.1
OpSem, Ch. 3
Jul 11 Big-Step Operational Semantics Due: Assgn. 1 OpSem, Ch. 4
Jul 11 Small-Step Operational Semantics Begin: Assgn. 2 OpSem, Ch. 5
Jul 13 Alpha, Beta, Eta CIPL, Ch. 4.2
Jul 13 Lambda Calculus in Small Steps Begin: Assgn. 3 PLLC, Ch 4.1&4.2
Jul 14 Lambda Calculus in Big Steps Due: Assgn. 2 PLLC, Ch 4.1&4.2
Jul 18 Intro to Ruby Due: Assgn. 3 Intro to Ruby
Why's, Ch. 3
Notes Script
Jul 18 Classes & Objects Begin: Assgn. 4 CIPL, Ch 10
Prog. Ruby, Classes
Notes Script
Jul 20 Compositional Interpreters Notes Script
Jul 21 Higher-Order Functions Due: Assgn. 4
Begin: Assgn. 5
CIPL, Ch 3&4.4 Notes Script
Jul 25 Algebraic Data Types CIPL, Ch 5 Notes Script
Jul 27 MIDTERM EXAM
Jul 28 Syntactic Interpreters Due: Assgn. 5 Notes Script
Jul 28 The Extensibility Matrix Begin: Assgn. 6 Notes Script
Aug 1 The Rules of Types Due: Assgn. 6 CIPL, Ch 6
Static Semantics
Aug 1 Abstraction & Polymorphism Begin: Assgn. 7 CIPL, Ch 6
Aug 3 Type Checking & Inference Extra Credit: E.C. 1 CIPL, Ch 6 Notes Script
Aug 4 Variable Binding Due: Assgn. 7 CIPL, Ch 7
Aug 4 Static & Dynamic Scope Begin: Assgn. 8 CIPL, Ch 7
Aug 8 Implementing Recursion Due: Assgn. 8 CIPL, Ch 7
Aug 8 Abstract Machines Begin: Assgn. 9 CIPL, Ch 8
Aug 10 Closures CIPL, Ch 8
Aug 10 Mutable State Begin: Assgn. 10 CIPL, Ch 8
Aug 10 Handling Exceptions Extra Credit: E.C. 2 CIPL, Ch 8
Aug 11 Continuations in Machines Due: Assgn. 9
Aug 11 Programming With Continuations Notes Script
Aug 11 Continuation-Passing Style Notes Script
Aug 15 FINAL EXAM Due: Assgn. 10

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