Trade your Design Recipe with another group. Place this rubric and their Design Recipe side-by-side in front of you.

1 Go through the checklist in the left-hand column to assess their CONTRACT. Check boxes or leave them blank depending on what you observe.

2 Once you have examined and analyzed the CONTRACT, read the descriptive text (either “Wow!” or “Getting there”) and check whichever one more accurately describes the work in front of you.

3 If the Design Recipe you’re reviewing is “getting there,” provide some descriptive feedback to help the student fix their work.

4 Repeat the process for the remaining sections of the Design Recipe.


  • ❏ Wow!

  • ❏ Getting There…​

  • ❏ has correct function name

  • ❏ has correct amount of Domain data types

  • ❏ has correct data type(s) listed in the Domain

  • ❏ has correct data type listed for the Range

The Contract you’ve written tells us a lot about how to use the function. In fact, we can figure out how to use your function just by looking at the contract. You’ve included all essential information.

Something is missing from your Contract. It doesn’t provide everything needed to understand the function.

Here’s what you need to do:


  • ❏ Wow!

  • ❏ Getting There…​

  • ❏ describes what the function consumes and produces

  • ❏ describes how the result is computed, so that it can be combined to with the Contract to explain the Examples

The Purpose Statement is a concise and detailed restatement of the problem in your own words. It’s a helpful explanation of what’s happening in the problem.

Programmers and Mathematicians alike find it helpful to restate a problem in their own words.

Your restatement is missing the following:



  • ❏ Wow!

  • ❏ Getting There…​

  • ❏ have the correct function name

  • ❏ have inputs that differ across Examples

  • ❏ have the correct amount of Domain inputs

  • ❏ have the correct expressions for what the function produces, using the given inputs

  • ❏ have changeable parts circled and labeled

Your Examples not only help us to identify the pattern to define a function, they also let us double check that the functions we define do what we intend for them to do.

Your Examples do not help us to identify a pattern, or they don’t allow us to double check our functions.

Here’s how you can improve that:


  • ❏ Wow!

  • ❏ Getting There…​

  • ❏ has the correct function name

  • ❏ has the correct number, name, and order of variables (taken from the labels in the Examples section)

Your code correctly names the function, lists its variables, and states the expression to compute when the function is used!

Your Definition is missing something.

Here’s how to fix it:



These materials were developed partly through support of the National Science Foundation, (awards 1042210, 1535276, 1648684, and 1738598). CCbadge Bootstrap by the Bootstrap Community is licensed under a Creative Commons 4.0 Unported License. This license does not grant permission to run training or professional development. Offering training or professional development with materials substantially derived from Bootstrap must be approved in writing by a Bootstrap Director. Permissions beyond the scope of this license, such as to run training, may be available by contacting