[Edu-sig] CS teaching approaches

kirby urner kirby.urner at gmail.com
Tue Dec 22 05:55:35 CET 2009

On Sun, Dec 20, 2009 at 3:45 PM, Andy Judkis <ajudkis at verizon.net> wrote:

>>  2) Talk about the history.  Show them some really old computers.  Talk
>>> about
>>> the Analytical Engine. Make sure they know what Moore's Law is.
>> Yes, and make sure you include Ada and Grace Hopper.  Computer science
>> is about women, and men.
> I definitely stress Ada's contributions -- I talk about her when we go over
> the analytical engine, and then come back to her when we do programming.
>  Hopper, not so much -- obviously she was a very important contributor but I
> think a lot of girls would find her off-putting -- she kind of confirms some
> of the stereotypes that we're trying to get past. I'm not confident about
> this, it's just my gut feel, and I'd love to hear some other opinions.
Sure, different teachers, different lore, different stories.

What I encourage though, is telling stories.  Sounds like you do as well.

A diet of just technical information is too devoid of context and is what
the neighboring math tracks most suffer from i.e. there's often almost no
historical dimension, little sense of a time line.

When I gave a workshop at Pycon this year, with Steve Holden, I had this
slide showing the two axes:  technical, and lore.  You have this curve,
representing whatever finite bandwidth, and a kind of trade off.

As teachers (and as communicators more generally) we slide around on this
curve.  Sometimes just being straight ahead technical is not the best

Regarding Ada, I once wrote a spirited defense of her keeping the title of
"first computer programmer".  A cover story in the New Yorker magazine, with
a spoofy caricature of her, proposed to take that away.

Regarding Hopper, I saw a video clip of her once, explaning a nanosecond as
how long it took light to travel the length of her forearm.

She had a very reassuring and commanding presence I thought, probably goes
with being a Rear Admiral or some such.

>From what I've learned so far, I have nothing but admiration for her
contributions and acheivements, but don't consider myself an expert.  I'd
like to learn more.

More lore!

> I have a unit where I give each kid some computer-oriented person to learn
> about and report on to the class, and I try hard to find hip and/or unique
> personalities, or fascinating life stories. I've got about 20 that seem to
> fit the bill pretty well (Lynn Conway is probably the ultimate in
> fascinating biographies -- but I also give them John Perry Barlow, Jared
> Lanier, Alan Kay, Jack Tramiel, Nolan Bushnell, John Von Neumann. . . ), but
> would love suggestions for others, especially more women.

You know a lot of cool stuff, probably explains why you get to teach these
cool classes.

Twas my privilege to meet and hang out with Alan Kay over the course of a
2-3 day marathon meeting.  People from many walks of life were huddled to
think of a good way forward for South African educators -- we had some
government representatives and full time teachers from that country among us
as well (this was a meeting in London).

Alan is an impressive character, not someone I'd easily forget.  The late
Arthur Siegel and I used to trade views about him in this archive (Arthur
being someone else who makes a lasting impression).  Alan seemed clearly
admiring of Python, also of Javascript.

Alan had something of an 'Idiocracy' perspective (know the movie I mean?) in
that he saw too much backsliding and devolution.  This made him
uncomfortable.  I can't say I'm not empathetic, but then maybe I'm one of
the devolved.

I got to speak at London Knowledge Lab on my way to this meeting:

Of course Alan connects to his Dynabook idea and more recently to One Laptop
Per Child (the XO is like a Dynabook on some ways).  Python and OLPC
continue to have this close connection thanks to Sugar.  I'm sure you know
all this, just wanting to graph the scene.

Say, I'm amazed how OLPC didn't spread across the USA's
back-of-the-cereal-box culture, or maybe it did and I missed it?  Did anyone
here ever see an XO on the back of a Cheerios box?

Industry talks to children through TV and cereal boxes (among other ways).
Some cereal company needs to develop a geekier brand of breakfast cereal and
sponsor a matching TV show.  Marketing avatars could use this opportunity to
show off how they're able to keep technical content girl-friendly, not make
it all Johnny Neutron and boy-centric.

Hey, cereal companies!  Want some help?

>  I think the history of computers needs to come through AdaBabbage,
>> then Turing and Bletchley Park.  You need to explain about Enigma and
>> all that, why there was suddenly such an impetus to make digital
>> computers real, not just talk about them.
> The best friendly treatment of all this that I've found is The Cartoon
> Guide to the Computer by Larry Gonick.  Boy, would I like to see that
> updated and re-released.
Encouraging students to draw their own cartoon guides would be another
option, with examples to draw from.

The lore we choose might be themed to motivate specific technical studies.

For example, I tell the story of Hollerith machines, tabulators, keeping
tabs, as a build-up to SQL in what I call Supermarket Math (you need SQL to
run a contemporary supermarket).

However, this topic of collecting data about people, anonymous or not, gets
us into that realm of worrying about what information is collected, fears
and trepedations (which we don't dismiss or pooh pooh).  When explaining
"how things work", one needs to be prepared to delve into these issues of
privacy, monitoring, Big Brother.

True story from the Python.org diversity list, which is all peace and quiet
these days:  we were talking about those check boxes Americans use to
enquire about ethnicity and/or race.  Should these be added to Pycon
registration web forms, as a way to help measure diversity?

At least one of our European subscribers was very clear that such boxes
would come across as offensive, even illegal in a European context.  Asking
about ethnicity, keeping tabs in that way, was a precursor to the holocaust,
and that's never far below the surface in these kinds of discussions.

Yes, I'm getting into mature topics (sobering) and maybe we're not talking
about middle school any more.  My talk was actually more about "andragogy"
than "pedagogy" i.e. teaching adults.  As adults, we should consider the
lore we teach to ourselves and one another.

Another story I tell is about the rise of Unicode based on the model of
ASCII.  The 7-bit map with a parity check, the extra 128 slots once you use
all 8 bits.  IBM code pages.  And then Unicode.

Lots of stuff to show and tell about including showing examples of
non-Latin-1 Python source code. The story both gives perspective, and it
motivates a technical discussion about powers of two, about how each
additional bit doubles the number of code points.

This is a happy story about people around the world agreeing to support all
these human languages and bringing them forward in a digital age.  After the
workshop though, some attenders were keen to give me a more nuanced
version.  Each one of these stories goes to many levels and the classroom
versions will necessarily be abbreviated.

A final example of a good story is what we already talked about:  following
the cryptography thread through that interesting chapter when public key
first came out.  Zimmermann's PGP, government efforts to squelch its export


Students enjoy visiting that page showing giant RSA composites still needing
to be cracked, with big money prizes for those that crack them (this contest
has been discontinued I notice).

Examples of already cracked numbers provide more grist for the mill.

http://www.rsa.com/rsalabs/node.asp?id=2092 (RSA numbers)
http://www.rsa.com/press_release.aspx?id=462 (cracking DES)

WIth this story as background, it's easier to motivate technical sessions
working the giant (long) integers.

What story might motivate using the Decimal type to a large number of
significant digits?

I can think of one or two, but I'm curious what you or others might offer.

>  3) Show them some things about operating systems (the task manager, a DOS
>>> command window) and talk about viruses, worms, zombies, botnets,
>>> cyberwar. .
>>> . stuff like that
>> Yes, offer practical advice about how to stay safe and play safe.
>> Encourage high ethics.
> Not just that, but it helps them understand stuff that's in the news.  They
> start to notice more of what's going on.
Exactly right!

Where's the TV show that does this on Saturday Morning?

>  6) Have them do some simple web pages by writing HTML tags with a text
>>> editor.
>> Yes, excellent, and talk about CSS too.  I love that web site we all
>> know about probably, where you just reload the same HTML with skin
>> after skin (defined separately in the CSS).
> I guess you mean www.csszengarden.com?  I show that after introducing
> style sheets, and it blows their minds.
Thank you!  That's the one!

>  The How Things Work component is what's really important a lot of the
>> time, and it's not just the personal computer on your desk that's
>> important to comprehend.  We need to explain about larger systems,
>> institutions, in which computers play a role.  This includes
>> explaining about social networking software, not making kids simply
>> guess or imagine what's going on behind the scenes.
> Agreed.  I think that familiarity with this stuff at some basic level is
> important for all citizens, not just future tech geeks.
More Geek TV!

> Which kind of brings it back to Roberto's original post -- what should you
> teach in a middle school CS class?  I wouldn't focus on formal programming
> at all -- at that age, I suspect that very few kids will find it compelling.
>  I'd point to http://csta.acm.org/Curriculum/sub/ACMK12CSModel.html and
> also http://csunplugged.org/ for more ideas.
> Thanks,
> Andy

Right.  Not so much formal programming.  More creative play, dabbling, using
Python as a calculator, interactively in the shell (as way smarter
calculator in so many ways, especially when you add 3D plotting, turtle
graphics, the ability to read and write files...).

Having students scan already tested source code (scaffolding) with a kindly
tour guide teacher, is a very different exercise from sitting in front of a
blank canvas and feeling under pressure to produce.

It's the difference between recognition (recog) and recollection (recall).
The former is much easier and will usually precede writing code by oneself.

Likewise an infant spends a lot of time absorbing language in an immersive
environment, listening to fluent speakers, before having to say a whole lot
on her own.

CS Unplugged got favorable mention at our planning meeting on Aug 7 (which
I'm sure I posted about, perhaps to excess on this list).

Here in Oregon, there're moves afoot to get some computery stuff to count
towards fulfilling the minimum three year math requirement, meaning the
course would not have that "elective" flavor.  You'd take it to satisfy a
3rd year requirement for a hight school diploma, and heres a "digital math"
class that will do that for ya.

Some schools are already doing pilots along these lines (we met at one that
was doing it).  There doesn't seem to be much push back.  Seems more like a
done deal (that's must my personal perspective -- don't know what I don't

Computer science teachers like the idea because now some of them get to
teach a required course.

Math teachers like it because now they get to use cooler more motivating
tools without losing "required track" status.

The students like it because working with computers is more fun than not.

The parents like it because the skills look very career relevant.

Industry likes it because the skills are indeed career relevant.

There's lots of agreement Python will play a starring role in all this (the
Litvins text got waved around as exemplary -- not by me as my only copy was
PDF), though at the level of standards, I don't know that a specific
language actually needs to be specified.**

We're *not* talking about an AP (Advanced Placement) course here, where the
course designers have a national test in mind, and so have to be specific as
to language (traditionally Java these days, used to be C++ I'm pretty sure).

Anyway, a lot of us on edu-sig, such as Gregor in Vienna, are blissfully
exempt from needing to care about AP, ETS and all that.


>>> from mars import math

** http://mathforum.org/kb/message.jspa?messageID=6933198&tstart=0  (re
standards and how "meaty" we might want them to be -- a somewhat contentious
list, a front lines for "math wars" on some days).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/edu-sig/attachments/20091221/8f227ba9/attachment-0001.htm>

More information about the Edu-sig mailing list