<div dir="ltr">Hi guys,<div><br></div><div>I have 4 kids under 10 years of age. They all program at some level except for the 2 year old. Although</div><div>the 2 year old is already familiar with squishy circuits <a href="http://courseweb.stthomas.edu/apthomas/SquishyCircuits/">http://courseweb.stthomas.edu/apthomas/SquishyCircuits/</a></div>
<div>and conductive paint <a href="http://www.bareconductive.com/">http://www.bareconductive.com/</a>. So, the fact that diodes (namely LEDs) are directional (only</div><div>work one way around) are familiar concepts to them from a young age.</div>
<div><br></div><div>A good introductory language is scratch (<a href="http://scratch.mit.edu/">http://scratch.mit.edu/</a>)</div><div>followed by Python (from about 7 years of age depending on the child, python works very well, the</div>
<div>strict syntax is a benefit too). Python has excellent resources for kids and parents the "Python for Kids" book in <a href="http://www.amazon.co.uk/Python-Kids-Playful-Introduction-Programming/dp/1593274076/ref=sr_1_1?ie=UTF8&qid=1402920402&sr=8-1&keywords=python+for+kids">http://www.amazon.co.uk/Python-Kids-Playful-Introduction-Programming/dp/1593274076/ref=sr_1_1?ie=UTF8&qid=1402920402&sr=8-1&keywords=python+for+kids</a> which is playful.</div>
<div><br></div><div>These are good starts but alone may not keep all children's interest. For this, tactile and interactive</div><div>experiences are far better teaching aids. I use robotics, electronics, crafts together with scratch and</div>
<div>python.</div><div><br></div><div>With a basic feel for logic, structure and feedback from programming tools (with assistance) then</div><div>Erlang would be a good next step. Torben is probably right with respect to age group by setting it</div>
<div>to mid high school level. Elixir, also, would probably be an easier language to teach and to learn</div><div>with fringe benefits (namely learning Elixir) for some of us...</div><div><br></div><div>Kids program in their own time too. Games like minecraft reward pattern matching, for example.</div>
<div><br></div><div>Far more important, in my experience, is allowing the kids drive the agenda and stepping back to</div><div>assist, guide and encourage. As Mark points out, quick results are important so that the experience</div>
<div>is playful and rewarding enough to keep interest levels high. For this, we would need a course that</div><div>is fun, playful and assists both the teacher and student. Libraries like erlang-ale that allow interaction</div>
<div>with cheap hardware such as arduino or raspberry pi also help to bring the subject to life.</div><div><br></div><div>Another line of questioning exists around what to teach? Teach Erlang/Elixir the languages or</div>
<div>teach the philosophy? A bit of both? I think the philosophy and modes of thinking are far more important...</div><div><br></div><div>Cheers,</div><div><br></div><div>Darach.</div><div><br></div><div><br></div><div><br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 16, 2014 at 12:55 PM, Mark Nijhof <span dir="ltr"><<a href="mailto:mark.nijhof@cre8ivethought.com" target="_blank">mark.nijhof@cre8ivethought.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">+1 on this, this rings very true to home. But I also believe that it needs to return results quickly. I.e. building a game is great, but if they have to "code" for days before they see something happen then they loose interest (assumption). So preparing "building blocks" might be a good approach and have them first implement higher level stuff and then step by step dig deeper and implement the building blocks you prepared.<div>

<br></div><div>An other exercise I planned is to program a drone (not sure about the language there yet) to fly an obstacle course. So they see it is not just something that happens on their iPads ;)</div><span class="HOEnZb"><font color="#888888"><div>
<br></div></font></span><div><span class="HOEnZb"><font color="#888888">
-Mark<br></font></span><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On Mon, Jun 16, 2014 at 1:36 PM, Mahesh Paolini-Subramanya <span dir="ltr"><<a href="mailto:mahesh@dieswaytoofast.com" target="_blank">mahesh@dieswaytoofast.com</a>></span> wrote:<br>

<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><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">

<span style="font-family:arial,sans-serif;font-size:13px">The most important thing here I believe is to have a nice collection of simple tasks/problems that are appealing to the target audience and best (easiest/nicest) solved in Erlang. </span></blockquote>



</div><div><span style="font-family:arial,sans-serif;font-size:13px">Amen!</span></div><div><span style="font-family:arial,sans-serif;font-size:13px">The least relevant part of teaching kids programming is the syntax, or the choice of language - they don't, and won't, give a s**t about it.  </span></div>



<div><font face="arial, sans-serif">As a simple thought experiment, just look at how you raised your kids in a multi-lingual environment (yes my American brethren, this is hard. Pretend :-)  )  Notice how they - fluidly - bounce across languages, massacring every grammar rule ever, but quite happily making sure that you understand that "I amn't going to eat pea, ನಾನು ತಿನ್ನಲ್ಲ, ನಾನು ತಿನ್ನಲ್ಲ, odio odio odio la piselli, i don't wanna, where is my red truck?"</font></div>


<div>Mind you, they will pick up the rules over time, but the key here is the importance of the problem at hand ("How To Avoid Eating Peas") - the more immediately relevant it is to the young 'uns, the more rapidly they will pick up the tools, the specifics of the language be damned.</div>


<div><br></div><div><font face="arial, sans-serif">Cheers</font></div><div class="gmail_extra"><div><div><br><div class="gmail_quote">
On Mon, Jun 16, 2014 at 6:55 AM, Ferenc Holzhauser <span dir="ltr"><<a href="mailto:ferenc.holzhauser@gmail.com" target="_blank">ferenc.holzhauser@gmail.com</a>></span> wrote:<br><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">The most important thing here I believe is to have a nice collection of simple tasks/problems that are appealing to the target audience and best (easiest/nicest) solved in Erlang. That's a bit of a challenge considering that Erlang is created to solve problems that are rather "industrial" and most people "from outside" can't really relate to. If the audience is not comfortable with understanding the problem itself then it is tricky to make them understand/like the solution too. <div>




<br></div><div>This we can see with many new people getting into Erlang: The problems they are given are new and difficult to understand. So they often just go off and eagerly try to solve all sort of issues they are familiar with (even when they are not relevant in the particular case) before even trying to understand what the real challenge is. Then they start complaining that Erlang is not very good for some/many of those issues they are busy with.</div>




<div><br></div><div>And other way around: people coming to Erlang with the right understanding of the problem area it is made for find it amazingly simple to learn.</div><div><br></div><div>Coming from the wrong (or right ?) background my imagination fails to come up with these appealing challenges for the youngster target group, but I'm sure many of you can do much better. </div>



<span><font color="#888888">
<div><br></div><div>Ferenc</div></font></span></div><div><div><div class="gmail_extra"><br><br><div class="gmail_quote">On 16 June 2014 11:31, Miles Fidelman <span dir="ltr"><<a href="mailto:mfidelman@meetinghouse.net" target="_blank">mfidelman@meetinghouse.net</a>></span> wrote:<br>




<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><div>Garrett Smith wrote:<br>
<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">
On Mon, Jun 16, 2014 at 9:51 AM, Torben Hoffmann<br>
<<a href="mailto:torben.hoffmann@erlang-solutions.com" target="_blank">torben.hoffmann@erlang-<u></u>solutions.com</a>> wrote:<br>
<br>
-snip-<br>
<br>
<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">
I think that a learning resource focused on teaching people the Erlang model from the<br>
ground up would be a great improvement. A clear narrative around how do we solve a<br>
problem the Erlang way. Teaching the basic constructs is not the problem.<br>
<br>
My initial target for such a learning resources would be young people in the higher<br>
grades of elementary school, say 12-15 years. Why? Because I want to influence them<br>
before their minds are totally corrupted by other programming models.<br>
<br>
I don't think we would have to dumb anything down in particular for this group - we<br>
just have to find a cool example and organise the learning around how to become so<br>
good that one can solve such a problem.<br>
Some sort of game will probably be the best candidate, say, some sort of Transport<br>
Tycoon clone?!?!<br>
</blockquote>
I don't have enough experience teaching programming to this age group<br>
to provide anything more than a hunch. But I suspect that the Erlang<br>
way, which is hard enough for very seasoned programmers to grok, might<br>
be a bit ambitious for these young learners.<br>
<br>
I'm speaking in particular about the model that emerges when you<br>
isolate processes. It changes everything: your approach to building<br>
software (move from state oriented to activity oriented), error<br>
handling (move from defensive measures to assertive/let-it-crash),<br>
program structure (from monolith to system), and so on. The benefits<br>
of this shift are hard to get across, in my experience anyway. I wish<br>
it wasn't, or I wish I was better at communicating.<br>
<br>
<br>
</blockquote>
<br></div></div>
I'm with the folks who suggest that this group has fewer pre-conceptions to unlearn.<br>
<br>
It strikes me that the actor model is far more natural for certain classes of problems - network code, simulation, and gaming come to mind.  It's simply conceptually easier to think in terms of LOTS of independent processes.<span><font color="#888888"><br>





<br>
Miles Fidelman<br>
<br>
<br>
-- <br>
In theory, there is no difference between theory and practice.<br>
In practice, there is.   .... Yogi Berra</font></span><div><div><br>
<br>
______________________________<u></u>_________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div dir="ltr"><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt">
<font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="font-style:italic;margin:0px;font-family:Calibri">

<b style="color:rgb(17,85,204)"><a href="http://www.gravatar.com/avatar/204a87f81a0d9764c1f3364f53e8facf.png" style="color:rgb(17,85,204)" target="_blank">Mahesh Paolini-Subramanya</a></b></div><div style="margin:0px;font-family:Calibri">



<span style="font-weight:normal">That tall bald Indian guy..</span><br></div></b></span></font></div></div><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="margin:0px;font-family:Calibri">



<div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;color:rgb(1,108,226)">



<a href="https://plus.google.com/u/0/108074935470209044442/posts" style="color:rgb(17,85,204)" target="_blank">Google+</a><span style="color:rgb(31,73,125)">  | <a href="http://dieswaytoofast.blogspot.com/" style="color:rgb(17,85,204)" target="_blank"><span style="color:rgb(1,108,226)">Blog</span></a></span> <span style="color:rgb(31,73,125)">  | <span style="color:rgb(1,108,226)"><a href="https://twitter.com/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">Twitter</a></span></span><span style="color:rgb(31,73,125)">  | </span><a href="http://www.linkedin.com/in/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">LinkedIn</a></div>



</span></div></div></div></b></span></font></div></div></div>
</font></span></div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br></div></div><div class=""><div dir="ltr">Mark Nijhof<br><div><div>t:   <a href="https://twitter.com/MarkNijhof" target="_blank">@MarkNijhof</a><br>s:  marknijhof</div>
</div><div><br>
</div></div>
</div></div></div></div>
<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br></div>