Lectures

Date Topic Do Read Note
Jan 16 MLK Jr Day No class
Jan 18 What are Programming Languages? CIPL, Ch. 1
OpSem, Ch. 1
Jan 20 What Can a Computer Do? Begin: Assgn. 1 CIPL, Ch. 2
Jan 23 Induction Primer PLLC, Ch. 2
OpSem, Ch. 2
Jan 25 Syntax & Grammars CIPL, Ch. 4.1
OpSem, Ch. 3
Jan 27 Big-Step Operational Semantics OpSem, Ch. 4
Jan 30 Small-Step Operational Semantics Due: Assgn. 1 OpSem, Ch. 5
Feb 1 Putting Evaluation into Context Begin: Assgn. 2 OpSem, Ch. 5
Feb 3 Alpha, Beta, Eta CIPL, Ch. 4.2
Feb 6 A Variable by Any Other Name Due: Assgn. 2 CIPL, Ch. 4.2
Feb 8 Lambda Calculus in Small Steps Begin: Assgn. 3 PLLC, Ch 4.1&4.2
Feb 10 Lambda Calculus in Big Steps PLLC, Ch 4.1&4.2
Feb 13 Intro to Ruby Due: Assgn. 3 Intro to Ruby
Why's, Ch. 3
Notes Script
Feb 15 Classes & Objects Begin: Assgn. 4 CIPL, Ch 10
Prog. Ruby, Classes
Notes Script
Feb 17 Compositional Interpreters Notes Script
Feb 20 President's Day No class
Feb 21 List Processing Due: Assgn. 4 CIPL, Ch 3&4.4 Notes Script
Feb 22 Higher-Order Functions Begin: Assgn. 5 CIPL, Ch 3&4.4 Notes Script
Feb 24 Algebraic Data Types CIPL, Ch 5 Notes Script
Feb 27 Syntactic Interpreters Due: Assgn. 5 Notes Script
Mar 1 The Extensibility Matrix Begin: Assgn. 6 Notes Script
Mar 3 MIDTERM EXAM
Mar 6 Spring Break No class
Mar 8 Spring Break No class
Mar 10 Spring Break No class
Mar 13 The Rules of Types Due: Assgn. 6 CIPL, Ch 6
Static Semantics
Mar 15 Abstraction & Polymorphism Begin: Assgn. 7 CIPL, Ch 6
Mar 17 Type Checking & Inference Extra Credit: E.C. 1 CIPL, Ch 6 Notes Script
Mar 20 Variable Binding Due: Assgn. 7 CIPL, Ch 7
Mar 22 Static & Dynamic Scope Begin: Assgn. 8 CIPL, Ch 7
Mar 24 Implementing Recursion CIPL, Ch 7
Mar 27 Abstract Machines Due: Assgn. 8 CIPL, Ch 8
Mar 29 Closures Begin: Assgn. 9 CIPL, Ch 8
Mar 31 Stacks & Machines CIPL, Ch 8
Apr 3 Guest Lecture: Prof. Harper Due: Assgn. 9
Apr 5 Type Theory & Safety Begin: Assgn. 10
Apr 7 Variable Lookup Extra Credit: E.C. 2 CIPL, Ch 8
Apr 10 No Class
Apr 12 Effective Machines CIPL, Ch 8 Notes Script
Apr 14 Programming with Continuations CIPL, Ch 15 Notes Script
Apr 17 Continuation Passing Style Due: Assgn. 10 Notes Script
Apr 19 Metaprogramming Notes Script
Apr 21 The Paradox of Computation
Apr 24 Logic Programming CIPL, Ch 15 Notes Script
Apr 26 Concurrent Programming CIPL, Ch 14
LYSE
Notes Script
Apr 28 Final Review Due: Paper
May 1 Final Submission Cutoff Due: Everything
May 1 - May 5 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