Computer Science for the Rest of Us (Non-Computer Scientist)
nytimes.com
nytimes.com
What I find lacking in many non-tech folks is not Com Sci thought (by my definition), but rather something much more fundamental: systematic and analytic thought.
I find no end to the level of frustration I feel when I try to have a conversation about something, anything, with a non-tech person and they can't deal with breaking a problem down into a set of interrelated sub issues and focusing the discussion on what those issues are and how they interact with each other.
This of course, isn't true of every non-tech person I talk to. But, it is clearly far more prevalent outside the tech community. I do agree that it needs to be core to education, far more core than remembering what year some guy found some land in my opinion.
I personally prefer "procedural literacy". "Procedural" still has some potentially scary connotations, but is as least not specifically about computation. The idea is that the general skill of thinking in terms of sequences and processes and systems is a kind of literacy to be fluent with, and that that's not really the same as knowing how to program in particular. But somehow "computational thinking" has garnered more press and institutional support, despite being coined several years later.
This paper has a nice history of procedural-literacy-esque proposals (disclaimer: written by my grad-school advisor): http://dm.lcc.gatech.edu/~mateas/publications/MateasOTH2005....
Why? Philosophy gives you a feeling for syllogistic reasoning of the type that occurs both in arguments and computer programs.
Programming in the art class because what really matters with implementation is that students feel that they are making something they want to see in the world, rather than rote-learning drudgery.
Programming in Mathematics classes, also.
Don't teach programming/technology just for the sake of it to non-CS folks. If they enjoyed that, they would have opted for CS major.
However, strongly believe that there is a need for better understanding of the computational world, outside of CS domain. Help build familiarity (kind of computational intuition) and they will participate eagerly in technological revolution in their domain. (instead of pushing back)
Ideally we should introduce computational skills in middle schools. Scratch is a great platform to teach these skills implicitly; kids focus more time on being creative/fun and less with writing code.
For adults, we need to identify strong application areas and start from there. Loved to hear what Professor LeBlanc is doing in his course 'Computing for Poets'. We should have more of these 'Computing for X' style introductions. (X = [Doctors, Teachers, Product Managers, ....])
If anyone is interested in working on this, PM me. Love to discuss ideas.
[T]his course is tied to two courses offered by the English department on J.R.R. Tolkien and Anglo-Saxon literature. Students in the computing course put concepts to immediate use by analyzing large bodies of text. The syllabus is more like what one would find for a humanities course.
Too often introductory CS programs focus on the "how" of programming. By showing students the "why" and "what" first, you immediately have a more compelling case for keeping them engaged. This is true of all subjects I suppose, but CS is somewhat unique in that there are problems waiting to be solved almost everywhere.
Their answer is that they dont need to do this because they will be hiring programmers.
I suspect that they will not get their game made.