This module builds upon the basic programming knowledge gained in CS1010E. C++ is used. It introduces the concept of Object Oriented Programming (OOP) in the first half of the module, together with its associated technicalities such as inheritance and polymorphism. The second half of the module touches on data structures such as linked lists, stacks and queues. There is also a small part of the module given to Big O notation (analysis of algorithms), exception handling and recursion.
Although the module is webcasted, it is probably a good idea to go for the lectures as the content is covered quite quickly, meaning that you will find yourself very far behind all of a sudden if you miss a couple of lectures. Some of the initial concepts regarding OOP might also require some getting used to. Personally, I found the first half of this module much harder than the concepts covered in the second half, as the concept of OOP was very foreign to me. Prof Tan will go at a fast pace as the amount of content he has to cover is quite a lot.
This module also has a pretty serious workload, as there is one take home lab every week. However, it is alternated between graded take home labs and non-graded take home labs. There are 6 graded take home assignment in total, each 1%, with the last graded assignment an extra chance for people who did not submit one of the take home assignments to score the 1%. There are also 4 sit in lab assessments, 5% each every two weeks. However, only the scores of the 3 best labs are taken. It is possible to score full marks each of the sit in labs, and to score an A for this module you would probably need to get somewhere close to that.
Head over to our Shop for more module content!