For Teachers

Teaching Tips by Section of Recipe

Each recipe consists of the following parts and key components:
*) Classroom Setup – Setting up to teach TKP is easy.  We have LOTS of tips and shortcuts on how to set up your classroom on this page.  There is one, single classroom setup configuration to teach ALL of our courseware in Microsoft Small Basic.  To teach with Java or C#, you can still read all of our classroom tips, but the installation and code details will vary slightly from the Small Basic directions.

1) Recipe – teachers should have students read the lines of English, teachers should NOT tell the (code) answer, rather teachers SHOULD encourage use of the editor (Intellisense exploration), reading of included documentation and examples.  See ‘Teaching Tips’ further down this page for teaching methods and techniques.  Also check out our short videos (<5 minutes each) on the courseware segments.  All videos include teaching tips!

2) Recap – teachers should introduce programming concept words, ex. objects, methods.  teachers should point out ‘help’ from editor, i.e. Intellisense.  Teachers should make mistakes, such as missing arguments and show how to read error messages.

3) Variation – teachers should ask students to name the properties of the completed recipes shape, i.e. line length, line width, etc…and should write on the white board as a grid (see example for SQUARE recipe below).  Teachers should should guide students from simple changes, i.e. change variables from one constant value, such “blue” to “red”, then to complex changes, such as Colors.Red to Colors.GetRandomColor().  Check out this demo of the variation technique – here.


4) Quiz – Teachers should explain the format, i.e. translate one line, then run it to see if you got it right.  Teachers should guide pairs to discovering the answer by having them read the line of English if stuck, use editor to explore and to read the documentation (including the examples).  Teachers should encourage kids to run the quiz after they’ve translated each question.  Teachers should remind pairs if stuck to use ‘UNDO’ to get back to a working state.

5) Homework – Teachers should run the first couple of homework questions as a group.  Teachers should encourage pairs to change ONLY the ‘___’  Use the same steps as for the Quiz to facilitate leading the kids through the Homework excercises.

6) Xtras – some recipes have ‘mini-recipes’ included, such as the SPIRAL, which we use when teaching the SQUARE.  These are 5-10 minute, fill-ins.  They give the pairs who finish the guided work (quizzes, homework) before others something else to do.  We usually have the pairs work on these ‘fill-ins’ on their own during guided teaching time.

More Help for Teachers

Slides – We created a simple slide deck, with some core language concepts, such as ‘For’ loops, ‘If-Then-Else’ constructs, etc…you may want to use these decks with either the SmallBasic or with the Java versions of our courseware.  We are also posting the decks here for you to review or use.

Cheat Sheets – we have published ‘answer keys’ for each recipe.  An answer key is a completed recipe, i.e. all English comments translated to SmallBasic AND has the line number order that we recommend you teach the recipe in.  That is teach line 6 first, line 8 second, etc…The reason we do this is that the feedback loop for the kids is as short as possible.  It is our goal to write recipes where the kids can translate one or two lines of English into code and be able to run and see whether they have done this correctly or not.  Shown below is a screen shot of the cheat sheet for the first recipe (SQUARE)

How to teach videos – complete example for teaching all sections of these two recipes — SQUARE and HOUSES.   Currently we have also recorded short (around 5 min each) ‘how to teach’ videos for all core recipe section only (i.e. NOT for quizzes and some of the other parts of each lesson  — yet) in the library.  As we add more quizzes and homework for the various recipes, we will record ‘how to teach videos’ and post them on this site in each recipe section as we’ve done with the first two recipes (SQUARE and HOUSES).

Core Teaching Tips (for all Courseware)

Here is a slide deck covering general information about our courseware

Small steps

  • Translate the next line that you can see the result of execution – you will guide them through the recipes in the order that can SEE the results, NOT in 1,2,3 order.  All of our ‘cheat sheets’ (see recipe wiki) have suggested line orderings on the English lines for teaching, i.e. teach line 2 first, teach line 5 second, etc…
  • If a single line isn’t viewable, use ‘Fake it till you make it’ to allow interim translations  i.e. Place the Circle where the mouse is  (you don’t have a circle, which needs a radius, or a mouse)
    ShapeMaker.CenterShapeAt(ShapeMaker.CreateCircle(20), 20,20)  “ok, this puts a circle on the screen, now lets work on it being the correct circle, and using the mouse locations…”

Instructor typing

  • Always type *just* enough to show the documentation that would be the most helpful to the kids.
  • If they are looking for something that the tortoise should do, type
    <Tortoise.> so that the list of methods comes up on the side.
  • Give the kids time to explore the documentation.
  • Always wait until most of the pairs have got working code (look at virtual proctor results) before the instructor types out the code and runs it.
  • It’s ok to shut up for a while and let the kids work. No, really.
  • It’s great to occasionally make a mistake when the instructor types,either by typing exactly what the example/documentation says and then
    correcting it because what we need is slightly different (SetPenColor(“red”) / For i = 1 To 10), or to get something that doesn’t compile (e.g. during the recap, try typing
    Tortoise.Turn(left) and then when it doesn’t compile, point out the line number and the helpful error message, and then to the documentation on the side again).

Guide — don’t tell

  • Ask the kids to read the English lines out loud – use this technique frequently.
  • If kids are stuck, have them re-read the relevant line in English.
  • Exploration, have the kids use the arrows to figure out what to do. If they don’t know where to start Ctrl+Space will list all possibilities.
  • If someone asks “is this right?”, tell them “run it”.
  • If they want to know which method, point out the documentation.
  • Resist the instinct to tell them the right answer, but help them to keep moving.
  • Watch to see both members of the pair are contributing, if not, prompt the non-participating member of the pair to ‘jump in there’

Create save points

  • At least at the end of each recipe, everyone must save their work
  • If SmallBasic crashes on a pair’s computer, the instructor can PUBLISH what they have on their machine and have the pair import that ID to get them caught up to where the rest of the class is more quickly.


  • Go slowly, give kids time to digest.
  • Point out subtleties of the editor, the documentation, the logic, the shortcuts as you go.
  • Use this time to Explain the Concepts they have just Experienced.
  • Introduce Programming Lingo, .i.e for SQUARE say ‘nouns are Objects and are shown with Cubes; verbs are Operations and are shown with Wheels, etc…
  • This is a good place to do a scoping diagram (list Objects, Methods & Variables you have used)
  • Here is a good place to make mistakes on purpose, such as “Tortoise.SetPenColor (blue)” and have the kids tell you how to correct those mistakes


  • After introducing a concept, point out when the concept is used (use the getter on the color wheel, use the setter on the pen color)
  • You may also want to re-show that slide for absorption (i.e. Getters/Setters, Variable)


  • UNDO: Advise the use of undo first
  • FORMAT: re-format the code to see irregularities in indentation
  • METHODS (Operations): check parenthesis pairs and arguments — have the kids click on the method (word) in the editor and then read the documentation — particularly the example.
  • BLOCKS: check for EndFor, EndIf, etc… placement.
  • STRINGS: check for double quotes
  • FROZEN / CRASHED: just import the ID of the instructor (instructor do a quick PUBLISH from their machine) to get the student’s caught up
  • ENDLESS LOOPS: undo back to a runnable state, this is usually a result of putting a string in the arguments for a loop


  • Adjust “double-slow” pairs with fast kids; make sure to rotate a pair that falls behind continually.  Do not pair siblings.  If adults want to take the class, pair the adults together.
  • Backseat Drivers: if a kid who should be navigating is typing, then interrupt, and remind the kid that they can NOT touch the keyboard when they are navigating
  • Rotate teachers same as kids
  • Rotate every 5 minutes or at task completion
  • Make them stand up when rotating, this simple movement helps with energy and attention.


  • Kids should be typing within 3 MINUTES of class starting.  It is very important to start the class off with action quickly.
  • Ask the kids LOTS of questions, all of the time.  Don’t tell them, ask them – it’s critical to keeping them engaged.
  • Encourage barely controlled chaos — noise is good, students should be talking/laughing;
  • Durning Variations kids should be joyful.
  • If teaching after lunch, spend extra time pumping up the energy before sitting down.
  • Yoga stretches are HIGHLY recommended.
  • Switching seats should be a high energy activity.  Do NOT raise hands BEFORE doing this, as it lowers the energy in the room.