Wednesday, March 14, 2007

Enticing Students to Learn CS

It is that time of the year again. Applications are open, and we eagerly monitor the number of students that have elected to apply for one of the degree courses we offer (two year Diploma in Applied Computing, BSc in CS, BSc in Software Engineering, and MSc in CS). The department of CS at Reykjav√≠k University is by far the best in the country, and one of the very best in all areas of science. (I must freely admit that there are only three CS departments in Iceland, so being the best might not mean much after all :-)) There are plenty of well-paid, exciting jobs available out there for CS graduates, and our graduates have many job offers to choose from. Computing is the heart of modern life and society, and offers an unmatched breadth of engaging problems to work on, and the potential for lifelong learning. As Jeannette Wing puts it in her piece on computational thinking, "to reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability."

Based on these (for us obvious) premises, one would expect student enrollments in our CS degrees to be increasingly high. Unfortunately, as of today, the figures paint a totally different, and utterly inexplicable and depressing, story. The number of applications is at an all-time low, and we are considering many plans to try and stop the rot. At the same time, enrollment in several engineering degrees is increasing. Even female students are now considering engineering as a viable subject to study. Instead, CS does not seem to cross their mind at all.

Could this have to do with the totally wrong equation "computer science = programming"? And what about the stereotype that a computer scientist is an autistic, male, sun-avoiding, coke-drinking nerd who programs and fixes computers all day? I have no answers to these questions. These days I am putting on my travelling salesman clothes, and give (hopefully energetic) talks on the beauty and importance of CS to a few high-school students who bother to show up. Whether this will have any effect I do not know. What I do believe is that it is time to send out the powerful message that computer science is the science of the 21st century Renaissance man. No other science today touches on so many others, and on society as well. What we need are more people like David Harel and Jeannette Wing who have the courage to explain CS and its basic ideas to the rest of society, including our fellow scientists---many of whom just consider computing as a useful technology.

Let's pick up the gauntlet, and put pen to paper.

1 comment:

Tim Rue said...

In using a computer, reading about how to do something is not enough. There is the need to actually do it on the computer, as a feedback loop that verifies the learning process to the user.

Computational Thinking does not require such a feedback loop of understanding verification.

The main promoter of this is a Ms. Wing, who has an extensive background in the computer education industry.

Is it possible that Ms. Wing is so entrenched in the mindset of her profession that she has lost touch with the mindsets of the general population? Has she failed to recognize her own human action constants or how they relate to computing? When something is part of your species nature, can you recognize it or are you too subjective inherently? (i.e. sex drive, abstraction creation and usage, need to sleep, eat?) Or are such species characteristics not to be considered in regards to creating a machine image of your species?

Microsoft has identified itself by its anti-trust actions (law suits around the world against MS.) Is there reason to believe MS would be supportive of the user base it has suffered its wrong doings? (re: "Computational Thinking is for everyone"??)

Trying to get people to think like a computer.. To think like what you or others have created seems to be somewhat misdirected and inherently degrading.... to think like the machine you created, instead of the creator you are?.

How about first recognizing what people actually do invariably and creating a system that enables people to apply what they do through the abstraction machine of which computers really are.

Understand Abstraction Physics and apply it through a configuration of computer functionality that represents the mechanics of abstraction creation and use, where you can establish a verification feedback loop for solidifying ones understanding of whatever abstractions thought up, computational or otherwise.