[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
>
>
>  
>