From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-0.0 required=3.0 tests=BAYES_20 autolearn=ham autolearn_force=no version=3.4.5-pre1 Date: 12 Sep 93 12:05:40 GMT From: slinky.cs.nyu.edu!slinky.cs.nyu.edu!nobody@nyu.edu (Robert Dewar) Subject: Re: Pascal or C as a first lang Message-ID: <26v3ak$nfh@schonberg.cs.nyu.edu> List-Id: Edward Hartnett's comments regarding teaching C -- his point is basicaly that since C is widespread, that must be the appropriate first language is a nice example of the most disastrous kind of thinking when it comes to figuring out what to teach at this or any other level. Despite our frequent language wars on this newsgroup, we should never forget that language is very much a secondary issue. I would far rather see C written by someone competent than Ada written by someone incompetent. Now what is the competency about here? Certainly not about any particular language. So how do we teach this competency? This is a fundamental question, and we spend a lot of time arguing about the right answer, but we know for sure that the wrong answer is to focus on a particular language and concentrate on teaching coding skills in that particular language. Language is nothing more than a vehicle for teaching at this level. The only conceivable argument for Ada or C or any other language is that it helps in the fundamental goal of learning what programming, software engineering if you like [I see little value in considering these terms as significantly distinct], is all about. In practice, the worst thing about C is the trial-and-error hacking culture that comes with it. It is hard (but not impossible) to teabeginning level witho ut getting sucked into the trap of this culture.. The best thing about Ada is the culture that comes with it, which tends to be at the opposite extreme from this trial-and-error approach. Now language does not dictate the associated culture, but it is also false to assume that it has nothing to do with it. In practice the structure and design of the Ada language are better oriented to teaching abstraction. For example, it's hard but not impossible, to teach about data abstraction and data hiding in C. Ada on the other hand makes such teaching much more natural.