Lectures

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

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