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.

June 22, 2021, 05:59:15 am

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

0 Members and 1 Guest are viewing this topic.

anomalous

  • Adventurer
  • *
  • Posts: 9
  • Respect: +15
Re: UNSW Course Reviews
« Reply #255 on: May 20, 2021, 10:54:20 am »
+3
Subject Code/Name: COMP4141 - Theory of Computation

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

Assumed Knowledge: MATH1081, and either COMP1927 or COMP2521.

Be warned that the jump from something like 2521 to this is quite significant. If you wanted to be the most prepared, it would probably help if you did COMP3121/3821 beforehand, since you are at least introduced to the kind of problem solving you do in this course - make sure to pay attention to reductions in particular.

Assessment:
- 4x written assignments, worth 50% of your course mark in total (each equally weighed at 12.5%)
- final exam, worth the remaining 50% of your course mark

Lecture Recordings? Yes, screen and voice recorded. Tutorials, on the other hand, were actively discouraged from being recorded, so you either had to turn up to those or miss out.

Notes/Materials Available: There is a weekly set of tutorial questions, but solutions were very scarce - proper solutions to all were released < 24 hours before the exam started, but informal scratch solutions were given by one of the tutors a few days earlier at least.

Textbook: “Introduction to the Theory of Computation” by Sipser is the primary resource for this course and its analogues at other universities, and many references are made to it in lectures. If you really want more reading material though, then you can also try “Introduction to Automata Theory, Languages, and Computation” by Hopcroft, Motwani and Ullman. This book gets occasional references in lectures.

Lecturer(s): Dr. Paul Hunter

Year & Trimester of completion: 21T1

Difficulty: 5/5

Overall Rating: 3.5/5

Your Mark/Grade: 94 HD

Comments:
This is a really nice course, and it’s very interesting if you want to learn more about the fundamentals of how we define and analyse computation in its purest forms. The first half of the course answers the question “how can we model computation?” by looking at various types of languages and their corresponding machines. After these models have been sufficiently established, the second half of the course switches gears in order to answer the question “how can we properly analyse computation?”, by introducing formally the notion of resource-bounded computation and examining many complexity classes that generalise/extend the two most famous classes, P and NP. In some sense it’s a bit of a crime that people studying CS don’t have to do this course or anything similar: computation is the literal basis of the field, yet I think many would struggle to explain what exactly it means when asked. This is an essential for the theoretically-minded CSE student, or anyone who really likes mathematical COMP courses.

There is a price to pay for all of this fun, though - this is quite a hard course. There is no programming to speak of (although we did get to write Turing machines to be run on an online simulator, which is about as close as it gets), so if you struggle with some of the more CS-style math (think MATH1081), proving things and particularly at coming up with constructions, then it’s likely that you’re going to struggle to keep up with assessment tasks.

While this has been one of my favourites, what drags down my rating of the course in terms of the quality of experience is timing issues. Unfortunately, it seems like Paul was dealing with some personal issues on the side of lecturing this term, so there were quite a few instances of delays. A lot of the assignments were released a few days later than anticipated, we didn’t get a lot of the exam prep stuff promised (we ended up getting tutorial and assignment solutions, but none of the past assignment/exam questions) and we didn’t receive any marks back for the assignments until after the final exam. It’s a shame, because if he was a bit more prompt with things, or was at least up front that he was busy and couldn’t get them to us, this course would be an easy 5/5. I hope in future offerings he’s a bit more timely with releasing things.
« Last Edit: May 20, 2021, 11:51:09 am by anomalous »

anomalous

  • Adventurer
  • *
  • Posts: 9
  • Respect: +15
Re: UNSW Course Reviews
« Reply #256 on: May 20, 2021, 11:01:18 am »
+3
Subject Code/Name: COMP3131 - Programming Languages and Compilers

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

Assumed Knowledge: The only prerequisite is COMP2511. All of the assignments are written in Java, and some OOP design patterns (notably, the visitor pattern) are used.

Assessment:
- 5x programming assignments, each with a specific weighting and contributing to an assignment mark out of 100
- final exam, contributing to an exam mark out of 100
- 1x bonus programming assignment, worth up to 5 (unconditionally-weighted) course marks

Your overall mark is the harmonic mean of your assignment and exam mark, plus however many marks you got for the bonus assignment. This means that you need to be consistent: if you aced the assignments but only scored a 65 in the exam, your final mark will come out to 78 before bonuses, which is probably lower than you’d otherwise expect compared to the arithmetic mean used by most other courses.

Lecture Recordings? Yes, they were live over Teams.

Notes/Materials Available: Decent; you get lecture slides and an almost weekly set of tutorial questions during the term, but we also ended up getting 4 past papers (albeit from about 20 years ago; still relevant, mind you) to help with exam revision.

Textbook: “Compilers: Principles, Techniques and Tools” by Aho, Lam, Sethi and Ullman is recommended. Jingling often refers to it as the "purple dragon book" due to its cover.

Lecturer(s): Scientia Prof. Jingling Xue

Year & Trimester of completion: 21T1

Difficulty: 3/5

Overall Rating: 4/5

Your Mark/Grade: 100 HD

Comments:
This is a course primarily focused on the frontend components of a compiler, i.e. the phases from reading in a source file to producing the first iteration of executable code for the program.  If you’re going into it to learn about things like compiler optimisations, then you might want to reconsider. You’ll spend most of your time learning about parsing programs and extracting meaning from them, both theoretically (via some automata and language theory) and practically (via scanner generators and things of that sort). You cover the process of how a program is turned into an abstract syntax tree, and then how the AST is used in order to check that it is semantically correct and then to finally generate executable code for that program. There are components of compilers past this point, but like I said, they aren’t within the scope of this course (or any other undergraduate course at UNSW anymore, it seems).

The heart of this course is the set of 5 assignments, with (almost) each one following on from the last by getting you to build a phase of a compiler for a simple variant of C. This is all done in Java, so you need to be confident with extending a given Java codebase, although specific OOP knowledge isn’t really needed outside of the basics and being vaguely familiar with how the visitor pattern works. You should also be comfortable dealing with a codebase that is a bit of a mess design-wise, as the starter code is quite questionable in that regard. A considerable amount of the lecture time is dedicated to talking about these assignments too, so in addition to the per-assignment FAQs and other documentation, you’ve got everything you need really, and they shouldn’t be too rough. Having imperfect solutions to the previous parts won’t hamper you too much, since compiled reference solution files are given so that the supporting code can at least work for you in subsequent assignments. However, if you do want to try and fix your code beforehand, Jingling always has assignment marks out within a few hours of submission, which is really quite an impressive logistical feat, and also very good for the students.

As an aside: this course pairs quite well with COMP4141 for the first few weeks. Just be careful of the workload later on in the term.

Sdkkkt

  • Fresh Poster
  • *
  • Posts: 1
  • Respect: 0
Re: UNSW Course Reviews
« Reply #257 on: May 20, 2021, 11:08:53 am »
+3
Subject Code/Name: MATH2871 - Data Management for Statistical Analysis

Contact Hours: 3 Hours of Lectures, 1 Hour of Laboratory/Tutorial

Assumed Knowledge: MATH1041 or ECON1203 or ECON2292 or PSYC2001 or MATH1231 or DPST1014 or MATH1241 or MATH1251 or equivalent.

Assessment: 4 online quizzes weighted 20%, 1 group assignment weighted 20%. The final exam is weighted 60%.

Notes/Materials Available: SAS notes provided in PowerPoint format available only on Moodle. However, Google is a great resource especially the SAS Documentation website. Tutorial/Lab questions and answers are also provided on Moodle. SAS practice multiple choice questions and answers are also provided.

Textbook: No prescribed textbook.

Lecturer(s): Dr Leung Chan

Year & Trimester of completion: 2021/2

Difficulty: 1/5

Overall Rating: 1.5/5

Your Mark/Grade: 85 HD

Comments:

This course is simply a database management course in SAS which teaches you the absolute basics of SAS and peaks at loops, arrays and merging data sets. Simple Excel 'spreadsheeting' is also used towards the end of the course but the bulk of the course is in SAS 9.4 (available through Citrix). Even though there are prerequisites, you won't use any mathematics and statistical knowledge in this course. Content is quite heavy and may be confusing to understand if this is your first time programming but don't worry you will definitely get the hang of SAS very quickly. If you have used data base management software then MATH2871 will be easier.

The 4 online quizzes are in Moodle format (~ 10 questions) and are spread throughout the term. The quizzes were all based off the lecture slides. The group assignment is a coding one and the tuts/lab work will be beneficial. The final exam is a bit tough and time consuming, so make sure you know your SAS well (do the tut/lab work, and practice your SAS MCQs thoroughly).

Unfortunately with the course, Dr Leung Chan was the main complaint from peers. His accent is extremely hard to understand especially when his lectures are just him reading off the SAS lecture slides. He also runs some of the tutorials too. I felt that it became a self-learn/self-teach class because of this, so be aware. A positive though is that he was responsive on the forum and there weren't any admin issues throughout the course! Also please NOTE lectures and tutorials are not recorded due to SAS restrictions. Due to Dr Leung Chan and non-recordings, I felt the course was dragged down to a 1.5/5.
 

Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 708
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +472
Re: UNSW Course Reviews
« Reply #258 on: May 20, 2021, 05:44:26 pm »
+4
Subject Code/Name: MATH3361 - Stochastic Differential Equations / MATH5361 - Stochastic Differential Equations (postgraduate equivalent)

Contact Hours:
- 1 x 2 hour live lecture.
- 1 x 1 hour tutorial.
- 1 x 1 hour lab.

Assumed Knowledge:
The official pre-requisite is MATH2011 or MATH2111 or MATH2018 (DN) or MATH2019 (DN) or MATH2069 (DN) and MATH2801 or MATH2901 or MATH2089 (DN) or MATH2099 (DN).

Assessment:
- 2 x class tests (7.5% each, totalling 15%)
- Lab test (15%)
- Assignment (20%)
- Final exam (50%).

Lecture Recordings? Yes.

Notes/Materials Available: Lecture slides are sufficient.

Textbook:
None prescribed.

Lecturer(s):
- Lecturer: Prof. Thanh Tran

Year & Trimester of completion: 2021 Term 1

Difficulty: 3/5

Overall Rating: 4.5/5

Your Mark/Grade: 88 (HD).

Comments:
This course made me appreciate the things we took for granted in MATH2901. The course begins with some discussions on stochastic analysis (which is probably the most pure component of the course) before the discussion on stochastic differential equations begin. If you're a stats major looking for an elective, this course is definitely something to consider. For the bulk of the course, however, it places a heavy emphasis on the differential equations aspect, as well as some discussions on some numerical approximations using Euler-Maruyama and Milstein.
Computer Science (Artifical Intelligence), Advanced Science (Pure Mathematics Major)
Biology | Business Studies | English (Advanced) | Mathematics (Advanced) | Mathematics (Extension 1) | Software Design and Development

Opengangs

  • New South Welsh
  • Forum Leader
  • ****
  • Posts: 708
  • \(\mathbb{O}_\mathbb{G}\)
  • Respect: +472
Re: UNSW Course Reviews
« Reply #259 on: May 20, 2021, 06:32:44 pm »
+4
Subject Code/Name: MATH3711 - Higher Algebra / MATH5706 - Modern Algebra (postgraduate equivalent)

Contact Hours:
- 2 x 2 hour live lecture.
- 1 x 1 hour tutorial.

Assumed Knowledge:
The official pre-requisite is 12 UOC of Level 2 Mathematics with an average mark of at least 70, including MATH2601 or MATH2501 (CR).

Assessment:
- Mid-term exam (25%)
- Assignment (15%)
- Exam (60%)

Lecture Recordings? Yes.

Notes/Materials Available: Lecture slides are sufficient.

Textbook:
None prescribed.

Recommended textbooks:
Artin, Algebra (I used this textbook and it was pretty alright. Nothing too spectacular.)
Armstrong, Groups and Symmetry
Rotman, A first course in abstract algebra
Herstein, Topics in Algebra
Jacobson, Basic Algebra I
Stillwell, Elements of Algebra
Lang, Algebra
Lederman, Weir, An Introduction to Group Theory

Lecturer(s):
- Lecturer: Dr. Mircea Voineagu

Year & Trimester of completion: 2021 Term 1

Difficulty: 3.5/5

Overall Rating: 4/5

Your Mark/Grade: 89 (HD).

Comments:
This is your standard abstract algebra course. The course is split primarily into three parts: group theory, ring theory, and field theory. The latter two are combined as one since they play very similar roles. For the bulk of the course, you will be discussing group theory, properties of groups, and important theorems that surround them. You will have had brief stints with groups in MATH2601 and MATH2701, so the properties of groups should be no surprise to you. The difficulty of the course begins to ramp up as you dive deeper into these theorems. The second half of the course talks about ring and field theory, two more important algebraic structures that are built from the study of groups.

I went into the course thinking this would be quite dry but actually really ended up enjoying it. The course content was interesting enough to keep me from falling asleep at 9am lectures. The pacing of the course is quite fast so it's in your best interest to keep up to date to prevent last minute cramming. But it's a course worth doing if you enjoyed the group theory component in MATH2601 (not like you have a choice if you choose to major in pure anyways).
Computer Science (Artifical Intelligence), Advanced Science (Pure Mathematics Major)
Biology | Business Studies | English (Advanced) | Mathematics (Advanced) | Mathematics (Extension 1) | Software Design and Development