A very good read related to this is "The Perils of Javaschools" by Joel Spolsky.
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
I think that paradigm choice is secondary compared to teaching in a way that will stretch the student's mind.
C++ was the language I used when I started getting serious about programming. Before that I used Basic dialects.
My experience learning to program in C++ wasn't very enlightening. There were just a lot of compile-time errors, and I spent a lot of time looking for them. If I'd had a teacher it would have been much easier.
I think that if you're going to go imperative, the best choice is a bottom-up approach, in which you start out pretty close to the metal and go up from there, not focusing so much on computer science theory than on pointers.
You don't really appreciate garbage collection unless you have had the pain of managing the memory manually.
The approach that I think is best, is to start with a very high level language in which you can teach basic computer science without the language getting in your way. Preferably a functional language =)
I am wondering if they fracture the bones of the sheep or if they just happen to look very hard for injured sheep..
A very good read related to this is "The Perils of Javaschools" by Joel Spolsky. http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
I think that paradigm choice is secondary compared to teaching in a way that will stretch the student's mind.
C++ was the language I used when I started getting serious about programming. Before that I used Basic dialects. My experience learning to program in C++ wasn't very enlightening. There were just a lot of compile-time errors, and I spent a lot of time looking for them. If I'd had a teacher it would have been much easier.
I think that if you're going to go imperative, the best choice is a bottom-up approach, in which you start out pretty close to the metal and go up from there, not focusing so much on computer science theory than on pointers.
You don't really appreciate garbage collection unless you have had the pain of managing the memory manually.
The approach that I think is best, is to start with a very high level language in which you can teach basic computer science without the language getting in your way. Preferably a functional language =)
The site seemed to be already overwhelmed, so in case it gets slashdotted, here is the youtube link: http://www.youtube.com/watch?v=xA88nmSeOM8&eurl=http://benheck.com/12-02-2008/new-xbox-360-portable&feature=player_embedded