Reading

Do the listed reading before the date of the listed class.

Date

  

Lecture Topic

  

To Read

  

Misc

Jan 19

  

Introduction

  

(No reading)

  

Jan 21

  

Design Recipe

  

Design Recipe 1-4

  

Code

Jan 23

  

Design Recipe, Lists

  

Design Recipe, 5

  

Code

  

  

  

Jan 26

  

Map, Filter, and Fold

  

Design Recipe 6, 7

  

Select/Combine

Jan 28

  

Functional BBSTs

  

Design Recipe 8, 9

  

Screen notes

Jan 30

  

n-ary Trees and Mutual Recursion

  

PAPL 5.2 (optional)

  

code and queues

  

  

  

Feb 2

  

ASTs and s-expressions

  

PAPL 12, 13

  

Screen notes

Feb 4

  

Conditionals, Values, and Desugaring

  

PAPL 14

  

Screen notes

Feb 6

  

Functions via Substitution

  

PAPL 15.1

  

Code and Survey

  

  

  

Feb 9

  

Deferred Substitution

  

PAPL 15.2

  

Screen notes, Dicts

Feb 11

  

Higher-Order Functions

  

PAPL 15.3

  

Code

  

Scope Subtleties

  

PAPL 15.4, 15.5

  

Screen notes

  

  

  

Feb 16

  

Recursion, Mutation Intro

  

PAPL 20, through 20.3

  

Screen notes

Feb 18

  

Interpreting Mutation

  

Read (or reread) ↑

  

Notes, PyRepl

Feb 20

  

Variables

  

PAPL 20.4, 20.5

  

Screen notes

  

  

  

Feb 23

  

State and Equality

  

PAPL 10.6

  

Notes, PyRepl

Feb 25

  

Typing Basics

  

PAPL 16, through 16.3

  

Notes

Feb 27

  

Typing Functions

  

PAPL 16.4, 16.5

  

Notes

  

  

  

Mar 2

  

Typing Recursion, Soundness

  

PAPL 16.6, 16.7, 17

  

Notes

Mar 4

  

Inference: Constraint Generation

  

PAPL 19, through 19.2.1

  

Notes

Mar 6

  

Inference: Constraint Unification

  

Rest of PAPL 19

  

Notes

  

  

  

Mar 9-13

  

(Spring Break)

  

  

  

  

  

Mar 16

  

Parametric Polymorphism

  

PAPL 18

  

Notes

Mar 18

  

More Polymorphism

  

PAPL 20.6

  

Notes

Mar 20

  

Objects: Basics

  

PAPL 21.1, 21.2, 21.3

  

Notes

  

  

  

Mar 23

  

Objects: Inheritance and Mixins

  

PAPL 21.4, 21.5

  

Notes

Mar 25

  

Objects: Typing Basics

  

PAPL 21.6

  

Notes

Mar 27

  

Objects: Inheritance and Subtyping

  

Read (or reread) ↑

  

Notes

  

  

  

Mar 30

  

Objects: Nominal vs Structural

  

Cook ’90 (Optional)

  

Notes

Apr 1

  

The Expression Problem/Visitors

  

(No reading)

  

Code

Apr 3

  

Representation Decisions

  

PLAI 12

  

Notes

  

  

  

Apr 6

  

Explicit Contexts

  

(No reading)

  

Notes

Apr 8

  

Stacks and PTC

  

(No reading)

  

Notes

Apr 10

  

Manual Memory Management

  

PAPL 23 through 23.3

  

Notes

  

  

  

Apr 13

  

Garbage Collection

  

PAPL 23 through the end

  

Notes

Apr 15

  

GC Wrapup, Control Intro

  

(No reading)

  

Notes

Apr 17

  

Control Operators

  

PAPL 21.1

  

Notes

  

  

  

Apr 20

  

Continuations

  

PAPL 21.2

  

Notes

Apr 22

  

CPS

  

PAPL 21.3

  

Notes

Apr 24

  

CPS + Applications

  

PAPL 21.4 to the end

  

Notes, Video

  

  

  

Apr 27

  

Capability Security

  

  

Notes

Apr 29

  

Green Threads

  

  

Code