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