Thanks for the long and thoughtful reply, and good stuff too. Big fan of Seymour Papert, too. It just so happens that I have a Coleman toolbox loaded tight with Lego Technics, including an NXT kit, and a big old remote controlled tractor (I wanted the treads.)<div>
<br></div><div>I already have a backburner project involving an Arduino going on in this category, and I planned to use NXTTalk on the smart brick. I also want to look at Physical Etoys before I proceed. This is on the backburner in part because it&#39;s pretty broad in scope. Thanks for the suggestion though!<br>
<br><div class="gmail_quote">On Fri, Mar 8, 2013 at 8:31 PM, Clinton Blackmore <span dir="ltr">&lt;<a href="mailto:clinton.blackmore@gmail.com" target="_blank">clinton.blackmore@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hello Casey.<div><br></div><div>What a fabulous question.</div><div><br></div><div>I believe that the Raspberry Pi opens up the door to help everyone, especially kids, learn to create things in this (digital) world of ours, and not to just be a passive consumer, and that they will if they have an accessible way to do it.  I also believe we are on the cusp of a personal robotics revolution, much like where the personal computer revolution was thirty years ago.  Lastly, I believe that the best way to teach children to code today involved the use of a project written in Squeak, namely Scratch, and that tomorrow&#39;s tools can be even better!</div>

<div><br></div><div>I therefore propose the creation of a web-based graphical programming environment to allow kids to program robots built with a Raspberry Pi brain.</div><div><br></div><div>I think I&#39;ve touched on the why, but let me get to the piece that I think is really inspiring.  <a href="http://worrydream.com/LearnableProgramming/" target="_blank">Learnable Programming.</a>  This is an essay by a fellow about how we can make programming more readily understood and more powerful; he has a great sense of vision, and he sites Squeak as being one of the really good environments that we have today.  [Implementing any sort of Learnable Programming system, whether for robotics or not, is a laudable goal, and his site is chock-full of inspiration for other things you might do].</div>

<div><br></div><div>Now, I don&#39;t believe that all of the things he suggests -- such as allowing a person to scrub forward and backward through a simulation -- can be accomplished directly with robotics.  But there are parts of it that sure could be, and with a full-on computer as the brain, there is memory to store the system state [such as sensor readings] at various times and explore it.</div>

<div><br></div><div>Why, then, do I still believe in programming robots over just programming computers?  Because it is engaging, and it gives kids a platform upon which to solve problems that are real instead of trivial.  I must say, being one who lives a sedentary lifestyle, and having moved to an acreage where the house is heated by wood-burning stoves, that after I went out (after referring to youtube for instructions) and split wood for a half hour, that I was struck by the fact that exercise is so much more enjoyable when you are accomplishing something, and I believe the same holds true for (school) exercises; for instance, when math is disembodied and becomes the mere shuffling of symbols, is it any wonder that kids don&#39;t like it, don&#39;t understand why it is important, and don&#39;t do it more than they have to, but when it has a context -- ex. meshing a 40 tooth gear with a 12 tooth gear lets you increase the torque by a factor of five and decrease the speed by the same factor (or vice versa), or, ex. here is what a PID controller is and did you know you are using something called &#39;calculus&#39; -- then, suddenly, it is my belief they&#39;ll enjoy learning it, understand why they&#39;d use it, and have their lives enriched because they have developed the strength to solve classes of problems that occur in real life.  (Take a look at some of the <a href="http://robotclub.ab.ca/articles/51/robotics-resources" target="_blank">videos I&#39;ve cited</a> as supplementary materials to a presentation I gave, especially this one: <a href="http://fnoschese.wordpress.com/2012/05/30/my-tedxnyed-session-learning-science-by-doing-science/" target="_blank">Learning Science by Doing Science</a>).</div>

<div><br></div><div>I mentioned that the best tool for teachings kids to program today is, in my opinion, Scratch.  Scratch 1.4 is written in a forked version of Squeak 2.8.  (There have been efforts to port it to something more modern, like <a href="https://code.google.com/p/scat/" target="_blank">Scat</a>, but methinks that doing that would exceed the time constraints of your project).  [Scratch 2, in beta, is written in Flash].  BYOB/Snap (v3) is an advanced version of Scratch.  (v4 is written in HTML5, but I don&#39;t know the specifics). </div>

<div><br></div><div>I learned Squeak so I could hack on Scratch and have developed something similar to what I&#39;m advocating here -- <a href="http://enchanting.robotclub.ab.ca/" target="_blank">Enchanting</a>.  It lets kids program LEGO Mindstorms NXT robots.  I&#39;ve been working on it in my spare time for 2.5 years or so now.  Even a 10-year old version of Squeak is such an awesome language to use.</div>

<div><br></div><div>There are several deficiencies, the most notable of which is that changes do not happen in real time -- kids have to go through a compile and upload step.  Another thing I&#39;ve come to realize is it is very hard to collaborate simultaneously on a project.</div>

<div><br></div><div>Since I&#39;ve read &quot;Learnable Programming&quot; and LEGO has announced a successor to the NXT robot set, I&#39;ve been wondering how I&#39;d make it better.</div><div><br></div>
<div>If I was starting from a clean slate and targetting the Raspberry Pi -- and this is the project I&#39;m recommending -- I&#39;d strongly consider:</div><div><ul><li>create a web application (but don&#39;t start from zero!) that allows kids to program the Raspberry Pi robot in a Scratch-like manner.<br>

</li><li>make it so multiple users can edit the same code simultaneously (and, as a stretch goal, allow one kid to code on a project in French while another codes in Japanese, simultaneously)<br></li><li>having some method to share or remix other projects would also be valuable<br>

</li><li>either run the web server for the web app on the Pi, or in the cloud with Pi being one of the clients<br></li><li>and make sure the Pi can be programmed wirelessly<br></li><li>(it&#39;d also be awesome if there was a way to code in text and have it turned into blocks, but that sounds like scope creep).<br>

</li></ul></div><div><br></div><div>The environment needs to be live; it needs to let you see what values sensors are reporting, and change the program while it is running -- it needs to be a lot like Squeak! -- and, for added awesomeness, implement as many of the tenets of &quot;Learnable Programming&quot; as possible in the time allotted.</div>

<div><br></div><div>You may be able to use Seaside or Amber to do this.  I know I&#39;d be itching to try <a href="http://meteor.com/" target="_blank">meteor-js</a>, but, it is, unfortunately, not Smalltalk.</div><div><br>

</div><div>It is worth mentioning that Lady Ada has developed a custom OS for the Pi that allows you to program it from another computer; the Pi runs an embedded web server (and I think it is running python, but I haven&#39;t looked into it).  [<a href="http://www.adafruit.com/blog/category/adafruit-learning-system/webide/" target="_blank">Raspberry Pi WebIDE</a>]</div>

<div><br></div><div>There are several projects to use the Pi for robotics platforms, I believe.  I haven&#39;t looked into them in depth and don&#39;t have links handy.  There is a <a href="http://www.raspberrypi.org/phpBB3/viewforum.php?f=37" target="_blank">robotics subforum</a> at the Raspberry Pi site.  I&#39;m mildly interested in having something that lets you build a chasis out of lego -- take a look at<a href="http://shop.oreilly.com/product/0636920024316.do" target="_blank"> MAKE: Lego and Arduino Projects</a>.  If you are to pursue a project like this, I&#39;d recommend finding one design or project and supporting it well, allowing users to specify what sort of sensors and attachments they have on their robot, and where (and don&#39;t try to be all things to all people!)</div>

<div><br></div><div>There are many projects similar to a Scratch, some in a broswer, others not.  </div><div><br></div><div>I believe these ones are open source:</div><div><ul><li>
<a href="http://www.squeakland.org/" target="_blank">eToys</a> and <a href="http://tecnodacta.com.ar/gira/projects/physical-etoys/" target="_blank">Physical eToys</a></li><li><a href="http://appinventor.mit.edu/" target="_blank">App Inventor</a></li>
<li><a href="https://code.google.com/p/blockly/?redir=1" target="_blank">Google Blockly</a></li>
<li><a href="http://www.alice.org/index.php" target="_blank">Alice</a></li><li><a href="http://snap.berkeley.edu/" target="_blank">Snap</a></li><li><a href="http://education.mit.edu/openblocks" target="_blank">Open Blocks</a></li>
<li><a href="http://minibloq/" target="_blank">MiniBloq</a><br>
</li></ul><div>and that these ones are not:</div><ul><li><a href="http://onerobot.org/products/12blocks/" target="_blank">12Blocks</a></li><li><a href="http://www.modk.it/" target="_blank">ModKit</a></li><li><a href="http://seaside.citilab.eu/scratch/arduino" target="_blank">Scratch for Arduino</a></li>

<li><a href="http://www.picocricket.com/download.html" target="_blank">PicoBlocks</a> (for use with PicoCricket robots)</li><li><a href="http://www.stencyl.com/" target="_blank">stencyl</a></li></ul></div><div>Good heavens.  There is a whole Wikipedia page on <a href="http://en.wikipedia.org/wiki/Visual_programming_language" target="_blank">Visual Programming Languages</a>.</div>

<div><br></div><div>That&#39;s my idea.  Allow kids to learn by doing something &quot;real&quot;, making use of a powerful and affordable brain for robots, and make programming enjoyable and learnable for all!</div>
<div><br></div><div>Cheers,</div><div>Clinton Blackmore</div></div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@lists.squeakfoundation.org">Beginners@lists.squeakfoundation.org</a><br>
<a href="http://lists.squeakfoundation.org/mailman/listinfo/beginners" target="_blank">http://lists.squeakfoundation.org/mailman/listinfo/beginners</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Casey Ransberger
</div>