CS 5010: Module 06
Module Overview
In this module we will learn about two related topics: branching structures, such as trees, and mutually recursive data definitions, such as lists of alternating strings and numbers. These two topics combine in the study of S-expressions. S-expressions are nested lists, such as the lists we write when we write Racket programs. S-expressions are one of the great inventions of modern programming. They were the original idea from which things like XML and JSON grew.
Course Map

Readings
Read Part IV from our textbook.
Resources
Lessons
- Lesson 6.1: Lists vs Structures
- Guided Practice 6.1
- Lesson 6.2: Trees
- Guided Practice 6.2
- Lesson 6.3: Mutually Recursive Data Definitions
- Guided Practice 6.3
- Lesson 6.4: Lists of Lists
- Guided Practice 6.4
- Lesson 6.5: Multi-Way Trees
- Guided Practice 6.5
- Lesson 6.6: Halting Measures for Tree-Like Structures
- Lesson 6.7: From Templates to Folds
- Guided Practice 6.7
Problem Set
Problem Set 06 was assigned on Monday, 20 February.