Penguin
Diff: WaikatoCourseDescriptions
EditPageHistoryDiffInfoLikePages

Differences between version 37 and predecessor to the previous major change of WaikatoCourseDescriptions.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 37 Last edited on Saturday, September 27, 2003 4:32:10 pm by MarcelVanDeSteeg Revert
Older page: version 33 Last edited on Wednesday, August 13, 2003 9:38:12 am by PhilMurray Revert
@@ -1,58 +1,59 @@
-Note that the following are students perspectives on these courses, and as such may be heavily biased, disillusioned, or even libelous. 
+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. 
+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 taught 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. 
+; 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 taught 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 [ComputerScience] 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. (Second opinion: this stuff is the closest you get to computer science (rather than programming) in first year. Learn this stuff the easy way or learn it later the hard way.)  
-; COMP153 __Practical Programming__ : Visual Basic programming for idiots. People who can't handle 103/104 do this paper, and continue onto 258. (Second opinion: great for people doing computer science so they can put together fancy Excel packages) 
+; 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. (Second opinion: this stuff is the closest you get to computer science (rather than [ programming] ) in first year. Learn this stuff the easy way or learn it later the hard way.)%%%  
+''Overall lecture attendance was low (10 out of 150+ students per lecture!). Those that did attend fell asleep, and even the cameraman who was filming the lecturer fell asleep at some stage! Hopefully this paper has improved in recent years.'' -- MarcelVanDeSteeg%%%  
+; COMP153 __Practical Programming__ : [VisualBasic] programming for idiots. People who can't handle 103/104 do this paper, and continue onto 258. (Second opinion: great for people doing computer science so they can put together fancy [ Excel] packages) 
 ; 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 graphics & multimedia wonder why they have to do this. Second best course you'll do behind 317 if you actually like computers.  
- 
+; 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 graphics & multimedia wonder why they have to do this. Second best course you'll do behind 317 if you actually like computers.%%%  
+''[Geeks] love this paper, the other students hate it. If you've just done COMP103/104 then you might be in for a bit of a shock ;^)'' -- MarcelVanDeSteeg%%%  
 ; 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 course about Databases and VisualBasic. While this course focuses on databases and SQL it relied too much on your VisualBasic programming for it's assesment. Unfortunately, this course presents MS-SQL as the standard and fails to present any alternatives. 2001 was a bad year for this course (bad organization, theoretically impossible exam questions), it's probably changed since. (Second opinion: mainly obvious if you can program and have a sound understand of set theory )  
-; 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) 
+; COMP219 __Database Practise and Experience__ : A course about Databases and VisualBasic. While this course focuses on databases and [ SQL] it relied too much on your VisualBasic programming for it's assesment. Unfortunately, this course presents MS-SQL as the standard and fails to present any alternatives. 2001 was a bad year for this course (bad organization, theoretically impossible exam questions), it's probably changed since. (Second opinion: mainly obvious if you can program and have a sound understand of [SetTheory] )  
+; 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. 
+; 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. Note that there is no pre-req. for this paper. If you can handle COMP123 then you can do this paper .  
+; 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 content in COMP333 in 2003.''  
+; COMP240 __Mathematical Foundations of ComputerScience __ : 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. Covers lots of fundamental algorithms and math that you'll need umm...somewhere. Pathfinding, fast fourier transforms, oh yeah, all the good stuff
 ; 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]. 
+; 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. In 2002/2003 this papers contents consisted mostly consisted of constructing a 3D environment in [WRL]/[VRML] and developing a multimedia slideshow/presentation using [Macromedia] software .  
+; 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''%%% 
+''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 piece 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'' 
+''True, what I was really meaning was that in my opinion small pieces 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) 
+; 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) %%%  
+''If you're going to do 333 I'd advise reading up about [XHTML]/[XML]/XFORMS/[XSLT] then not going to the lectures. What I remember of the course was doing a lot of schemas and having to redo them about 4 times (not because I did it badly but because the next assignment was "make it better"), then doing an exam which involved no code what so ever just theory like "Justify the use of XForms rather than normal html 'forms'" and "Explain the nature and purpose of comments and annotations which should be written as part of an xml schema" ... --KarlBriscoe''  
  
  
 !!Level 4 (Fourth Year) Papers 
  
@@ -65,14 +66,21 @@
  
 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. 
+; COMP404 __Advanced Graphics and Multimedia__ : The first half solely focuses on the fundamentals (and mathematics - ugh) of computer graphics. Covers all the fundamental algorithms in detail. The second half focuses on digital image processing, and relates more to optical character recognition etc. Surprisingly, very much a programmers paper. Lots of nifty [C]/[C++] coding to do. Useful paper if you ever want to write your own implementation of OpenGL.  
+ ; COMP410 __Programming Languages and [Compiler]s __ : 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. 
+; COMP416 __Topics in [ArtificialIntelligence] __ : 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'' 
+; COMP424 - __Topics in Software Engineering__ : Formal methods paper. Z, Z and more Z. Read through 'The way of Z' by jacky and you'll know exactly what to expect in this paper. Essential if you plan to work on very large or mission critical projects.  
+; COMP434 - __Software Design__ : Split into two parts. Covers writing reusable software components. In 2003 the first half involved developing [JavaBeans] that interacted with the [Weka] project. The second half is an introduction to Microsofts [COM] model and writing components using the [VisualStudio] [IDE]. (Yay, VisualBasic programming in 4th year - not!)  
+  
+!!Higher level courses  
  
+Above and beyond these courses are the [MSc] and [PhD], which are viewed by the university as single course degrees.  
  
  
-Any other CS students feel free to add descriptions / experiences 
+----  
+ Any other CS students feel free to add descriptions / experiences ADDToMe