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

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

-----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of Toby Donaldson A wiser approach is to encourage students to use the best tool for the job.
Were it only that easy. Perhaps it is easy, except when its important. For example, what is the best tool for the job of teaching introductory computer science? The best tool for the job is apparently not apparent. Or is the definition of the job that is not? Art

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
The use of 'gimp' was a play on Gimp, the source of GTK, a premier X-Windows library. It's not supposed to come across as hostile, but simply as reassurance to a resolute core group, that command-line savvy is not in vain. We're contenders. We matter. That sort of thing. Cheer leading. And then there's an edge to it, because you don't want to envy the competition so much that your concentration fails. So we bad-mouth the GUI people a little, but only to keep our spirits up, as we're secretly in love with GNOME, KDE, and the rest of them. In fact, we're all on the same team. I code GUIs, and I like command-line straightforwardness. I'm representative of a huge group of coders. Kirby
participants (3)
-
Arthur
-
Kirby Urner
-
Toby Donaldson