No-syntax Web-programming-IDE (was: Does turtle graphics have the wrong associations?)

2009-11-22 Thread Robert Maas, http://tinyurl.com/uh3t
  My proposed no-syntax
  IDE *also* gets rid of the need to bother with any programming-language
  syntax. I've been proposing it for years, but nobody has shown any
  interest
 From: Terry Reedy tjre...@udel.edu
 What you describe below is similar to various systems that have
 been proposed and even implemented, including visual programming
 systems.

Are any of them integrated with tutorial material and available
over the Web, as mine will be? If so, will you tell me the URLs so
that I can play with them?

 And there has been some success with non-programmers.

The purpose of *my* system will be to start with mostly
non-programmers and *teach* them algorithm design from examples of
tasks they get paid (labor-credits, not $money$) to perform,
without needing to simultaneously bother them with
programming-language syntax. They learn how to take one step at a
time towards a long journey (Chinese proverb) without needing to
first learn a language for stating with ultra-precision *how*
exactly to take each one step. Thus they learn algorithm design
with maximal efficiency, because nearly their whole attention is on
*that* without distraction of syntax too.

 But for most people, it is simply easier to say/write what one
 means rather than point and click.

That works only after you already know to say/write what you mean
for the computer *precisely*exactly*analRetentively* what you want
the computer to do. If you don't already know *how* to say
precisely what you mean for the computer to do, it's impossible.
For example, show somebody this data:
   [12 15 19 26 43 62 92 71 78 85 93]
Point to this item ...^^
Ask that person, who has *never* even seen a computer program much
less written one him/herself, and also who has never studied formal
mathematics such as set theory, and ask that person to say in
precise terms how a computer should find that indicated item among
the data. Look at the data. You see what's special about that one
item among the data, right? So how to express to a computer how to
find it? Answer: It's the item that's out-of-sequence relative to
its neighbors.

How many non-computer non-math beginners would even notice what's
special about that item? (my guess: about half)

How many would be able to express either the mathematical
definition of the desired result, or an algorithm for finding it,
clearly enough that even a human seeing the expression but *not*
seeing the sample would be able to write a computer program per
that spec to solve the problem? (my guess: less than 1%)

Example of a valid informal mathematical expression: There's a
sequence of numbers. Mostly they are in correct sequence. But
exactly one of them is in the wrong place relative to the others
around it. Find that one that's out of place.

Example of a valid semi-formal mathematical expression:
Given an index set [0..N], and a function F from that index set
into the integers;
Such that the predicate lambda (i) F(i-1)  F(i)  F(i+1)
is true for all but one member of the interval [1..N-1];
Find the element of [1..N-1] for which the predicate is not true.

Formal mathematical expression depends on the notation conventions,
so I won't bother to even attempt to concoct such here for example.

Computer algorithms are several in overall algorithm, depending on
which primitives are available from declarative or imperative
programming, from functional or prodedural etc. programming, and
within each choice of *that*, the actual syntax can be any of
several per programming language such as Lisp or APL or Forth etc.
(Yeah, I deliberately avoided mentionning C or Fortran or Java etc.)

If my guess is correct that less than 1% of absolute beginners can
even state what is desired, so that a human can understand it
unambiguously, much less how to obtain it, likewise, expecting that
such an absolute beginner would simply say/write what one means
is IMO unreasonable.

Hence my idea is a sort of friendly wizard to take as much of a
crude ambiguous statment as the student is capable of and willing
to key in, use that to narrow and/or prioritize the number of
possible data-processing steps that are reasonably possible given
the data we have to work from, and then show the prioritized
options to the student, clearly expressed moderately verbosely, and
let the student either pick one of them or clarify what had been
keyed in just before. At the start, before the student has
said *anything* about what the next D/P step will be, *all*
possible operations on existing data are available, organized in
some meaningful way that would support a fully menu-driven method
as you presume. But a hybrid of vague statement what to do (such as
my first answer above which said nothing about there being any
sequence or that the numbers were ascending except for that one out
of place) and limited set of known options available a priori,
would be available whenever the student *can* at least partially
express what to do with the data.

Now in the example given 

Re: Does turtle graphics have the wrong associations?

2009-11-20 Thread Robert Maas, http://tinyurl.com/uh3t
  Who is your target audience?
 From: Alf P. Steinbach al...@start.no
 Someone intelligent who doesn't know anything or very much about
 programming and wants to learn general programming.

I think of what a computer *does* as data processing, and then
programing is simply telling the computer what data processing to
do. In calculator mode, you just tell the computer one step at a
time and immediately see the result before giving the next command.
In program mode, you tell the computer the whole sequences of steps
before the computer does even the first, which requires planning
the whole sequence in your mind ahead of time. Lisp's REP allows
you to use calculator mode when doing a dry run, then just wrap
PROG around it and viola you have a program of all the steps
together, thus bridging the gap between calculator and program mode
painlessly.

The two hard things about programming are syntax and planning.
REP gets rid of the need to plan in your mind before writing the
code, but you're still stuck with the syntax. My proposed no-syntax
IDE *also* gets rid of the need to bother with any
programming-language syntax. I've been proposing it for years, but
nobody has shown any interest, so I'm spending my time on other
things, but sometime in the next several months I am very likely to
go ahead and implement no-syntax IDE as part of
http://TinyURL.Com/NewEco.

 I assume an intelligent reader, someone who doesn't balk at a few
 technical terms here and there.

There's a **major** difference between the ability to figure out
complex puzzles and the ability to memorize jargon. Case in point:
I placed top-five in Putnam math context despite disability whereby
it was very difficult for me to memorize vocabulary/jargon. Then I
flunked out of graduate school because suddenly I was expected to
(but unable to) memorize ten definitions/lemmas to solve each
homework problem.

Ideally, with either somebody like me with memorization disability,
or a very young child who just naturally by age has trouble
learning more than one concept or term simultaneously, you should
introduce only one concept or term at a time, and exerecise the
person's mind with that concept or term for a while before moving
to the next.

 It's like the difference between driving a car and designing one.
 You don't need an engineering degree to drive a car. :-)

Sure some humans can be trained like pigeons to do the motions of
driving a car through a fixed course without having the slightest
concept of what's really happening. But to be able to respond
appropriately to new situations, it really helps to understand that
the brake pedal does *not* stop the car, it merely pulls a lever
that presses a plate against a wheel causing excess friction
causing the wheel to gradualy slow down, which is connected to the
tires causing *them* to resist motion of car against road, which on
non-slippery surfaces and with *gentle* braking results in the car
slowing down, but with **sudden** pressure on brake, or on slick
surfaces, the wheels stop turning completely and simply slide
against the roadway, causing loss of control of both yaw and
momentum, so suddenly your whole car is spinning about a vertical
axis as well as no longer going around the road-curve but instead
veering in a straight line across opposing traffic lanes or over
the edge of the S curve of the Bay Bridge and then 200 feet down
to a rather violent meeting with Yerba Buena Island.

I hate that CHECK ENGINE light, because there's usually no way
the driver of the vehicle actually *can* check the engine in any
meaningful way to determine why the light is on. I think it really
means check in the sense of a cloak-room, where you check your
raincoat and umbrella by handing them to a clerk, thus you really
do check your automobile by handing it over to a mechanic.

sillyBy the way, I don't want Python running on my Macintosh,
   because it might eat my mouse./silly
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-20 Thread Steven D'Aprano
On Thu, 19 Nov 2009 02:00:58 -0800, Robert Maas, http://tinyurl.com/uh3t
wrote:

 My proposed no-syntax
 IDE *also* gets rid of the need to bother with any programming-language
 syntax. I've been proposing it for years, but nobody has shown any
 interest

I'm interested. No-syntax IDE? How is this even possible?

The only way I can think of is some sort of wizard interface. E.g. 
instead of having to remember the syntax for a slice, you click the 
Slice button and the computer prompts you to enter some combination of 
start, end, step, then generates the syntax [a:b:c] for you.



-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-20 Thread Robert Maas, http://tinyurl.com/uh3t
  My proposed no-syntax
  IDE *also* gets rid of the need to bother with any programming-language
  syntax. I've been proposing it for years, but nobody has shown any
  interest
 From: Steven D'Aprano st...@remove-this-cybersource.com.au
 I'm interested. No-syntax IDE? How is this even possible?

I guess you missed what I previously posted. The basic idea is that
you start with test data, and you use menus to select appropriate
data-processing actions to perform on that data. For example, you
manually key in a file name containing test data, or copy and paste
that same file name. Then you select open file by that name or
load all lines from file by that name etc. from a menu. If you
just opened the file, you now have a stream of input, and you can
select to read one line or one s-expression or one character etc.
from that file. After loading the whole file or one unit of data,
you now have some *real* data to work from. For example, with a
line of input, you might break it into words.

Caveat: When I said no syntax, I mean no programming syntax, no
syntax to indicate function calls or variable assignment etc. You
still must deal with visual representation of strings and integers
and other essential data objects, which in a way may be considered
to be syntax. But if you want, you can avoid *all* syntax, even for
data, by drawing a *picture* of the individual bits. For some
low-level machine-language training, or boolean algebra lessons,
this might actually be preferable to Arabic numerals and English
letters to represent data values. Seeing a *picture* of something
that looks like a paper tape seems more binary-friendly than seeing
arabic digits 0 and 1 in rows across a page, when studying
operations upon boolean values or bitmasks.

Now if you don't like the burden of navigating the multi-level
menus, a search engine can be available, whereby you key in
keywords for the name of some data-processing operation you either
saw before or a name you can construct in your mind based on naming
conventions.

The extreme case of search engine would be if English-language
pseudo-code can be automatically converted into a very short menu
of most likely data-processing operations. I actually am seriously
considering doing NewEco software development by this means.
Basically I contract people to brainstorm with me in a Delphi
fashion to create the toplevel design of a new computer algorithm,
then we do top-down break into pieces, and continue top-down
break-down as far as it takes until the search engine recognizes
some step as something it already knows how to do.

 The only way I can think of is some sort of wizard interface.
 E.g. instead of having to remember the syntax for a slice, you
 click the Slice button and the computer prompts you to enter
 some combination of start, end, step, then generates the syntax
 [a:b:c] for you.

Yeah, it'll be vaguely like that in some ways. For major data,
we'll have the data first, all parameters to the next function to
apply, and *then* we select what function to call on those
parameters. But for minor parameters, we might allow you to choose
the function before filling in the minor-parameter slots. For
example, to select the nth character of string, we might have both
the string and the integer N before we select the NTH function, but
if N is a constant we might instead have just the string and select
the NTH function and fill in the constant N. With the pseudo-code
translation, some of the constant parameters might be apparent in
the English. For example, we have a string, and we say select the
second word (actually that's almost HyperTalk, the scripting
language of HyperCard on Macintosh computers), at which point the
constant parameter 2 would be supplied from the word second in
the English.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-20 Thread Terry Reedy

Robert Maas, http://tinyurl.com/uh3t wrote:

My proposed no-syntax
IDE *also* gets rid of the need to bother with any programming-language
syntax. I've been proposing it for years, but nobody has shown any
interest


What you describe below is similar to various systems that have been 
proposed and even implemented, including visual programming systems. And 
there has been some success with non-programmers. But for most people, 
it is simply easier to say/write what one means rather than point and 
click. Point-and-click writing reminds me of point-and-click speaking. 
Great for those who need it but a hindrance to those who do not.


This is not to say that traditional editors cannot be improved with 
better backup memory aids. Indeed, even IDLE recognizes function names 
and pops up a bar listing parameters.


Feel free to develop a Visual Python environment. I might even give it a 
try.



From: Steven D'Aprano st...@remove-this-cybersource.com.au
I'm interested. No-syntax IDE? How is this even possible?


I guess you missed what I previously posted.


I did too and had the same question.


The basic idea is that
you start with test data, and you use menus to select appropriate
data-processing actions to perform on that data. For example, you
manually key in a file name containing test data, or copy and paste
that same file name. Then you select open file by that name or
load all lines from file by that name etc. from a menu. If you
just opened the file, you now have a stream of input, and you can
select to read one line or one s-expression or one character etc.
from that file. After loading the whole file or one unit of data,
you now have some *real* data to work from. For example, with a
line of input, you might break it into words.


Processing a single data file is a common programming task, but not the 
only general category. A specialized Visual Data Analysis with Python 
might be a better and more focused project.


When I was doing statistical data analysis on a daily basis for a 
living, I would have loved to have had a system that would read in the 
first line and let me define (and name) the fields by point and click.

(I usually worked with fixed-width, column-delimited fields.)
Instead, I had to write a format statement and some summary analysis 
code, run it, look at it for sanity, and decide if my format had been 
correct.


Terry Jan Reedy

--
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-13 Thread Alf P. Steinbach

* Peter Nilsson:

Alf P. Steinbach al...@start.no wrote:

One reaction to url: url:http://preview.tinyurl.com/ProgrammingBookP3 has
been that turtle graphics may be off-putting to some
readers because it is associated with children's learning.


[I'll be honest and say that I merely glanced at the two
pdf files.]

Who is your target audience?


Someone intelligent who doesn't know anything or very much about programming and 
wants to learn general programming.




The opening Getting Started
paragraph would probably put off many beginners right from
the get go! You're talking about a 'first language' but
throwing 'syntax', 'windows', 'graphics', 'networking',
'file and database access' and 'standard libraries' at them.

The success of ' for Dummies' is certainly not their
accuracy, but rather that they make far fewer assumptions
that people already know the subject being tought! That
assumption seems almost ingrained in every 'beginner'
programming book I've ever seen!


Yes, I totally agree with not assuming knowledge. However, (without implying 
that you think so) lack of knowledge is not lack of brains. I assume an 
intelligent reader, someone who doesn't balk at a few technical terms here and 
there.


Pedagogically it's a challenge, because a correspondence between knowledge and 
brains is so often assumed, and the field of knowledge accordingly (but mostly 
by historical accident) divided up into basic, medium level and advanced.


And so an explanation of something that's trivial to someone who already knows, 
something in the basic category, might seem (to someone who confuses knowledge 
with brains) to assume a dumb or childish reader. But in reality the 
intellectual challenge of something in the traditional basic category can be 
greater than for something conventionally regarded as advanced. So I strive to 
not make any distinction between traditional levels of knowledge in the field, 
but rather to focus on what's relevant and on how hard something would be to 
grasp for someone without the base knowledge and experience.




What do you think?


Whilst everyone knows children tend to think visually more
than abstractly, the same is precisely true of adults.
However, the ultimate problem with Turtle is that it ends
up teaching a 'mathematical' perspective and it's far from
intuitive how you map that perspective to tackling more
real world issues. It's simply substituting one difficult
abstraction with another.

My recollection is that many children struggled with Turtle
graphics because they had very little concept of trigonometry.
[Why would they? Many wouldn't learn for another 2-10 years.]
Adults tend to have even less concept since they almost never
use trig (or much else from school ;-) in the real world.

They can see the patterns and understand there's a logic to
it, but they struggle replicating it. Get an angle wrong
and you end up with a mess where it's not clear whether it's
your algorithm or the maths that's at fault.

The visual aspect might pique interest, but may put just as
many people off. In any case, it won't relieve the difficulty
of having to teach what is fundamentally an abstraction that
doesn't have very good parallels with how people approach
problems in the real world. Humans simply don't think like
mathematicians^W computers. :-)

I've met a lot of mathematics and comp sci teachers who
honestly believe that you can't teach these subjects without
a mathematical perspective. That stands in contrast to the
number of people I see using spreadsheets with a very high
proficiency who would never dream of saying they were good
at mathematics or programming.


Uhm, yes, I agree. I've tried to limit the math to what most anyone can handle. 
No geometry so far! Although it will have to be discussed for graphics. But 
although most ch 2 examples are graphical, graphics generation as such is not 
discussed. It's like the difference between driving a car and designing one. You 
don't need an engineering degree to drive a car. :-)



Cheers,  thanks,

- Alf
--
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-13 Thread Richard Heathfield
In hdj4aj$7k...@news.eternal-september.org, Alf P. Steinbach wrote:

 But in reality the intellectual challenge of something in the
 traditional basic category can be greater than for something
 conventionally regarded as advanced.

And consequently is much harder to teach. I have nothing but 
admiration for primary school children and their teachers, because 
children can *actually learn to read*. Once you can read, future 
learning objectives become much easier to achieve. Same with 
programming - once you've grokked the core ideas, the rest is more or 
less window dressing in comparison.

The gap between nought and one is much greater than the gap between 
one and a thousand.

snip

 It's like
 the difference between driving a car and designing one. You don't
 need an engineering degree to drive a car. :-)

Right. Nowadays, you need a degree in electronics instead.

-- 
Richard Heathfield http://www.cpax.org.uk
Email: -http://www. +rjh@
Usenet is a strange place - dmr 29 July 1999
Sig line vacant - apply within
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-13 Thread BGB / cr88192

Peter Nilsson ai...@acay.com.au wrote in message 
news:ed7d74f6-c84d-40f1-a06b-642f988fb...@x25g2000prf.googlegroups.com...
 Alf P. Steinbach al...@start.no wrote:
 One reaction to url: url:http://preview.tinyurl.com/ProgrammingBookP3 
 has
 been that turtle graphics may be off-putting to some
 readers because it is associated with children's learning.

 [I'll be honest and say that I merely glanced at the two
 pdf files.]

 Who is your target audience? The opening Getting Started
 paragraph would probably put off many beginners right from
 the get go! You're talking about a 'first language' but
 throwing 'syntax', 'windows', 'graphics', 'networking',
 'file and database access' and 'standard libraries' at them.

 The success of ' for Dummies' is certainly not their
 accuracy, but rather that they make far fewer assumptions
 that people already know the subject being tought! That
 assumption seems almost ingrained in every 'beginner'
 programming book I've ever seen!


yep, but I guess it depends some on the type of beginner...

many beginner books take the style of lots of examples and verbosity, and 
trying to gradually ease the person into the topic, ...

also common is more of a crash course style, where topics are introduced 
and defined, and where the contents tend to be far more categorical (in 
these books, often the later chapters and/or appendices are long, and often 
consist largely of definitions and reference material).

there are merits to both styles I think...


I have also seen where they try to fictionalize the topic, or turn it into 
some huge mass of allegories, but I don't really like this style so much...

it is possible the 'turtle' may hold these sorts of associations...


 What do you think?

 Whilst everyone knows children tend to think visually more
 than abstractly, the same is precisely true of adults.
 However, the ultimate problem with Turtle is that it ends
 up teaching a 'mathematical' perspective and it's far from
 intuitive how you map that perspective to tackling more
 real world issues. It's simply substituting one difficult
 abstraction with another.

 My recollection is that many children struggled with Turtle
 graphics because they had very little concept of trigonometry.
 [Why would they? Many wouldn't learn for another 2-10 years.]
 Adults tend to have even less concept since they almost never
 use trig (or much else from school ;-) in the real world.


yep, much the same as trying to teach trig in a pseudo-fantasy setting by 
addressing the relative dimensions of the various parts of Excalibur...

one gets much more amusement out of just watching a sword fight where all 
they do is whack the swords into each other and pause momentarily, with 
whoever was doing the mixing unable to get the delay between the swords 
hitting and the 'clang' much less than about 300ms...


 They can see the patterns and understand there's a logic to
 it, but they struggle replicating it. Get an angle wrong
 and you end up with a mess where it's not clear whether it's
 your algorithm or the maths that's at fault.


yep...

simple, unstructured, thinking is easier.
if one screws up somewhere, it is a lot easier to find and correct the 
problem.

this is probably part of why procedural and OO have traditionally been more 
popular than functional programming:
one does not have to try to bend their mind so much to get things written or 
figure out just what the hell is going on...

granted, some level of mind-bending in necessary for programming, but IMO it 
is more of a necessary evil...


 The visual aspect might pique interest, but may put just as
 many people off. In any case, it won't relieve the difficulty
 of having to teach what is fundamentally an abstraction that
 doesn't have very good parallels with how people approach
 problems in the real world. Humans simply don't think like
 mathematicians^W computers. :-)

 I've met a lot of mathematics and comp sci teachers who
 honestly believe that you can't teach these subjects without
 a mathematical perspective. That stands in contrast to the
 number of people I see using spreadsheets with a very high
 proficiency who would never dream of saying they were good
 at mathematics or programming.


apparently, I don't even approach math in a mathematical manner...


I had thought I had understood math, and I use it enough, but I am 
suspecting that the thing I am familiar with is a good deal different than 
that seen by mathematicians (partly as a result of some interactions with, 
and observation of, physics teachers...).

or, it could be that my world is severely 'bent' because of my exposure to 
computers, and almost complete lack of need or desire to write proofs or to 
expand-out and perform huge amounts of symbolic manipulations by hand...


so, I guess my difficulty curve is rather unusual as well...

I live in a world where vectors and matrices are fairly simple, and 
quaternions would be, apart from my near inability to 

Re: Does turtle graphics have the wrong associations?

2009-11-13 Thread Jonathan Campbell

Alf P. Steinbach wrote:
One reaction to url: url: 
http://preview.tinyurl.com/ProgrammingBookP3 has been that turtle 
graphics may be off-putting to some readers because it is associated 
with children's learning.




Incidentally ... something you may wish to consider for inclusion in you 
book ... games programming and Pygame.


See, e.g.,

Andy Harris, Game Programming (L Line: The Express Line to Learning), 
John Wiley  Sons, 2007, ISBN-10: 0470068221 or


Will McGugan, Beginning Game Development with Python and Pygame : From 
Novice to Professional, APRESS, 2007, ISBN-10: 1590598725.


I have the impression that there are many young people who could learn 
programming via games programming. On the other hand, in languages like 
C++ or Java, the threshold to games programming is extremely high.


Not so using Pygame.

The additional nice thing about Pygame is that it is based on a Python 
binding of SDL (Simple DirectMedia Layer) an open-source games API. This 
could mean easy migration to C++ games programming (using SDL).


Best regards,

Jon C.

--
Jonathan Campbell www.jgcampbell.com BT48, UK.
--
http://mail.python.org/mailman/listinfo/python-list


Does turtle graphics have the wrong associations?

2009-11-12 Thread Alf P. Steinbach
One reaction to url: url: http://preview.tinyurl.com/ProgrammingBookP3 has 
been that turtle graphics may be off-putting to some readers because it is 
associated with children's learning.


What do you think?


Cheers,

- Alf
--
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-12 Thread Terry Reedy

Alf P. Steinbach wrote:
One reaction to url: url: 
http://preview.tinyurl.com/ProgrammingBookP3 has been that turtle 
graphics may be off-putting to some readers because it is associated 
with children's learning.


What do you think?


I just started using the module for simple plots.
I am not a child.
You cannot please everyone.

--
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-12 Thread AK Eric
On Nov 12, 11:31 am, Terry Reedy tjre...@udel.edu wrote:
 Alf P. Steinbach wrote:
  One reaction to url: url:
 http://preview.tinyurl.com/ProgrammingBookP3 has been that turtle
  graphics may be off-putting to some readers because it is associated
  with children's learning.

  What do you think?

 I just started using the module for simple plots.
 I am not a child.
 You cannot please everyone.

I used Turtle back on the Apple in the early 80's... so I personally
have very positive feelings towards it ;)  To each their own eh?
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-12 Thread Peter Nilsson
Alf P. Steinbach al...@start.no wrote:
 One reaction to url: url:http://preview.tinyurl.com/ProgrammingBookP3 has
 been that turtle graphics may be off-putting to some
 readers because it is associated with children's learning.

[I'll be honest and say that I merely glanced at the two
pdf files.]

Who is your target audience? The opening Getting Started
paragraph would probably put off many beginners right from
the get go! You're talking about a 'first language' but
throwing 'syntax', 'windows', 'graphics', 'networking',
'file and database access' and 'standard libraries' at them.

The success of ' for Dummies' is certainly not their
accuracy, but rather that they make far fewer assumptions
that people already know the subject being tought! That
assumption seems almost ingrained in every 'beginner'
programming book I've ever seen!

 What do you think?

Whilst everyone knows children tend to think visually more
than abstractly, the same is precisely true of adults.
However, the ultimate problem with Turtle is that it ends
up teaching a 'mathematical' perspective and it's far from
intuitive how you map that perspective to tackling more
real world issues. It's simply substituting one difficult
abstraction with another.

My recollection is that many children struggled with Turtle
graphics because they had very little concept of trigonometry.
[Why would they? Many wouldn't learn for another 2-10 years.]
Adults tend to have even less concept since they almost never
use trig (or much else from school ;-) in the real world.

They can see the patterns and understand there's a logic to
it, but they struggle replicating it. Get an angle wrong
and you end up with a mess where it's not clear whether it's
your algorithm or the maths that's at fault.

The visual aspect might pique interest, but may put just as
many people off. In any case, it won't relieve the difficulty
of having to teach what is fundamentally an abstraction that
doesn't have very good parallels with how people approach
problems in the real world. Humans simply don't think like
mathematicians^W computers. :-)

I've met a lot of mathematics and comp sci teachers who
honestly believe that you can't teach these subjects without
a mathematical perspective. That stands in contrast to the
number of people I see using spreadsheets with a very high
proficiency who would never dream of saying they were good
at mathematics or programming.

--
Peter
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-12 Thread Vincent Manis
On 2009-11-12, at 11:36, AK Eric wrote:
 On Nov 12, 11:31 am, Terry Reedy tjre...@udel.edu wrote:
 Alf P. Steinbach wrote:
 One reaction to url: url:
 http://preview.tinyurl.com/ProgrammingBookP3 has been that turtle
 graphics may be off-putting to some readers because it is associated
 with children's learning.
Take a look at Abelson and diSessa's _Turtle Geometry: The Computer as a Medium 
for Exploring Mathematics_ (MIT Press, 1986). This is most definitely not a 
kids' book. Chapter titles include `Topology of Turtle Paths', `Piecewise Flat 
Surfaces', and `Curved Space and General Relativity'. 

As well as being a very nice 2D graphics API, turtles let you explore very deep 
math. Of course, they also let you explore cybernetics and feedback; see some 
of the old MIT AI Lab reports on LOGO for that (you can find them at MIT's 
CSAIL lab website). For a lot of that, you actually need a robot turtle, like 
perhaps a LEGO Mindstorms robot. Seymour Papert (who did a lot of the MIT LOGO 
work) was, before his terrible motor accident, in research chair endowed 
by...LEGO. Hmmm... :)

Of course, some people don't like Python itself because they are afraid of 
snakes. 

 I used Turtle back on the Apple in the early 80's... so I personally
 have very positive feelings towards it ;)  To each their own eh?
I did my master's thesis on LOGO about 10 years before that, and I have VERY 
warm and fuzzy feelings about turtles :)

-- v
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-12 Thread Raymond Hettinger
On Nov 11, 10:21 pm, Alf P. Steinbach al...@start.no wrote:
 One reaction to url: url:http://preview.tinyurl.com/ProgrammingBookP3 has
 been that turtle graphics may be off-putting to some readers because it is
 associated with children's learning.

 What do you think?

How about calling it Raptor Graphics that will please everyone ;-)


Raymond
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Does turtle graphics have the wrong associations?

2009-11-12 Thread Alf P. Steinbach

* Raymond Hettinger:

On Nov 11, 10:21 pm, Alf P. Steinbach al...@start.no wrote:

One reaction to url: url:http://preview.tinyurl.com/ProgrammingBookP3 has
been that turtle graphics may be off-putting to some readers because it is
associated with children's learning.

What do you think?


How about calling it Raptor Graphics that will please everyone ;-)


He he. :-)



import turtle as raptor
raptor.shape( triangle )

def draw_poison_bush( level, angle, stem_length ):
start_pos = raptor.pos()
raptor.left( angle )
raptor.forward( stem_length )
if level  0:
draw_poison_bush( level-1, 30, 0.7*stem_length )
draw_poison_bush( level-1, 0, 0.85*stem_length )
draw_poison_bush( level-1, -37, 0.65*stem_length )
raptor.right( angle )
raptor.goto( start_pos )

raptor.title( A DANGEROUS poison bush! )

raptor.left( 90 )
raptor.back( 180 )
draw_poison_bush( 6, 0, 80 )

raptor.mainloop()



Cheers,

- Alf
--
http://mail.python.org/mailman/listinfo/python-list