Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!bellcore!ulysses!mhuxr!mhuxn!ihnp4!wucs!conrad From: conrad@wucs.UUCP (Conrad Cunningham) Newsgroups: net.cse Subject: Re: What CS programs ought to be like vs. a good SE program Message-ID: <1787@wucs.UUCP> Date: Tue, 7-Oct-86 11:56:42 EDT Article-I.D.: wucs.1787 Posted: Tue Oct 7 11:56:42 1986 Date-Received: Thu, 9-Oct-86 04:49:05 EDT References: <114@tijc02.UUCP> Reply-To: conrad@wucs.UUCP (Conrad Cunningham) Distribution: net Organization: Washington U. in St. Louis Lines: 36 In article <114@tijc02.UUCP> djm408@tijc02.UUCP (David Marks ) writes: > These are the courses I think would be necessary for both curricula: > ... Calculus I & II ... I think one or two courses in discrete mathematics is as important as the traditional continuous mathematics. Perhaps a two-year sequence that integrates aspects of both continuous math (Calculus) and discrete math would be better. > > These are the courses primarily in the SE curriculum > (some required, and some not): > ... > Structured Analysis and Design > Cobol, Fortran, Pascal, Ada > .... Two comments here. "Structured Analysis and Design" are specific techniques. Specific techniques probably need to be taught, but I wouldn't limit a curriculum to these specific techniques. Also you list several languages--all imperative in structure. The SE (and the CS) should be familiar with programming techniques in several styles--sequential imperative (e.g., Fortran, Cobol, C, C++, Pascal, Icon), concurrent imperative (e.g., Ada, Modula II), functional (e.g., Lisp, FP), logic (e.g., Prolog, Equational Logic), and actor(?) (e.g, Smalltalk). SE's should not just be programming language jockeys. Who knows what styles, techniques, and languages are going to be important in the medium to long term? (Except Cobol and Fortran which will probably be with us as long as death and taxes. :-) > > These are courses primarily in the CS curriculum The programming courses in the CS curriculum (and probably the SE too) should emphasize program derivation/proof, not just hacking. In both curricula I would prefer to see courses build around the concepts rather than the technology, e.g., "Concurrent Programming Concepts" instead of "Operating Systems", "Language Processing" instead of "Compilers", or "Functional Programming" instead of "Lisp". Conrad Cunningham Washington University in St. Louis