How to Setup a TKP Classroom

It’s easy to teach a TKP class, to do so you just need a few things:

1) Kids – we teach kids ages 10 and up.  We teach 6-30 kids at a time.  Kids do their work as pairs.  One kid types on the keyboard and the other one tells that kids what to type.  They switch their seats (physically) on task completion or every 5 minutes.  We PREFER classes (i.e. a invited class) rather than open enrollment (i.e. open event) because in a class, the kids are the same ages and are used to working together as learners.  We have found open enrollment events to provide too broad of age range and not enough focus on learning.

2) Teachers & Proctors – we try to teach each class with two teachers (to model the pairing that we ask the kids to do).  We like to have one live proctor for each 10 students.  So a class of 30 would ideally be served by two teachers and three proctors.  We also set up the Virtual Proctor in classes of 10 of more (we explain how to set this up later on this page).  Anyone can teach TKP courseware!  We have had school teachers and/or programmers teach.  We have teacher training materials on this site (see links in the ‘Teacher’s section).

3) Classroom – we teach in classrooms big and small.  At minimum you’ll need one chair for each kid.  You will also need a projector.

There are two styles of teaching – the one you choose depends on your resources.  The simplest is rondori – it means ‘sit in a learning circle’.  If you don’t have computers for each pair, then you can arrange the chairs in a circle and have the first pair use the instructor computer to complete the first task.  The rest of the students join in and the kids rotate after each task.  This way everyone gets a turn.  The only set up is on the instructor computer.

The second style of teaching requires one computer for each pair.  So if you have 30 kids, you need 30 chairs and 15 computers.  The instructor will teach from the front of the room, so it’s best if all student desks face forward (toward the instructor’s projector).  If you have a small class, an alternate to this is to bring a large, external monitor to plug in to the intructor machine (in lieu of using a projector).

4) Computers – we teach SmallBasic from USB drives. The PCs must have the .NET framework 3.5 SP1 or greater on them (Windows XP, Windows Vista or Windows 7).  You can install SmallBasic (and our SmallBasic extensions) if you wish (instructions and download links immediately below this section).   We prefer to run SmallBasic from a USB drive, rather than installing it.  Another advantage is that the students can take home their environment (and their work) and can continue their learning after the class this way.  Instructions for how to create a runnable USB drive are below.

Setup for SmallBasic TKP Courses

– one PC with .NET Framework 3.5 SP1 or better (Windows XP or better) for each TWO kids

– Microsoft SmallBasic version 0.9 or better (FREE) – http://www.microsoft.com/downloads/

– Our SmallBasic extensions (CodePlex – FREE) – http://extendsmallbasic.codeplex.com/

– Our SmallBasic recipes (wiki – FREE) – http://teachingkidsprogramming.org

Watch this 5 minute video to see how to set up SmallBasic to teach our recipes:

Tip: You can run SmallBasic and the extensions from a USB drive (just launch the *.exe) to avoid installing on the student’s machines, c-instructions in the next section for how to set this up and do this.

 

TKP Tips: Making a SmallBasic runnable flash drive
image

We discovered a shortcut that makes teaching #TKP courseware with SmallBasic even easier.  You can put everything you need for each pair of students on a single flash drive – SmallBasic, SmallBasic Extensions, Courseware, etc… AND you can run SmallBasic itself directly from this drive.  So there’s no need to install anything on a the machine you are running on.  The machine just needs to have .NET Framework 3.5 w/SP1 or greater (Windows XP, Windows Vista or Windows 7).

There are two possible ways to do this, The simplest is to unzip our drive, get the SmallBasicFlashDrive.zip file here. Simply unzip this file onto a flash drive, plug it in, click SB.exe and start.  If you’d like a more detailed explanation keep reading below.

Here’s what you need to do to set it up:

1) Download SmallBasic onto a flash drive.
2) Install it on the Flash Drive
3) Download the SmallBasic extensions (from CodePlex) onto the Flash Drive and unzip
4) Copy the unzipped files (Proctor.txt, SmallBasicFun.dll, SmallBasicFun.XML) into the ..Microsoft\SmallBasic\lib folder as shown below:
image

Now you can launch SmallBasic directly from the Flash Drive.  To do so you just need to follow the direction below:

1) Double-click the SB.exe icon as shown highlighted below

image
image

In the flash drive you will find some other goodies in the included ‘Resources’ folder that you may want to use:

1) Recipes – a zip file that contains all 14 recipes – just unzip and enjoy!
2) Slides – a pdf file that contains slides covering core programming concepts, such as ‘For’ loops, ‘If’ statements, etc…
3) More – inside of the unzipped Recipes, we’ve added our new Homework exercises

These are shown below:

image

Be sure to unzip the ‘recipes.zip’ file to work with all of our recipes.

About the Virtual Proctor

WhyLive proctors aren’t enough

As we’ve taught kids to program around the world, we found that having a live proctor for each 10 kids (or 5 pairs, as we have the kids pair program while learning), was essential to keeping the hands-on coding activities on track and on pace.  Despite our best efforts to keep the pairs coding though, we found ourselves as teachers having to ‘go around’ to see where the kids were at during our live events.  This resulted in a slow-down of the rate we could teach.

To correct this, we came up with idea of a additional, virtual proctor.  The concept was to be able to see what was on each pair’s screen at all times from one central location in the classroom.

WhatEnter the Virtual Proctor

Using the extensibility of SmallBasic, we wrote the capability to capture the screen on each successful ‘Run’ (as to a screenshot) to a central location.  This location is simply a shared folder on the classroom network.

Using the Windows Explorer folder ‘Extra Large icon view’, we can then see the latest execute output, each time the pair presses F5.  Because this is just the view of the contents of a shared folder, multiple viewing machines can be used in larger classes.  In addition to helping the teachers to see where the students are at, these central viewing stations also can help the proctors to see which pairs need help.  You can see from the screenshot below that each screen shows the network name of the computer initially.

Teaching Tip: Use post-its to label the network computer name on the front and back of each pair’s monitor.  That way teachers and proctors can quickly see where the pair physically is after they notice that a pair is ‘behind’ or ‘off track’ on the virtual proctor screen.

Pentagon Crazy Recipe Progress

Also we wrote the extension to rename the output from unique Computer Name to a new name on second execute from each machine.  The name becomes a generated time-stamp file name. The last screenshot is moved to a folder named ‘Archive’.  Path information for the Archive folder is below in the “Set it Up’ section of this blog post. In this way we can view the last execute result in one window, but we can also look at the history of executes as screenshots.

Below is a screenshot showing history from a class.  We can see the progress in the variation from the SQUARE recipe to the variation.

Virtual Proctor output - variations

HowHow to set it up

To use the Virtual Proctor in your classroom, you’ll need to perform the following configurations steps:

1) Download and install our SmallBasic extensions from CodePlex onto each pair’s machine (or you can just run SmallBasic including the extensions from a USB drive)

2) Create a shared folder on the classroom network.  Set the permissions on the share to be ‘Everyone Read/Write’.

3) Edit the path on the Proctor.txt file (from the extensions) to reflect the path to the shared folder location for your classroom.  For example, change ‘c:\stuff.{0}.png’ to something like ‘\\myMachineName\myShareName\{0}.png’.  The edited ‘Proctor.txt’ file must be in the ‘lib’ folder of each pair’s SmallBasic installation as shown in the screenshot below.

Teaching Tip: Remember to change the path information on EACH student’s machine in the Proctor.txt file.

Virtual Proctor setup

4) The Virtual Proctor currently works with SmallBasic code that uses the ProgramWindow or GraphicsWindow.  All of our recipes (except HiLow) use of these windows.  For more information about how we wrote the ProgramWindow object (which is part of our SmallBasic Extensions – see the CodePlex documentation – here).

5) **Update**The Virtual Proctor is now (as of v.21 of our Extensions on CodePlex) enabled to work AUTOMATICALLY on ProgramWindow.closing.  There is no more need for kids to add any lines of code.  This also requires the latest version of SmallBasic (v 0.9).,

OtherUnintended Benefits

In addition to helping us to teach kids to program better, the virtual proctor has resulted in several unanticipated benefits to kids learning to program.  These include the following:

1) More concepts taught – keeping better control of the classroom pace via the central monitoring results in better general efficiency around teaching.

2) More Variations attempted – seeing their work, pairs ‘get inspired’ to try to code more variety during the variation period of each recipe.  Sometimes we’ve even projected the Virtual Proctor results so that all kids can see them. This usually causes a competition between the pairs to ‘code that one!’

2) Pride in coding – after seeing the Virtual proctor, kids asked us for color (paper) print outs of their work.  Kids LOVE taking home a printed piece of paper to show-off their work.

3) Fixing recipes / teaching better – we can ‘see’ where kids get stuck and/or go wrong as they try to code our recipes.  The history capture feature is particularly helpful for teachers to understand the path the kids take to get the recipes completed.  We have re-written recipes and also changed the way or order we have taught some recipes because of what we have seen by reviewing the Virtual Proctor output history.

The screen below shows output from the Virtual Proctor around one of our quizzes.  Notice how the feedback (shape) changes after the kids translate (and run) each question.  Also notice what happens when things go wrong (i.e. failed question) in the middle of the series.  Note also that I’ve highlighted the Folder View icon in the upper right and set it to show ‘Extra Large Icons.’

Quiz output from Virtual Proctor

Future directionsThere’s more to do

We love the Virtual Proctor and use it when we teach nearly all of the time.  To that end we are considering some improvements to its functionality.  These include the following:

1) Including the SmallBasic source code on the capture.  This will help the kids to remember HOW they coded up a particular result.  This is particularly important when they work with variations.  These variations may be from us, but just as often they come from the kid’s own creativity and talent.

2) Including the SmallBasic program ID on the capture.  We encourage kids to publish their work.  When they do the must remember to write down the Program ID, because that information is currently not searchable.  It’s easy to forget to record that ID, so putting it on the Virtual Proctor capture would help kids to re-use and to share their code.

SmallBasic Publish Dialog Box Example

3) In including the SmallBasic skills on the capture. Create a ‘Certificate of Completion’ using the Virtual Proctor capture at various knowledge points in our course library.  Some thing like, ‘You’ve coded the following skills, such as Loops, Conditionals, Arrays, etc…’ included with the picture, source code and ID.

4) Improve the Virtual Proctor integration with SmallBasic.  We envision automatically running the Virtual Proctor for all executing SmallBasic programs.  That is we’d like to raise the level where we ‘hook into’ SmallBasic, so that kid’s don’t have to manually add ‘Tortoise.Approve()’ at the end of each recipe and/or quiz to have their content added to the Virtual Proctor output.

Try It OutGive us feedback

Are you using our Virtual Proctor when you teach kids to program?  How is it working out?  What do like best? least?  Let us know.