[Edu-sig] re: CP4E-2002
Gregor Lingl
glingl@aon.at
Mon, 23 Sep 2002 12:30:24 +0200
I' followin your discussion with great interest. Unfortunately my
English is not good enough to contribute to your discussion in
an approriate way. Nevertheless I'll try to put here some
questions and some remarks.
>
>
>>I am not so naive to expect that most children of 7-8 years old can
>>learn to program -- though there definitely have been unusually
>>talented children that young who *have* used Python (and everything
>>else from Basic to assembler) successfully to create what can only be
>>called computer programs.
>>
>>
>...
>A newbie in discussion is anyone from an MIT grad with six languages under
>his belt looking at Python as a
>7th, to a 7th grader who comes to Python as a typical 7th grader. A
>non-progammer is either a Phd physicist
>working with Python at the frontiers of science doing, say, molecular
>modeling, to back to our 7th grader. "Programming" is I don't what,
>depending on who is using the word, in what context, for what effect.
>
As a teacher I'm very concerned about this question, which for me is a
practical and not a philosophical one. (Doing abstraction) I' like to
say that programming is doing abstaction in pracitice and putting it to
work on a machine. Learning how to do this ist furthered by an
environment,
which provides the possibility to experiment with the material you work
with.
(In the case of Python this can be done with the interactive interpreter).
Would you agree, that this is true for the 7th grader as well as the
Phd physicist?
>I think *that* has been the source of confusion, misunderstanding, and a few
>blow-ups along the way. All I am pleading for is some clearer definition of
>terms, at least when you or others or I are discussing, for example, a
>language change possibility addressing, for example, the needs of newbies.
>The MIT grad, or the 7th grader?
>
Inerestingly it was (and is?) the MIT , which showed us that teaching
how to
program can be done in the same *spirit* for quite different sort of
students
addressed. I refer to Seymout Paperts Children, Mindstorms an Computers
and to
Abelson/Sussmanns Structure and Interpretation of Computer Programs.
In some sense this was (is?) the sprit of lisp.
I wonder why Paperts approach with turtle-graphics doesn't play a more
prominent
role in these discussions nowadays. (In my opinion it could be fruitful to
integrate it better in efforts using Python in education.)
In my experience LOGO suffered from the drawback, that it had a *very*
high step
in the learning curve, when going ahead from turtle graphics to list
processing.
There are several reasons for this, one being the fact, that lists in
LOGO are
the only compound data structure, another one that recursion is
*essentially*
the only way of control of program flow - how "natural" it is ever
considered
to be ...
So LOGO - as far as I see it now - is a somewhat fundamentalistic
language covered
whith some sytactic sugar (which in fact spoiles the dish when used in
large
projects ... ) . So what to do? Go back to scheme (- which for me is the
most
beautiful programming language) ?
In this respect Python offers a wonderful alternative. In contrast to
scheme it
is a very pragmatic language, which is imo one reason why it is so
wonderfully
appropriate for learning how to program - regardless of why you have to
do it,
"in what context, for what effect."
Another reason is, that it offers a gentle approach to objects. In this
respect
I consider it to be more modern than the languages mentioned above.
Introducing the concept of objects (of course built-in objects like
strings and
nubers first) and their names *from the beginning*, - accompanied by a
discussion
of the concept of mutability - will even prevent the process of copying
lists
to turn into a nearly unsurpassable problem.
Or - if you have an object fritz, then build [fritz, fritz, fritz] and make
fritz.turn_angry(), would you doubt, which one gets angry ;-).
And this approach will also allow you to go a smooth path up to constructing
your own objects.
Regardless of how you see this, there remains much to do to bring Python to
the schools. ( It certainly was not by accident, that the announced
educational
section at EuroPython was cancelled?) It would certainly be useful to
discuss
ways how this could be accomplished in this forum.
I for my part, besides doing some courses for teachers here in
Vienna, I am involved in the process of writing a textbook about programming
with Python for Kids, in German. Hope to give it a push here, this way.
Regards
Gregor
>....
>
>Other than that - we are actually in agreement about a lot. Obviously, for
>example, I agree with your statement that Python is wonderfully configured
>as a first language (except for this damn problem of having to import copy
>:) ).
>
>We may disagree as to when it is realistic to introduce it, but there I am
>really just pulling a gut opinion out of my posterior - which happens, BTW,
>to be where my Zen intuition hangs out..
>
>Art
>
>
>_______________________________________________
>Edu-sig mailing list
>Edu-sig@python.org
>http://mail.python.org/mailman/listinfo/edu-sig
>
>
>
>