Login | Register
Enrol now for our new online tutoring program. Learn from the best tutors. Get amazing results. Learn more.

Welcome, Guest. Please login or register.

September 23, 2021, 12:01:52 am

Author Topic: UNSW Course Reviews  (Read 149652 times)  Share 

0 Members and 3 Guests are viewing this topic.


  • Adventurer
  • *
  • Posts: 11
  • Respect: +16
Re: UNSW Course Reviews
« Reply #270 on: September 02, 2021, 12:39:51 pm »
Subject Code/Name: COMP3141 - Software System Design and Implementation

Contact Hours: Just 2x 2 hour lectures, but there is a split:
- One of them is a content lecture which introduces the course content for the week
- The other is a practice lecture, which covers the solution to the previous weekís programming exercise as well as reinforcing the material from the content lecture, usually with a focus on working through actual problems

Assumed Knowledge: Either COMP1927 or COMP2521.

- 2x programming assignments, worth 20% of your mark (10% each)
- 8x online quizzes, worth 10% of your mark (be warned, these are very difficult!)
- 6x weekly programming exercises, worth 20% of your final mark
- Final exam, worth 50% of your mark, with a hurdle of 40/100 in the exam to pass overall

Lecture Recordings? Yes, recorded and uploaded onto YouTube.

Notes/Materials Available: Not much, but what you do get is nice: a set of good lecture slides and some tutorial questions.

Textbook: No textbook required, but the following are recommended as Haskell references by the course if you're looking for something:
- Thinking Functionally with Haskell, by Richard Bird
- Haskell Programming From First Principles by Christopher Allen and Julie Moronuki
- Programming in Haskell by Graham Hutton
- Real World Haskell by Bryan O'Sullivan, Don Stewart, and John Goerzen
- Learn You a Haskell for Great Good! by Miran Lipovača

Additionally, the course content draws from Data Refinement: Model-Oriented Proof Methods and their Comparison by Kai Engelhardt and W.P. de Roever, but itís said that this text is not suited for undergraduates.

Lecturer(s): Dr. Christine Rizkallah and Curtis Millar (who have both now left UNSW)

Year & Trimester of completion: 21T2

Difficulty: 4.5/5 without functional programming experience, 3/5 if youíve done some before

Overall Rating: 5/5

Your Mark/Grade: 93 HD

Most people treat this as ďthe Haskell courseĒ because there is a fair bit of Haskell programming, but thatís not its stated intention. Rather, it provides a perspective on how we can use ideas inspired by mathematical proof and reasoning to construct safe software: Haskell just so happens to be a good language for applying this theory. The true value of this course is in the appreciation it gives you for safety and reasoning about programs, which is a point that some people (typically the more applications-focused crowd, though I mean this in the nicest way) can miss, because a lot of the stuff in this course can come across as abstract nonsense. It really does force you to examine how you previously approached correctness and take a more principled approach to designing software, not only during the development process but also the testing process. On its own this is a very useful perspective to have, and makes this worthy of consideration as an elective for CS students (worth noting this is core for Software Engineering students, and I definitely agree with that).

If you havenít done functional programming before, this course will probably make you feel like youíre relearning programming, which is entirely normal. You donít have to write very much code at all in this course in terms of the number of lines needed to finish most tasks, but the tradeoff is that youíll be thinking much harder about each line than youíve probably ever done up until this point. To supplement all of this programming, there is some theory regarding types and the connection between programs and proofs, which is probably the coolest bit of the whole course (the surprise is ruined if youíve seen it before as I did though). Structural induction and natural deduction are also taught as it relates to that theory. While this is a bit of maths, donít worry - very few courses are necessary nor sufficient to have already covered it going into the course, so it gets taught from scratch.

Overall, quite a fun course if a bit tough at times. This is a must do if youíre interested in functional programming, since this course offers the most substantial introduction to the area at UNSW. If you like this course, consider following it up with COMP3161, which offers an analysis of programming language design (and particularly the design of functional programming languages).


  • ATAR Notes Lecturer
  • Honorary Moderator
  • Great Wonder of ATAR Notes
  • *******
  • Posts: 8789
  • "All models are wrong, but some are useful."
  • Respect: +2563
Re: UNSW Course Reviews
« Reply #271 on: September 02, 2021, 04:43:32 pm »
Subject Code/Name: MATH5845 - Time Series

Contact Hours: 2 x 2hr lecture (no tutorials; some 'tute' questions covered in the lecture)

Assumed Knowledge: None explicitly stated, but just as with all level 3/5 statistics courses you should have foundation up to second year statistics (MATH2801/2901 level). Knowledge of linear models (MATH2831/2931) is highly recommended for one topic, but it only matters for that topic, and you only need to understand the linear model itself (don't worry about F-tests etc). MATH3801/3901/5901 not required,

- 1 x 15% Assignment
- 1 x 20% Assignment
- 5% Class participation
- 60% Final exam

Lecture Recordings? Yes

Notes/Materials Available: Detailed lecture notes and lecture scribbles are given. Excerpts from textbooks given.

- Shumway, R.H. and Stoffer, D.S. (2016) Time Series Analysis and Its Applications with R Examples, 4th edition, Springer-Verlag, New
- P. J. Brockwell & R. A. Davis (2002), Introduction to Time Series and Forecasting, Second Edition, Springer-Verlag, New York.
They're both good reads, but not needed.

Lecturer(s): Dr. Zdravko Botev

Year & Trimester of completion: 21 T2

Difficulty: 4.5/5

Overall Rating: 4.5/5

Your Mark/Grade: 93 96 HD

This is one of many postgraduate statistics courses. Recently, it has remained on a yearly offering.

Time series branches off from stochastic process. It is the analysis of data that is indexed by a time variable. Time is assumed discrete in time series, because in practice although the phenomena may be continuous, you only collect it at discrete time intervals. In practice your time series data can be quite long (collect data over lots of timestamps), but you only study the data set itself. There is no comparison between two time series in this course.

The first thing to mention is that this is a Zdravko course. He teaches you the theory. It's more appropriate to think of this course (at least presently) as Theory of Time Series. You'll be introduced autocovariance/autocorrelation, ARMA, spectral densities, etc. all from a mathematical standpoint. Of course, there are a couple questions that make you apply the theory to solving real problems/on real data sets, e.g. maximum likelihood of the ARMA parameters. For someone like me, this is exactly what I want. Yet somebody who only cares about applications may not be so interested.

The first half of the course introduces the mathematical background (including autocorrelation; quite surprisingly huge) needed for time series algorithm. The second half focuses on time series concepts, and develops the algorithms that typically get implemented for time series analysis.

Class participation is free marks - just contribute once (question OR answer) and you walk away with 5%. Quizzes are mostly free marks as well. Basically, the question bank gets released, and one question gets randomly selected for which you have to submit a response for. We had at least 1 week to prepare our answer for both the quizzes. The difficulty really comes from the final exam in my opinion (up till then, difficulty is something like 2.5/5).

In short, I just felt there was no time to answer everything. It was nice to know that out of the 4 questions given, we only needed to answer 3 such questions. Somehow, one of the three I picked was way too long. I remember submitting the exam with 26 or so seconds to spare; zero time to actually check my answers.

In terms of the coding, Zdravko supports at least Matlab, R, and Python. Choose any one of the three, and roll with it. (However, his live coding is in Matlab, because that's what he's more comfortable with.)

Despite being a theoretical course though, I would at least ask many postgrad students "why would you skip time series"? It's still pretty fundamental to know, in my opinion, as a working statistician. (Time series is also used in ML apparently, but I haven't investigated how.)
« Last Edit: September 11, 2021, 02:02:07 pm by RuiAce »


  • Adventurer
  • *
  • Posts: 11
  • Respect: +16
Re: UNSW Course Reviews
« Reply #272 on: September 02, 2021, 05:00:36 pm »
I originally wasnít going to post this review since another poster gave an excellent summary, but I have been persuaded...

Subject Code/Name: MATH2901 - Higher Theory of Statistics

Contact Hours: 2x 2 hour lectures, 1x 1 hour tutorial

Assumed Knowledge: Formally, only one of MATH1231, MATH1241, MATH1251 or DPST1014 is required.

However, I would probably recommend you to have done MATH2011 or MATH2111 as well, not just because some of the content from it appears, but also because youíll benefit from the mathematical maturity.

- Quiz, worth 5%
- Midterm quiz, worth 20%
- Written assignment, worth 15%
- Final exam, worth 60%

Lecture Recordings? Yes, on Blackboard Collaborate.

Notes/Materials Available: Nothing too impressive here: some mediocre lecture slides that had typos in them here and there, some tutorial problems with solutions and some notes on how to use R (which were actually very good).

Thereís a very comprehensive set of course notes floating around from a previous lecturer of the same quality as the R notes, although you had to find these on your own as they werenít provided.

Textbook: Not required, but Introduction to Mathematical Statistics by Robert Hogg may be helpful.

Lecturer(s): Dr. Donna Mary Salopek

Year & Trimester of completion: 21T2

Difficulty: 4/5

Overall Rating: 0.5/5 - harsh, but unfortunately deserved in my eyes

Your Mark/Grade: 84 DN, which is the most poetic end to this course I could've imagined

Whether you do this course or not, learning some proper statistics beyond what is taught in high school or 1st year maths is always really good knowledge to have. This course is inherently a more applications-focused one, but the first half of this course (probability theory) should appeal to you if youíre more into pure maths as I am. For a variety of reasons, this was the most difficult of the level 2 core maths courses so far for me. You really have to be on top of your game specifically when it comes to algebraic manipulations and calculus, as a lot of the side calculations that aren't even in the realm of probability or statistics anymore are sometimes very nontrivial. Thereís also a lack of any real intuition for the inference half of the course, so prepare for a lot of rote and having to take a bunch of things on faith.

What absolutely tanks the rating of this course is the teaching and organisation side, which was fairly disappointing this term compared to what Iíve heard about previous offerings. I truly could rant without end: the midterm, the assignment, the exam, basically anything. You name it, there was probably something wrong with it. A lot of what I have to say is just going to be straight shade though, so I wonít comment on specifics (I also donít want to rehash the points mentioned by a previous review from this term). That should give you enough of an indication as to my thoughts, and I can assure you that this isnít just a personal thing - the disappointment seems universal amongst those who did the course this term.

It borders on cliche at this point that so many statistics courses at educational institutions around the world end up being not great, and cases like this certainly do not help with that stereotype (at least as far as UNSW is concerned). I already wasnít planning to do any further statistics courses after this, but I could certainly see how this would leave a sour taste in the mouths of those who are on the fence about their major and potentially turn them away, which is always a shame. If Donna is going to take this course again, she definitely has much room for improvement, and I really hope she reads the constructive feedback she has been given this term and tries to take some of it on board.


  • Fresh Poster
  • *
  • Posts: 1
  • Respect: 0
Re: UNSW Course Reviews
« Reply #273 on: September 08, 2021, 11:07:30 am »
Subject Code/Name: COMP6771 - Advanced C++

Contact Hours:  2 x 2h Lectures (delivered over Youtube Live), 1 x 1h Tutorial (delivered over Zoom)

Assumed Knowledge: Formally, COMP2511 (only basic OOP concepts such as inheritance and polymorphism are drawn from this course)

- Assignment 1: STL containers/algorithms (15%)
- Assignment 2: Operator overloading, OOP (25%)
- Assignment 3: Templates and iterators (30%)
- Final exam: 3 hours online, 2 programming exercises (30%)

Lecture Recordings?  Yes, all lectures are archived on Hayden's youtube channel (you can watch all of them here, and also includes his other courses, which is great). Hayden's tutorial is also recorded each week.

Notes/Materials Available:  Slides to accompany the lectures are given, however they are sometimes pretty barebones, and often had errors or had not been updated since the previous offering, which is slightly annoying if you rather learn by reading notes rather than watching lectures, like me.

Textbook: Bjarne Stroustrup's textbook is listed as "If we had to point you to a single resource", but don't bother, the recordings/slides along with cppreference.com are more than enough.

Lecturer(s): Hayden Smith (with guest lecturers in week 10 from Optiver)

Year & Trimester of completion: 21T2

Difficulty: 2.5/5

Overall Rating:  4.5/5

Your Mark/Grade: 96 HD

Despite the big self learning component of this course (which is basically wading through cppreference.com and S/O), this course has the best content out of any course I have learned so far. Hayden is a really great lecturer. One of the comments I've seen a few times about him is that "he doesn't seem very knowledgeable since he googles stuff in the lectures". I actually think this aspect of his C++ teaching is good - most of the time in this course you will spend navigating online C++ library specifications etc, and seeing him use these websites and picking up on the things he looks for when seeking an answer will become very relatable as students complete the assignments. The forum support (edstem) is excellent, shoutout to one of the tutors Nathaniel.

I really like the way the language is presented in the lectures, and students can immediately see the advantages of C++ over other languages they will have previously learned in CS at UNSW such as Java and C. One thing I wasn't aware of initially was that the course is more of a "C++ design course", in other words how to write C++ in a "correct" way (as there are many ways to do things in this language). The assignments are tailored towards this idea - rather than getting students to build cool applications in C++, the assignments are a means to reinforce good C++ practices. This did slightly get on my nerves a bit with the assignment marking though - different tutors marked assignments differently, and it seemed there wasn't much of a consistent marking criteria in some places, which became very obvious as I talked to other friends taking the course.

The assessment structure, being heavily assignment loaded and only a 30% exam, is a big plus IMO, and I think more CS courses should move to this model (if they haven't already). This is pretty rough however if you have a heavy workload term with other assignment loaded courses. The first question of the exam doesn't really test the learning done throughout the course, which was mainly from learning about and leveraging C++ features to complete the assignments. Instead it was an algorithmic type question that students could have completed before ever taking the course using C knowledge. The second question specification was a bit poor, many important details were left in a footer at the bottom, which took me a while to read as I was trying to decipher the overall question (thankfully these were only small parts in terms of marks). Despite this, I personally I thought the exam was reasonable, and could have done better if I was well slept and/or better prepared, however it was tight, and many students did not finish (or get close to finishing).
« Last Edit: September 08, 2021, 11:15:31 am by cherloire »