On Tuesday 20 March 2007 19:35, Carl Gustafson wrote:
Well, I'll agree with you on Java. My take on Java is that it was designed
to keep novice programmers from chopping their fingers off, unlike C or
C++, which are more like power saws without bladeguards.
I'd say you'd have to be crazy to teach C++ to beginners, it's such a kludgey
language it's even frustrating for those who already know what they're doing.
C is less so, but doesn't do OOP and seems like a great way to teach novices
some very bad habits.
There are a number of things I don't like about Java, and some things Java
does that I think an experienced developer can do better in other
languages, but for beginning programmers, especially in high school or
middle school, the automatic memory handling (garbage collection, etc.),
strong typing, and a development environment that handles a fair amount of
the nit-picking makes a good starting point.
The problem I have with Java is it's awkwardness, it takes quite a lot of
boilerplate and setup to do a simple app, which would be the majority of work
in an intro class. The teacher I'm helping with this did try to teach the
class with Java, but found it such a pain that he switched it back to Pascal
the following year. That said, the AP argument is quite a good point and
definitely worth consideration.
What I see as being a good approach would be to use the "How to Think Like a
Computer Scientist" book in _several_ languages _simultaneously_, Python &
Logo being my picks. For example, the teacher could explain the concept and
demonstrate it using Logo and the assignment for the student would be to use
that concept in Python. This approach prevents the students from becoming
too language-focused, a problem I've noticed in many of the classes I've
taken myself, so the concepts stay in the forefront and the implementation
becomes secondary. Additionally, a sort of special session could be taught
to those wanting to take the AP, where the lessons would also be explained
and exercised in Java.
Now if only we could shoehorn Eiffel in there somewhere...
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug