CS 5010 Module 01

Module Overview

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:

  1. Data Design
  2. Contract and Purpose Statement
  3. Examples and Tests
  4. Design Strategy
  5. Function Definition
  6. 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.

Course Map

course map, week 1


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




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

The two meetings of CS 5011 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

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: Mon Jan 11 2016