Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!decwrl!istg.dec.com!lepine From: lepine@istg.dec.com.UUCP Newsgroups: net.cse Subject: Computer science vs. computer programming Message-ID: <5487@decwrl.DEC.COM> Date: Tue, 23-Sep-86 08:46:46 EDT Article-I.D.: decwrl.5487 Posted: Tue Sep 23 08:46:46 1986 Date-Received: Sun, 28-Sep-86 21:46:10 EDT Sender: daemon@decwrl.DEC.COM Organization: Digital Equipment Corporation Lines: 65 In recent discussions in this newsgroup about computer science and computer programming and the appropriate curriculum for the two a pet peeve of mine has surfaced. The argument between Tom and Frank illustrates the lack of understanding of the difference between computer science and computer programming and of the many different kinds of programming that exist. I believe that Tom understands the difference very well but that Frank is guilty of a very common failure to make these differentiations. There appears to be a tacit belief among universities that students clearly understand these distinctions and are able to choose the correct programs. My experience has been that a great many students who enroll in computer science programs are really looking for a good programming curriculum. Their interests are in application programming of whatever type, not in research, advanced development, etc. For this type of student the computer science curriculum is patently wrong. I disagree with Tom that "Bob's Programming School" is the correct choice for all of these students. If their interest is in commercial programming (e.g order entry/processing, inventory, payroll and the like) this may well be an appropriate choice. Even the commercial programming schools need to strengthen their curricula to provide a better understanding of some topics (e.g. "correct" programming of floating point math, etc.) and not be content to just get students coding COBOL and BAL. However there are a large number of other application areas where the computer science curriculum is overkill for some topics and lacking in other topics. Examples such as systems for geophysical processing, defense systems (e.g C3I, radar, etc.), communications and networking all require many of the CS subjects but also require strong grounding in the principles of the application field. I reject the argument that "good programmers" can learn what they need to know about the application area to become proficient in whatever application they are currently involved in. They can perhaps become "competent" but not proficient. For these poor students the choice is CS with a sprinkling of their chosen application field, a program in their chosen application field with a sprinkling of CS, or a double major in their chosen application field and CS (ouch!). I would like to suggest that universities leave the commercial programming field to the business programming schools (and that employers exert pressure on these schools to beef up their curricula). Further, CS departments must begin to work with other departments to provide a good choice for students who do not wish to be computer scientists but wish to become good programmers in a specific application field. CS departments should provide a track for serious computer science students that is heavily flavored with the theoretical. This BSCS curriculum would be directed toward developing researchers, etc. Another track in the CS department would be offered to provide good understanding of programming (e.g. data structures, software engineering, etc.) but would not be a major as such. Rather it would provide the second half of the BS degree in the department's major in "Computer Applications in ". These students would have a strong programming background with understanding of the underlying theory without having to study all of CS as well as a strong background in the application field in which they are interested. A final option would be a track in the CS department similar to the application programming track but granting a BS in "Computer Applications" (BSCA) without a seperate departmental major. These students might take a number of courses in other departments to provide a broad background in the basic sciences and engineering when a specific application field has not been defined by the student. In all cases, a prerequisite for any CS course would be a seminar in the difference between computer science and computer programming with an intro to the various application fields and their requirements. Feedback? Norm Lepine Disclaimer: These views are those of the author and in no way represent Digital Equipment Corporation.