The following are the recommendations of the research study, along with my thoughts and reactions to these recommendations and how to apply them to teaching young kids 8-16 programming:

**1. Space learning over time. Arrange to review key elements of course content**

**after a delay of several weeks to several months after initial presentation.**

I would say I am not good at this, I tend to cram a lot of learning into a small period of time. I need to think about this and how to incorporate review of key concepts.

**2. Interleave worked example solutions with problem-solving exercises. Have
**

students alternate between reading already worked solutions and trying to solve

problems on their own.

While I have thought about about providing kids "good literature" to read (aka, well written pieces of code) I rarely do it in practice. Instead I try to find kids who write good code (or better code) and ask them to show that code to the class while complimenting them on what I see are the important lessons for all to learn from that code and the way it evolved.

Now how do you do this with "Free-Range Students" (not sure what is meant by that, but I assume students outside of a traditional classroom setting who are self learners) is a much harder challenge. One possible method would be to do an "Etoy Challenge" type project.

"Etoys Challenge" is a Tutorial embedded in the Etoys image where a select set of scripting tiles are available and visible for the learner to solve a particular problem/challenge. So after they complete the various challenges (drawing the triangle, square and pentagon), I could have the Etoy project show them their different scripts all on the same page to facilitate easier comparison. I would then ask them "What's the same about these scripts and what is different". Still not all kids will get this and a teacher/mentor to guide them would be needed.

Now the report did not mention (at least not in this section, but I guess they did in a way in other recommendations) what kinds of "worked examples" work best. For example in their report they show a Worked Algebra problem:

Below is an example solution to the problem:

“Solve 12 + 2x = 15 for x”

Study each step in this solution, so that you

can better solve the next problem

on your own:

12 + 2x = 15

2x = 15-12

2x = 3

x = 3/2

x = 1.5

Now using Algebra as an example (because it is a lot easier for me to explain my point using an Algebra example than to come up with a programming example) What I would do if teaching this and incorporating examples is to:

- Show there is more than one way to solve the problem. "you don't really know something unless you know it multiple ways" - Marvin Minsky
- Make the invisible visible and highlight key concepts, such as balance and reduce to drive home that fundamental method. Here I might use visuals such as a balance scale.
- Provide opportunities for concrete practice in solving the problem (perhaps a virtual interactive showing a balance scale, with UI elements to add/subtract/... to the scale pans.

Items 2 and 3 are inline with recommendations in the report. I did not see item 1 mentioned and would be curious if there is research on this.

Hopefully we will learn in the class about some good worked programming examples we can use.

There are 5 more recommendations from the report which I will think about and blog about later, but why wait read the report, its well worth your time.