[ale] Off topic

Dan Newcombe Newcombe at mordor.clayton.edu
Mon Jul 27 22:10:21 EDT 1998


I really should resist, but I just got back from vacation and need to
relearn how to type.

On Fri, 17 Jul 1998, Matt Shade wrote:
> rant
> I just got into a discussion with someone last night who has recently
> gotten a C.S. degree, but had no idea what I was talking about when I
> was asking for a "full path" to a program. This was on a unix system and
> on an operating system this person SUPPORTS!

When I was in college (89-93, Marist College, Poughkeepsie, NY) the cool
language was being switched from Pascal to Modula-2 (Why does Nicolas
Wirth have colleges by the short and curlies?)  However, most of the
classes I had didn't care which you used.  They didn't teach that a linked
list was written as @a.next or a->next or whatever (can't even remember
how to do pointers in Pascal!)  They taught what a linked list was.  

They didn't care if you did the stuff on DOS, or on the mainframe (MUSIC
or VM/CMS), as long as you got it done.  I don't see where it is the role
of the college to teach that you type cd c:\ or cd /home/id or FILELIST *
* B1 - if you can't get the basics down of moving around an OS by reading
the manual, or asking someone, you are gonna have a lot more problems down
the road.  Besides, why spend time going over anything more than the
minimal needed on any app/OS when the course is about something else, like
data structures.  I would be pretty pissed if my prof spent more time
explaining vi or xedit than bubble sorts.

Actually, in my CS I and CS II courses, there were lab sessions attached
to the course where a grad student would help the students out with the
perculiarities of the OS, compiler, etc...

This worked out good, plus why waste instruction time going over on OS,
compiler, when the student may be using something completely different
when they graduate.  Not all the world is setup like a particular
university.

Now - on the other had, there are people I graduated with that couldn't
get into the Modula compiler to save their lives, or copy a file from one
disk to another in DOS, but the compiler environment did most of it for
them, so as long as the lab assistant could get them in (uh...press 5 on
the menu) they were fine.

Someone else had mentioned that perhaps the person taught more application
stuff was in a CIS course, but even then that is wrong - CIS is more about
how to take Joe Blow who wants to put his company on the Net, and track
stuff on the computer in business...they know both the business lingo and
computer lingo - enough to communiction what Joe needs to the programmer.
And in some cases, they are the programmer.  However, like the CS major,
they don't need to be tought every detail of Lotus 1-2-3 because that is
what the school has.  The customer may have Excel (or Symphony :)  They
need to be taught what a spreadsheet is, how formulas work, what a
database is, etc...

If you are being taught how to use Excel, how to do something in just one
language/compiler/os, you may as well just sign up for some professional
training instead.

I think a lot of it is due to a) the gearing of a particular institution -
do they want you to learn how to think and expect you to do stuff on you
own (show an interest) or do they just want to be able to have some cool
industry recognized names for your resume.   and b) the professor - is it
someone who has kept up to date, some part-time prof that doesn't care as
much, or what?

I remember having some interesting experiences in some of  my upper level
CS courses.
- Computer Architecture
	My prof graduated many moons ago, and all we talked about was the
PDP-11, not the Intel 80x86.  I guess in some ways that could help since
the PDP-11 is not as complex as the 80x86, but it was stil annoying at the
time.

- Computer Networks
	My prof had a Phd in Physics.  Most of the course had to deal with
if you had this length of cable, with a repeater at x, how long did it
take the electron to get from a to b.  Perhaps towards the end of the
class, Token Ring vs. Ethernet was discussed, TCP/IP was mentioned as a
protocal on a series of layers, and that was about it.  This course seemed
to fit more into an EE degree than what most people thought it should
cover.

- Compiler Design
	One of the coolest classes I've ever had - we built a compiler for
a subset of Pascal.  The prof provied a program to run the finished code,
which was output in machine code for a "CPU" he gave us (basically the
program pretented to be a CPU)  Modula-2 was recommened but you were free
to use what you wanted.  

- Operating Systems
	The Prof (department head) gave the specs on what the OS had to
do, multi-processing, batch based OS.  Along the way we would learn about
IO subsystems, page faults, etc... with some real examples pulled from
Unix and DOS.  Would have been nice to use the Tannenbaum book - don't
remember what we used.  Anyway, again, it was just make it work in
whatever language you want...this was how I learned C  - never used it for
much before, so we decided - hey, the biggest project, why not.  Each team
had to submit three programs all the OS's had to run - we were hated - we
had self-modifying code :)

- Programming in C++
	This was an elective, and where things like this should be taught.
I saw some people had courses in Windows Programming, Unix System, etc...
If the school wants to teach specialized material, electives are where it
should be put - everything else should be generic enough.

- Assembler
	This was taught by an adjuct prof who had us learn IBM 370
assembler because it was widely available via the mainframe.  I guess that
was OK, since assembler uses the same concepts, but you can't really teach
a generic course in that.

- Theory of Programming Languages
	Cool course - the idea was to show how languages had developed.
Along the way, projects were done in machine language, LISP, Algol,
Fortran, and a couple others.

- Computer Graphics
	The reason I have a copy of Foley and Van Dam's Computer Graphics:
Principles and Practices, and an excellantly taught course - all the book
examples were psuedo-code (pascal styled).  We would go over the
algorithms for lines intersecting polygons, etc... in class, and would
have to implement the algorithms.  We had to submit code and output.  I
remember one where I could not get it right, so I made the output in
Paintbrush - got an A :)


Anyway, enough thinking back.  My main point is that CS courses should
teach you how to think and not show you how to change directories, etc...
There is a certain amount of stuff you need to learn on your own to fit
your situation.  If you just want to be educated in OS operation, certain
PC programs, etc... they take some courses at a continuing ED center, or
get a 21 days book.


ObLinux:   The funny thing is, after all that "fancy book learning" the
thing that got me my job was my Linux experience.  It was the only Unix I
had, other than a bastard AIX box I played on for a bit.  It impressed
people that I not only had seen Unix, but had a system running on my own
PC.

Okay - I guess my fingers remember how to type and the cold ocean water
didn't do too much damage.

Cheers,
	-Dan






More information about the Ale mailing list