
Programming for four-year-olds – No assembler required - julianpye
http://www.economist.com/news/science-and-technology/21660077-how-teach-computer-science-nursery-school-no-assembler-required
======
tumba
I think there are two ways in which children may constructively be taught
computing. The first is algorithmic problem solving, which is often better
taught using logic puzzles and games rather than programming trivial if-then
statements. Anany and Maria Levitin's book, Algorithmic Puzzles, is a good
example of the genre. [1]

Secondly, they need to be taught an active and inquisitive posture towards
technology. Most devices today (especially tablets and phones) force the user
into a dependent and passive mode of interaction in which it is impossible to
know how things work. Accordingly, I think it may be destructive for children
to spend too much time with these devices.

The KIBO system described in the article seems like a great thing to play with
to build a basic understanding of symbolic control flow, although it too is
opaque. I think 4 is too young to spend much time staring at a screen, but by
the time a child is 8-10, I think it is better to have an admittedly difficult
to use Linux workstation or an old computer running FreeDOS. Also good are the
many simple devices arising out of the "maker" movement.

I would really like to give my kids a simple device that could be programmed
from the hardware up in something like Forth. Something like an HP calculator,
but with a command line and options to connect to other devices would be
great.

[1]
[http://www.amazon.com/gp/product/0199740445](http://www.amazon.com/gp/product/0199740445)

~~~
sogen
theres a cool thing that can connect like legos: to temp monitor... forgot the
name, something with blocks, looks awesome, has some kits online, will try to
find it.

~~~
jacquesm
That one ? :

[http://www.gizmag.com/littlebits-electronic-
kits/28822/](http://www.gizmag.com/littlebits-electronic-kits/28822/)

------
jgamman
here's a wild thought - play with your kids. seriously, they love it. as they
get older, they'll want to 'play' with your toys and one of those games might
be doing goofy things on/with a 'computer'. then instead of 'playing' engage
deeply with their school learning journey where playing with computers is a
really useful and occasionally enjoyable thing that may be (but probably is
not) happening _in_ their school. for extra pro points, blog your
ideas/experience and get other parents involved.

~~~
jamesrcole
why can't it be both? both play with your kids and them have tools for
learning programming?

------
veddox
It's a really interesting idea and well thought-out design, but isn't four a
little early to start programming? I mean, yes programming is important
nowadays, and probably more people ought to learn it - but to put it on one
level with reading, writing and arithmetic seems to me to be unwarranted.

And similar to what tumba said, I think you would do your kids (at that age) a
much bigger favour simply by training their logical thinking skills and
encouraging their curiosity. Those two skills will serve them in just about
all areas of life, not only in programming.

~~~
jamesrcole
> _isn 't four a little early to start programming? .. programming is
> important nowadays... but to put it on one level with reading, writing and
> arithmetic seems to me to be unwarranted._

Can you elaborate?

It's not clear to me why programming should necessarily be different.

(especially if we can get at the essence of the skills it's a matter of, as
opposed to seeing it as a matter of preparing people for jobs as programmers.

One reason I say this is, as computing technology becomes more pervasive and
mature, there ought to be broader scope for applying programming techniques,
which mean that many more people will be using programming techniques in their
work and day to day lives than just those working specifically as
programmers).

~~~
veddox
> Can you elaborate?

Easy. First: name five jobs in which you absolutely do not need to be able to
read or write. Found five? OK, can you name five in which you do not need to
be able to program? What set took you longer to think of?

Secondly, you cannot program without being able to read and write. (OK, KIBO
makes do without, but I'm talking about serious programming here.) In a way,
programming is a subclass of writing. Usually, you write in order to pass
information on to humans, when you're programming, you're simply changing the
intended recipient to a computer. My argument is that if writing is the
superclass of programming, writing could reasonably be considered to be more
important.

> many more people will be using programming techniques in their work and day
> to day lives than just those working specifically as programmers

While I would agree with this, we have to be careful not to fall victim to the
programmer's bias. Yes, the need for programming skills in the world around us
is big and growing rapidly, but it is probably not as big as we as programmers
tend to believe, for two psychological reasons that skew our perspective:

If all you have is a hammer, everything looks like a nail - and if you have a
programmer's mindset, you will tend to approach (almost) all problems as if
they were software problems. That's just human nature. Mathematicians try to
solve problems mathematically, carpenters look for a practical solution, etc.
(There's a good TED talk on that, unfortunately, I can't find it right now.)
But it does mean that we think about software solutions when in fact, another
approach might actually be better.

Apart from that, we also have a bias of association. As programmers we spend
so much time with other computer people that we easily overestimate how many
of us there are in the world - and thus, how important our occupation really
is.

~~~
jamesrcole
> _name five jobs in which you absolutely do not need to be able to read or
> write. Found five? OK, can you name five in which you do not need to be able
> to program? What set took you longer to think of?_

of course that's the case now, but that doesn't mean it always will be. And
also, the value (to the person, or society) in learning something is not IMO
simply a matter of whether it will help you getting a job where you need to do
that thing.

> _Secondly, you cannot program without being able to read and write. (OK,
> KIBO makes do without, but I 'm talking about serious programming here._

if we're talking about kids, then the requirement for "serious programming"
doesn't apply.

but in any case, I don't agree. I was responding to your earlier comment where
you put reading, writing and arithmetic on the same level and programming
should come after that. If you can't program until you can read and write then
you can't do arithmetic until you can read and write -- i.e. i think that
argument applies equally to maths and programming. Why can't you learn
programming at the same time as reading and writing? Why can't it be _part of_
learning those things? Just like reading books is part of them?

> _we have to be careful not to fall victim to the programmer 's bias. Yes,
> the need for programming skills in the world around us is big and growing
> rapidly, but it is probably not as big as we as programmers tend to believe,
> for two psychological reasons that skew our perspective..._

have you heard the argument that "software is eating the world"? Yes there is
the tendency for people to see "everything as a nail" but just stating that
doesn't provide any actual argument against the notion that software, and the
utility in being able to have programmatic control over the software, will be
pervasive.

------
bbarn
The four year old in me lost interest with the double sequence of dark overlay
modals that assaulted me the second I tried to read/scroll the article.

~~~
CmdrKrool
The last thing I saw before my iPad's browser crashed out were the words,
"ROLEX : Rolex value your time".

~~~
timtadh
ROLEX also values your memory. Scrolling that page caused my Firefox to jump
in memory size by about 1GB. "Works as intended."

------
julianpye
While this is a nice overview over current systems, I am not sure if I would
care much that my kid one day should learn them (he is 4 months now, so still
a long time away).

But a lot of friends with children ask me how to introduce their kids to
computing at an early age. They often believe that learning a computer
language would be like learning other languages, allowing for some
'bilingualism' early on. We all know that's not true.

I am not sure if introducing a child to computing languages is as important as
introducing it to other things first. I would rather introduce it to music or
another spoken language. That I assume would benefit it's brain more rather
than using technology (probably already outdated) that will be certainly
outdated by the time the child is at highschool level.

~~~
notduncansmith
Having done some serious introspection with regards to how I ended up as a
developer, I think that playing strategy-oriented video games (loosely
defined, for instance I'd put Pokemon Yellow in this category), and card games
like MtG definitely prepared me for it. You learn to make tradeoffs (you can
only have 6 Pokemon in your lineup, you want no more than 60 cards in a Magic
deck, etc), and you learn to creatively compose primitives into solutions to
problems, within a defined set of rules.

Specifically, I think that a lot of efforts to get kids into computers these
days are too literal about it. The value of learning to think like a
programmer is not exclusively in one's ability to write programs (though
that's certainly a powerful and valuable skill), it's in one's ability to
solve problems within constraints. I'd argue that computer literacy is an
orthogonal skill. Given that, things that stimulate the brain in ways similar
to programming (e.g. deep strategy games) will probably have orders of
magnitude more success than the more literal approach of "teaching kids to
program".

------
jacquesm
Interesting parallel with DNA here, the ribosome as the robot and the blocks
as the RNA strands. Of course it doesn't exactly output proteins but it's neat
to see such a close mechanical analogue.

------
nickpsecurity
I'd probably wait a few years on teaching programming. I love the work in this
field, though. Scratch was my favorite since it practically turned programming
into something as easy as Lego blocks and more like Flash than OpenGL/DirectX.
Kids were throwing together all kinds of great stuff with some pre-10yr olds
making quasi-corporations. It was just amazing to see all that potential
unlocked.

Props to the tool designers and the kids building stuff. I can't wait to see
what the next leap in that category brings.

------
caf
The article mentions Logo as some kind of forgotten relic of the 60s and 70s,
but I can remember leaning Logo in primary school in the late 80s.

------
wnoise
Is it named after the Usenet grepper?

~~~
DougMerritt
James "Kibo" Parry -- could be. Or perhaps they are both named after Kibo, the
dormant volcano at the peak of Mount Kilimanjaro?

[https://en.wikipedia.org/wiki/Mount_Kilimanjaro#Geology_and_...](https://en.wikipedia.org/wiki/Mount_Kilimanjaro#Geology_and_physical_features)

------
Immortalin
There's always Lego mindstorm, it doesn't exactly teach programming but the
skills involved is pretty similar.

