Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ames!ucbcad!ucbvax!jade!violet.berkeley.edu!dbcooper From: dbcooper@violet.berkeley.edu.UUCP Newsgroups: soc.college,comp.edu Subject: Re: First Language Taught in CSC degree track Message-ID: <4539@jade.BERKELEY.EDU> Date: Fri, 31-Jul-87 15:40:51 EDT Article-I.D.: jade.4539 Posted: Fri Jul 31 15:40:51 1987 Date-Received: Sun, 2-Aug-87 10:36:12 EDT References: <1472@super.upenn.edu.upenn.edu> <1764@encore.UUCP> <176@sas.UUCP> Sender: usenet@jade.BERKELEY.EDU Reply-To: dbcooper@violet.berkeley.edu (Doug Cooper) Organization: University of California, Berkeley Lines: 33 Xref: utgpu soc.college:818 comp.edu:469 Summary: Pro Modula-2 I think that covering `just the important parts' of Ada, and assigning `just the best parts' of several different languages in one term, are essentially the same thing: Feature Use 101. This approach to teaching programming is what concentrating on names and dates is to teaching history -- superficial, and encouraging of plug-in responses rather than thought and analysis. I can't understand why it is thought that programming badly in n languages would be preferable to programming well in one. Certainly, when a language is too brain-damaged to illustrate the currently major ideas of programming (like, say, BASIC or COBOL), then teaching only a single, simple language causes problems. However, a language like Modula-2 represents essentially the best-known solution to an extremely large class of programming problems. Its difficulty over Pascal, say, is in proportion to the increased ability it allows. On the other hand, while Ada solves a larger class of problems, it does so only at the expense of a considerably more complex solution set. As long as we remain willing to change the introductory language every so often (and not just reupholster it, a la FORTRAN) it seems reasonable to spend a term or two giving students the chance to learn the use of a single language well. There is plenty of time in later terms to introduce special-purpose languages, or languages that encompass a different world view. Maybe one question will help put this in perspective: Whose code would you rather read? That of someone who has learned the accessible parts of Ada (plus a few new features from last week)? That of someone who knows the high points of languages X, Y, and Z? Or that of somebody who is reasonably proficient in \all/ of one general-purpose language?