Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!bellcore!ulysses!allegra!mit-eddie!genrad!decvax!mcnc!rti-sel!tijc02!djm408 From: djm408@tijc02.UUCP (David Marks ) Newsgroups: net.cse Subject: What CS programs ought to be like vs. a good SE program Message-ID: <114@tijc02.UUCP> Date: Wed, 1-Oct-86 16:14:46 EDT Article-I.D.: tijc02.114 Posted: Wed Oct 1 16:14:46 1986 Date-Received: Sat, 4-Oct-86 10:50:13 EDT Distribution: net Organization: Texas Instr., Johnson City TN Lines: 88 I have been giving thought to all the debate over what a good CS program ought to include and have come to the conclusion that CS ought to be split into CS (computer science - theoretical) and SE (software engineering) with CS under the school that has the math and science departments, and SE under engineering schools. Both depts. would work together on courses that are basic to both, but would separate at the higher levels. These are the courses I think would be necessary for both curricula: Introduction to Programming Programming Concepts Data Structures Computer Architecture and Assembly Language Concepts Calculus I & II Technical Writing These are the courses primarily in the SE curriculum (some required, and some not): Introduction to Software Engineering Structured Analysis and Design Software Testing Methodologies Statistics for Software Engineering Project Management User Interfaces Graphics Real Time Systems Database Design Operating System Concepts Mangement Information Systems Cobol C Pascal Knowledge Based Systems Computer Software Security (Applications oriented) Fortran Mathematical And Scientific Programming Numerical Methods Computer Systems Management Data Communications Ada These are courses primarily in the CS curriculum (some required, some not): Computability and Automata Theory Symbolic Logic Mathematical Analysis of Algorithms Mathematics of Databases and Data Storage Statistics Prolog Lisp Smalltalk A Object Oriented Programming Discrete Mathematics Linear Algebra and Matrices Mathematics of Searching and Sorting Artificial Intelligence Graph Theory Topology Parsing Computer Language Design Computer/Software Security (Mathematical orientation) Symbolic Mathematics on a Computer Parallel Processing Algorithms Numerical Methods and Aproximation Theory The above is by no means rigorous, and does not disallow SE students from taking CS courses and vice versa. However, it does separate the theoretical scientist from the application engineer as has been done in virtually all other sciences. As you can see, I have heavily weighted the theoretical curriculum towards the mathematical. I would expect that if the above were followed, CS graduates would be the sort of people who would contribute to the JOURNAL OF THE ACM and the SE people would contribute to the COMMUNICATIONS OF THE ACM, although these two groups would by no means be mutually exclusive. I would enjoy reading comments on this proposal. Dave Marks Tailorable Products Department Industrial Systems Division Texas Instruments Johnson City, TN All the usual disclaimers apply! :-) L'argent n'est pas le bonheur, mais il l'achete a ceux qui le font!