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

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."
Re:Using Programming Language Concepts to Teach General Thin... by unit91 on Thursday May 25, 2017 @11:34AM (#14417926)
It 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.
Re:Using Programming Language Concepts to Teach General Thin... by naasking on Thursday May 25, 2017 @11:33AM (#14417922)
> 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.

Re:Using Programming Language Concepts to Teach General Thin... by kingkongjaffa on Thursday May 25, 2017 @09:44AM (#14417216)
Taught on paper with psuedocode is the best way I've seen it introduced.
Re:Using Programming Language Concepts to Teach General Thin... by hasenj on Thursday May 25, 2017 @09:12PM (#14421417)
The 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.