UBCx: How to Code: Simple Data

Introduction

Welcome

Syllabus

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.

1a: Beginning Student Language