Reaction for: Instructional Strategies for the Problems of Novice Programmers by Danah

I know this is going to go quasi-off-topic but we are going to veer there anyhow... THe first couple pages of this article mention students' ability to grasp English but that they find difficulty understanding a programming language. I question how close to a "language" a programming language is. I would assume that individuals would be able to better grasp a programming language (or at least the concept) than they would be able to at a later age. Think about what comprises a computer programming language. There is an exact syntax and structure to each language; the same holds with spoken language. There are correct spellings and punctuation; the same holds with written language. Now, young people have no difficulty learning a spoken language. Dabbling in the cog-sci debate, we may assume that learning spoken language is embedded into our minds. In addition, I am certain that we could prove that logic is also an embedded activity. Programming combines both logic and language. Now, writing is extremely difficult for youngens and learning language becomes more and more difficult for people as they get old. Why are we not trying harder at speech recognition? Why aren't we trying to teach logic and Logo at a younger age (not just for a short while but a continuing process). The author cites that teaching languages proved unexciting results. I would assume that younger people would not do as well in the long run, not because of their inability to learn but rather their age and quantity of practice. I suppose that 4th graders learning Logo have a far easier time with it then their 10th grade counterparts [at least in syntax] for the same amount of time spent. But this is a tangent....

Fragile knowledge is an extremely interesting concept. I would think that at a young age, most knowledge is fragile. The mind is still developing. Problem soloving skills are not developed (we start teaching math and logic _way_ too late).

I am not touching BASIC....

I like the meta-course idea. In fact, I think it would be an interesting experiment to offer as an "advanced section" type of thing. Not required but extra help and information for those struggling trying to learn the concepts...


Reactions


Matt C:

I think that kids learn logic relatively early through experiences other than school. We learn the if-then-else logic very early on, "If Mom calls me one more time and I go I won't be in trouble, else I'm gonna get a spanking" (ok, it's a bit contrived). My brother knew what was up at age 2 and 1/2. He wanted cookies and was told no, he said that he was gonna go down and get them anyway because he was up for a spanking. Funny maybe, but he clearly knew the logic behind his actions and what would happen as a result. Remember playing with the toys where you had to fit the block of a certain shape in the corresponding slot? You learned to problem solve that at some point and to figure out what makes the logical choice. Knowing that we handle logic early on, I don't think we should avoid programming for younger students because it may be too complicated. A language like Logo is easy enough and if attached to a robot is entertaining enough that young students could benefit from the lessons that programming to teach.


Jon:

Well, I'm not sure I agree with the analogy between a programming language and a natural language. I would probably consider a programming language much more akin to a written language, which is very different than a spoken language. The syntax and semantics of a spoken language, while they have very definite rules, are also much more flexible than a programming language. When speaking, even if what you say is not 100% grammatically correct, a listener will know what you're saying. People can resolve ambiguities with context. Computers can't do that, which is why people can get so frustrated with programming, and make assumptions that the computer should understand what the programmer wants to do. I think the rigor and exactness of getting things to work in a programming language doesn't quite appeal to young children too well. Besides, patience is an important atttribute in CS, which is lacking in many young kids...


[BACK]