[erlang-questions] Erlang for youngsters
Lloyd R. Prentice
lloyd@REDACTED
Mon Jun 16 15:58:00 CEST 2014
Hi Torben,
+1 for for teaching Erlang to kids.
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.
I bore you with this to make several points:
1) Don't underestimate what properly motivated kids can learn--- they're hard-wired to learn
2) Don't underestimate intrinsic curiosity as a motivator--- at least until it's squelched by repressive pedagogy
3) Create exploration environments to leverage intrinsic curiosity
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
5) Keep it playful and fun
6) Tie the concepts into real-world (the child's world) issues and concerns
7) Challenge the youngster, but make success attainable
8) Reward success
9) Empower the youngster with demonstrable knowledge and skills that matter from the kid's perspective
Additional thoughts
--- 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.
--- Tie into the Raspberry Pi phenomenon
--- 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).
Also, see:
http://info.marygrove.edu/MATblog/bid/74832/Explore-Graph-Theory-with-Gifted-Elementary-Students
[PDF] A Tangible Construction Kit for Exploring Graph Theory
E Schweikardt, N Elumeze, M Eisenberg, MD Gross - code.arc.cmu.edu
ABSTRACT Graphs are a versatile representation of many systems in computer science, the
social sciences, and mathematics, but graph theory is not taught in schools. We present our
work on Graphmaster, a computationally enhanced construction kit that enables children ...
All the best,
LRP
Sent from my iPad
> On Jun 16, 2014, at 3:51 AM, Torben Hoffmann <torben.hoffmann@REDACTED> wrote:
>
> Hi,
>
> The wonderful thread on "Beginners tutorials"
> (http://erlang.org/pipermail/erlang-questions/2014-June/079485.html) that Joe started
> after the EUC last week has touched something in me and I want to get some feedback
> on my ideas.
>
> I think that Joe's original suggestion in the "Beginners tutorials" thread can do
> something with regards to easing people into Erlang, but it cannot be the only thing.
>
> I saw Garrett's wonderful talk at the EUC last week - Why the Cool Kid's Don't Use
> Erlang (http://www.erlang-factory.com/euc2014/garrett-smith) - and it suggested a
> number of things we, as a community, can do better.
>
> One thing that stood out in relation to this thread was HardToLearn.
>
> HardToLearn influences a lot of things, but it also drives the worry
> FindingDevelopers, which bad for the career prospects for all of us.
> See Garrett's talk (when online) and you will understand.
>
> Why is Erlang HardToLearn?
>
> One can point to documentation and say it is not optimal.
> One can ask for books on Erlang Concurrency Patterns as Joe did.
>
> But I feel there is a more fundamental problem that we need to address:
> how to think like an Erlanger.
>
> Erlang is a concurrent functional language with a unique failure model.
> More than 2 nines of the people being taught anything on programming will be exposed
> to procedural or object oriented languages with exceptions and be told that threads
> are hard (they are 'cause they will make you loose your hair).
>
> I think that a learning resource focused on teaching people the Erlang model from the
> ground up would be a great improvement. A clear narrative around how do we solve a
> problem the Erlang way. Teaching the basic constructs is not the problem.
>
> My initial target for such a learning resources would be young people in the higher
> grades of elementary school, say 12-15 years. Why? Because I want to influence them
> before their minds are totally corrupted by other programming models.
>
> I don't think we would have to dumb anything down in particular for this group - we
> just have to find a cool example and organise the learning around how to become so
> good that one can solve such a problem.
> Some sort of game will probably be the best candidate, say, some sort of Transport
> Tycoon clone?!?!
>
> And now for the controversial part of my idea: this should probably be done using
> Elixir plus something for the GUI.
> Yes, I said the other E word, so I'm ready to be stoned ;-) [1]
>
> Why Elixir?
>
> Programming Elixir requires the same understanding of the Erlang concurrency model in
> order to program well. Otherwise you are just doing Ruby-on-BEAM, which is kinda lame
> and misses the boat totally.
>
> So using Elixir would allow us to expose people to the Erlang model, which I think is
> the main point. The more people that uses the BEAM, the better for the
> FindingDevelopers problem.
>
> What is better about Elixir from a learning standpoint is, in my highly subjective
> opinion, that you can get started quite easily with the mix tool.
>
> Furthermore, the Elixir syntax is more familiar to youngsters. I asked my 12 year old
> son to have a look in the "Introducing Elixir" book and his initial reaction was
> "That's easy to read, it looks like lua." Minimising the amount of surprise is a good
> thing!
>
> Given that I think games are awesome for teaching there needs to be some sort of GUI
> element at some point and here I'm leaning towards Elm (http://elm-lang.org) since it
> is functional, but other suggestions are most welcome.
>
> Am I on the right track to anything with this?
> Is there a need for such a learning resource?
> Is Concurrent, Functional Programming relevant enough to warrant putting some energy into?
>
> Cheers,
> Torben
>
> [1] https://www.youtube.com/watch?v=SYkbqzWVHZI
> --
> Torben Hoffmann
> CTO
> Erlang Solutions Ltd.
> Tel: +45 25 14 05 38
> http://www.erlang-solutions.com
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140616/4578e834/attachment.htm>
More information about the erlang-questions
mailing list