Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cwjcc!gatech!udel!burdvax!ubbpc!wgh From: wgh@ubbpc.UUCP (William G. Hutchison) Newsgroups: comp.lang.misc Subject: Re: Which language to teach first? Summary: On easy transition from abstract to practical Message-ID: <606@ubbpc.UUCP> Date: 25 Aug 89 12:29:05 GMT References: <1501@shuksan.UUCP> <2633@cbnewsc.ATT.COM> Organization: Unisys UNIX Portation Center, Blue Bell, PA Lines: 55 In article <2633@cbnewsc.ATT.COM>, nevin1@cbnewsc.ATT.COM (nevin.j.liber) writes: > In article <1501@shuksan.UUCP> scott@shuksan.UUCP (Scott Moody) writes: > >Remember that the first language you are taught in CS101 is also the > >main language you use throughout undergraduate education (outside of > >the many languages course). > > This bothers me. Why should the first language you learn be your > primary language throughout college? Doesn't sound like a well-rounded > CS education to me! By using different languages, one learns different > ways of thinking about their programming problems. [ ... ] The Whorf hypothesis for natural languages seems to work for artificial symbol systems as well (don't linguists deny that programming languages are really languages?). > >There are a lot of jobs in industry > >that need Ada programmers and it is still the job of the Universites > >to teach/prepare its students for the real-world. > > There are also a lot of jobs in industry that need C programmers, C++ > programmers, assembly language programmers, etc. Should universities > ignore this? [ ... ] > -- > NEVIN ":-)" LIBER AT&T Bell Laboratories nevin1@ihlpb.ATT.COM (312) 979-4751 Universities should not ignore the "real world", just refuse to be corrupted by it! I just want to point out that this is not an absolute dichotomy between the "intellectually pure" and the "applied". All one needs to do is to find a "neat" language which is somewhat like a practical, widely used language. The introductory language can be the neat language, then application courses can use the second choice, with some brief teaching of methods to simulate the "neat" stuff in the grubby language. Scheme, as used at MIT, fits the bill as a "neat" language, but it is too far from widely-used languages (MIT graduates are smart enough to make the transition themselves, but not all college grads have the time or initiative to do this). Here is a possible pair of languages: use Eiffel for introductory courses, because it is designed to be object-oriented and "neat" from the ground up. Eiffel probably won't be widely used for applications (for political reasons), so I suggest C++ as the "practical" language. C++ is a reasonable compromise to an object oriented language. I do not wish to disparage Bjarne Stroustrup: the hangups in C++ are due to the fact that it is tied to C (if it weren't an evolutionary path from C, nobody would be using it). Can anybody else suggest other language pairs of this sort? -- Bill Hutchison, DP Consultant rutgers!cbmvax!burdvax!ubbpc!wgh Unisys UNIX Portation Center "Unless you are very rich and very eccentric, P.O. Box 500, M.S. B121 you will not enjoy the luxury of a computer Blue Bell, PA 19424 in your own home", Edward Yourdon, 1975.