ENGN2219: Computer Systems & Organisation
NOTE: this course has been regularly changing since it switched from simulation in MATLAB (pre 2018) to computer architecture and (originally) also some simulation in Python (2019 on). It continues to change now that Shoaib has taken over from Ramesh, and 2022's incarnation should be very different again.
This is a computing course with the "ENGN" label slapped onto it. Although the prerequisite is COMP1730 or COMP1100, there is assumed knowledge of Python syntax and it's worth brushing up beforehand if you took 1100. Most computer science students don't take this course. If you're in an engineering degree (including part of a double with computing) you have to take this course for the engineering degree.[1] This course is pretty fun because there's a physical board with LED lights and an entire lab dedicated to lighting them up. The content is a bit dry, but most of the tutors are really nice.
Some pitfalls of the course is that VSCodium can be fairly difficult to set up. If you don't set it up early on your laptop and actually use it on your laptop, you're bound to find some debugging bugs while doing your assignment. It's recommended using it early to find the bugs early (last thing you want is the debugger to break the night before an assignment is due). If you're an engineer, you'll have to get used to the 100% late submission penalty (i.e. if you don't submit on time, it's worth 0%), but usually there's ample time if the management in the background is going okay. The course is split into a section on ARM assembly and one on Python, and the transition is fairly sudden and jarring. Although as of 2022 the practical work it is now split onto building a CPU in step by step process using digital (using a custom isa called quac), and then a section on C (ansi? I think since textbook offered is assuming that). Lectures are more on Isa and how computers function.
Overall, it's a fairly good course (from a student and tutor point of view). There's some interesting history with this course (drop by CSSA if you want to hear about it) but the tutor team is fairly good. It's not nearly as engaging when done online. If this course is offered in person, it's worth getting it done and out of the way early because it's a prerequisite for some later engineering courses. Feel free to take this as an elective if ARM and Python interest you, but it's not computer science focused if you're interested in more in-depth theory.
- ↑ Actually, this might not be true; from 2019-2021 you could take COMP2300 instead and count it. Unsure if that'll still be the case, or whether it might actually be preferable to take ENGN2219 now, as it's going more in-depth with computer architecture.