Or perhaps how young should you try? And to top if off, why do you want to start them so young in the first place? I received the following from a teacher friend of mine the other day and it has had me thinking ever since.
Can you please tell me why anyone thinks it is a good idea for 6th grades or 7th grades to learn to program? I do not see them trying to teach physics or pre-calculus to them. Lord knows they are not looking at having 6th graders learn geometry. Now why do they think (not sure that word works here as that’s the underlying problem with teaching 6th graders to program) that students that have yet to understand problem solving in a class build to help them understand problems solving could start problem solving 2 or 3 years early? They do not have 6th graders read say Gatsby even though most of the basic vocabulary is there. I just don’t understand why you would want to show middle school students what goes into networking when adults with a better understanding of abstract thought have hard times working and using it? The idea of “Well we want to show them so they can get a feel for what is going on?” should then also work for teaching trigonometry or calculus. Or how about chemistry???
I am blessed with a LARGE number of very bright (HS) students and I still have many who just start to understand what all is being asked of them. Tell me how they think a group of students with less on the ball and minds that are less focused can do what they hope to teach and not make bad habits or outright destroy any chance of learning programming? Any teacher after them will have to undo so much bad though and habits it would depress said teacher. And yes I know there are some kids that can do the material very well even at the 6th grade, but that number would be small to start with and those students would be in with the great unwashed masses of their peers, a heart breaking situation to force a bright student into.
I hear this from others as well. In fact I have run into the same attitude from university faculty talking about computer science at the high school level. The greater question, or more basic question, is “when are students ready to learn programming?” It’s a fair question. We know that trying to teach concepts before students are ready for them emotionally, intellectually or other wise can be counter productive. We have also seen some good success with students learning programming in middle school (some guy named Bill Gates learned in middle school and did pretty well). Tools like Alice, Kodu and Scratch are widely used in middle schools and even younger. It seems like there are some good results there. But are we not hearing (or paying attention) to down sides? Do we focus on the students who do well with it and assume that all students are keeping up when in fact, perhaps, they are just precocious students leaving the rest in the dust?
In my heart I want to introduce middle school students to the joy and excitement of computer science and computer programming. They are making decisions at this age – consciously or unconsciously – about their academic futures. I want to see CS included in their thinking as an option. I think middle school is old enough for some of this. I have no data to support that idea though. It may exist somewhere or maybe it doesn’t. How about younger children? Remember Logo? That was used with still younger children. Kodu and Scratch have been widely used with elementary school students. Does it work out ok if we don’t try to do to much or go too deeply? Or are we going to force them into bad habits that someone will later have to break?
What do you think? At what age did you learn to program? How young have you taught programming? How young is too young as students are not yet ready?