This page collects all course reference material by topic.

Contents:

General

Materials

  1. How to Program
  2. What’s in a Type
  3. When Things Happen

Exam Info

  1. Exam 1

By Topic

topic The Plan

← Tuesday, 3 September

Lecture:

How to Program

topic Racket Expressions and Bindings

← Tuesday, 3 September - Friday, 6 September

Lecture:

Code:

Reference: How to Program (Racket) notes up through Environments, Variables, and Bindings.

topic Functions

← Friday, 6 September

Lecture:

Code:

Reference: How to Program (Racket) notes sections

topic Pairs, Lists, and GC

← Tuesday, 10 September

Lecture:

Code:

Reference: How to Program (Racket) notes section Cons and Lists

topic Local Bindings and Scope

← Friday, 13 September

Lecture:

Code:

Reference: How to Program (Racket) notes section Local Bindings and Scope

topic First-class and Higher-order Functions

← Friday, 13 September - Tuesday, 17 September

Lecture:

Code:

Reference: How to Program (Racket) notes section First-class and Higher-order Functions

topic Tail Recursion

← Tuesday, 17 September - Friday, 20 September

Lecture:

Code:

topic Lexical Scope and Closures

← Tuesday, 24 September

Lecture:

Code:

topic Immutability and Referential Transparency

← Tuesday, 24 September - Friday, 27 September

Lecture:

What’s in a Type

topic ML and Static Types

← Tuesday, 1 October

Lecture:

Reference: ML Summary, Part 1

Alternative: Programming in Standard ML, Ch. 2-6

topic Datatypes, Patterns, and Parametric Polymorphism

← Friday, 4 October

Lecture:

Code:

Reference: ML Summary, Part 2

Alternative: Programming in Standard ML, Ch. 7-12, 16.

topic Patterns Everywhere

← Tuesday, 8 October - Friday, 11 October

Lecture:

Code:

Reference: ML Summary, Part 2

Alternative: Programming in Standard ML, Ch. 7-12, 16.

topic Currying and Partial Application

← Friday, 11 October

Lecture:

Code:

Reference: ML Summary, Part 3

topic Restricted Mutable State

← Friday, 18 October

Lecture:

Reference: ML Summary, Part 3

topic Abstract Types

← Friday, 18 October

Lecture:

Code:

Reference:

topic ASTs, Expression Interpreter

← Tuesday, 22 October

Reference:

This class session meets in the lab for a quick code tour and hands-on work with the Interpretive Dance assignment.

topic Abstract Types

← Friday, 25 October

Lecture:

Code:

Reference:

topic Type Inference

← Tuesday, 5 November

Lecture:

Code:

Reference:

ML so far:

  • Programming in SML Ch. 2-13 (everything except ADTs); 18, 19, 20, 21, 22, 32-34. (Includes extra features/details we do not cover)
  • ML Summary notes, parts 1, 2, 3, 4

topic Static vs. Dynamic Typing

← Tuesday, 5 November

Lecture:

When Things Happen

topic Delayed Evaluation, Streams, Laziness

← Friday, 8 November

Lecture:

Code:

Reference:

topic Parallelism

← Tuesday, 12 November - Friday, 15 November

Lecture:

Code:

Reference: Programming in Manticore, a Heterogenous Parallel Functional Language, sections 2.3, 4, 5.3. (Skim 1)

topic Concurrency

← Friday, 15 November - Friday, 22 November

Lecture:

Code:

Reference:

Why a Broader PL Mindset

topic Dynamic Dispatch

← Friday, 22 November - Tuesday, 26 November

Lecture:

topic Subtyping

← Tuesday, 26 November - Tuesday, 3 December

Lecture:

Code:

topic FP vs. OO Decomposition

← Tuesday, 3 December

Lecture:

topic Deductive Programming

← Friday, 6 December

Lecture:

Code:

Reference:

topic Approaching Problems as a Language Designer

← Tuesday, 10 December