A silent revolution has changed the way computer science is understood and taught. The modern curriculum no longer focuses on the constructs of a language and the state changes in the machine. Instead, programming is taught as a problem-solving process that starts from a thorough understanding of classes of data and objects. The TeachScheme! Project has been at the vanguard of this revolution; the new series is its natural extension to cover a seamless transition to object-oriented design using Java.
Teaching is hard, and getting people to change how they teach is even harder. TeachScheme! (read Teach Scheme, NOT!)
wants to turn Computing and Programming into an indispensable part of the liberal arts curriculum.
There are truly world class folks involved in this effort whom I trust. Though I do not yet understand the depth of this project, I find it fascinating, and inspiring.
Back when my co-worker and I were preparing some white-papers (the research was the hard part), we decided to present them in “conference paper layout” initially.
SIGPLAN provides some such templates for MS Word here.
Alternately, here are some local copies:
Why Computer Science Doesn’t Matter is an essay about the lack of computer science in the educational curriculum today, and what can be done about it. They’ve come up with an interesting, and successful, approach.
[I want] to place computing where it belongs: in the hearts and minds of every single student.
To paraphrase a quote attributed to Avinash Meetoo’s unnamed professor in the comments section in this wiki article:
A programmer should be studying that which prepares him for his last job; not just his next, or current one.
— Grant Rettke
Regarding my last post, you should definitely read all of the comments. It is pretty interesting to get everyone’s perspective on the topic (even if it is simply something to the effect of “Sounds like a great idea!”). Take, for example, Dan Friedman‘s comment:
Since I have been teaching functional programming in my undergraduate programming languages course since 1967, I am thrilled that at long last I might be teaching the sanctioned material.
On May 28-29, 2008 SIGPLan held a workshop on Programming Languages in the Curriculum at Harvard.
to discuss the role of Functional Programming in Education. The results of their efforts are here.
Please have a look, and, per Matthias’ comment, please consider posting your comments (under the “Programming Languages” section)!
Here is a good article about the role and value of “toy” programming tasks.
Beware Pseudo-Arrays, why does this occur?
How is it that students internalize a conceptual difference between the notion of bindings between:
6count -> 10
counts[6count] -> 10
Brainf*** is a Turing complete programming language, known for its esoteric “minimalist nature”, that has gained quite a bit of popularity over the years.
While you most certainly wouldn’t want to write much code in this language, it might be fun to write a compiler for this language, and even an interpreter to test our your compiler!