Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site usl.UUCP Path: utzoo!watmath!clyde!burl!ulysses!bellcore!whuxcc!lcuxlm!akgua!usl!elg From: elg@usl.UUCP (Eric Lee Green) Newsgroups: net.cse Subject: What should CS teach? Message-ID: <929@usl.UUCP> Date: Fri, 19-Sep-86 23:30:10 EDT Article-I.D.: usl.929 Posted: Fri Sep 19 23:30:10 1986 Date-Received: Sat, 27-Sep-86 21:29:12 EDT Organization: USL, Lafayette, La. Lines: 101 Summary: Expires: Sender: Reply-To: elg@usl.UUCP (Eric Lee Green) Followup-To: Distribution: Organization: USL, Lafayette, La. Keywords: CS, CE, EE, Math, business, humanities (GASP!). A brief list of what some institutions offer as the emphasis of their CS degree: Math: These curriculums place a heavy emphasis upon mathematics, with math generally as the minor. The BS people generally end up doing "scientific programming" (computer-aided numeric analysis). People with a graduate degree generally disappear into research institutions, publish a few papers which few ever read, and are never heard from again. EE: These are your "CS with a CE minor" curriculums. You'll probably find the graduates of this school hacking Unix kernals, programming digital parts of devices like disk drives and printers, and otherwise filling their particular niche. These are the guys who implement the fancy ideas that the Math people think of. Where you see a computer being designed, you see these people hard at work. Business: Your "IBM shops". These schools teach IBM-style Software Engineering and Database Management courses, Forms Entry Systems/User Interface Design, and other exciting courses. The minor is usually Business Administration or Accounting. These are the folks who work in the back room of Texaco for 4 or 5 years before they move on into middle management. This is also the largest group of programmers (commercial programming). The above is quite stereotypical, but I think it demonstrates three mindsets which prevail in the CS arena. So, what should be taught? First of all: I believe that at the BS level, one should not be a expert in one particular area. That is the purpose of grad school. 1) One should study digital electronics to the point of knowing how to design simple microprogrammed CPUs etc. And, enough analog electronics to know what a resistor and a transistor are. Perhaps the amount of training that an Army electronics tech would get. A one-semester course for the analog part would suffice, and could be easily handled by college freshmen with no higher math skills (after all, if the Army can do it with the scum of the earth who barely made it out of high school...). Circuit analysis etc. are not necessary for a computer scientist. He is not going to design the circuits. He is only going to write the programs that interface to the circuits. Understanding what a PLL does is trivial. Any TV tech with 18 weeks worth of training can understand what a PLL is. Understanding how to design it is a job for EEs. 2) Math: Some knowledge of higher mathematics is, indeed, quite useful (as I have said before). Topics in set theory, etc. come in handy, not to mention that Turing machines etc. cannot really be divorced from the mathematics that produced them. However, I really can't see the point of taking years of differential equations, linear algebra, and other topics in numeric analysis that would seldom be used by a programmer. Someone mentioned performance analysis. Well, I don't think your average BS/CS would be involved in such things. Grad school is the place for specialization. 3) Accounting: I'm about to preach heresy. Your CS course should have a couple of accounting courses in it. And maybe an introductory management course. My brother and I are running a small business out of our P.O. box to pay tuition and save up for an Amiga, and the Accounting course I took has been extremely useful. 4) English and History: I always enjoy literature courses, although I like reading too much to enjoy tearing the author apart in a critical essay. Being literate has its advantages. History: it is nice to know a bit about the world around you, and history is one way of learning about that world. If you hear about some Arab country threatening to blow you up, it's nice to know where that country is, if only to avoid it like the plague. Of course, my liking for these courses may also be attributable to the fact that I always make A's and B's in such classes. The CS courses: I'll leave this part of the curriculum for you to fill in. Anybody else have ideas for what should be in the "ideal" undergraduate BS degree? The CS vs. CE wars are getting old real quick. -- Eric Green {akgua,ut-sally}!usl!elg (Snail Mail P.O. Box 92191, Lafayette, LA 70509) " In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move."