From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7fb761492573daee X-Google-Attributes: gid103376,public From: geert@dialis.xs4all.nl (Geert Bosch) Subject: Which first-course languages? (was: What schools use Eiffel (was Date: 1995/04/20 Message-ID: #1/1 X-Deja-AN: 101233976 references: <3n33ej$2h7@theopolis.orl.mmc.com> organization: Dialis Gateway, Enschede, The Netherlands. newsgroups: comp.lang.ada x-ftn-to: dennison@escmail.orl.mmc.com Date: 1995-04-20T00:00:00+00:00 List-Id: dennison@escmail.orl.mmc.com wrote in a message to All: > In the programming languages class, it used Ada, Eiffel, and Miranda. de> Miranda???? The university I'm student of (University of Twente, The Netherlands) also teaches Miranda as first-course language. Miranda is a functional programming language, ie. a language without an assignment statement. There are advantages of Miranda over Pascal, when teaching in a first-year course. One of the biggest, IMHO, is that (unlike Pascal and C/C++) nobody knows the language already, when they start studying CS. When I was in my first year, we still learned Pascal, and the differences between people that had never programmed a computer before, and people who had written thousands of lines of Pascal code was huge. The students already knowing Pascal (I was one of them) found the course to be to easy, even boring sometimes, and people who didn't know anything about programming languages already couldn't catch up. It also turned out that the people who already had programming experience often came into trouble later on, when courses became harder and when they didn't have an advantage compared to other students. Since our first year is also meant as a selection mechanism, to filter out bad students quickly, Miranda is a much better language to teach in the first year as Pascal, C or something similar to these. Because Miranda is not a procedural language but a functional language, good knowledge of mathematics is much more important. The gap between presenting an algorithm and proving it's right al also much smaller. It turns out that single-minded students who think they already know everything about programming because they've been hacking too long, often have huge problems mastering Miranda, because they try to learn it as a procedural language, and because their mathematic skills aren't on the same level as their hacking skills. Many of the hackers don't understand the fact that it's possible to pass a list of all odd integers as a parameter to a function, for example. You can tell them about lazy evaluation which whill only actually compute the odd integers which are needed for output but they find that scary and try to avoid it. It's good to see that bright students with a good understanding of mathematics but don't have any programming experience at all, often leave the 'hackers' in the dust, when the first excercises have to be made. The first group starts writing some rough outline on paper, and the second group runs to the computer immediately. Groetjes, Geert