--------------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--