Tests

Date Exam
Oct 15 Midterm Exam
Final Exam

Homework

Due Assignment
Sep 10 Assignment 0

Lectures

Date Topic Do Read Note
Sep 1 What Is a Programming Language? CIPL, Ch. 1 & 2
OpSem, Ch. 1
Sep 3 What Can a Computer Do? CIPL, Ch. 1 & 2
OpSem, Ch. 1
Sep 8 Induction Primer PLLC, Ch. 2
OpSem, Ch. 2
Sep 10 Syntax & Grammars Due: Assgn. 0 CIPL, Ch. 4.1
OpSem, Ch. 3
Sep 15 Big-Step Operational Semantics OpSem, Ch. 4
Sep 17 Small-Step Operational Semantics Due: Assgn. 1 OpSem, Ch. 5
Sep 22 Alpha, Beta, Eta CIPL, Ch. 4.2
Sep 24 Lambda Calculus in Small Steps Due: Assgn. 2 PLLC, Ch 4.1&4.2
Sep 29 Lambda Calculus in Big Steps PLLC, Ch 4.1&4.2
Oct 1 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 6 Compositional Interpreters Notes Script
Oct 8 Functional Programming Due: Assgn. 4 CIPL, Ch 3&4.4 Notes Script
Oct 13 Monday Schedule No class
Oct 15 MIDTERM EXAM Study Guide
Oct 20 Algebraic Data Types CIPL, Ch 5 Notes Script
Oct 22 Syntactic Interpreters Due: Assgn. 5 Notes Script
Oct 27 The Extensibility Matrix Notes Script
Oct 29 The Rules of Types Due: Assgn. 6 CIPL, Ch 6
Static Semantics
Nov 3 Subtyping & Polymorphism CIPL, Ch 6
Nov 5 Type Checking & Inference Extra Credit: E.C. 1 CIPL, Ch 6 Notes Script
Nov 10 Static & Dynamic Scope Due: Assgn. 7 CIPL, Ch 7
Nov 12 Abstract Machines CIPL, Ch 8
Nov 17 Closures & Stacks Due: Assgn. 8 CIPL, Ch 8
Nov 19 Logic & Concurrent Programming
CIPL, Ch 14
LYSE CIPL, Ch 15
Notes Script 1
Notes Script 2
Nov 24 Effective Machines Due: Assgn. 9
Extra Credit: E.C. 2
CIPL, Ch 8 Notes Script 1
Notes Script 2
Nov 26 Thanksgiving No class
Dec 1 The Paradox of Computation Notes Script 1
Notes Script 2
Dec 3 Flex day Due: Assgn. 10
Dec 8–10 Final Review
Dec 14 Final Submission Cutoff Due: Everything
FINAL EXAM 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