This week we will learn about the Function Design Recipe. The Function Design Recipe is a technique that will help you achieve the goal of this course: to write beautiful programs.

The Function Design Recipe has 6 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 wil learn about templates, which enable 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.

Prologue and Part I from the textbook, which cover an introduction to programming, fixed-size data, and the Basic Student Language in Racket.

- 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

- If you did not complete the activities from Module 00, please complete them now.
- Do the rest of the exercises in Lesson 0.4 An Introduction to Racket

The two meetings of CS 5011, which start next week, will act as supervised laboratories where you can work on this assignment, but please do as much as you can before coming to lab.

**Problem Set 01:**
The goal of this problem set is to give you exercise with the systems
we will use in CS 5010, and to make sure you know how to commit your
solutions to the CCS github.

Submit your homework following the instructions in Submitting Your Homework, and include the required deliverables.

Last modified: Thu Aug 13 16:23:36 Eastern Daylight Time 2015