[Edu-sig] How do we tell truths that might hurt

Anna Ravenscroft anna at aleax.it
Thu Apr 22 18:48:53 EDT 2004


On Thursday 22 April 2004 21:43, ajsiegel at optonline.net wrote:
> Anna writes -
>
> >Teaching algorithmic thinking is crucial, imho. And teaching them
> >that there *are* ways to apply this in their own lives is the other key.
>
> As we know, I'm always one to beat the dead horse:

You can lead a horse to water, but you can't make it drink. And you can lead a 
whore to culture, but you can't make her think. ;-)

> I don't think I would be alone in challenging a distinction between
> "algorithmic thinking" and practicing mathematics.

I haven't done mathematics more complex than basic bookkeeping in quite a 
number of years, but I *have* used the algorithmic thinking skills I learned. 
You may choose to call algorithmic thinking "practicing math". I recognize 
that the term came from mathematics. However, as you know, it has  
applications outside of mathematics - unless you'd like to claim my recipe 
for cooking potato salad as a mathematical operation. 

Algorithms in the form of recipes for cooking everything from peanut butter 
sandwiches to chocolate chip cookies to potato salad abound. As does the 
ubiquitous "lather, rinse, repeat" algorithm from the back of the shampoo 
bottle that is used in many introductions to algorithmic thinking.

As I said, learning algorithmic thinking is a useful thing, even for folks who 
never program a line of code in their lives; however, teaching them to apply 
it beyond mathematics is important, imho. 

> But if we need to start off by fooling people who already know they don't
> like mathematics into thinking that they are not doing it - well, for the
> good of the cause, I'll try to play along.

Nothing wrong with doing math too, or *starting* with basic math in 
programming. After all, it's nice to type 2+2 at the interactive prompt in 
Python and show folks how easy it can be. Just make sure you don't forget to 
let folks know there are *other* uses. 

For example, I remember being taught for loops. Every example was along the 
lines of:

>>> for i in range(10):
	    print i*2

It never occurred to the teacher to tell us that for loops were useful for 
something *other* than iterating over ranges! I finally had to ask if they 
could be used for anything *else*. Only then did it dawn on him to mention 
the other possibilities. If I'd known early on that it could also be used for 
iterating over lists or dicts or strings, I'd have been much better able to 
see what I could do with it and why it was a really cool thing! Frankly, 
there are few times I would want to iterate over a range. But there are 
*lots* of uses for iterating over a list. 

This is the kind of blindness I think of when you talk about teaching 
programming with a focus on *math*.  Instead of math helping me to learn 
programming in a concrete way,  it built a concrete wall around my 
understanding of programming. 

> But do I get to say "fooled you", at some point in the game? ;)

As soon as you've finished teaching the lit major or the secretary or the 
artist to be excited about programming and capable of using it for *their* 
purposes, you are welcome to say "guess what - you're really doing math!" If 
that makes you happy - go for it. Personally, I'd rather say "guess what - 
you're programming!" 

Anna




More information about the Edu-sig mailing list