Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!ucbvax!pasteur!gaia.berkeley.edu!kemnitz From: kemnitz@gaia.berkeley.edu (Greg Kemnitz) Newsgroups: comp.edu Subject: Re: Language Use Summary: Education versus Training, and other stuff Keywords: C,Ada,Pascal,C++,Other? Message-ID: <12384@pasteur.Berkeley.EDU> Date: 2 Apr 91 10:49:30 GMT References: <1150@ra.MsState.Edu> <12219@pasteur.Berkeley.EDU> <348@tslwat.UUCP> <242@zeus.mc.ab.com> <1991Mar26.134531.1644@cs.olemiss.edu> Sender: news@pasteur.Berkeley.EDU Reply-To: kemnitz@gaia.berkeley.edu (Greg Kemnitz) Organization: University of California, Berkeley Lines: 63 In article <1991Mar26.134531.1644@cs.olemiss.edu> hcc@candy.cs.olemiss.edu (Conrad Cunningham) writes: >In article <242@zeus.mc.ab.com> stern@decserver.mc.ab.com (Ken Stern (ext 4157)) writes: >> ... And educational institutions, if they are doing their job, should >> be preparing their students for the real world. ... > >Although I agree that students graduating with a degree in computer >science should have a reasonable level of immediately applicable >skills and knowledge, developing such skills and knowledge is not our >primary "job". Our job is provide an environment which encourages >students to become "educated", not necessarily to train students with >exactly those skills that some industry believes it needs. We ought >to teach the better ways to do things, not just the conventional ways. >Our students need to be dissatisfied with the status quo; otherwise >how can organizational inertia be overcome. It seems to me that there is a very fine and difficult line to be walked by educators in computer science: on the one hand, students who know all the "better" ways to do things, but who can't find a decent job will feel cheated by the irrelevence and practical worthlessness of their education. On the other hand, a tech-school style training curriculum will cause computer science to truely stagnate and would be a threat to whatever lead the US holds, if any, in the field. CS is both a trade and a field of theoretical study, and it seems to me that a good CS education should have elements of both. It seems to me that after working for several years in both academia and in industry, the best prepared software people did their undergrad work in CS programs in which they did three things: program, program, and program some more. Book-learning is useful only in conjunction with experience on the computer, except possibly in more mathematically inclined theory courses. But even so, the curriculum should be structured in such a way that theory and practical courses can complement each other; for example, students should be encouraged to take the compiler course during the same term as they take their theory course in abstract machines, languages and grammars. A pushdown automaton or context-sensitive grammar makes lots more sense when you are trying to write a compiler than it does when you are just reading about it because it will be on the exam on Friday. Probably my biggest peeve is that many practical courses become "theoretical" due to lack of equipment. Courses in databases, compilers, graphics, operating systems, etc should not be bookish "survey" courses but courses in which people actually write or work intensively with these things and see both the practical and theoretical problems that must be overcome in implementing and dealing with these big, complex programs. Lessons, especially in software engineering and good coding techniques, go to heart the first time a student has to rewrite 4000 lines of code in one night because they hardwired all their constants, or after they end up debugging all night because they had a local variable with the same name as a global one (or some similar problem that is not caught by decent compilers). Another thing, and a very important consideration, is that intensive programming be done fairly early in the curriculum so that the students can decide whether they really enjoy programming. If they don't, they will not be terribly successful in industry, and will be doomed to unfulfilling second-rate programming jobs. If this happens, the computer science education has certainly failed the student. ----------------------------------------------------------------------- Greg Kemnitz | "I ran out of the room - I Postgres Chief Programmer | didn't want to be killed by a pile 278 Cory Hall, UCB | of VMS manuals" :-) (415) 642-7520 | kemnitz@postgres.berkeley.edu | --A friend at DEC Palo Alto in the Quake