Xref: utzoo misc.jobs.contract:409 comp.edu:3418 Path: utzoo!attcan!uunet!decwrl!wuarchive!cec2!news From: conrad@wucs1.wustl.edu (H. Conrad Cunningham) Newsgroups: misc.jobs.contract,comp.edu Subject: Re: Qualified? or Dreaming? Message-ID: <1990Jul26.145933.21039@cec1.wustl.edu> Date: 26 Jul 90 14:59:33 GMT References: <1990Jul8.063302.4076@xavax.com> <2616@igloo.scum.com> <1990Jul11.233006.17884@nmt.edu> <1990Jul23.060010.20406@grian.cps.altadena.ca.us> <37714@ucbvax.BERKELEY.EDU> <1990Jul24.140502.17990@cec1.wustl.edu> <37743@ucbvax.BERKELEY.EDU> Sender: news@wucs1.wustl.edu (USENET News System) Reply-To: conrad@wucs1.wustl.edu (H. Conrad Cunningham) Organization: Washington University, St. Louis MO Lines: 75 In article <37743@ucbvax.BERKELEY.EDU> matloff@heather.ucdavis.edu (Norm Matloff) writes: >In article <1990Jul24.140502.17990@cec1.wustl.edu> conrad@wucs1.wustl.edu (H. Conrad Cunningham) writes: >An OS is not a "technological artifact." As I said, almost every >program (except for "embedded applications") makes OS calls. I didn't >say that the students should become proficient at a particular OS, by >the way. Just general principles, though references should be made to >specific systems so as to make the concepts concrete. > >And those general OS principles *are* general -- they do apply to >many of those applications you mention. I do not deny the importance of the practical side of computer science education -- either for those students who go into industry or for those who go directly to graduate school. "Book learnin'" needs to be supplemented by some "down-to-earth" experience for the concepts to be fully appreciated. Also it is unnecessarily elitist to ignore the reality that CS graduates need to get jobs. Neither do I deny the importance of a working knowledge of operating systems. (I have made my living for many more years as a "systems programmer" than as a teacher/researcher.) But I could probably make an equally strong case for the importance of the study of programming language design. Perhaps others could argue strongly for their pet technologies or subfields. CS programs need to be organized around the significant concepts of computing (whatever those may be). Case studies, laboratory exercises, individual/group projects, co-op work experiences, etc., should illustrate and provide practical experience in use of these concepts. My primary complaint against the current approach is the unnecessary fragmentation of CS into subfields organized around technologies. We need more computing generalists, not more specialists in arcane subfields who can't talk to each other or can't recognize the same problem when it appears in different trappings. For several years I worked in the aerospace industry. I often was involved in interviewing new CS graduates. We wanted to hire people for "software engineering" positions to design real-time embedded control systems for aircraft and support tools needed to assist in this work. I didn't expect to find many with experience or specific knowledge of our applications, but I hoped to find open-minded professionals who could apply a strong general knowledge of computing to challenging applications. Unfortunately, many of the stronger grads that I saw were only interested in writing operating systems or compilers or in being "knowledge engineers". Many seemed to feel that you couldn't be a real computer scientist unless you were involved in such activity. The weaker grads I saw were little more than Pascal, Cobol, C, or Pascal hackers. > >> Instead of core a course on "operating systems" why not a course on >>"concurrent programming". > >There's a lot more to OS than concurrency. > I agree and didn't mean to imply that. Perhaps the course should be entitled "control programming" or "coordinated computation". The focus should be on the process of developing such programs, not on the products themselves (e.g., on an operating system, programming language runtime, robot control system, etc.). Perhaps the actual content would not be much different from what you have in mind for an operating systems course. >BTW, why have a CS major at all? Before we answer this question perhaps we should define what CS is. ... Some people would argue that the whole idea of a "major" or of a "field" is wrong-headed--that it introduces an arbitrary and unhealthy compartmentalization of knowledge. -- Conrad Cunningham, University of Mississippi CIS Dept.