Subject: Teaching Specific Tools in Universities

From: Shlomi Fish <[email-masked]>
Date: Thu, 9 May 2002 20:07:32 +0300 (IDT)

As opposed to what some esteemed members of this mailing list said in the
"Professor walks bare-footed" thread, I take the stand that it's perfectly
OK to teach specific tools in University. Yes, even stuff like Windows or
Word or Excel or anything which is
proprietary/non-OS/non-Free/non-standards-compliant or vice versa. If they
can stick to O-S tools - all the better, but if there's a good proprietary
tool out there, I don't see a reason why not to use it.

How much will you learn from a course called "The Elements of
Spreadsheets" in which you won't be given home-exercises in
Excel/Gnumeric/KSpread or whatever? I think that absolutely zilch. If
OTOH, you teach someone using MySpread, than while he'll become familiar
with MySpread, he can later take the concepts and paradigms he learned
by using it and work with them on a different spreadsheet program.

In EE, there are some courses that require us to prepare exercises in
Matlab, which is a proprietary product whose full version license costs
$5000 per seat from what I heard. But it is very good and very convenient,
and at the moment has no complete free alternative. But the paradigms
learned by using Matlab, can later be used when coding in PDL or Scilab,
or C or Assembler or any other language like that.

I think students should be introduced to working with one source control
system or another. It can be CVS, it can be BitKeeper, it can be
ClearCase, but there should be one specific such. I use CVS even for stuff
I work only on my own. But I know of knowledgable people who think it is
only good for multi-developer projects. Many people graduate from the
Technion in EE or CS, without even knowing what it is, or ever
experiencing with it.

The reason I suggested the "UNIX in Action" course is to give people a
taste and a lot of useful knowledge on the methodologies involved in
working as a team on a computer system. You can do that in Windows too,
but you'll have a much lower understanding of what's going on while you do
it. And installing stuff from the Net is much less straightforward, both
legally and technologically.

CS people are bound to encounter UNIX sooner or later in their studies,
and my intention is for them not to think it's just a disgusting
command-line system which you telnet into, invoke a few obscure commands,
compile code, use fork() and other monsters, and get a practically useless
Mamat/Structure of OS/Compilation/whatever exercise running. I want them
to see there's a hidden logic underneath and it all comes down to a
beuatiful way of doing things. A way which should be taught, experienced with
and understood.

If you want to have the equivalent course in Windows, with all the
"hideous" Windowish technologies - fine. I don't have anything against it.
Like people said there are legal, technological and philosophical problems
with it that are not present in its UNIX version.

I don't think we should limit university courses to teaching only theory.
You learn much more by experiencing than you do by passively listening to
lectures or reading.[1] And you have to experience with concrete
implementations that implement a standard or a paradigm this way or the
other.

I think that universities should expect that there graduates be able to
master a similar tool one they become experienced with a different one.
But there are tools out there, and there are several competing tools
(that is the case even in the O-S world, in some areas), and you have to
chose one. But I'd better see people introduced to one tool, that to none
at all.

Regards,

	Shlomi Fish

[1] - Actually, you learn the most by teaching. ;-)

----------------------------------------------------------------------
Shlomi Fish        [email-masked]
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       [email-masked]

"Let's suppose you have a table with 2^n cups..."
"Wait a second - is n a natural number?"