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 youre going into it to learn about things like compiler optimisations, then you might want to reconsider. Youll 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 arent 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 isnt 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, youve got everything you need really, and they shouldnt be too rough. Having imperfect solutions to the previous parts wont 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.