[Edu-sig] creating an interface vs. using one

Michel Paul mpaul at bhusd.k12.ca.us
Sat Sep 23 11:25:31 CEST 2006

A couple of days ago I attempted to describe to my math dept chair the elegant way you can zip two lists in Python to create a set of ordered pairs.  Her response was dismissive, saying you can do the same thing on a TI using lists.  Her point was that we were each doing the same thing in a different way.  My response was uhhh ... no, there's a huge difference.  My point was, and always has been, that thinking in a language is not the same thing as, is deeper than, using a gadget.  What follows is the body of an email I sent her.  I'd welcome any feedback to help develop my argument.  

Also - our school is building a new math/science/technology center.  I see Python as an excellent kind of thing to get people to explore.  I attended the SciPy conference at CalTech in August, just to see what kind of things were going on, and it was amazing.  But no one at school seems to care.  It's weird.  I feel like I've found this treasure, and I keep saying to people, "Hey!  I've found this treasure!"  But no one cares.  It's so weird.

A big problem that I see is the focus on the glamour of tech toys.  Our district is willing to spend money on SmartBoards, and these are really cool things, but there's so much else they just aren't paying attention to.  The focus is on getting gadgets.  But my point is that education should be more about language and the articulation of ideas.

So here is what I sent my dept chair.  Thank you for any suggestions to help get across to my dept what kinds of things COULD be done - I'm still finding out about Python myself.

- Michel 


Here are some points I think are important:

Using calculators vs. thinking in a language are NOT two different ways of “doing the same thing”.  What is the “thing”?  True, if you’re creating a list of ordered pairs from two lists, you can “do it” on a TI or in a Python shell, but the difference in the two approaches is immense.  On a TI you have to learn where the buttons are.  In a Python shell, all you need to learn is Algebra:  

>>> x = [0, 2, 4, 6, 8, 10]
>>> y = [9, 7, 5, 3, 1, -1]
>>> myListOfPoints = zip(x, y)

So far, the only syntax issue beyond Algebra is “zip”.

>>> myListOfPoints
[(0, 9), (2, 7), (4, 5), (6, 3), (8, 1), (10, -1)]

What I’m showing here is precisely what you would get INTERACTIVELY in a Python shell session.

What you type at the >>> prompt simply gets evaluated.  It’s SO easy!

There’s a tremendous unity here – not a bunch of different buttons.

If a student can articulate their thoughts in Algebra, then they can articulate their thoughts in Python.

You don’t need yet ANOTHER piece of software to record and display the “history” of button presses.

The symbols hang together NATURALLY because of MEANING.  That is important!  It really is.

Look how simple this is:

>>> def f(x): return 2.0*x + 3.0

>>> def g(x): return (x - 3.0) / 2.0

>>> f(5)
>>> g(13)
>>> f(g(7))
>>> g(f(7))

Again, WYSIWYG!  That’s it!  I’ve defined a function and its inverse, and I’ve shown their composition.

The only syntax required other than Algebra is “def” and “return”.

Sure, you could “do it” on a TI as well, but it would be kind of clunky.  What you see above, you can do on the fly.

The argument that not every kid can have access to a computer is, first, false, and second, irrelevant.  It’s like using a SmartBoard – the kids don’t have to have SmartBoards at their seats.  That isn’t the point.  The teacher uses the SmartBoard as a canvas on which to create artworks of ideas.  A record can be kept of what was created.  Same with Python.  It blends in perfectly with this SmartBoard kind of world.  With a language that looks like Algebra, the kids don’t have to learn how to “use” a piece of software or a gadget.  They can take the concepts home with them and download Python for free.  You can put Python code on the school web page, and they can download it and use it directly.  No special hookups needed.  No gadgets.  Nothing to buy – other than the computer, but these days, computers are as common as TV sets.

You CANNOT articulate OO on a TI.  You can’t create a class.  Most people don’t care, right now, because they don’t even know what that means, but I can guarantee you that there’s a bunch of scientists at places like CalTech who DO care!  Mathematics is already object-oriented, and the curriculum of the future will need to make students conscious of that fact.  OO is not something just for CS majors!  Seriously.

Language transcends device, because a language can create a device.  Devices don’t create language.  What a language is is deeper than what a gadget is.  With just a slight bit of tweaking, the language of Algebra can become a computational language!  That’s really cool.  I just don’t get why more people don’t care about that, at least at a high school level.  Because, again, I can guarantee you that there are a lot of scientists at CalTech, and JPL out there who DO care and who agree with me that THAT is what 21st century math should be about!  Not USING interfaces – articulating them!

More information about the Edu-sig mailing list