[net.college] cs dept woes.

arnold@csu-cs.UUCP (Ed Arnold) (04/16/84)

This is inspired by that lovely flame by Tim Giebelhaus.

I'm a 3rd year Computer Science student (going on 4) here at Colorado 
State University. We're located at the foot of the Rocky Mountains in Ft.
Collins Colorado.

As with your program, ours is not in the best of shape, although I don't
think our situation is as bad as yours. I have no impressive numbers of the 
number of majors, etc... But I will try and give you a general idea of our 
situation. 

Our entry level programming class has some 450 people, they work
interactively on a Cyber-170. They also use Xedit, which by the way is a
real dog of an editor. The language is Fortran. From there you move to
Pascal and about 250 people. This class is much harder to get if you are an
underclassperson and not in the major. 

Which brings me to one of our biggest problems, getting classes, whether 
you're in or not in major. Here, if you're in the major you're given
first shot at a class, but the core courses are so loaded that many times majors
cannot get in the core C.S. courses needed to take the upper level courses. This
is our one large bottle-neck. After this is passed it is relatively
easy to get the upper level courses, except for a few popular ones like
graphics.

This bottle neck in our 5 core courses creates problems for people trying
to transfer into the major from another major. The courses are very
difficult to get if you're not in the major. It seems the only way to get
them is to wait till you're a junior or senior, then you're high enough on
the totem-pole to slide in. As you can imagine the situation is horrifying
for an underclassperson who is paranoid about their schedule anyway. The
only way to transfer into the major is to take and pass these core courses
and it's almost impossible to get the course if you're not in the major!
(yes, I know. Life's a bitch :-)

Our other big problem is equipment, as with most departments we have too
little equipment for too many students. The main machine for the
lower-level courses is the Cyber-170, whereas the upper-level courses are
taught on the department's Vax-11/750. Graphics is taught on some fine H.P.
equipment. Once again too few for too many, this tends to make response
time really bad. I recall writing 1000 line fortran programs, putting them
in the run queue and waiting till the next day to get the output, this
practice is not unique. Load averages on our Vax have approached 50 at
the end of a semester. People must sign up and wait in line for a terminal
hooked up to the Cyber, there is also a 1 hour time limit on use. Sometimes
the C.S. lab looks like a train station with people waiting up to 2-3 hours
to get on a terminal where the response time is BAD.

Now for a few good points. Our faculty is good! I'd say that 50% of them
are excellent instructors. Another 30-35% are fair, and the rest are not
real good. As with computer scientists everywhere, our instructors have
problems with getting their ideas across to their students, but we survive.
Our faculty is also loaded to the gills in every course. I recall an
instance where an instructor forbade his students from asking him questions
outside of class or office hours. If he had not done so he would have been
hounded all day, and night, by students.

Our department is also formulating a solution to the core curriculum bottle
neck. All 5 courses will be open to everyone, no one will be able to
declare a C.S. major until they have taken a pre-c.s. curriculum and are
accepted into the department. Those with the best grades will be admitted.
This will allow everyone to take the courses needed and weed out those who
should not be in the major in the first place.

I'm a little curious about other programs. Anyone else have any horror
stories or comments?

       Cheers,
       Ed Arnold   {hplabs,hpfcla,unmvax,hao,denelcor} (csu-cs!arnold)
		   Colorado State University    Ft. Collins,  Colorado

debenedi@yale-comix.UUCP (Robert DeBenedictis) (04/17/84)

I have a question for all you comp sci students out there.

I've noticed that the courses for the major here tend to fall in a
continuum from practical to theoretical.  The practical ones basically
teach you The Fundamentals of Programming (loops, recursion, pascal,
etc.).  The theoretical ones try to help you understand the mathematical
basis for computer science.  The practical courses are good BUT you sometimes
get the impression that you might be only learning Yet Another Operating
System and Yet Another Language.  The theory cousres are good BUT you
wonder how'll they'll ever apply to anything you might end up doing in the
real world (unless you plan to work at a university).

The question: Where do you (the students) like the line drawn?
	      Which type of courses do you prefer?

I realize this belongs in net.cse (Comp Sci Education) BUT I'm a student,
not a teacher.  I want to hear what my fellow stidents feel about this.
It seems likely to me that the "Academic Establishment" would favor getting
people excited about theoretical issues so that more people would want to
study the theoretical issues, which is conveniently done within the "Academic
Establishment."  [If this last paragraph reads like tautological paranoia it
is because I've not bothered to remove the obvious contradictions in my
thought.]

"Now, We're Never Alone"
Another Message In The Bottle from
Robert DeBenedictis
decvax!yale-comix!debenedi

mark@cbosgd.UUCP (Mark Horton) (04/18/84)

Why do you want to draw a line?  There are disadvantages to practical
courses, and disadvantages to theoretical courses.  Nothing is perfect.
Are you proposing eliminating all courses more theoretical than X for
some X?

When I was an undergrad, one of the courses I hated most was Theory of
Computation.  It was hard (read impossible) for me to see how any of
these bizarre things like Post Productions and Finite State Machines could
possibly be useful in real life.  I only got a B in the course, and never
did understand the stuff in the second half very well.

The next semester, I took a "Compiler Construction" course.  One of my
favorite courses.  We started out with straightforward stuff: writing
a scanner, assembler, context free grammars.  But that problem of how
to parse seemed impossible.  Then LR parsing was introduced, and it used
something called a DPDA.  But a DPDA is just a Finite State Machine
with a stack!  Suddenly it hit me what good theory is - we get a lot of
really useful practical tools with a strong theoretical base.

When I did my thesis, I had to make certain functions table driven.  The
tables would be constructed separately for each programming language handled.
How did I know the tables could handle any unforseen programming language?
Well, the tables were a superset of pure Lisp, and pure Lisp is known to
be equivalent to a Turing machine, which in turn can do anything that
can be done in any computable function.  It was a lot easier to convince
my advisor that I could handle anything using this argument than "well,
see if you can come up with something I can't handle."

If you have 4.2BSD on your machine, you probably have sendmail.  Sendmail
is a nifty mailer whose flexibility, even on a binary only machine, is
nothing short of amazing.  How did Eric Allman embed this flexibility?
He used a variation on Post Productions as address rewriting rules.
If he hadn't taken a theory course, none of us would have sendmail today.

I'll admit, it sure would have been nice to have some of this motivation
when I was taking the course.

	Mark

djl@fisher.UUCP (Dan Levin N6BZA ) (04/18/84)

Well, I must admit that I have not found this dichotomy here at
P.U.

The vast majority of the CS courses (I am tempted to put 'both of them'
here!), provide a good mix of practical and theoretical techniques.
Once you get past the 'let's learn pascal' type stuff, most of
the rest of the classes consist of lectures dealing with algorithms
and theory, backed up by programming assignments that require
application of the stuff you learned in class.  A classic 
example is the OS course, where the theories of dead-lock
avoidance and such are discussed, and then you write a monitor
( sort of the middle third of an OS) in which you manage
procs and memory.

Then again, maybe I am just a deluded hack, since I am majoring
in Stats., and not EECS!

-- 
			***dan

{ihnp4 | decvax | ucbvax}!allegra!fisher!djl
The misplaced (you call *that* a mountain ?!?!?) Californian

chenr@tilt.UUCP (Raymond Chen ) (04/18/84)

<just fixit, fixit, fixit, fixit, ...>

	They have a neat system here at Princeton.  They make you learn
the theory in class and then apply the theory in lab.  With the exception
of one course, the Intro to Computer Science for CS majors (which is 
taught in PASCAL) you don't learn languages in the course, you learn
them as a by-product of the course.

	For example, I took the operating systems course last year.
During lecture, we learned about various architectures, methods of
managing memory, resources, disk access schemes, scheduling schemes,
etc.  We didn't get *incredibly* theoretical, seeing as it was the
first time the concept of an "operating system" had been officially
introduced, but then the Professor gave us a set of UNIX-style
manual pages and said "write an process scheduler and implement these
system calls...".  Unfortunately, we didn't get to go through the agony
of making *all* the decisions that op system designers have to make,
but we had to make some of them.  *And* we did have to design our own
data structures, etc. in order to handle semaphores, mailboxes, 
processes in various states, and all the other fun things.

	Ditto with the graphics course.  We derived the Bresenham
algorithm in class and had to implement them for lines, circles, ellipses,
etc. as an assignment.  Later on, we were introduced to some of the problems
involved in designing user-interfaces, then were told to write an interactive
graphics editor. 

	The two pure theoretical courses (with no programming assignments)
that I can think of off the top of my head are the Theory of Algorithms
and the Finite Automata courses.  I don't know about the automata course
because I haven't taken it yet, but after some of the programming we've
had to do, most of the class was quick to recognize the applications of
graph theory, among other things.

	The only problem I see is that in order to really get the theory
I'd like to have, grad school is a necessity.  There simply isn't enough
time to go as deep as the Professors are capable of going, in a semester,
without starting out 6 feet under already.

		So, (hopefully) Grad School Bound ...,

-- 

From the Random Fingers of --

		Ray Chen
		{allegra | ihnp4 | mhuxi}!princeton!down!tilt!chenr	

"It's amazing what a thousand monkeys and a few typewriters can accomplish..."

prabhaka@ucbvax.UUCP (Aloke Prabhakar) (04/18/84)

<odedoh>

I also appriciated Tim G.`s little expose. I had a fairly lengthy 
net-conversation with him on the subject.  It would seem that the 
situation is much the same almost everywhere. What follows
isnt so much a flame as it is a revelation that we are feeling
the same thing many of you are.

While it may seem suprising, the situation here at UCB is not
too different. Facilities are pretty much limited to
a VAX 780 and a couple of rather restricted 750`s.

Unlike our friend from CSU, our instuctors are not so great. Yes,
they are very qualified from the technical/theoretical aspect,
but they could care less about undergrads. This year %60 of
all undergraduate teaching hours were taught by visiting lecturers.
One can easily go through the CS major here without ever talking to a 
tenured faculty member.

In order for an undergrad to "climb" out of the classwork
machines onto the research machines he/she must do a lot of very
hard work. The classwork-780 (ucbcory) at this very moment has a load of 
21 and more than 40 users on it. The next assignment is seven days away.
The research machine I am on has 10 users (mostly idle) and a load of 1.

Classes  are practically impossible to get into in the upper division.
Someone mentioned that they had HP`s for their graphics classes.
We just got an undergrad graphics class this year and it only
holds 30. (the major is more than 400). Applications to the
major number is very high, so lower division classes are 
hard for "filtering" purposes. (This often tends to squeeze out
hackers and others who are very interested, even talented, but simply
dont have time/interest to write 10000 line Pascal programs.)
150 applied to the graphics class last semester.


In short, my friends, what we have here is a national phenomenon.
College students these days go to college mostly to get jobs. There may not be 
any at this rate. I came to this school to get a good education,
not to ensure myself a well paying job. It makes me rather upset to see 
someone in the CS major who, 10 years ago, would have been in Pre-med because
"thats the place to be." 

Anyway, I dont mind reading more letters like this. It make things 
a bit easier. I hope the rest of you feel the same. (flames about these
letters, however, to /dev/toast-on-a-stick or /dev/pig.)


	Aloke Prabhakar
	Computer Systems Research Group, UCBerkeley
	wouldnt-it-be-funny:...moskvax!kremvax!mcvax!decvax!ucbvax!prabhaka
	USENET:...ucbvax!prabhaka
	ARPANET:prabhaka%ucbarpa@Berkeley

kurt@pyuxhh.UUCP (K A Gluck) (04/24/84)

I received both my MS and BS degrees in Comp Sci from RPI
(Rensselaer Polytechnic Institute).

I started in 1976 received my BS in 1980.
I then spent 1 semester at RIT and 1 at NYU, before returning to RPI.
I completed my MS in 1982 (and am working on a Ph.D at Rutgers).

~5000 students in the university (mostly engineering).

Comp Sci major is in the Mathematical Sciences Dept of the School of Science.
Computer & Systems Engineering is in the Electrical, Computer, and Systems
Engineering Dept (in the Engineering School).

Major facilities:

Mainframe)  When I started the school had a 360/67.  This was replaced in 1979
            with a 3033.  Last December they replaced the 3033 with a 3081 twin
            processor.
            Because the operating system (MTS) is being modified to run o
            on it (under XA), the 3081 is only 50% operational.  As of the
            summer it will be 100%.
            
Graphics)   On the mainframe is a drum plotter, and a user area 4 pen HP
            plotter.  Also 2 Tektronics work stations (This is the small stuff).
            In the Comp Sci lab is a Ramtek 16 color graphics 
            computer/terminal (again small stuff).
	    In the engineering building is the Center for Interactive Computer
	    Graphics, with twin Prime 800's (?) with ~36 Imlac graphics 
            terminals (This is for students).
	    They also have an IBM 4??? (small 370) that is
            used for graphics research as well as other Primes etc .......
	    Some of the research equipment is also used occasionally 
            in courses.
            An op. system course plays with the 4???.
            An intro. graphics course goes in to the Image Processing Lab 
            (which I haven't described) and plays with the almost state of
            the art equipment.

Other)
	    The Engineering school also has at least 1 HP3000 and
            some Vax's.

	    The Comp Sci Dept has a Vax running Berkeley Unix.
            (I am trying to find them a news feed).

Really neat)
            IBM donated a machine for E-beam chip lithography 
            which can make almost state of the art chips.


---> When I got there the library building was 1 year old.
	The eng center opened my first year (I think).
	The security building is new (who cares ?).
        A "new" computer center opened (a converted chapel) my junior year -
        very impressive, with stained glass windows in the terminal rooms.
	They are building yet another big building because the 7 story
	Eng. Center filled up with computers (I exaggerate a little).
	Its just that when they planned it in the 70's they didn't
	leave enough room for the computers.  It does have
	an attached multi-story high bay lab where the
	Eng majors do things like build composite gliders, and
	mess with robot arms (except it looks like the IPL people
	with their graphics are having more fun with simulated robots).

Bad part)
	The program in Comp Sci is VERY math oriented and getting worse.
	They are also short of staff. BUT I have never heard horror stories 
        like those I have heard on the net about other schools. 
        There are comparatively few courses taught by TA's and faculty
        welcomes interactions with students.
        If you want one of their 90 credit Ph.D's, you might have trouble 
        finding enough courses that interest you.
	Major core courses (at least while I was there) could not close out.
	Another section would be arranged.
	Enrollment in advanced courses (especially those requiring lab
        facilities) would occasionally be restricted.  This is not done
        on a first-come-first-served basis.  Instead professors review each
        student's reasons for taking the course (which are recorded at
        registration time for limited enrollment courses) and decide
        who gets in accordingly.  Juniors and Seniors in the major are
        pretty sure bets - Seniors outside the major.

        I took lots of Independent Study, because I enjoyed it. 


-- 
Kurt Gluck SPL 1c273a  Bell Communications Research Inc 6 Corporate Place	Piscataway NJ, 08854
      ihnp4!pyuxhh!kurt                   (201)-561-7100 x2023