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

Toby Donaldson tjd at sfu.ca
Mon Jun 6 00:13:22 CEST 2005


> I'd like a CS0/CS1 to take a more resolutely historical approach and clomp
> through the command line era in grand style, taking very seriously the
> command line switches, man pages, HTML manuals or whatever.  Especially in
> UNIX, these commands were designed to be chained, switched, piped,
> redirected.  They were tiny toys, power tools, micro apps.  The accomplished
> sysadmin had enough of them down to perform serious kung fu.

While I don't think a completely command-lined based approach would work well for a large mixed-audience CS0/1 class, I think it is an important and useful tool that developers should know about. 

Unfortunately, most students are not excited by system administration. Indeed, many programmers dislike it too. Similarly, most university instructors would be turned off by the idea; "system administration" is a a dirty word in "proper" CS education. 

As a case-study in programming, system administration is a good example of how to get simple programs to do useful things for you.

> So my CS0 is a combination of command line Linux, Python shell, Python shell
> invoking command line Linux, Python programs run as scripts, from the
> command line.  

A side-effect of relying IDEs for programming is that most students only know how to run a program through the IDE. I think in a first course showing students how to launch programs from the command-line is good idea. I would allow but not require students to use the command-line for program *development*.

> This would seem very austere to newbies, but we'd perpetuate
> the ethos that GUIs are for gimps -- you don't need those handicaps to play
> the game.  But it'd be a mock attitude, i.e. we secretly respect GUIs (the
> good ones) and write them ourselves.  

Yikes. Any "gimp" who has had to work with a programmer "educated" in this sort user-hostile rhetoric knows that it leaves a lot to be desired. I can't understand why anyone would want to actively promote it, except as a joke about the foolishness of some programmers. A wiser approach is to encourage students to use the best tool for the job.

Toby



More information about the Edu-sig mailing list