Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!ames!lll-tis!ptsfa!ihnp4!inuxc!iuvax!bsu-cs!neubauer From: neubauer@bsu-cs.UUCP (Paul Neubauer) Newsgroups: comp.edu Subject: Re: first languages Message-ID: <1053@bsu-cs.UUCP> Date: Tue, 25-Aug-87 22:28:35 EDT Article-I.D.: bsu-cs.1053 Posted: Tue Aug 25 22:28:35 1987 Date-Received: Fri, 28-Aug-87 01:39:27 EDT References: <2575@ames.arpa> Organization: CS Dept, Ball St U, Muncie, Indiana Lines: 45 Summary: TANSTAAPL In article <2575@ames.arpa>, lamaster@pioneer.arpa (Hugh LaMaster) writes: > In article <1039@bsu-cs.UUCP> neubauer@bsu-cs.UUCP (Paul Neubauer) writes: > >am not impressed by the counterargument that Pascal is not what they will be > >using "in the real world". After all, a first language is exactly that -- a > > I would argue that the reason Pascal is not frequently used in the "real > world" of systems programming is because of a serious problem that the > (non-extended) language has: lack of modularity. Those who have done either > ... Pascal is woefully inadequate > as a modular language, and has many counterintuitive features that are > artifacts of its origins on systems where the paramount goal was a small > memory, very fast, very simple compiler. > Back to the original question: > A teaching language ought to contain support for the most frequently used > concepts in programming. Modula-2 probably has the best combination of > support for modularity, nested procedures, information hiding, &etc., so my Now this is a good argument. In fact, I happen to agree that Modula-2 is a neat language. It does have reasonably good support for those very important concepts. I have seen too many students complete degrees without having *any* notion of modularization. ("Link? It's just another mysterious thing I have to do before I can run my program.") Modula-2 (or Ada) would force students to come to terms with modular programming, and that has to be a good thing. The question is: Is that something you want to make them do on DAY ONE? I am not necessarily saying that it is not, but, somebody out there, what do YOU tell YOUR students on the first day when they have to IMPORT (M-2) or instantiate (Ada) their IO procedures? ("I'll tell you what you are doing next semester" just doesn't cut it.) I will say again: a first language is not (should not be) a last language. Any CS major (and that IS what we are talking about here) had better learn several languages at least passably well before getting a degree. I really do think that Wirth had the (or at least a) right idea here. The idea being that for the FIRST course, students ought to learn a language that will not immediately overpower them with details. We can then hope that they may even learn something about problem-solving and algorithms and top-down design. Pascal's compilation efficiency is also a MAJOR advantage. Think about how often beginning students recompile their programs and the effect that can have on system performance (especially if YOU also have to use the same system :-). Pascal is obviously not perfect, but (with apologies) TANSTAAPL (There Ain't No Such Thing As A Perfect Language). That's why there has to be a second (+ third + ...) language. -- Paul Neubauer UUCP: {ihnp4,seismo}!{iuvax,pur-ee}!bsu-cs!neubauer