Penguin
Note: You are viewing an old revision of this page. View the current version.

Note that the following are students perspectives on these courses, and as such may be heavily biased, disillusioned, or even libelous. Neither WLUG nor the site maintainers accept any responsibility for the accuracy, relevance or legal correctness of any of these comments, as with the rest of the site.

See http://www.scms.waikato.ac.nz for an up-to-date official course description for all courses under the School of Computing and Mathematical Sciences. See WaikatoCourseNumbers for a description on how to read these codes.

Any references to lecturers that have taught a course in a particular year should be taken with a grain of salt, in that they might not be teaching the course the next year. Don't, for example, take COMP317 next year because you like Tony Smith, and Tony Smith taught it in 2002, and someone thought he did a great job of it. Do take COMP317 because its one of the best courses you can do in 3rd year, but be prepared for a different lecturer, who may perform better or worse than some people think Tony Smith did. Kinda obvious really.

As another, somewhat related, note, the comments relating to a particular course may be in reference to a particular year. The notes regarding COMP314, for example, relate to that particular year only. To my knowledge, most years Z has not been taught in that year. The rest of the stuff about drawing diagrams is correct, although I'd like to point out that real software is written this way.

Level 1 (First Year) Papers

COMP10{3A,4B}
The two compulsory introduction to programming courses. Taught using a mangled heap of C and C++. Many people believe this course should be tought in Java. Also has a concept side where CS topics such as logical operations, binary, basic sorting etc etc are introduced.
COMP123 The Computing Experience
Do not underestimate the workload of this first year bunny course. It is very popular with BA students. This is a good thing if you are a male computer science student.
COMP1{30A, 34B} Programming {1, 2}
Similar to COMP103/104 but the focus is on Software Enginering rather than computer science. The major difference is that these papers have a lightweight introduction to formal methods and refinement of specifications. This course is taken by people wanting a BE in software enginering and scholarship winners. The COMP130 code used to refer to the paper Special Topics in Programming which is no longer offered.
COMP140 Foundations of Computer Science
A lot of stuff that sounds cool, but isn't. 140 is compulsory. Most of the smartest people I know failed it. It is UNBELIEVABLY boring. If you can help it, don't go to any of the lectures, but go to all the tutorials.
COMP153 Practical Programming
Visual Basic programming for idiots. People who can't handle 103/104 do this paper, and continue onto 258.
ENEL111 Introduction to Electronics
Good paper, was a year long paper but now compressed into A semester.

Level 2 (Second Year) Papers

COMP201Y Computer Systems
an introduction to assesmbly language, tought using a full custom CPU and reference board. Used to use MIPS but was replaced to eliminate some nasties. Also covers basic compilation, OS principals, Memory Managment, Comms. Can be sat in 1st year by scholarship students. People doing bunny streams (graphics & multimedia) wonder why they have to do this. Second best course you'll do behind 317 if you actually like computers.
COMP20{8A,9B} Programming with Data Structures/Object Oriented Programming
These are the second year programming courses and carry-on from 103/104. You'll learn all sorts of disgusting things about pointers in 208, and see Java for the first time in 209.
COMP219 Database Practise and Experience
A crap course about databases with Visual Basic. This course should be scrapped straight away. It is unbelivably crap, and be thankful that Bob Barbour has left.
COMP222
Logic and Programming : This course (if it hasn't changed from 2002) comprises of two disjoint parts, they run at the same time, but don't appear to link up with each other at all. Part 1 is learning about logic, you spend your lectures listening to Edwin Hung's Philosopy with a bit of logic thrown in. Part 2 is prolog, during lectures I was able to observe the lecturer read out of the course book, and write some code fragments on the blackboard. Occasionally when you turn up for a lecture it is actually a test, so it pays to attend, or read your course outline. (Note: The prolog part has a new lecturer so this may all be crap)
COMP223 Information Discovery
This is a great course if you have better things to do than attend lectures. It has less workload than 123 and it would have to be impossible to fail this course unless you forget to turn up to the lab to collect your stamp every couple of weeks.
COMP224 Computer Graphic Design
This used to be a great course when Steve Franks was still teaching it. He is not teaching it anymore, but you might still learn something if you are interested in computer graphic design. At the very least you'll get a pretty portfolio out of it.
COMP233 Internet Applications
This course used to be 333 a couple of years ago. Now it's about PHP and MySQL and stuff. Sample exam question: "Write JavaScript code to pop up an ad window when you load the page." Seriously.

Note that this course is not COMP333, it was introduced I believe in order to move some material from COMP333 to second year and to introduce more concent in COMP333 in 2003.

COMP240 Mathematical Foundations of Computer Science
Once you've done 140 you'll know why you don't want to do 240. As the name says, take 140 and add maths.
COMP234 Hotuku Mãori
Hmmyeswell.
COMP258 Engineering Usable Systems
A follow on from 153. More VB practical programming.
ENEL211 __Digital Technology
Theory and Design__ : Good paper. Digital electronics. Quite easy and more enjoyable for a CS student than 205.

Level 3 (Third Year) Papers

COMP301 Systems Programming
Not offered in 2002 due to lack of lecturers. Low level paper.
COMP304 Graphics and Multimedia
Good for those who want to learn OpenGL, or it would be if they bothered teaching it. This paper is split between graphics and multimedia, about half and half as the title suggests. As such you learn a small amount about both and you don't really learn anything useful at all.
COMP311 Computer Systems Architecture
A good hardware-oriented paper made hard to stomach sometimes by a lack of enthusiasm by the lecturer. You get to design your own CPU layout etc and if you do 441 you actually get to build it.
COMP312 Communications and Systems Software
First true comms course. Covers signaling, encoding, LAN and WAN technologies, TCP/IP etc etc. Has in previous years been taught, arranged or tutored in part by JamieCurtis, MatthewLuckie and DanielLawson.
COMP313 Programming Languages
Introduces parsing theory and touches on a few different programming languages. Seems to change every year, but sections on syntax and semantics and common, followed by Prolog and some random functional language.
COMP314 Software Engineering Project
Do not underestimate the suck factor of this paper. You have to write a big program and draw lots of diagrams about it. Real software can't be built this way. You won't get as high a mark as you deserve either. Plus, you have to learn Z.

I think that the processes learnt in 314 (especially the use of UML, robustness/sequence diagrams etc.) are very useful for large software engineering projects. The problem with 314 is that you design a large peice of software and then have no time to to implement it (even in a prototypical form) the course is structured so that you can't start implementing your code until the last quarter of semester -- MattBrown
Saying that 314 is of use to large projects only is misleading. If you don't go through a software engineering process such as described in this course, you aren't actually engineering software. Chances are you're hacking it together :) --DanielLawson
True, what I was really meaning was that in my opinion small peices of software do not need to be engineered to the same level as large systems, hence the engineering techniques that we are using are not often useful for small projects. --MattBrown

COMP316 Artificial Intelligence Techiques and Applications
A really interesting sounding course. I enjoyed it for the first two or three weeks while we were focussing on search algorithms, however it soon degenerated in to statistics and I stopped going. Apparently they covered NaturalLanguageParsing and NeuralNetworks? briefly in the last two weeks. If you can handle statistics then you'll probably really enjoy this course.
COMP317 Design and Analysis of Algorithms
This is probably the most useful course for real world programming. Some consider the material boring, but if you've got your heart in the right place, this will be the best course you ever do. And Tony Smith is great.
COMP319 Database Systems
This course teaches you more than you ever need to know about databases, including the fact that they are incredibly boring. You might find the lecturer more difficult to understand than the course material at times.
COMP325 Human Computer Interaction
This course should be better than it is. The project in it is far too big and the course material could be a bit more interesting. Lots of people took it thinking it would be cool and were disappointed, though it was the first year the paper was offered.

The fact that it was the first year the paper was offered has a very large bearing on this. Dont be put off because of a bad first year.

COMP333 Communication Systems and Internet Management
This course is still running in 2003 although I notice that the course description hasn't changed from previous years, and as such it looks similar to COMP233 in content. Its generally a high-level networking course, focussing more on Management type issues so is quite popular with people who cant handle the real networking course, COMP312, or Management students (who arguably cant handle computer science in general)

Level 4 (Fourth Year) Papers

A lot of the 4th year papers were merged. eg, 410 and 413 merged, 401 and 411 merged, and so on. These changes apparently meant the department could break the courses up again into smaller, Module papers in 2003 but this hasn't happened. In its current state, it's had the effect of either watering down content as where you had two courses, now you only have one and so have to drop content; or else it's made the new courses a lot harder due to trying to fit in far more content / assessment than is reasonable. Or both, in some cases.

That aside, your fourth year is probably going to be your best year in CS. Everything starts making sense, and you begin to understand why you were made to do 140 and 240 as a new undergrad. You might not be thankful for this, but most CS students have problems expressing gratitude anyway.

4th year would be great if you could do it earlier. A lot of people tire of university by the end of 3rd year and unfortunately if you want to get a degree, then go out and work for a bit, then come back and do your 4th year, you can't really. You have to do a '5th year' because you are a graduate already. Very tricky.

COMP401 ???
???
COMP410 Programming Languages and Compilers
When I did it (in 2001) the goal was to write a compiler for a language you make up. A really fun course. Unfortunately it tends to clash with people doing 420. It doesn't seem to clash with people doing 420 any longer. It is broken up between programming languages and compilers now. You will at least have to write a compiler that produces basic assembly code and perhaps more. The programming languages bit of the course could be on any programming language, it was Haskell in 2002.
COMP412 Advanced Communications and Network Systems
4th year version of 312, goes into more depth on topics as chosen mainly by the class
COMP416 Topics in Artificial Intelligence
Not so much artificial intelligence as machine learning. This is the course where you just write algorithms for the Weka? framework every other week and test them against better algorithms.
COMP417 Text Storage and Retrieval
A great course if you are interested in compression and search engines. Taught by Ian Witten. Follows on from 317 but isn't quite as great.
COMP420 Report of an Investigation
4th year honours paper. A double weighted paper based 100% on an internal research project that takes 8 - 12 months. Normally the first true introduction to self motivated research and serious report writing for a CS student. If someone says "I'm doing my 420" then you nod a bit, and then ask them why they are wasting their time talking to you

Any other CS students feel free to add descriptions / experiences