Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!umcp-cs!mangoe From: mangoe@umcp-cs.UUCP (Charley Wingate) Newsgroups: net.cse Subject: Re: Value of Computer Science degree Message-ID: <3367@umcp-cs.UUCP> Date: Wed, 26-Feb-86 09:55:24 EST Article-I.D.: umcp-cs.3367 Posted: Wed Feb 26 09:55:24 1986 Date-Received: Sat, 1-Mar-86 01:22:22 EST References: <1404@ames.UUCP> Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 56 I'd like to amplify a couple of things Eugene Miya said, and also add some comments of my own based upon my experience in the workplace. Here at Maryland, due to the curious division/college structure, the CS department is totally independent of either the Math department or the Engineering College. It's also an important factor that the engineering department academic programs are very programatic, whereas those of Math and CS are rather free-form. This has tended to divorce the CS and engineering camps completely. While this set-up has a lot of advantages as far as the independence of the departments are concerned, it in practice leads to some problems. One is that the engineering college (and indeed, many departments across campus) has its own programming courses, which, unless a student takes a double-major, are likely to be the only programming courses he takes. Things may have changed somewhat, but my experience has been that these courses have always been years behind the times. When I was a "first-aid" consultant, we always saw six year old handouts and use of obselete software as a consistent pattern in these courses. None of these engineers were taught any languages besides Fortran and (very bad) assembly, and little or nothing about data structures was ever taught. The end result of this is to produce a lot of "programmers" who really don't know what they are doing. This was especially true when I worked for a defense laboratory. At the time, it was almost impossible for Civil Service to hire CS people: they could not pay enough, and the job classifications caused a lot of problems. I was in only because with my second major in Math, I could be classified as a mathematician. This meant that almost all the programmers were engineers. And these people were not just writing stress analysis programs either; they wrote realtime applications and huge simulations programs. The latter were generally monuments to ignorance, because those who wrote them had no idea about data structures or algorithms. When I moved on to a private employer, a similar situation reigned. At the time, this company was hiring its first real CS people, except for one or two who had been around for some time. They had written two very large personnel programs, both of which had some good ideas, but which tended to brute force and which had been patched to death. I came on board during the construction of a third, which, although it contained a number of good ideas, was hamstrung by a bad requirement on the part of the customer (who had been told that the decision was going to cause trouble) to use a particlar DB package, and by the presence of too many people who didn't know anything about data structures, structured programming, or algorithms. As a result, the project remains under a cloud. It seems to me that what you want is someone with the spark and flare of a "hacker", but who has computer science education, and who can work in a coordinated fashion with others. There are far too many hackers whose CS education is minimal; there are many many more who can only go off and work in a corner by themselves. In this respect, it seems clear to me that courses in software engineering ought to be part of CS curricula, and they should include group projects. Well, that's my opinion. C. Wingate