Bad Computer Science Students

computer science students at the airport
computer science students at the airport (Photo credit: stefanx80)

This article first appeared on DNA, here.

IT would not be fair to just rant about the education system and bad teaching quality, as in my previous columns, without pointing out problems with the most important component – students themselves.

I would say that of all the factors that affect Computer Science programmes, this is the most crucial.

While student selection is one of the areas accredited by the MQA (Malaysian Qualifications Agency), the criteria is largely concerned with fairness and preventing arbitrariness, and ensuring that students have the necessary entry qualifications. The assumption is that students will compete to enter a programme that they want and will therefore work for it.

However, if I were to walk into any Computer Science faculty in the country today and ask the students if they wanted to be a Computer Scientist after they graduated, I would be surprised if more than a handful says β€˜yes.’

If I were to ask the rest for the reason that they applied to study Computer Science, the answers would just sadden me.

As a result, there is very little passion among Computer Science students for their choice of study. While the exact relationship between passion and success is not entirely clear, every successful person attributes passion as key to their success.

That is all that I wish to say about passion as there are a lot of comments on this elsewhere.

What surprises me further is that many students do not seem to realise that they need to take ownership of their life. If they don’t care about their future, nobody else will. But most students seem happy to simply coast along with the aim of merely passing the course.

Again, this is a general issue that seems to plague the young, and I will not comment further on it.

What I wish to talk about are things that a student needs in order to take an active role in determining their own future.

Students need to realise that university curricula can barely keep up with the developments in the field as things move too quickly while accredited teaching processes do not. However, that is no excuse and it is still essential for a student to keep abreast with the latest happenings in the field.

Therefore, all Computer Science students need to be capable of independent learning, beyond the standard curriculum. While learning fundamentals is critical, it is not the only thing worth learning. Having depth of knowledge in a specific domain is also very useful.

The fact that computers are in every aspect of our lives just makes this much easier for Computer Science. All a student needs to do is to pick something that interests him or her personally and to keep track of the latest developments in that area. This is also a great way to instil passion.

For students who love biology but ended up in Computer Science, take a look at developments in genetics and computational biology. For those who like cars, it might be useful to learn about 3D dashboards and self-driving cars. If a student likes fashion, it might be fun to learn about augmented reality and body area networks. The list goes on.

While future employers do not expect students to be experts in the domain, being in touch with them demonstrates that the student has an interest in it.

Then comes the learning. The best way to learn any skill is to put it into practice. Just choose something interesting and start tinkering.

While this is nearly impossible and possibly illegal in many other professions, it is highly encouraged in Computer Science. There is no excuse for not being involved in some personal project or open-source project – big or small. Facebook started as a personal project.

While not everyone is destined to be Mark Zuckerberg, such projects help build up core analytical and thinking skills plus language expertise and development process experience. These are all important skills that help guarantee future success.

One can often learn more in a failed project than by merely reading a textbook.

In fact, I will go so far as to suggest that all students should publicly publish their work for review and critique. This may be difficult in certain fields but a github account is all that is needed for the modern Computer Science student to do so. Soliciting honest criticism is the best way to improve ourselves.

Unfortunately, our students are usually too ‘shy’ to show off their work and learn less in the process.

Computer Science is not just about data structures and algorithms. It is not about Java or C/C++ either. The good news for all those students who have no interest in the field is this: It is important to realise that Computer Science is not all about programming and abstractions. Those are just tools.

Computers have a very real presence in our daily lives and are becoming more important by the day. It is just as crucial to learn how to use the correct tools to solve specific human problems in different domains.

Computers are present in every domain of human endeavour and a Computer Science student can be useful everywhere.

So, instead of just coasting along and hoping for the best, students should take a pro-active role and take charge of their lives. Computer Science gives students unprecedented freedom to experience and experiment with the real-world, unavailable in any other field.

Carpe diem.