About education of CS and CS in education.

In the President’s letter of Communications of the ACM [March 2006, Volume 49, Number 3] David A. Patterson explained how to “re-invigorate computer science curriculum”, and request for evolution of computer science education. Briefly, improving CV is achieved by two general ideas. The first is “Technological update“: student should study and use tools (ex. Eclipse) as well as library (ex. JUnit) for homework, and also a focus should be given on study of parallelism. The second way to improve CV is to make “Course I would love to take“: for example he cites the construction of own supercomputer through FPGA, but also participation to an open-source project.

The point of view is mainly oriented toward programmers. And I agree that programmer students must be confronted to industry’s reality: they should have used during home-works a version-control system, followed any methodology … which imply that teachers use those tools too: this is not always the case as they are often researchers and don’t have the same needs as industrial do.

The education problem is not so simple if we think that today programmer can be tomorrow solution architect. Where the programmer will be interested in the better version-control system, the architect will like to know more about deployment tools. The problem arises: taking time constraint into account, what are the best things to teach to please future programmer but also future manager?
IMHO “what” we learn at school is not so important as “how” we learn it (curiously, when I am programming I always focus on “what” I do instead of “how” I do it … could be the next blog post). How we learn is of course the way we learn it but also the context or environment in which we learn it. If I would easily link the way to learn to pedagogical problem (see also an interesting blog on Non linear learning, the non linear internet), “how” we learn is certainly always oriented towards the learner: what is his motivation? And I guess that the only common interest for all students but also teachers is the CS culture: tools, languages, methodologies, communities, blogs, research … Students look only for help/guide/mentor/model to develop their computational thinking; if the teacher is aware to be an entry-point to CS culture, students will learn the needed knowledge from any source: lecturer, books, internet or themselves! Motivation is good enough (see Scientists call for government to help fund video game research), students will learn what they need. Ok, this is the optimistic point of view of education.

Lots of random thoughts … I hoped that bloging would help me to organize that confused brain of me, but instead it help to put in it some more random thoughts! All those ideas come to me when I thought to the recruitment problem: how to evaluate knowledge and knowledge use of a candidate? how to define the need of a position? … still have so few ideas about it.

So I conclude with the only thought that is clear to me: