Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxt!houxm!whuxl!whuxlm!akgua!gatech!gitpyr!chen From: chen@gitpyr.UUCP Newsgroups: net.cse Subject: Re: various recently-discussed topics (learning languages) Message-ID: <1549@gitpyr.UUCP> Date: Sat, 15-Mar-86 14:19:56 EST Article-I.D.: gitpyr.1549 Posted: Sat Mar 15 14:19:56 1986 Date-Received: Sun, 16-Mar-86 10:45:12 EST References: <1092@burl.UUCP> <1093@burl.UUCP> <117@andromeda.UUCP> Distribution: net Organization: The Clouds Project, The School of ICS, Georgia Tech Lines: 45 In article <117@andromeda.UUCP>, marco@andromeda.UUCP (the wharf rat) writes: >In article <1093@burl.UUCP>, rcj@burl.UUCP (Curtis Jackson) writes: >> ... He said, "Oh, yes, >> get this book [holding up a copy of K&R] from the bookstore, $12. You >> have 2 weeks." Now THAT is the way to teach a computer language! > > Why is that the way to learn a language ? Admittedly, you can > pick up a new language in a few weeks, but to learn a new language > *and* complete tricky projects at the same time seems a bit much. > Also, I find that learning a language that way leaves a lot of > gaps-I learned macro-32 that way, and anyone who's seen my postings > to net.decus will know how many gaps I have in my knowledge of the subject. > To me,the only way to learn a language well is to write lots and lots > of stuff in it, not just figure out how to do one thing. By the second year, a CS major had better realize that there's more to CS than just "learning languages". I agree with Curtis. CS people should be able to learn languages on their own. This is because languages allow programmers to express abstract concepts in a concrete way. Languages differ in the concepts they allow for (semantics) and the exact mechanics of expressing them (syntax). Learning a language is a matter of figuring out what concepts the language is built around and then figuring out the nitty-gritty syntax. So, if the languages are similar enough (and most procedural languages are) one non-trivial programming assignment should be enough to get people acquainted with what the language can do. Unfortunately, it's hard to "teach" people this. You can lecture them all you want on similar concepts/constructs in langauges, but in order for it to catch on, the students not only have to learn the facts about languages, they also have to learn a new way of looking at languages and *that* is impossible to guarantee. You can't push people down that road, the best you can do is show them the way and hope they follow. The one time students might need help learning a language is when the language embodies concepts the students haven't seen before. Things like fp, and prolog probably fall into this category. Then the students might need some help picking up the concepts (not the language). After all, in the case of prolog say, how many undergraduates know what a backward-chaining, resolution theorem prover is? Ray Chen gatech!chen