Too Much Freedom

I really like this adaptation of the song.

PS: The guy should have just proposed to her on-stage. That would have been thoroughly cool.

The Voice of China

I’ve got a soft spot for good voices. Hers was my favourite for this specific episode.

This one too.

The whole episode.

Better Indelible Ink?

Seriously, I’d like the EC to use real indelible ink instead of better indelible ink. What is wrong with these people. We need the real stuff instead of more expensive food colouring.

Now I have an inkling why they didn’t use the ones imported from India previously, because those were the real deal.

In Malaysia, we’re merely going to use substitutes.

Co-curricular Work

I attended a short briefing at Taylor’s University last week, where they asked us for comment some new things that they were embarking on.

However, I took the opportunity to put forth some suggestions on how universities might help improve some of the problems that I see with young graduates today – a lack of responsibility and discipline.

While I would certainly like to see sandwich programmes for our undergraduate degrees, I know that it would be very difficult to get that idea past the MQA. However, it might be easier to just award co-curricular points for students to do part-time or vacation work.

Unlike internships, it would not need to be related to their field of study. In fact, it might be better if it wasn’t related to their field of study. Even a simple sales job at a hypermarket or a simple waitress job at the local kopitiam, would be good.

It would give the students an opportunity to face the real world and to see what things are like out there. If they got some scolding from the customers, all the better for building character!

I doubt that any university would do it though.

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.

DIY Microprocessor Design

Bad Computer Science Lecturers

This article first appeared in DNA here.

IN my previous column, I asserted that our local Computer Science (CS) programmes were efficient generators of garbage. Lecturers are a critical part of the process and are also one of the nine areas of programme quality monitored by the accreditation process.

Academic staff quality is accredited in various terms such as staff-to-student ratio, staff development programmes, staff balance, merit recognition, equitable workload distribution, appraisals and awards, etc. All these human resource matters leave much to be desired and do not address real staff quality.

Technically speaking, the role of a lecturer in tertiary education is actually quite limited. University education is about independent learning and the job of a lecturer is not to teach but to facilitate learning and more importantly, to inspire students.

Here, things fall short again.

Many lecturers have little to no industrial experience, often joining the profession right out of school and earning their graduate degrees along the way. There is nothing inherently wrong with this. But these lecturers rarely inspire as they have neither war stories to share nor battle scars to show.

More importantly, they fail to bridge abstract theory with real-world practice. Someone without any experience working in a software team on a product would have trouble instilling good development practices as they would have difficulty communicating the complexities involved.

There is a saying that goes: “those who can, do; those who can’t, teach.”

There are some who belief that modern Computer Science graduates should focus on and work at a higher level of abstraction that is closer to the problem. However, I feel that fundamental knowledge about the inner workings of technologies will ultimately result in a better grasp of the higher level problems.

Unfortunately, lecturers with weak fundamentals cannot help unravel the deep complexities of modern technology. They lack the capacity to facilitate learning and are unable to impart knowledge. These lecturers often read directly from books or slides as they have little knowledge of their own.

This becomes a vicious cycle with each subsequent generation of graduates knowing less than their predecessors, while having to handle increasingly complex problems. This is ultimately not sustainable. To cope, graduates must think fast on their feet and learn on the job, which require thinking skills.

However, many do little to promote higher order thinking. Some pay lip service to Bloom’s taxonomy by setting exam questions in a certain way, using certain terms, to get students to think different. But this actually discourages thinking as students simply evolve better pattern-matching skills.

Students are rarely encouraged to challenge the lecturer during lectures, tutorials are reduced to tuition classes for tackling exam questions, and lab sessions turn into a set of procedures to be rigidly followed. University becomes a mere extension of high school.

I am not even going to go into the culture of giving ‘tips’. Examination tips seem to have become de rigeur in lecturer-student relations at universities. Some lecturers are guilty of giving tips and some students are equally guilty of being dependent on tips.

That said, modern-day lecturers are caught between a rock and a hard place. There is a lot of pressure being placed on them as they are sandwiched between the students and the university management. In order to satisfy both sides, academic quality is often sacrificed.

On one hand, university management needs to maintain student numbers and increase profits. While this is primarily an issue in private universities, public universities are also being encouraged to increase revenue generation, to become self-sufficient and to reduce their dependency on public funds.

On the other hand, students want to get by with as little effort as possible, preferably without having to go the extra mile to learn. While it is only human to choose the path of least resistance, years of rote learning in schools and instant gratification in their lives have made things worse.

Woe upon the lecturer who challenges and fails an entire class. Very few students would want to attend a university that is infamous for failing students. Lecturers are asked to justify high failure rates and stand to lose their jobs if their programmes are cut due to insufficient student numbers.

Hence, the safest way to satisfy everyone would be to allow students to coast through the course with the barest minimum of ‘standards’. Ensuring a high pass rate would keep both students and university management happy, and lecturers get a sense of job security.

I’d like to suggest that we reduce pure academics at universities and recruit more people with real-world jobs who have a passion to teach. These people can bridge theory with practice and are less concerned with job security and tenure. I would even go further to suggest the recruitment of candidates outside of traditional Computer Science backgrounds to further enrich the programme.

I know that this is a problem within the Malaysian framework but it is something worth looking into. For starters, it might be useful to get these people in as tutors first – to run tutorials and lab sessions in their individual ways.

It would be a win for everyone involved – tutor, lecturer, student, university and the nation.