Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site duke.UUCP Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!decvax!mcnc!duke!crm From: crm@duke.UUCP (Charlie Martin) Newsgroups: net.cse Subject: Re: Exams vs. Programming Assignments Message-ID: <6410@duke.UUCP> Date: Thu, 3-Oct-85 21:41:41 EDT Article-I.D.: duke.6410 Posted: Thu Oct 3 21:41:41 1985 Date-Received: Sat, 5-Oct-85 14:55:26 EDT References: <823@dataio.Dataio.UUCP> <6358@duke.UUCP> <827@dataio.Dataio.UUCP> Reply-To: crm@duke.UUCP (Charlie Martin) Organization: Duke University Lines: 91 In article <827@dataio.Dataio.UUCP> bjorn@dataio.UUCP (Bjorn Benson writes: >In reference to <6358@duke.UUCP> crm@duke.UUCP (Charlie Martin): > >If you think that "...language of and reason for computer science is >programming..." then you are missing some fundamental points: >(1) Computer science is the study of computers and how they work > and how to design them and how to use them effeciently and > and how to build algorithms and how to solve problems, etc. ... and English Literature is the study of what writers have written, and what has been important to people through the history of written english. But to be able to communicate professionally as an English specialist, one had better be more than simply barely competent in English Composition. >(2) Programming is the act of taking a design and translating it > into BASIC, PASCAL, Modula2, LISP, etc. This you can learn > at Bills Bussiness College. Exactly my point: you can learn it at Bill's Business College, but you can't learn it in a university. >(3) A good software engineer spends most of his/her time (> 80%) > designing, documenting, redesigning, debugging, THINKING, > and only a small amount coding. Are you under the impression that most universities teach how to design a program either? I'm certainly not. >Furthermore, I agree with Mr. Martin that if "...a computer scientist >can graduate without being able to write ... programs..." then there is >something wrong with the university. But if all the young man/woman can do >is to write programs then he/she should have gone to Bills Bussiness >College and saved $20,000. If *all* they can do is write programs, they may have been better off at Bill's -- but if they graduate and CAN'T program (and most of them can't) then they were CERTAINLY better off at Bill's. For the non-academic computer professional -- one who will practice software design and creation, not teach: that is, one with a BA, BS, Or Master's -- an essential skill is the skill of creating a competent and professional program. Note what I am saying: *an* essential skill. Not *the* essential skill, but *an* essential skill, just as the ability to compose a competent and coherent paper is an essential skill for someone specializing in English, and the ability to draw a readable house plan is an essential skill for an architect. But we aren't teaching it. At least, we don't here, and the people I used to hire in my earlier incarnation as a software engineering manager hadn't learned it. >That brings up my biggest complaint against undergraduate computer science >educations is that they teach you "programming"... they teach you how to edit >a file under VMS... they teach you how to write in assembly language... >they teach you what a barrel shifter is... they teach (etc.), but they >don't require any theory classes. If one majors in German, one learns German before starting Goethe. You've got to know the basics before you can do the advanced stuff, and we aren't starting with people who have an intrinsic knowledge of computers. Certainly, my Intro to Computing labs have very few people who are prepared to mess with theory of computation. >They don't require a class on design and analysis of algorithms. They >don't teach the thoery of LALR parsers, they don't teach... ...they don't teach about file systems, they don't tell people why globals are not always best, they don't tell people about maintenance, or about coupling and cohesion, or secret-hiding in modules. (... there are bunch of Ph.D.'s in CS who would be hard-pressed to tell you much about the theory of LALR parsing.) > .... -- no one taught you how to THINK, much less >about computer science. You are a Programmer. But we not only don't teach them how to think, we don't teach them how to program EITHER! So far, your argument against teaching programming in college leaves me unconvinced: so far as I can see, you want to make sure they are prepared to run before we teach them to walk. So we graduate a bunch of kids who want to go out and run (about one out of two new grads I interviewed wanted to write compilers) but who can only crawl -- and we leave it to industry to spend one to three years teaching them the basic skills of their profession *after* they have spent $20,000 supporting our research, and keeping us in our nice academic research jobs. At least Bill's Business College sells what they purport to sell. -- Charlie Martin (...mcnc!duke!crm) Brought to you by Super Global Mega Corp .com