Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ihnp4!qantel!intelca!oliveb!glacier!decwrl!amdcad!amdimage!prls!philabs!pwa-b!utah-gr!thomas From: thomas@utah-gr.UUCP Newsgroups: net.cse Subject: Re: CS vs. CE Message-ID: <1799@utah-gr.UUCP> Date: Sat, 13-Sep-86 11:37:44 EDT Article-I.D.: utah-gr.1799 Posted: Sat Sep 13 11:37:44 1986 Date-Received: Sat, 27-Sep-86 23:51:05 EDT References: <13500008@uiucdcsb> <65@alberta.UUCP> <66@alberta.UUCP> Reply-To: thomas@utah-gr.UUCP (Spencer W. Thomas) Organization: University of Utah CS Dept Lines: 64 Well, reading all these articles makes me feel pretty good about our curriculum. We recently redesigned our 10-year old curriculum to bring it up to date, and to make it more rigorous. In the freshman year, students are busy taking general engineering prerequisites (we are in the Engineering College, so this is required) such as calculus, physics, etc. They must also take a Pascal programming course (we expect this to phase out as more students come from high school with programming experience) and an "Introduction to CS" course. This course gives an overview of CS hardware and software techniques, but is not primarily a programming course (it has programming labs, though). The last couple of years, we have used Lisp as the language base for this course (using the Abelman and Sussman book). After this first "year" (may take longer for some students), students are admitted to the CS program (by GPA, unfortunately, this is a University mandated cutoff rule, to try to avoid discrimination cases). The second year really gets into the nitty-gritty. All second-year students take two thre-quarter sequences, one in hardware and one in software. The hardware sequence covers topics from general digital logic design to microcomputer assembly programming. In the lab, the students must build and test a number of complex circuits. The software sequence covers algorithms & data structures, programming linguistics (the "how" of a computer language, covering, for example, the actions taken by a language interpreter or the code generation phase of a compiler), syntax analysis (the other half of compilation), "software engineering," and other topics. They must also take a one-quarter course on "discrete mathematics", covering set theory, Boolean algebra, Markov processes and other (un)related topics. If they make it through this greuling process, they are then full-fledged computer science majors (there is a second cut point for those who are just not suited to the life). They are then required to take, in the next two years, 4 "core" courses: Theoretical CS Operating Systems Data Communication Compiler Construction The question as to whether these courses are really "core" of CS can be directed elsewhere; these are areas in which we have had strengths, or which we perceived to by important in and of themselves. There is, for example, no "Data Bases" course in this list (although I have heard arguments that data bases and operating systems share many topics in common (allocation of resources, scheduling of transactions, etc.) so that one might consider offering a course in "OS & DB", strange as it seems. But this wouldn't fit well into 1 quarter, that's for sure.) They must also take 5 electives, of which up to 3 may be in one area (e.g., a 3-quarter computer graphics, AI, robotics, or VLSI sequence), and a "senior lab", which is a 3-quarter lab course in either hardware or software, in which the students are required to design, implement, test, and document a major project. In addition to all this, they must complete all the university graduation requirements, several Math courses (numerical analysis, probability & statistics), some more physics, a technical writing course, and maybe some others I've forgotten. All in all, I think it's a pretty good curriculum (not up to, say, MIT standards, but what do you want?) and one that should turn out computer scientists knowledgable in a broad spectrum of topics in CS. -- =Spencer ({ihnp4,decvax}!utah-cs!thomas, thomas@utah-cs.ARPA)