I had to go look at the new Khan Academy Computer Science lessons. As expected they are not Computer Science, but Programming. The interactive IDE was really cool but overall I was very unimpressed. Do not get me wrong, I love KA. When my high school students come into my math class with chemistry or physics homework and ask questions I can refresh myself on how to do whatever it is they are doing. I tell my math kids to use it as a reference or reinforcement. These programming videos I put in the “cute but not really useful” category. They are not good for reference (which one do I look at?), the narrator talks at warp 9, and many of the explanations are in the categories of “huh?”, “what did she say?” and “that makes no sense”. I know how to program at this level so everything makes sense to me. For a new student or someone trying to learn programming on their own I think this would be a disaster. With a teacher discussing and supervising as the lessons are being done I think these would be cool. The teacher can point out the object of the lesson, discuss alternative code or methods and teach trouble shooting/problem solving. But then you have lost the whole point of KA lessons. In Programming I basically teach the same material as the KA programming lessons using Small Basic, Scratch and Corona. A lot more fun, a lot more versatile and a lot more exploratory.
Teaching programming is more than teaching code. It has to include IDE management, file management, experiencing multiple environments, program planning, problem dissection, top down and bottom up planning, and most importantly, problem solving. In my (very humble) opinion learning to type code and language syntax is one of the least important aspects of programming. Admittedly you cannot program without it but it is still trivial compared to the importance of learning to problem solve. Learning to type code is job training, and low income job training at that. Learning to problem solve has to be the focus of teaching programming. Problem solving and coding need to be blended together in such a way the problem is the focus and the code is just one method of solving it.
These KA programming lessons are not a step in the right direction.
I really do like the interactive code and drawing window thing though. I could really do something with that.