Two insights on teaching computer programming

Kirby Urner kirby.urner at
Mon Jan 2 18:51:27 EST 2006

What a lot of students are looking for in a first year CS is a lot of
overview and exposure to tools they'll be able to use in other walks of
life, i.e. they've already decided they're not CS majors (however, that
doesn't mean they can't be recruited -- especially if the course lives up to
their high expectations, plus some will be on the fence (undecided)).

An alternative is for other departments to import whatever computer stuff
they need, much as physics reteaches a lot of calculus, e.g. to think
against t (time as the independent variable) instead of just x (the practice
in many high school curricula -- it makes a real difference, the time

At Carnegie Mellon, you get physics importing Python in the form of VPython,
with an eye to doing more physics, not getting all that deeply into CS per
se.  The Python community is cram packed with such para-programmers, with
core expertise in telescopy, x-ray microscopy, molecular biology or other
fields.  CS types write the language, but the clients are from many walks of
life (which accounts for the large library -- not as big as CPAN though, nor
as centralized).

Or maybe there's a happy compromise?  At Princeton, my intro to computer
engineering was pretty broad, with lots of dissection of hardware, forays
into alternative languages.  We used PL/1, FORTRAN, SNOBOL, Assember and APL
all in freshman year -- not expertly of course, but to get a feel for the
territory.  Nowadays, the sampler would be different, with attention to
differences between compiled, interpreted, virtual machine based; strong,
weak and dynamic typing; client side vs. server side programming etc.

If a graduate of a one-year CS course, a biology major, is able to say to
herself "OK, for what I'm doing, I'd best use a dynamic/agile language
against a backend database, using simple XHTML forms for a front end" then
I'd consider the course a qualified success.  She's learned a lot of the
concepts and is able to make decisions in terms of them.  She knows about
XML and SQL, has an appreciation for how we use these tools in the real
world, including in biology.  If a college's CS0 doesn't provide this puzzle
piece, maybe it could be outsourced using distance education circuits?

In sum, I don't think the intro CS stuff should be planned only as a part of
some longer CS sequence for majors.  It should also serve as a standalone
component of a liberal arts education, giving its takers a welcome boost in
whatever chosen field.


More information about the Math-thinking-l mailing list