I'd also argue that a super simple language like Scheme (or stripped-down Racket) would be pretty close to ideal for a pure intro class.
Introductions should be about learning how to reason about abstractions, and how to transform problem-solving from what's going on in your head into code. When you start out with something so rigid like C or Java you really confine a student's ability to reason about a problem because there's so much syntax to keep track of.
A Lisp-like language will only help you if you stay in the lisp world. A C-like will help you with most of the world's current languages in the Tiobe list.
That's so not true in my opinion. There is a whole generation that was raised with Scheme as first language (and SICP ), I am particularly grateful that I was part of that and today I program (or had programmed) in most of the top languages in the Tiobe list as you say.
Comments
I'd also argue that a super simple language like Scheme (or stripped-down Racket) would be pretty close to ideal for a pure intro class.
Introductions should be about learning how to reason about abstractions, and how to transform problem-solving from what's going on in your head into code. When you start out with something so rigid like C or Java you really confine a student's ability to reason about a problem because there's so much syntax to keep track of.
A Lisp-like language will only help you if you stay in the lisp world. A C-like will help you with most of the world's current languages in the Tiobe list.
That's so not true in my opinion. There is a whole generation that was raised with Scheme as first language (and SICP ), I am particularly grateful that I was part of that and today I program (or had programmed) in most of the top languages in the Tiobe list as you say.