News for hackers. Stuff that matters.
Re:Using Programming Language Concepts to Teach General Thin... by mannykannot on Thursday May 25, 2017 @08:29AM (#14416855)
Agreed. 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))

Re:Using Programming Language Concepts to Teach General Thin... by Jtsummers on Thursday May 25, 2017 @10:06AM (#14417359)
I 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.
Re:Using Programming Language Concepts to Teach General Thin... by mannykannot on Thursday May 25, 2017 @10:37AM (#14417568)
I 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."