teaching programming to children

John Roth newsgroups at jhrothjr.com
Thu Oct 16 06:42:45 EDT 2003


<andy at post.tau.ac.il> wrote in message
news:mailman.138.1066287341.2192.python-list at python.org...
> A young friend of me (12 years old) has asked me to teach him programming
(after
> I shortly described my programming job as telling the computer what to do
and
> not the other way arround). I choose python because I personally like it
but I
> was wondering to what extent is it appropriate for this task.
>
> a) Its interpreter is very nice but it hides some basic truths about
computers.
> Namely, the need to compile and the differences between the languages of
humans
> and languages of computers.

How people acquire skills is one of the things we normally don't think too
much about, because most of us aren't trained in it. Novices (and your young
friend is a novice) need to have things where they can get "instant
gratification."
A language that hides complexity that is essentially optimization (and a
separate
compile step certainly fits into that category) is much easier on novices.

>
> b) Most simple tasks can be achieved so easily that "there's nothing to
learn".
> What do you think would be our first programming assignments? And what
language
> constructs should we start with?

I'd start out with the python tutorial, and keep at the command line until
he becomes comfortable with the syntax. Then I'd introduce how to save
programs and execute them from the command line. Of course, if she asks
about saving programs on her own, introduce it then. Use a simple GUI
IDE - IDLE or PythonWin for example. Don't use anything as complex as
EMacs or Vi to start out with.

> c) Should we run to "cool" things (GUI, networking, other proposals?) or
should
> we first make a good hold of "algorithms" (which in my opinion is at the
heart
> of programming).

Start out with whatever he regards as 'cool,' as long as it's also simple.
However,
don't let that be an excuse to get sloppy. If you know Test Driven
Development,
introduce that at the same time you introduce saving programs. It will save
everyone ***lots*** of grief later if he gets the idea that design and
testing
is "the way."

>
> I would be gratefull if people who had a similar experience would told me
about
> it. Or if someone could refer me to sources and articles.
>
> thanks...

You're welcome.

John Roth
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
>






More information about the Python-list mailing list