From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_40,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,ef0074ec236ba6e3 X-Google-Attributes: gid109fba,public X-Google-Thread: 108717,ef0074ec236ba6e3 X-Google-Attributes: gid108717,public X-Google-Thread: 1108a1,ef0074ec236ba6e3 X-Google-Attributes: gid1108a1,public X-Google-Thread: 1014db,ef0074ec236ba6e3 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,b19fa62fdce575f9 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-12-13 03:19:40 PST Newsgroups: comp.lang.ada,comp.lang.c,comp.programming,comp.lang.c++,comp.object Path: nntp.gmd.de!newsserver.jvnc.net!nntpserver.pppl.gov!princeton!udel!gatech!howland.reston.ans.net!pipex!uunet!mole-end!mat From: mat@mole-end.matawan.nj.us Subject: Re: Teaching (was: Why don't large companies use Ada?) Message-ID: <1994Dec13.111940.9983@mole-end.matawan.nj.us> Summary: First languages Organization: : References: <3a6oc5$dkh@nntp1.u.washington.edu> <3c21e1$nj@gopher.cs.uofs.edu> Date: Tue, 13 Dec 1994 11:19:40 GMT Xref: nntp.gmd.de comp.lang.ada:17521 comp.lang.c:72158 comp.programming:13494 comp.lang.c++:82851 comp.object:18656 Date: 1994-12-13T11:19:40+00:00 List-Id: In article <3c21e1$nj@gopher.cs.uofs.edu>, beidler@guinness.cs.uofs.edu (Jack Beidler) writes: > In article <3bfn7t$75j@felix.seas.gwu.edu>, mfeldman@seas.gwu.edu (Michael Feldman) writes: ... > I am reminded of a comment made to me once (I believe it was > made by Rich Pattis). "Just as today's good C programmers were > educated using Pascal, tomorrow's good C++ programmers will be > educated using Ada". Actually, some of the _worst_ C programmers I met were educated using Pascal. Those who got better had to unlearn a lot of the garbage that Pascal forces on you. > I see this point made every year when students who have been > using Ada in CS 2 and our Advanced Data Structures and Algorithms > Course take our Operating Systems Course. The faculty member who > teaches that course requires student programs be written in C > (or C++). The students learn the new language on their own. > His first response to student programs was that the student > programs don't look like typical C programs -- they are modularize, > you can read them, they use meaning variable names, etc. It's interesting to read, should you ever have the chance, the sources of UNIX `v6' or of Dennis Ritchie's C compiler. Both were highly modular programs; both were a revelataion to me, then a young programmer in school. What we need are not highly pedantic programming languages but good examples of programming. Unfortunately, the _worst_ examples are those produced by `fundamental algorithms' courses, for the simple reason that those tricky algorithms are not and cannot be representative of good, clear programming. With the exception of linked lists, they involve algorithms and data structures whose relationship to the information they store is neither direct nor clear and cannot be made so by _any_ exposition. The best that good exposition can do is make clear the _implementation_ of these representations; the representations themselves are esoteric and `accidental' rather than `essential.' This is not to say that these representations should not be used; they are too valuable to ignore, to valuable not to teach. But the programmer should first be taught to construct simple, clear representations of simple, clear problems. > As for learning C or C++ in the first course, I am reminded of > an anti drinking and driving billboard "Drinking and driving is stoopid" > (spelled that way). > > TEACHING C OR C++ IN THE FIRST COURSE IS STOOPID > > Teacher who teach such a course deserve the grade of C or C++ > as an educator. They certainly don't deserve tenure. Teaching fundamental algorithms before a second course in programming, using a `real' language, whether C, C++, or Ada is a crime against a programmer's career. Teaching Pascal with its crippled flow structures compounded by its crippled conditional expression semantics ought to be punished by banishment to a COBOL shop. -- (This man's opinions are his own.) From mole-end Mark Terribile mat@mole-end.matawan.nj.us, Somewhere in Matawan, NJ (Training and consulting in C, C++, UNIX, etc.)