Computer Organisation
A-
AY22/23 S1
The course has a very unique progression. It starts off in C programming, teaching fundamentals like addresses and memory management. Then, we drill down to the bare bones of logic and electrical components. So from C, we go down to assembly language (human-readable instructions for the machine), then to machine code (1s and 0s), and finally to logic components. From there, we slowly build up our circuit components, achieving more complex functionality like Adders and Multiplexers. Just know that you'll be dealing with a lot of logic diagrams to figure out how to design your circuit. This was the fun part. Circuit design.
But the last 3 weeks really colanders my rice. Process Scheduling is about calculating how long a sequence of instructions will take to execute. It's not a simple task, as each instruction is composed of many stages, which are handled in different parts of the machine. The execution of these stages can be done concurrently, which leads to awfully long and convoluted calculations. Memory management, on the other hand, was a little more manageable, but was still very pain. It's about how the computer caches data, and how it can be optimised to reduce the time taken to access data. Lots of calculation to see how much time is saved, and how much of the cache is actually used.
Expect exam questions to have a lot of arbitrary calculations. That is, calculations that you have NO WAY of knowing whether you are right. The worst kind of questions for me. No intuition involved, just following instructions. You are the computer. Be the computer.
That said, the workload isn't very high, just a bunch of low-effort labs that can be done in 5 minutes. It's just a mountain of content you need to get through.