Writing Recipes

We put a great deal of effort into creating recipes.  We test and iterate constantly, so that kids will have a great experience learning.  Some of the core concepts we try to follow when creating recipes are as follows:

1) Recipes should be FUN and ENGAGING
2) Recipes should be able to be completed in 15-20 minutes
3) Recipes should be around 20-40 lines of English (and no longer)
4) Recipes should teach 1-3 core programming concepts only
5) We create both the recipe and the variation (often also the quiz) when we create a new recipe
6) The process goes as follows:

–get an idea

–write some SmallBasic, i.e. see what is there in the language now

–write some new (or wrapped objects) in the SmallBasicFun (extensions), such as ‘Tortoise.SetPenColor’ to encapsulate ‘ProgramWindow.PenColor’ to make recipe more discoverable

–write documentation, including examples for new objects, SmallBasicFun.XML

–write the English comments

–test the recipe with kids

–publish the updated extensions on CodePlex

–publish the new recipe

–create teacher training materials (cheat sheets [answer keys] and videos)

–add information to this website about the how to teach the recipe

Recipe Writing Guidelines (for the English Comments) – thanks to contributor Katrina Owen for this guide

‘formatting notes
‘add empty lines after each instruction
‘add two empty lines before starting a recipe
‘add spaces after the apostrophe to indent comments
‘indent subroutines four spaces
‘indent loops four spaces
‘always end loops with ‘Repeat
‘start a subroutine recipe like this:
‘————- Recipe for SomeRecipeName
‘end a subroutine recipe like this:
‘————- End of SomeRecipeName recipe
‘try for english, not code, e.g. instead of
‘ Set the PenColor to “ReallyBrightRed”
‘use
‘ Change the color of the line the tortoise draws to really bright red
‘corollary:
‘do not capitalize object names in comments
‘do not put scare quotes around color names
‘lower case color names (and do not string them together)
‘start variable names with ‘the current x is y’
‘always format program at the end to get rid of whitespace on blank lines