Sunday, January 13, 2008

How Should We Teach Computer Science?

There's an interesting article about How Should We Teach Computer Science? that discuss about the need of deployment phase and also a knowledge about source control. The author said that source control is the very bedrock of software engineering. He also stated:
Today's computer science students should develop software under conditions as close as possible to the real world, or the best available approximation thereof. Every line of code should be written under source control at all times
On my personal opinions, i agree with this approach. By using source control to manage the source code, students can have more benefits rather than not using it (collaboration, sharing, consistency, etc). Source control management (SCM) is now available on most platform and you can have free version on most application. Why didn't it be a standards on ways to do development phase on every project the students made?

The problem lies on the infrastructure and also habits. Not every students have a computer which is connected to Internet. Some does, but not all of them can access broadband connection. Some still use dial up, but in my opinion, it's adequate to run checkout, update, or commit process, even though it would be quite expensive if you work intensively.

The second problem is even worse on my opinion. Most of the students use Internet only for fun, and not utilizing it to improve their skill or knowledge about things that they should have learn, for example source control management application. They tends to wait for instructions from their lecturer. This is something we should change, since you can't get everything from your lecturer due to some limitations. You will get more if you work on it by your own. I have prove it on my own.