[Edu-sig] A case against GUIs in intro CS :-)

Kirby Urner urnerk at qwest.net
Sun Jun 5 18:08:06 CEST 2005


> The only realms that I can think of in which the notion of the voluntary
> adoption of and adaptation to discomfort has been successfully introduced
> is
> 
> Religion
> Athletic training
> 
> I have decided to (at this time) forego the incorporation of the Church of
> the Awkward Interface (hmmmm... foregoing some nice tax benefits), and
> concentrate for the time being on the athletic training meme.
> 
> See how far I get.
> 
> Art

I think the athletic training metaphor is a fine one to milk.  I'm drawn to
the bicycle world in particular, where there's the actual activity of
riding, which may be very strenuous (distance racing is one of the most
punishing of all competitive sports), but also the job of maintaining the
bike.  Race car people do the maintenance too, including deep rebuilding of
engine components, but the bicycle is more transparent, lighter weight, so
I'll stick with them.  Horses would have been another option, but our urban
kids wouldn't get it.

To me, the *nix OS as approached through the command line feels like a
bicycle repair shop.  Lots of little tools, all of which do something useful
and specialized.  Used in concert, you can do wonders with your bicycle,
which on this analogy might be some project or application you're developing
(maybe for someone else -- bicycle shops aren't confined to working on the
owner's bike, especially given ssh).  

The *nix OS, unlike Windows, is all about giving the developer a lot of
developer tools.  Microsoft sees those as extra (e.g. Visual Studio), and as
intensively GUI-based.  That's because DOS was written for the end user, the
stereotypical consumer of apps.  Early Windows was merely a GUI-based
wrapper for DOS (at least at first) and preserved the "developers do it
elsewhere (i.e. on our more expensive platforms)" aesthetic.

Also, although bicycle technology has changed over the years, it's still
very inter-generational.  Likewise the command line.  Some may consider it
antiquated, superseded by the GUI, the desktop.  That's not really a correct
assumption.  People still need to build and fix bicycles, and the command
line tools still make sense.  Some are more obscure than others, but it's
not a waste of time to get fluent with at least a subset of them.

The link to math and Python is that math notations aim to be self-contained
i.e. to take my course, you don't need to take any other mathematician's
course, because like she or he, I'm trained to build everything from axioms
right in front of you, such that my towering theorems are seen to rest on my
secure foundations, and you're suitably impressed -- like, math is
impressive.  

So if we're playing around with shells, doing math, we'll at least need to
at least be able to ssh, ls, cd and such.  We don't tell you to go down the
hall for that; just stay in your seat and all will become clear, and if
you've heard it before, listen again, because this is the math department
now, and math is different.

Kirby




More information about the Edu-sig mailing list