[Edu-sig] re: promoting computer literacy through programming python

Laura Creighton lac at strakt.com
Fri Jan 2 09:32:28 EST 2004


In a message of Thu, 01 Jan 2004 18:19:57 PST, "Kirby Urner" writes:
>
>It's the word "disadvantage" that somewhat rankles.  "This is just how it
>is, get over it" is more what you're saying.  Students should be
>broad-minded enough to realize that a cultural convention is just a cultural
>convention.  If they can't even accommodate 0-based indexing in their lives,
>how narrow their little lives will be.

I realise that you are rephrasing what you think Arthur meant, so
neither of you may believe that but 0-based indexing is 'just a
cultural convention', but it is not.  It has to do with how you
visualise the entire problem.  If you are counting, starting with 0,
then you are almost certainly doing it wrong.

Here it helps to have a language which declines its nouns differently
based on whether they are countable or not.

What you need to get into your head, is not some simple rule, (e.g.
start counting and then subtract 1) so that you can think of sequences
as countable collections of symbols, but as a continuous quantity
with countable marks, and with the numbers in the middle between them.

The important thing is to get people to be able to see numbers this way.
That way you can join the ends and see slicing all around.  If you
don't make this visualisation, then you have a burden of more abstract
symbolic rules to simply memorise, and you have to recall a rule in
order to use it -- you cannot simply see it -- at least until you have
done it enough times that it becomes an automatic habit.

I think that it is this factor 'more arbitrary gunk to memorise' which
more than anything else contributes to making computer languages hard
to learn.  This means that the people who are advocating 1 based
indexing as 'easier to learn' only have it half-right.  They think
that it is easier because it is what the students expect.  But all I
think that this means is that 'they don't have to memorise some more
arbitrary stuff'.  So, if you start teaching sequences and slicing
with scissors, construction paper, and marking pens, where you really
CONSTRUCT sequences and SLICE them ...  you will end up with students
who expect sequences to start with 0, and never had to memorise any
abstract rules to get there.

This is easy to do with 8 to 10 year olds.  But somehow the construction
paper seems undignified when teaching adults.  I think that this is
part of where we have a cultural problem in education.

Somewhere along the line, we decided to teach people by stuffing them
with abstract knowledge, and reward those who can regurgitate it the
best.  Along the way we managed to equate 'being smart' with 'being
abstract' and made a decent ability to memorise a prerequisite for
good marks.  This came with a steady deprecation of the concrete, or
the not-abstract.  I think that this was intentional, but in any case,
children's books have pictures, adults have not, and the language is
more and more abstract the higher you go, until eventually people 
think that it is childish, undignified, to not be taught in an
abstract fashion.

Books about teaching how to read talk about 'reading readiness'.  Take
a young child, and teach him or her the alphabet (we are dealing with
children whose language is phonetic) and teach them the sounds that
each letter makes, and show them words, and get them used to the idea
that 'the words in the book' == 'the story I am reading you' and
show them animals, one per letter ... and then you have to sit and
wait.  You have given the child all the background bit he or she needs
to learn how to read, and (assuming that the child _likes_ stories,
and has any desire to read on his or her own) something will go _pop_
and the child will get it, and start reading.

I think that there is something rather similar going on with _reasoning_,
and indeed with programming, and you need to have some basic 
'pre-reasoning' concepts in you before you can put it all together.
But by the time you traditionally learn programming, i.e. as an
adolescent, you have had plenty of enough time for your mathematical
education to have been a shambles.

And this, I think, is one part of the reason that people still say
'to be good at programming you have to be good at math'.  It is not
the case that programming has very much to do with mathematics.  But
mathematics also teaches you how to reason.  And if your get good marks
in mathematics, it almost certainly means that your ability to reason
has developed in good fashion.  (But not inevitably -- people with
eidic memories can manage to handle mathematics by skills of memorisation,
and manage to not learn to reason, which is why you have to look for 
them in class.  They need unusual, and extra special treatment.)

I think that there are some sort of basic set of 'reasoning readiness'
ideas that have to be floating around in the mind of somebody who is
learning how to reason, just as you need to have some knowledge of
phonics and alphabets in order to learn how to read.  I think that
knowing the difference between a 'uncountable' and a 'countable' --
-- or, in English -- when to say 'less' and when to say 'fewer' is 
one of the things that you need to know in order to reason.
If, for some reason, a child doesn't find this out by themselves, then
they are going to have a very hard time having certain thoughts.

So the -- start with 0 or 1 is not some arbitrary rule.  It has to do
with the mental representation you have in your head as you think the
problem -- until, of course, it is an automatic habit that you do
'without thinking' -- at least automatically, without paying attention.
If you learn it as an arbitrary rule, then with repetition it can also
become automatic.  But your thiking ability may have a hole in it -- you
may still have not learned countable/uncountable.  If that isn't fixed,
then your ability to reason will be impaired, and you won't even be
aware of _why_.  (And you may need to go back to construction paper
to learn it, even if you are an adult.)

I wish we knew more about why it is that people find things hard to learn.
I think that, learning disabilities aside, it often comes down to not 
having some prerequisite concept. But identifying them is hard.


>I note that in some mathematics texts, A-sub-zero is the first term in a
>sequence, i.e. 0-based indexing is not unknown to math-based text book
>writers.  In MathCad, there's a global setting you can flip and go either
>way.
>
>My preference would be to have students become aware of these two
>widely-used options.
>
>> 
>> I happen to be a 'with cream sauce' kind of guy.
>> 
>> Art
>
>I like 'em both.

Pickled herring in various sauces, some of them creamy is a Jul
tradition around here.  Maybe you should come over :-)

Laura

>
>Kirby
>
>
>
>_______________________________________________
>Edu-sig mailing list
>Edu-sig at python.org
>http://mail.python.org/mailman/listinfo/edu-sig



More information about the Edu-sig mailing list