<div dir="ltr">Hi Grant<div>
<br></div><div>In terms of making the ideas of recursion concrete, stimulus material such as Babushka dolls and simple fractals may be helpful, but I&#39;d be starting with simpler things than recursion which can challenge adults, let alone kids.  You can do a fair bit in racket before introducing set! and recursion.</div>


<div><br></div><div><div>How about Dr Seuss&#39;s Sneetches on the Beaches for introducing functional programming:</div><div><br></div><div><a href="http://jackcoughonsoftware.blogspot.com.au/2009/05/teaching-functional-programming-to-kids.html" target="_blank">http://jackcoughonsoftware.blogspot.com.au/2009/05/teaching-functional-programming-to-kids.html</a><br>

</div><div><br></div><div>Along-side the command-oriented approach of turtle graphics, I&#39;m playing with simple maths with my kids, basic define, and just showing them neat things.  Once we figure out how to do something simple in the REPL, my son will often want to &quot;turn it into a program&quot; (i.e. write a function).  After I showed some simple arithmetic and how quasiquote worked he generalised a more concrete example of mine to the following function:</div>

<div><br></div><div><div>(define (years-old year yob)</div><div>  `(You are ,(- year yob) years old))</div></div><div><br></div><div>Even running something as simple as this can be engrossing for a kid: you can now not only test by figuring out the age of various family members, but also find out what year you or they will be in -- say -- 2050.  Interesting to me was that my boy insisted on keeping year as an argument rather than hardcoding 2013 - an issue of programmatic style: specific vs general?</div>

<div><br></div><div>BTW: I think that really foundational skill in problem-solving is what the poet Keats referred to as &quot;negative capability&quot;, i.e. to keep calm in the face of not knowing what to do next. Programming is a great way to develop this.  I.e. it can be a vehicle for intra-personal (and by pairing) inter-personal emotional development, as well as one for intellectual extension.</div>

</div><div><br></div><div>More inspiration - secretly teach algebra to kids as young as five: <a href="http://www.dragonboxapp.com/">http://www.dragonboxapp.com/</a></div><div><br></div><div>Who else is interested in lowering the age of entry for junior Racketeers?</div>

<div><br></div><div><br></div><div>Dan</div><div><br></div><div><br></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Aug 3, 2013 at 4:01 AM, grant centauri <span dir="ltr">&lt;<a href="mailto:gcentauri@lincolnix.net" target="_blank">gcentauri@lincolnix.net</a>&gt;</span> wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr"><div><div>
<br></div>Daniel, my first experience with programming as a child was LOGO and turtle graphics.  Perhaps that is why I still have an affinity for the Lisp family.  I was actually hoping to implement some kind of turtle builder into the Minecraft Pi world.  However, it seems like the Turtle graphics style of programming is very different than the HtDP/Bootstrap way.  Are there thoughts about that?  For young children, those kind of robotic instructions seem to make more sense, I am at a loss to find ways to make recursion and functional programming more concrete.<br>

</div></div></blockquote></div></div></div>