CS 5010: Module 01
Module Overview
This week we will learn about the Function Design Recipe, which is a technique that will help you to achieve the goal of this course: writing beautiful programs.
The Function Design Recipe has six steps:
- Data Design
- Contract and Purpose Statement
- Examples and Tests
- Design Strategy
- Function Definition
- Program Review
We will spend most of the week (Lessons 1.2-1.5) on Step 1, Data Design. We will write down a recipe for doing a data design, and we will learn about templates, which allow us to process data by simply filling in the blanks.
We will learn about the other steps of the design recipe, and we will learn about the first of our design strategies, combining simpler functions.
Course Map

Readings
Read the Prologue and Part I from our textbook, which introduce you to programming in Racket's Basic Student Language, using fixed-size data.
Resources
- Examples for Module 01 The example programs for each week will be found in the Examples section of this website. Please take note of the License, which sets out the terms under which you may use these files.
Lessons
- Lesson 1.1: The Function Design Recipe
- Lesson 1.2: The Kinds of Data
- Guided Practice 1.1
- Lesson 1.3: The Data Design Recipe
- Lesson 1.4: Templates
- Guided Practice 1.2
- Lesson 1.5: Finishing the Data Design Recipe
- Lesson 1.6: Contracts, Purpose Statements, and Examples
- Lesson 1.7: Design Strategies 1: Combine Simpler Functions
Activities
Please do the following activities:
- If you have not completed the pre-semester checklist, please do so now.
- Do the rest of the exercises in Lesson 0.4: An Introduction to Racket
Problem Set
Problem Set 01 is due Monday, 23 January.