On Jan 7, 2012, at 1:50 PM, Dave Caroline wrote:
On Sat, Jan 7, 2012 at 6:16 PM, Toby Thain <toby at
telegraphics.com.au> wrote:
On 07/01/12 11:38 AM, Liam Proven wrote:
So yes, I think it's important that
you learn all this stuff. But do I
think you should start with a low-level language like C? No! Students should
not have to deal with buffer overruns, manual memory allocation, and the
like in their first exposure to programming.
So some education teaches Java a cough "safe language" and we get slow
memory hogs
because they know no better! yes they do need a proper education with
low level code in C or assembler etc and why the
other solutions are slower
Perhaps, but I don't read what Toby said as "don't teach people C".
It's "don't start with C", which I *do* agree with; it would be like
teaching a 16-year-old to drive on a Formula 1 race car. Wait until they at least
understand safe stopping distances and proper disaster avoidance before taking away the
airbags and the anti-lock breaks. :-)
In my experience at university when we changed the introductory curriculum from C to
Python (it was never meant to be a first-programming-experience course, but the advisors
kept assigning it that way, so we changed the curriculum to match reality), I have to say
that people "get" the fundamentals of programming a lot better the first time
when they don't have to learn how to wave the chicken just right to make things work.
Python also has the beneficial aspect of being a fairly powerful general-purpose
imperative/object-oriented/functional language again; students will likely be using what
they've learned for a long time to come. I only picked up Python a few years ago so I
could properly TA the course, and I've been using it in a lot of places I never would
have expected to use a "scripting" language in the past.
Now the university teaches C alongside assembly, which is exactly where it belongs (why
would you even try to teach pointers without showing what the CPU is actually doing with
them?). In a sense, that's where we take off the training wheels (and the airbags and
the anti-lock brakes, if I wanted to mix metaphors). It seems to work pretty well.
- Dave