UBCx: How to Code: Simple Data
| Week | Module Name | Lectures | Time to complete | Practice Problems | Quiz |
|---|---|---|---|---|---|
| Overall learning goal | |||||
| 1 | Beginning Student Language | 8 | 5-8 Hours | 4 | Self-Assessed Design Quiz |
| Learn to program with the core of the programming language used throughout the course. | |||||
| How to Design Functions (HtDF) Recipe | 6 | 4-7 Hours | 3 | ||
| Learn to use the HtDF recipe to design functions that consume simple primitive data. | |||||
| 2 | How to Design Data (HtDD) Recipe | 12 | 5-8 Hours | 3 | Self-Assessed Design Quiz |
| Learn to use the HtDD recipe to design data definitions for atomic data. | |||||
| 3 | How to Design Worlds (HtDW) Recipe | 7 | 3-5 Hours | 1 | Self-Assessed Design Quiz |
| Compound Data | 3 | 4-6 Hours | 3 | ||
| Learn to use the HtDW recipe to design interactive programs with atomic and then compound world state. | |||||
| 4 | Self-Reference | 7 | 5-7 Hours | 4 | Multiple Choice Quiz |
| Learn how to use well-formed self-referential data definitions to represent arbitrary sized data. | |||||
| Reference | 3 | 4-6 Hours | 2 | ||
| Learn to predict and identify the correspondence between references in a data definition and helper function calls in functions that operate on the data. | |||||
| 5 | Naturals | 2 | 3-4 Hours | 2 | Self-Assessed Design Quiz |
| Design an alternate data definition for the natural numbers, and learn to write functions using this new data definition. | |||||
| Helpers | 6 | 6-9 Hours | 1 | ||
| Learn a set of rules for designing functions with helper functions. | |||||
| 6 | Binary Search Trees | 6 | 5-6 Hours | 3 | Multiple Choice Quiz |
| Design a data definition for Binary Search Trees, and learn to write functions operating on BSTs. | |||||
| Part 2 of the course, Complex Data covers arbitrary-arity trees, functions consuming two complex types, the use of local expressions to improve program clarity and/or performance, abstraction, generative recursion, search, accumulators, and graphs. |