Thursday, August 30, 2007

Computer Science Honours at UCT: Part 1

Today the 3rd years were given some presentations and the likes to try convince them into doing Computer Science honours next year. I was quite surprised to year the low number of only 68 3rd years there are this year, which can be compared to our number last year of about 110. To help make the decision easier for some, I'll start reviewing the modules we had on offer this year. These are only the first few - more to come later.

Research Methods (RM):

Combined with PCU (more later), RM is the only compulsory module for CS honours. In some ways I was unfortunate to have missed most of the lectures for this course (not by choice). Honours is the first year in which research is introduced and this course covers the basic research techniques. This year we were lectured by Edwin, however there appears to be a rotation strategy with this course. Of the lectures I did attend I picked up on some useful content. Our project proposals and literature review formed the mark for this module.

Professional Communication Unit (PCU):

Many people complain about PCU when they are forced to do it in third year. Some also did it in other courses. However, from the few lectures I attended (again, I missed most of them) I actually enjoyed the course. It was nothing at all like what we did in third year. We had several group discussions about matters such as formal meetings and many other things. There were fun group exercises which made the stretch of 4-5 consecutive lectures bearable.

An oral presentation done in pairs and an essay were the two assignments for the module. For the presentation you are recorded and have to watch all the recordings as a group. You get a dry run for which Terri really picks on everyone, but the comments are constructive and useful for the real presentation a week later. If you do NVP (see later) you don't have to do the essay as you do a business report for NVP which is then counted towards PCU. I did NVP and so never did the PCU essay.

New Venture Planning (NVP):

NVP is all about starting a business. The end goal is to produce a business plan in groups of four and give a presentation on the business. That's the assignment, and there is no exam. The lectures follow a discussion format and each one covers a different aspect of businesses from coming up with ideas to financial statements. It can be interesting if you are considering ever starting your own company, however, given the choice again I wouldn't take it.

The business plan is roughly 30 pages and you build on it throughout the course. Jonathan, the lecturer, gives some good feedback on the drafts. To get an idea of what it's like, you can see my group's business plan here. Warning: the idea we (I) knew wouldn't work all along, but we Jonathan liked the idea and we convinced him it would work! As you might have guessed, he is not a Computer Scientist in any way.

IFIP Summer School:

This might not be offered next year, but if it is it's very worthwhile attending. You go to Gordon's Bay for a week of talks by nine speakers covering a wide diversity of topics. Interesting topics this year included Stochastic Pi-Calculus (biological programming language, which while sounds scary was actually very interesting) and Pattern Recognition and Machine Learning (by Christopher Bishop - the lead researcher in the field!).

The assignment for this module was scrapped since it was as insane amount of work. The assignment (and exam) was set by University of Pretoria and there was obviously a misunderstanding about the workload. The exam was therefore the graded work for this module, but it was bad enough. It was a ten hour take-home exam in which we had to writeup in a very hand-wavy manner on three of the nine topics. The exam was really silly in my opinion and it spoilt the wonderful talks. I would strongly recommend attending, however without taking it for credit, i.e. no assignment/exam.

Advanced Computer Systems (ACS):

Don't let the name confuse you. This module covers advanced networking topics such as wireless networks and mesh networks. It's lectured by Kritzinger - I'll let you ponder that for yourself. Last year there was only one student that took the module, however this year we started out as nine. The first half of lectures covered basic probability theory and Markov theory. Kritzinger isn't very good on lecturing the basic statistics and so I would be cautious about taking the module if you don't have any stats background. If you enjoyed his third year course, however, you might want to consider taking it.

I only attended the lectures without taking it for credit, so didn't do the assignment/exam. The assignment was to take a research topic in networking such as ad hock networks and write a paper on it. The exam was a 15 minute oral exam which was apparently very easy.

Computer Graphics for Gaming (CGG):

An enjoyable course on introductory computer graphics. This course is (has) been consumed by the new gaming stream now offered at UCT. Since it will no longer be offered as an honours module from next year I feel it's pointless discussing further. However, I'd like to warn those going into second year that you will not be able to do any form of graphics if you don't take the gaming stream. And the advanced graphics module contains some very interesting stuff, especially if you're into your maths.

Network and Internetwork Security (NIS):

NIS covers some interesting topics in cryptography. However, I find it goes too deep into the protocols and not enough into the details of the actual cryptographic methods. It's a very high level overview of security in its current form, but a fair amount of the content should already be common knowledge.

The assignment is made out to sound very complex, however most people ended up doing very simple watered-down versions of one of the protocols. To give you an example our group covered DNS security and we easily got away with implementing what amounted to a dumb DNS server with a table mapping full domain names to an IP address. Of course security was added, so some of the important stuff was covered, but we weren't required to produce the hierarchy that's typical of DNS.

I would be 50-50 as to whether I'd choose this module given the choice again.

That should get you thinking if you're considering honours in Computer Science next year. Reviews of the remaining modules will come in later posts. The really interesting ones are still to come, so don't make your decision based on this post alone!

Part 2


  1. A comment on NIS, as I set the pracs (for the last 4 years). It has been the most popular course in the past 5 years, and I think many people start to take it because they want to be a hacker. The course is not about that.

    The problem with the pracs, and for that matter, the depth of covering topics, is simple: there is not enough time. This year's prac was easier than last year, when there were complaints that it was too difficult and too long. Before the new hons system, the pracs were a lot more complicated, and a lot more detailed.

    Prof. Hutchison was interested in doing a new module covering select topics in more depth, but as I understand it, there was not enough interest.

    Also, a comment on ACS, where I was the second examiner. It is a very useful course if you are interested in design of computer systems. And yes, knowing a bit of stats helps. And the exam is easy for a simple reason: the goal is to know whether you know how to solve the problems. Getting the actual answer is not the issue.

  2. I took NIS assuming we'd learn more about the algorithms. We never covered them at all really. That's why I'm so glad they're offering a cryptography course in the Maths department which I'm taking and it's been excellent. Perhaps in the future this could be combined with the advanced module you refer to? Half Maths, half CS. As for the hacker comment, I at least did not consider that.

    I agree with you on the lack of time and I've made the comment several times that I feel there should be the option to extend certain modules. 16 lectures is insufficient for most topics. I'm not sure how/if such a change would work, but I'd support it.

    Bear in mind that I'm writing these reviews as an overview to help future honours students select modules and therefore am leaving out details such as possible reasons for lack of depth, possible improvements of the modules, etc. Although with that said comments such as yours are welcome. At least the input isn't coming from me only.

  3. I can't believe that, the Flight Simulator it is from Microsoft, I think this two company will never work together. Also the Microsoft have got satellite picture, they can do alone.

  4. When I did Hons, the modules were 24 lectures, and then we could go into more detail. The problem is, cryptographic algorithms are really complex, and analysing and learning the protocols (from scratch) is not fun. It is better to learn how to use it rather than the actual nuts and bolts. IMO, the nuts and bolts require a lot of maths, and rightfully belong in a maths course :P

  5. I think they definitely have to consider going back to 24 lectures. Many modules get close to the crunch content, but then have to skim over it. Some modules could also be combined into one big module, since there are many that repeat sections previously covered in other modules simply because a small number in the class haven't done that other module.

    I can see why you say that about the cryptographic algorithms, but I still feel that some knowledge of what goes on deep down is required. The course is offered in a manner where you have to accept so much as being true without proof that you can easily assume the wrong things to be true. That's how I find it anyway.