Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!pyrnj!mirror!cca!g-rh From: g-rh@cca.UUCP (Richard Harter) Newsgroups: net.cse Subject: Re: What CS programs ought to be like vs. a good SE program Message-ID: <10483@cca.UUCP> Date: Thu, 9-Oct-86 23:55:11 EDT Article-I.D.: cca.10483 Posted: Thu Oct 9 23:55:11 1986 Date-Received: Sun, 12-Oct-86 01:49:11 EDT References: <114@tijc02.UUCP> Reply-To: g-rh@cca.UUCP (Richard Harter) Distribution: net Organization: Computer Corp. of America, Cambridge Lines: 42 Summary: Conrad says some sensible things. Conrad Cunningham writes: > 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. :-) I feel that Conrad's comments here are particularly astute. It is an old rule of thumb that once you've learned one language well adding another is simple. Well that old rule of thumb only holds for languages in the same style as the one you learned originally. If you know, for example, Fortran PL/I, C, and Pascal, you still only really know different dialects of the sequential imperative programming. Learning Lisp or Prolog is going to bend your mind a bit because you are changing paradigms. Any one who expects to build a career around computers (either SE or CS) had better have a flexible mind; one thing even surer than the longevity of Cobol is that the intellectual technology is going to change rapidly. > 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". > Again, this is an astute point. Interestingly enough, students (particularly engineering students) often want "practical" information rather than concepts under the erroneous belief that "practical" knowledge will make them more employable. The truth is that concepts go a lot farther. -- Richard Harter, SMDS Inc. [Disclaimers not permitted by company policy.] For Cheryl :-)