Penguin
Blame: WaikatoCourseDescriptions
EditPageHistoryDiffInfoLikePages
Annotated edit history of WaikatoCourseDescriptions version 44, including all changes. View license author blame.
Rev Author # Line
39 AristotlePagaltzis 1 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.
37 MarcelVanDeSteeg 2
3 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.
4
5
6 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.
7
39 AristotlePagaltzis 8 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.
37 MarcelVanDeSteeg 9
10
11 !!Level 1 (First Year) Papers
12
13 ; 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.
14 ; 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.
15 ; 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.
39 AristotlePagaltzis 16 ; 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''
41 AristotlePagaltzis 17 ; 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 MicrosoftExcel packages.)
37 MarcelVanDeSteeg 18 ; ENEL111 __Introduction to Electronics__ : Good paper, was a year long paper but now compressed into A semester.
19
20 !!Level 2 (Second Year) Papers
21
39 AristotlePagaltzis 22 ; COMP201Y __Computer Systems__ : an introduction to assesmbly language, taught 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. %%% %%% ''[Geek]s 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
37 MarcelVanDeSteeg 23 ; 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.
24 ; 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])
25 ; 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)
26 ; 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.
27 ; 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.
28 ; 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.''
29 ; 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.
41 AristotlePagaltzis 30 ; COMP234 __Hotuku M???ori__ : Hmmyeswell.
37 MarcelVanDeSteeg 31 ; COMP258 __Engineering Usable Systems__ : A follow on from 153. More VB practical programming.
43 IanMcDonald 32 ; ENEL211 __Digital Technology - Theory and Design__ : Good paper. Digital electronics. Quite easy and more enjoyable for a CS student than 205.
37 MarcelVanDeSteeg 33
34
35 !!Level 3 (Third Year) Papers
36
37 ; COMP301 __Systems Programming__ : Not offered in 2002 due to lack of lecturers. Low level paper.
39 AristotlePagaltzis 38 ; 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.
37 MarcelVanDeSteeg 39 ; 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.
40 ; 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].
41 ; 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.
42 ; 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].%%%
43 ''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''%%%
44 ''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''%%%
45 ''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''
39 AristotlePagaltzis 46 ; 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 [NeuralNetwork]s briefly in the last two weeks. If you can handle statistics then you'll probably really enjoy this course.
37 MarcelVanDeSteeg 47 ; 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.
48 ; 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.
49 ; 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.
50 ''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.''
51 ; 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) %%%
52 ''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''
53
54
55 !!Level 4 (Fourth Year) Papers
56
57 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
58 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
59 cases.
60
61 That aside, your fourth year is probably going to be your best year in CS. Everything starts making sense, and you begin to understand
62 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.
63
64 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.
44 ShaneHowearth 65
66 It should be pointed out there are 4 ways to get access to the 4/500 level papers, B.Sc.(Hons), P.G.Dip, BCMS/BCMS(Hons), and first year of M.Sc.
37 MarcelVanDeSteeg 67
68 ; COMP401 ??? : ???
69 ; 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.
70 ; 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.
71 ; COMP412 __Advanced Communications and Network Systems__ : 4th year version of 312, goes into more depth on topics as chosen mainly by the class
72
39 AristotlePagaltzis 73 ; 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.
37 MarcelVanDeSteeg 74 ; 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.
75 ; 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''
76 ; 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.
42 AristotlePagaltzis 77 ; COMP434 - __Software Design__ : Split into two parts. Covers writing reusable software components. In 2003 the first half involved developing [Java]Beans 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!)
37 MarcelVanDeSteeg 78
79 !!Higher level courses
80
40 StuartYeates 81 Above and beyond these courses are the [MSc] and [PhD], which are viewed by the university as single course degrees. For [MSc] and [PhD] courses, three things matter:
82 # Your supervisor(s).
83 # Your research group. Being part of a research group is a distinct advanage, it gives you a peer group to talk things over with, it creates opportunities to learn from others mistakes and it compensates when your supervisor is out of the country.
84 # Your topic. You're going to be studying this for the next X years. Find one that you think is still going to be interesting in that long, preferable not a current "bright light" whose shine may have faded in a few years.
85
43 IanMcDonald 86 Most current [MSc] and [PhD] students have plenty of advice for those just starting out, feel free to ask them (and feel free to ignore it, we all did).
40 StuartYeates 87
37 MarcelVanDeSteeg 88
89 ----
38 AlastairPorter 90 Any other CS students feel free to add descriptions / experiences AddToMe

PHP Warning

lib/blame.php:177: Warning: Invalid argument supplied for foreach()