1 | Introduction |

2 | Basic Data and Expressions |

3 | From Repeated Expressions to Functions |

4 | Introduction to Tabular Data |

5 | From Tables to Lists |

6 | Processing Lists |

7 | Introduction to Structured Data |

8 | Collections of Structured Data |

9 | Recursive Data |

10 | Tree-Shaped Data [EMPTY] |

11 | Interactive Games as Reactive Systems |

12 | Examples, Testing, and Program Checking |

13 | Functions as Data |

14 | Predicting Growth |

15 | Sets Appeal |

16 | [EMPTY] |

17 | Halloween Analysis |

18 | Sharing and Equality |

19 | Graphs |

20 | State, Change, and More Equality |

21 | Algorithms That Exploit State |

22 | [EMPTY] |

23 | Processing Programs: Parsing |

24 | Processing Programs: A First Look at Interpretation |

25 | Interpreting Conditionals |

26 | Interpreting Functions |

27 | Reasoning about Programs: A First Look at Types |

28 | Safety and Soundness |

29 | Parametric Polymorphism |

30 | Type Inference |

31 | Mutation: Structures and Variables |

32 | Objects: Interpretation and Types |

33 | Control Operations |

34 | Pyret for Racketeers and Schemers |

35 | Glossary |