Here’s our deck from the international Agile2011 conference, where we are presenting tomorrow. Our talk is called ‘Teaching Kids Programming with Agile Practices.’
"About Teaching Kids Programming (TKP)
TKP is a group of methods and courseware designed by technical volunteers to introduce children to programming. TKP courseware is free and open source. The courseware is based on Agile programming techniques (in particular TKP courseware and teaching methods use many practices from the XP world) and on the Intentional Method. Llewellyn Falco and Lynn Langit founded TKP in 2010, combining their years of experience teaching both kids and adults to program. The materials are targeted for children ages 10 and up. The only prerequisite is that the children have basic keyboarding skills.
Using Agile Practices to Teach Programming
TKP instructional design is based on many Agile (and XP) best practices and principals. These include use of core Agile practices in the teaching (or delivery) of TKP courses. TKP courseware includes examples of using these practices in classroom situations and suggestions on how best to incorporate these practices into teaching children to program. They include the following:
- Pair Programming – both the students and the teachers work in pairs to learn / teach TKP material
- No Big Upfront Design – teachers are advised how to guide the student pairs to writing and executing their first program within 5 minutes of the start of each TKP class.
- Test-driven development - courseware is written so that students can be guided to translate one line of English into one line of code and then to run (or execute) the result, so that pairs can observe whether they have successfully completed the translation. This is a type of visual test-driven development. Also the TKP teaching method advocates deleting the original English comments AFTER the line has been properly translated.
- Sustainable pace – careful attention is paid by the instructors to the pace of the class. Student pairs are rotated (within pair) either on task completion or on a regular time interval (such as 5 minutes). Pairs are also switched at the end of each lesson (if that day’s class is a multi-lesson class), to further facilitate knowledge transfer.
- Rapid Feedback. In addition to the immediate visual feedback that the children get after they run each line of code in the recipe, the TKP group advocates the use proctors (helpers) in the classroom to keep the pairs on pace. In addition to live proctors, the TKP courseware includes a Virtual Proctor, which provides visual feedback from all of the pairs to the instructors.
- Craftsmanship – each recipe or lesson contains several sections (see below ‘About TKP Courseware’), so that students can master concepts taught, APIs and tools before being introduced to new concepts, tools and APIs.
I really dig the idea of teaching kids to code using agile practices. Start them early and start them right... Plus free courseware is cool too. :)