<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div style="-webkit-text-size-adjust: auto;">Hi Torben,</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">+1 for for teaching Erlang to kids. </div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">Back when dinosaurs roamed the earth, I was founding editor/publisher of Classroom Computer News, the first magazine in the U.S. devoted exclusively to instructional computer applications in K-12 classrooms. Subsequently I founded a company largely devoted to development of educational and consumer software for major publishers. We developed over 100 products ranging from Pockets the Learn and Do Kangaroo for pre-school youngsters to Algebra I for the high school set to The Scarsdale Medical Diet for obese adults for publishers ranging from Bantam to World Book.</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">I bore you with this to make several points:</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">1) Don't underestimate what properly motivated kids can learn--- they're hard-wired to learn </div><div style="-webkit-text-size-adjust: auto;">2) Don't underestimate intrinsic curiosity as a motivator--- at least until it's squelched by repressive pedagogy</div><div style="-webkit-text-size-adjust: auto;">3) Create exploration environments to leverage intrinsic curiosity</div><div style="-webkit-text-size-adjust: auto;">4) Break the learning tasks into single key concepts that rest 100 percent on what the youngster already knows so concepts build one upon another</div><div style="-webkit-text-size-adjust: auto;">5) Keep it playful and fun</div><div style="-webkit-text-size-adjust: auto;">6) Tie the concepts into real-world (the child's world) issues and concerns</div><div style="-webkit-text-size-adjust: auto;">7) Challenge the youngster, but make success attainable</div><div style="-webkit-text-size-adjust: auto;">8) Reward success</div><div style="-webkit-text-size-adjust: auto;">9) Empower the youngster with demonstrable knowledge and skills that matter from the kid's perspective</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">Additional thoughts</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">--- My software development company was based on Forth so I was active in the exciting and innovative Forth community of the time. Given the limited resources of pcs of the era, Forth gave us tremendous competitive advantages. But I saw the Forth community wane and fizzle into near oblivion due, in part, to neglect of the interests of the upcoming generation of programmers. </div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">--- Tie into the Raspberry Pi phenomenon</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">--- Show kids (and child-minded adults) how to build super computers out of Raspberry Pi, Odroid U3s or the super-cheap "mini pcs" coming out of China. (I'd love to work with anyone into that).</div><div style="-webkit-text-size-adjust: auto;"><br></div><div style="-webkit-text-size-adjust: auto;">Also, see:</div><div style="-webkit-text-size-adjust: auto;"><br></div><div><span style="-webkit-text-size-adjust: auto;"><a href="http://info.marygrove.edu/MATblog/bid/74832/Explore-Graph-Theory-with-Gifted-Elementary-Students">http://info.marygrove.edu/MATblog/bid/74832/Explore-Graph-Theory-with-Gifted-Elementary-Students</a></span></div><div><span style="-webkit-text-size-adjust: auto;"><br></span></div><div><h3 class="gs_rt" style="margin: 0px; padding: 0px; border: 0px; position: relative; font-weight: normal;"><font size="3"><span style="background-color: rgba(255, 255, 255, 0);"><span class="gs_ctc" style="font-weight: bold;">[PDF]</span> <a href="http://code.arc.cmu.edu/archive/upload/graphmaster_tei_final.1.pdf" style="text-decoration: none; padding: 12px 0px 9px;">A Tangible Construction Kit for Exploring Graph Theory</a></span></font></h3><div class="gs_a" style="margin: 0px; padding: 8px 0px 5px; border: 0px;"><span style="background-color: rgba(255, 255, 255, 0);">E Schweikardt, N Elumeze, M Eisenberg, MD Gross - <a href="http://code.arc.cmu.edu">code.arc.cmu.edu</a></span></div><div class="gs_rs" style="margin: 0px; padding: 0px; border: 0px;"><span style="background-color: rgba(255, 255, 255, 0);">ABSTRACT Graphs are a versatile representation of many systems in computer science, the <br>social sciences, and mathematics, but graph theory is not taught in schools. We present our <br>work on Graphmaster, a computationally enhanced construction kit that enables children <b>...</b></span></div></div><div class="gs_rs" style="margin: 0px; padding: 0px; border: 0px;"><span style="background-color: rgba(255, 255, 255, 0);"><b><br></b></span></div><div class="gs_rs" style="margin: 0px; padding: 0px; border: 0px;"><b>All the best,</b></div><div class="gs_rs" style="margin: 0px; padding: 0px; border: 0px;"><b><br></b></div><div class="gs_rs" style="margin: 0px; padding: 0px; border: 0px;"><b>LRP</b></div><div><br></div><div style="-webkit-text-size-adjust: auto;"><br>Sent from my iPad</div><div style="-webkit-text-size-adjust: auto;"><br>On Jun 16, 2014, at 3:51 AM, Torben Hoffmann <<a href="mailto:torben.hoffmann@erlang-solutions.com">torben.hoffmann@erlang-solutions.com</a>> wrote:<br><br></div><blockquote type="cite" style="-webkit-text-size-adjust: auto;"><div><span>Hi,</span><br><span></span><br><span>The wonderful thread on "Beginners tutorials"</span><br><span>(<a href="http://erlang.org/pipermail/erlang-questions/2014-June/079485.html">http://erlang.org/pipermail/erlang-questions/2014-June/079485.html</a>) that Joe started</span><br><span>after the EUC last week has touched something in me and I want to get some feedback</span><br><span>on my ideas.</span><br><span></span><br><span>I think that Joe's original suggestion in the "Beginners tutorials" thread can do</span><br><span>something with regards to easing people into Erlang, but it cannot be the only thing.</span><br><span></span><br><span>I saw Garrett's wonderful talk at the EUC last week - Why the Cool Kid's Don't Use</span><br><span>Erlang (<a href="http://www.erlang-factory.com/euc2014/garrett-smith">http://www.erlang-factory.com/euc2014/garrett-smith</a>) - and it suggested a</span><br><span>number of things we, as a community, can do better.</span><br><span></span><br><span>One thing that stood out in relation to this thread was HardToLearn.</span><br><span></span><br><span>HardToLearn influences a lot of things, but it also drives the worry</span><br><span>FindingDevelopers, which bad for the career prospects for all of us.</span><br><span>See Garrett's talk (when online) and you will understand.</span><br><span></span><br><span>Why is Erlang HardToLearn?</span><br><span></span><br><span>One can point to documentation and say it is not optimal.</span><br><span>One can ask for books on Erlang Concurrency Patterns as Joe did.</span><br><span></span><br><span>But I feel there is a more fundamental problem that we need to address:</span><br><span> how to think like an Erlanger.</span><br><span></span><br><span>Erlang is a concurrent functional language with a unique failure model.</span><br><span>More than 2 nines of the people being taught anything on programming will be exposed</span><br><span>to procedural or object oriented languages with exceptions and be told that threads</span><br><span>are hard (they are 'cause they will make you loose your hair).</span><br><span></span><br><span>I think that a learning resource focused on teaching people the Erlang model from the</span><br><span>ground up would be a great improvement. A clear narrative around how do we solve a</span><br><span>problem the Erlang way. Teaching the basic constructs is not the problem.</span><br><span></span><br><span>My initial target for such a learning resources would be young people in the higher</span><br><span>grades of elementary school, say 12-15 years. Why? Because I want to influence them</span><br><span>before their minds are totally corrupted by other programming models.</span><br><span></span><br><span>I don't think we would have to dumb anything down in particular for this group - we</span><br><span>just have to find a cool example and organise the learning around how to become so</span><br><span>good that one can solve such a problem.</span><br><span>Some sort of game will probably be the best candidate, say, some sort of Transport</span><br><span>Tycoon clone?!?!</span><br><span></span><br><span>And now for the controversial part of my idea: this should probably be done using</span><br><span>Elixir plus something for the GUI.</span><br><span>Yes, I said the other E word, so I'm ready to be stoned ;-) [1]</span><br><span></span><br><span>Why Elixir?</span><br><span></span><br><span>Programming Elixir requires the same understanding of the Erlang concurrency model in</span><br><span>order to program well. Otherwise you are just doing Ruby-on-BEAM, which is kinda lame</span><br><span>and misses the boat totally.</span><br><span></span><br><span>So using Elixir would allow us to expose people to the Erlang model, which I think is</span><br><span>the main point. The more people that uses the BEAM, the better for the</span><br><span>FindingDevelopers problem.</span><br><span></span><br><span>What is better about Elixir from a learning standpoint is, in my highly subjective</span><br><span>opinion, that you can get started quite easily with the mix tool.</span><br><span></span><br><span>Furthermore, the Elixir syntax is more familiar to youngsters. I asked my 12 year old</span><br><span>son to have a look in the "Introducing Elixir" book and his initial reaction was</span><br><span>"That's easy to read, it looks like lua." Minimising the amount of surprise is a good</span><br><span>thing!</span><br><span></span><br><span>Given that I think games are awesome for teaching there needs to be some sort of GUI</span><br><span>element at some point and here I'm leaning towards Elm (<a href="http://elm-lang.org">http://elm-lang.org</a>) since it</span><br><span>is functional, but other suggestions are most welcome.</span><br><span></span><br><span>Am I on the right track to anything with this?</span><br><span>Is there a need for such a learning resource?</span><br><span>Is Concurrent, Functional Programming relevant enough to warrant putting some energy into?</span><br><span></span><br><span>Cheers,</span><br><span>Torben</span><br><span></span><br><span>[1] <a href="https://www.youtube.com/watch?v=SYkbqzWVHZI">https://www.youtube.com/watch?v=SYkbqzWVHZI</a></span><br><span>-- </span><br><span>Torben Hoffmann</span><br><span>CTO</span><br><span>Erlang Solutions Ltd.</span><br><span>Tel: +45 25 14 05 38</span><br><span><a href="http://www.erlang-solutions.com">http://www.erlang-solutions.com</a></span><br><span>_______________________________________________</span><br><span>erlang-questions mailing list</span><br><span><a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a></span><br><span><a href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a></span><br></div></blockquote></body></html>