My first year at university came to an end yesterday at 11:30 when I finished my ‘Web Technology’ exam. It’s been a fast few months but in that time I feel I’ve learnt enough to have an opinion on the university way.
I should first mention that I’ve actually really enjoyed my first year and I’m looking forward to coming back again this September. There are still a few ‘issues’ however, here’s my take.
The first set of problems, are, from what I can see, unique to the Aberdeen Computer Science department, however somewhat limited experience makes that rather hard to say with any degree of certainty.
Discipline Breadth there’s a system that requires us to choose subjects that are from other departments. This, as an option, would be quite a good idea, giving people the choice to learn a little broader should perhaps be encouraged, but never compulsory. Compulsory was what school was for. In making it to university, and to study Computer Science, one hopes that you’ll be able to spend all your time doing your chosen subject, something you’d hopefully enjoy. You should, but it’s not the case at Aberdeen. Here there are only five first year Computer Science courses, five out of 8 'slots’. This means you’ve got to take on extra courses that often aren’t relevant or enjoyable to you. Not a very good system, if you’ve chosen Computer Science, you should be able to spend your time in pursuit of that.
Course Coordination There were a few poorly ran courses this year, out of the five that is. This involved things like: irrelevant and expensive textbooks; tutorials with no answers or means of getting them; a lack of past papers; impossibly 'full’ lectures (90 sides); unclear assignments and so on. Most of these issues, but not all, upon inspection, seemed to be related to the constantly refreshed courses. There’s a definite trend in the department to completely revamp courses - all the time. In theory this sounds like a good idea, fresh content and all that, however the reality is the list above - complete absence of valid learning material and student support. It leads to a rather unsatisfactory 'test subject’ feeling.
While some problems point to issues at a university level I think there are, more fundamental, issues with the way the subject is taught in general.
Let’s face it, Computer Science is programming. Knowledge of other areas (Networking, HCI…) are best learnt when explored with a programming project in mind and behind, at least that’s how I see it. Given the chance, I’d focus the courses more on current technologies, with one or two that focused on cross language skills. For example, one course on Applied Math that takes time to cover implementations in many languages. Another on design patterns such as the MVC, again with an effort to link it to real world technologies. This would leave the rest open to current trends such as a course in RoR or iOS development.
The common argument against such an approach is: the knowledge gained from looking at particular technologies depreciates very quickly. My response would be: most of the things you could cover will remain valid past the end of your degree. All you need is skills that get you into the workplace after university, from then on it’s a case of learning on the job and keeping up to date. Also,_ it’s not like new languages and patterns are totally alien_, they need to be attractive candidates for adoption where possible. This means there’s often strong similarities between languages. University should expose you to as many different techniques and languages as possible to broaden your horizons and help you choose areas of interest and further study.
The highest level problems are with the way university education works as a whole.
I’ve had one very poorly ran course this last session, the teaching was terrible and I turned to on-line resources at Khan Academy, cgcc and UCBerkley. These videos and tutorials really got me thinking. Do we need universities to exist as physical institutions? Do degrees need to be so lengthy and inflexible?
I don’t think they do. As long as there’s funding to make *one *good, English, Computer Science, course then that’s all we need. Don’t try and get researchers to teach if they can’t, have natural teachers doing the teaching! About feedback and assessments, programs are easy to mark automatically and if people do the courses as alongside work then employers can see the results. On-line testing is getting better too.
Putting these measures in place would greatly reduce the cost of the whole ordeal. Not to mention how much more accommodating the system would be for different learners with different paces.
Communities like Coursera, Piazza and Khan Academy are all well on their way to achieving this. Given more funding for a greater student base these places have the power to, not only change the way we teach and learn the subject but the industry as a whole, and definitely for the better.
In conclusion, Computer Science is an exciting area to be (trying to) get involved in, however it’s being let down by an outdated teaching model.