From: Anton 'tony' Bangratz Date: 2006-06-12T22:38:23+09:00 Subject: Re: Ruby for Highschoolers? --------------enigF6028B78CDBCB657FDE27AB1 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hello, I have followed this thread now for a while, and cannot resist to add a f= ew words. (Background: Freelance Programmer/Sysadmin with quite some experie= nce in teaching 'Something about Computers', including various programming languages. No LISP or Scheme, though.) Jeremy Tregunna wrote: >=20 > On 11-Jun-06, at 12:55 PM, Nicholas Evans wrote: >=20 >> [Ruby or Scheme as programming language? >=20 > If you can teach someone to program, learning a new language isn't goin= g > to be a big problem. Your decision should be less about the language an= d > more about the concepts you need to be teaching.=20 I have to support and stress that point. The biggest mistake in a lot of courses seems to be that the instructor mixes up 'How to program' with 'learning a specific programming language'. The most basic concepts (calculations, conditions, operators) can be taught with the help of a multitude of languages. The 'not-so-basic-anymore' stuff (for example variables, functions/procedures, assignment ...) will exclude a handful f= rom the set, but there's still enough left. But all of these things can be presented even without the use of any lang= uage. These concepts should be like templates or blueprints: (Almost) every lan= guage has/needs those, and the only difference for the programmer is the syntax= =2E Especially for a non-technical person, approaches that use metaphors and 'real-life examples' are easier to understand and realize. It really doesn't matter which tools you use to visualize and exemplify t= hose concepts. The real focus in this phase should be the ease of access to th= e tools of choice for the student. In this case, a scripting language has immense advantages over every compiled language: no wait for success. But= I digress. The more advanced topics will sometimes be bound to the use of a certain language, but what good does that? Knowing about specifics of a programmi= ng language does as little for programming skills as knowing (only) about My= SQL (or dBase, or BDB) teaches about databases. With good basics, though, one= can come far. All in all, an understanding is much more productive and helpful than mechanical repetitions and 'cookbook recipes'. >=20 >> So, given all of that, I have two questions for ya, list. One, do you >> think there's any merit from teaching pretty non-technical sophomores >> in highschool Ruby over Scheme? For me, it's all about the question 'Which tools will enable the student = to learn without being sidetracked or even hindered?' AFAIK, DrScheme or Smalltalk have a clear advantage there. Knowing only t= he latter, I dare to simplify: the IDE is the VM is the IDE. Now, my persona= l preference is still Ruby. First reason: Because I can -- without having to specify anything -- leav= e the choice of the most important tool, the editor, to the students whose inte= rests are deep enough for making that kind of choice, and show the other simple= yet powerful alternatives (my own choice doesn't count, as I personally prefe= r vim, but wouldn't try to force anyone to make use of all the builtin good= ness). The second reason is the ultimate blackboard, the try-and-error playgroun= d which is built in: irb. Readline support, even completion is available, a= nd the success for the most basic things is immediately visible, which is invaluable for overall success and progress. In the end, it's all about personal preference. If you feel more comforta= ble with Ruby, stick with it. If any other programming languages feels more natural to you, and you manage to explain the most basic concepts to some= one new to programming with the help those, stick with that. >=20 > No, I don't. Keep the language simple, teach them how to program; those= > who continue on with programming will find languages that they wish to > pursue, and will learn those when the time is appropriate. >=20 This is the second statement I want to support with all emphasis. The /concepts/ are more important than any specific language skill at the end= of the day. There is no need to teach every possible way (as mentioned somew= here else in this thread): the skillful will find the way, the less skillfull = will work with what has been given to them. Now, I want to freely comment on some other statements within this thread= : It seems that sometimes 'learning how to program' is confused with 'not h= aving fun' or even 'no pain - no gain'. I had the mixed blessing to learn vario= us things (not only programming) from very different people. The things I remember best and that helped me most were those where learning was coupl= ed with 'having fun'. And nowadays, where we have (as instructors) the freed= om of choice of tools, why should we still transfer 'our' pain of the past onto= the back of our poor students? Or maybe it's just elitism, and the creepy feeling that these days 'hacke= rdom' isn't as removed from 'the masses' as it has been? On another note: if a certain concept doesn't exist in a certain language= , and the concept is too important to be skipped, why sticking to one language = all the time? If it's really *that* necessary to teach it, there's ways aroun= d the 'restrictions' we put on ourselves. I do not preach babylonic confusion, = but eclectic picking of choices. Yes, the signature is random, no, I didn't pick it. Neat fit, though. I'll leave it at that. t. --=20 Anton Bangratz - Key ID 363474D1 - http://tony.twincode.net/ fortune(6): Hegel was right when he said that we learn from history that man can never learn anything from history. -George Bernard Shaw --------------enigF6028B78CDBCB657FDE27AB1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQEVAwUBRI1uRAgZMsE2NHTRAQJr3gf/dn+Q8vZKrdYuYC3aAsVzInOFIYXIgvfn ZMHIqFQZg+sJNwFnddcF21AHdkHtg0HK5XC5/4+MCbmTdplHC96lgyKWu1BOUKAO WFagBSaKi6WcgCsRjTlBpHfRlnqvzCIRgZ+ipdcojlJx5ssCsX0YVyqcHPjZsjt1 wcMwUBo9IMIMTk/9gFiEsYGV0bT2bMokSLyYuaPSVWhR4pa5MmdY8a1RlljRPOEe VV+6zdbgk6nMsjWmrrulEJXX31njTiITmS5NpAaQlpx1pFvWkhcVB9PYncJTCUxg Y0RXReLrZhDgxQ4GyQnxiP671y1fOdm1Xt1n+snuFOS+a7lo4VtqIw== =Dre4 -----END PGP SIGNATURE----- --------------enigF6028B78CDBCB657FDE27AB1--