[Tutor] evolutionary drift

Alan Gauld alan.gauld at yahoo.co.uk
Wed Nov 21 06:09:12 EST 2018


On 21/11/2018 03:05, Avi Gross wrote:

> <> is not currently used as a matched set as it has many other uses like in comparisons.> Some languages even use <> as the same as != or ~= to mean not equals.

Indeed, Python used to do the same but it was removed in, I think, v2.

> A simple teaching language that uses English words children know 

Probably the best example of that I have seen is Logo.
Although it does use [] and ()
But otherwise its quite child friendly. But ultimately
that makes it less likeable in the "grown up world"...

> Python can still be a great teaching language if kept to a subset 

That is true and it is still one of the very few
languages that I'd recommend for teaching. But sadly
its underbelly shows through very early for beginners.
For example in v1 Python range() returned a list.
That was easy to understand. Now range() returns
a "range object" - what the heck is that? and why
do we need it?

Similarly with iterators.
Things that could easily be iterated over without
thought now require "iterators" and/or evaluate to
iterators. And the error messages tell you so
- but iterators are a concept wholly alien to
most beginners. And are quite hard to explain.

Those are just the two things that beginners most
frequently mail e about from my tutorial. There
are lots of other areas where Python implementation
now shines through in ways that trip beginners up.

> What is easy to teach to children? 

I'm not sure we should even focus on children.
It's more about teaching anyone(regardless of age) who
has no prior experience, and especially little or no
formal math background. Someone with good high school
math can be taught programming fairly easily. But
with no math foundation even basic concepts like
expressions and assignment become very difficult.

It may even be impossible. I used to think that
anyone could learn to program but over the last 30
years of trying I've come to the conclusion that its
not true. You need a brain that's wired a certain
way otherwise it just doesn't make any kind of sense.
Its like math. Some folks just can't understand
mathematical concepts, they are illogical and
non-sensical to them. They might learn  some basic
principles by rote but they never really see how
or why it is so. Same with programming. Some people
just don't get it. Thankfully those are a very
small minority!

-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos




More information about the Tutor mailing list