CS2100 Computer Organisation

Module: CS2100 Computer Organisation

Semester taken: AY 2019/20 Semester 1

Lecturer: Dr Soo Yuen Jien

Tutor: Mr Tan Hong Jie Uriel

Textbook: Digital Logic Design, 2nd ed., Tan Tuck Choy, Aaron, 2011. McGraw-Hill

What it is about

This module takes a turn in the usual coding that CS students are used to doing and moves towards a more physical approach as it handles mainly hardware components. The main goal is to learn how instructions are being processed in the CPU and identifies the bottlenecks involved in executing a certain line of code, which is especially useful in knowing how to best optimise code. You will also get to build your own circuit and touch a very little bit of C programming.

Assessment components

  • 10 Labs: 13%

  • 3 Assignments: 12%

  • 11 Tutorials: 5%

  • Mid-terms: 20%

  • Finals: 50%


I had quite a lot of fun in taking this module, especially since the lecturer is the famous “Uncle Soo”. He really can make a difficult content become easy to understand and comprehend, and I really enjoyed listening to his lecture webcasts (though I always play at 2x speed since he tends to speak rather slowly). The use of animations were great in explaining abstract concepts such as pipelines.

Some aspects of this module requires your boolean algebra that you briefly covered in CS1231. Fret not if you forgot some or most of it, as there will be some revision for you during the lectures.


The tutorials are 1 hour per week. Most of the time, we will be discussing questions in the tutorial and also to clarify any doubts in the module. Only some of the answers are given to students, but the TAs will generally have access to all the answers. Hence, if your TA is nice, he/she will share the full answers with the class, which is very helpful for learning and revision nearing the final examinations.

There are also regular assignments that need to be completed throughout the course of the semester. The assignments are generally easy as it is possible for you to discuss answers with others taking the same module as you. Difficulty-wise, it should be rather similar to how the tutorials are.


The labs requires you to do all sorts of things related to the module, especially the concepts taught in the lecture a week prior. It starts off relatively easy, as you are only required to do some simple coding in C to have an understanding of how it works. However, it progressively gets more difficult as you work with the digital circuits in the laboratory rooms. The tougher ones are those that requires you to wire the circuit so that a specific output is obtain for a given set of inputs.

The 1 hour lab sessions are definitely not sufficient for the labs in the later half of the module. Hence, it is important for you to read up beforehand what the lab is about, and to prepare (and if possible, test) the circuit diagram before you assemble it physically in the lab. It is a mad rush for time, so work smart and maybe take a quick glance at how others are doing it so that you are doing fine.

Mid-terms and Finals

The mid-terms and finals were all written questions and covers all the material taught so far. The tougher ones are those that requires you to trace the output for a given circuit diagram, which can be very tedious and different from how you trace code. This is entirely dependent on the amount of practice that you had for such questions.

Both the mid-terms and finals allow for a cheatsheet to be brought in. Keep your notes concise for easy reference and you should not have much difficulty with the paper. Be careful of traps in some of the questions, though.

Overall, this module is very different from other modules that Computing students are used to taking, as there is no much code being written. Hence, there is often this love-hate relationship with this module as students do not understand the point of learning and taking this module. However, I believe that this module helps in understand how the computer executes instructions, which is extremely helpful for cutting-edge applications that require that tiny bit of speed improvement.

Other information

Assignment workload: There are 10 in-lab assignments and 3 take-home lab assignments

Project workload: There were no projects.

Readings: None

Recommended if: A compulsory module for some computing majors and a rather interesting exposure to the internal workings of the computer.

Rating: 4.5/5. Overall a very well organised module

Expected grade: A- (was a little worried about finals as I forgot where the venue was, but overall was good)

Actual grade: A

Last updated