Lectures

Date Topic Do Read Note
Jan 19 What are Programming Languages? CIPL, Ch. 1
OpSem, Ch. 1
Online lecture
Jan 21 What Can a Computer Do? CIPL, Ch. 2 Online lecture
Jan 24 Induction Primer Begin: Assgn. 1 PLLC, Ch. 2
OpSem, Ch. 2
Jan 26 Syntax & Grammars CIPL, Ch. 4.1
OpSem, Ch. 3
Jan 28 Big-Step Operational Semantics Due: Assgn. 1
Begin: Assgn. 2
OpSem, Ch. 4
Jan 31 Small-Step Operational Semantics OpSem, Ch. 5
Feb 2 Alpha, Beta, Eta Due: Assgn. 2 CIPL, Ch. 4.2
Feb 4 Lambda Calculus in Small Steps Begin: Assgn. 3 PLLC, Ch 4.1&4.2
Feb 7 Lambda Calculus in Big Steps PLLC, Ch 4.1&4.2
Feb 9 Intro to Ruby Due: Assgn. 3 Intro to Ruby
Why's, Ch. 3
Notes Script
Feb 11 Classes & Objects Begin: Assgn. 4 CIPL, Ch 10
Prog. Ruby, Classes
Notes Script
Feb 14 Compositional Interpreters Notes Script
Feb 16 Higher-Order Functions Due: Assgn. 4
Begin: Assgn. 5
CIPL, Ch 3&4.4
Feb 18 Algebraic Data Types CIPL, Ch 5
Feb 21 Holiday - No Class
Feb 22 Midterm Review Due: Assgn. 5 Online lecture
Feb 23 Midterm Review
Feb 25 MIDTERM EXAM Snow day
Feb 28 MIDTERM EXAM
Mar 2 Syntactic Interpreters Begin: Assgn. 6 Notes Script
Mar 4 The Extensibility Matrix Notes Script
Mar 7 Spring Break
Mar 9 Spring Break
Mar 11 Spring Break
Mar 14 The Rules of Types Begin: Paper CIPL, Ch 6
Static Semantics
Mar 16 Abstraction & Polymorphism Due: Assgn. 6 CIPL, Ch 6
Mar 18 Type Checking & Inference Begin: Assgn. 7 CIPL, Ch 6
Mar 21 Type Checking & Inference CIPL, Ch 6 Notes Script
Mar 23 Type Safety Due: Assgn. 7 PFPL, Ch 2 & 4
Mar 25 Variable Binding Begin: Assgn. 8 CIPL, Ch 7
Mar 27 Static & Dynamic Scope Extra Credit: E.C. 1 CIPL, Ch 7
Mar 30 Implementing Recursion Due: Assgn. 8 CIPL, Ch 7
Apr 1 Abstract Machines Begin: Assgn. 9 CIPL, Ch 8
Apr 4 Closures CIPL, Ch 8
Apr 6 Mutable State Due: Assgn. 9 CIPL, Ch 8
Apr 8 Handling Exceptions Begin: Assgn. 10 CIPL, Ch 8
Apr 11 Continuations in Machines
Apr 13 Programming With Continuations Notes Script
Apr 15 Continuation-Passing Style Extra Credit: E.C. 2 Notes Script
Apr 18 Holiday - No Class
Apr 20 Logic Programming Due: Assgn. 10 CIPL, Ch 15 Notes Script
Apr 22 Concurrent Programming CIPL, Ch 14
LYSE
Notes Script
Apr 25 Metaprogramming Notes Script
Apr 27 The Paradox of Computation Due: Paper Notes Script
Apr 29 Final Review Due: All Extra Credit
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

Other Programming Paradigms

Programs About Programs