3 ms·
I don't know. I think general thinking skills are a pre requisite to understanding programming. I've seen many people try hard to learn programming but fail mi
by hasenj 9y ago
I don't know. I think general thinking skills are a pre requisite to understanding programming.
I've seen many people try hard to learn programming but fail miserably no matter how much they try.
- mannykannot 9y agoAgreed. Furthermore, if programming can be a good way to teach general thinking skills like perspective, clarity, precision, and abstraction, why is there so much code lacking these properties? I am particularly skeptical of the author's suggestion that developing a domain-specific language would be one of the ways to teach general thinking skills through programming. Absent an example to prove me wrong, I would think that writing a DSL is so laden with task-specific minutiae that those parts of the job that extend general thinking skills would be highly diluted. On the other hand, I think programming helps with one thing: programs are, in some sense, half-way between the physical world of discrete objects, and the abstract world of words and symbols. I have seen it suggested (but I cannot find the reference) that all abstract reasoning developed from an ability to mentally model the physical world. If so, then programming may be a stepping-stone from the latter to the former (though only if it is taught as such; most programming instruction makes programming the goal, not a waypoint (which is not surprising))
- Jtsummers 9y agoI may be misreading the article, but the author doesn't suggest having the students write a DSL, but using DSLs with students so that they can focus on the specific problem domain. Think things like (classically) Logo, or recently Scratch.
- mannykannot 9y agoI believe that approach is also mentioned, but I was referring to section 5, "Potential Teaching Approaches", and specifically 5.1, "Domain Specific Language": "This approach would organize the course around designing and implementing a language for computations in a particular domain."
- kingkongjaffa 9y agoTaught on paper with psuedocode is the best way I've seen it introduced.
- hasenj 9y agoThe problem is when the student tries to write their own code. I'm not talking about anything complicated. Just simple imperative logic. You can explain to them an example code and they would nod and say they understand, but when it comes time for them to write code, they can't.
- naasking 9y ago> I've seen many people try hard to learn programming but fail miserably no matter how much they try. It's all about how you approach it. The vast majority of texts present programming largely the same way, but obviously that way just won't click with some people. These people might be much better with visual programming languages to begin with, for instance.
- unit91 9y agoIt seems like there's an epistemic feedback loop. You have to have a certain baseline to learn to program, but programming, in turn, improves your cognitive abilities.