No, really you are. If someone hasn’t told you this yet it’s probably because too few people know what programming language you are teaching. Of course someone probably thinks you are teaching the right language. After all you’re a smart person and you chose it. Asking what programming language should be taught first is probably the best way to start an argument a discussion among computer science educators.
Should it be a block programming language? Of course it should because the cognitive load of traditional programming languages is too great. Of course not because those languages are too limited.
Should it be Visual Basic? Of course because it is friendly and easy to create nice GUI applications. Of course not because BASIC == BAD.
How about C++? Great as it lets you get right to basics. Of course not – have you seen the pointer errors?
Scheme/Racket Of course because functional languages are more in tune with how we teach mathematics. Of course not because they are impractical and not real world.
Java? No, too much cognitive load. Of course, great preparation for AP CS.
Assembly language? If I had a dime for every time I read that suggestion on a site like reddit or slash dot or the like I could buy a pretty good meal. But talk about cognitive load!
Need I go on? Probably not. You get the idea. There are good reasons to use and good reasons not to use most programming languages. Mike Zamansky took both sides on several languages recently. Starting with scheme and Selecting a starting language - why not Javascript Yesterday in conversation I heard some good arguments for Python which seems to be gathering steam in a lot of schools. Aman Yadav, and Steve Cooper talk about block programming languages in a recent CACM article. Fostering Creativity though Computing
Everyone is an expert. What’s a teacher to do? I’m pretty convinced that a good teacher can do a good job teaching students using almost any programming language if they know it well and teach it well. I worry about less experienced teachers though. Frankly I am not sure even the best programming language, assuming one believes such exists, will work as well with an inexperienced teacher as a difficult language will work with an experienced teacher.
My big worry is not so much about the right language or the right curriculum or the right text book as it is good preparation for the teacher. We’re really rushing a lot of people into teaching CS who don’t have a deep understanding of computer science and software development. How much can they really learn in a 5 day or even several week long professional development session?
I’ve been working with some people to come up with licensing requirements for CS teachers in my home state. I like what we are coming up with but I really wonder how we’re going find or how we’re going to develop teachers who meet all of the expectations we are setting.