CS1231 Discrete Structures

Module: CS1231 Discrete Structures

Semester taken: AY 2018/19 Semester 2

Lecturer: Dr Li Wei

Tutor: Mr Chi Kit Gordon Hoi

Textbook: Kenneth Rosen - Discrete Mathematics and Its Applications, 7th Ed (2011)

What it is about

This module introduces certain fundamental topics that are prevalent in the field of computer science. The module covers multiple topics on logic, functions, sets, number theory, mathematical induction, combinatorics and graph theory, all of which have applications in various aspects of computer science. This module is taught by the CS department in Semester 1 and the Math department in Semester 2.

Assessment components

  • Test 1 in Week 7: 20%

  • Test 2 in Week 10: 20%

  • Finals: 60%


This module is known to be a rather difficult module for first year students because it exposes students to varsity level mathematics, which is very different from how mathematics is taught and used back in our pre-university days. There are even memes just about this module, showing how daunting it can be for students.

I took this module in Semester 2 because for Semester 1, the CS department is the one in charge of teaching the module whereas for Semester 2, the Math department is the one teaching. Accompanied by the fact that this module is largely a mathematics module, it made sense to take the module when the Math department was teaching it. This is also an advice that I would give to juniors as well! It is definitely more worth taking the module in Semester 2, because the way the CS department teaches it is just, bad.

The lectures is always going through concepts and immediately applying the concepts using examples. However, the lecturer tends to speak rather slowly and since there was webcast for this module, it is more efficient for you to watch the webcast at 2x speed instead of going for the lecture.


The tutorials are just what you would expect, which is just applying the concepts that you have learnt in lectures in actual problems. Some of the questions can be tricky, but I was lucky that I had a very good tutor who was able to explain the concepts taught in the module clearly for us to understand. Tutorials are 1 hour long but it is hardly enough time to go through the whole tutorial, so be sure to schedule consults with your tutor or the lecturer to clarify your doubts with the remaining questions.

The tutorials provided are quite useful, but the suggested answers might be confusing to understand and comprehend at first. I would strongly suggest going for tutorials and hopefully find a good tutor like the one that I got.


There were a total of 2 mid-terms for this module. The first mid-term was just after recess week, which tested on the first chapter on logic, whereas the second mid-term was during Week 10 which tested on the second chapter on functions and sets. You are allow to bring in one A4 sized cheatsheet, double-sided.

The format of the mid-terms do not really deviate much from the previous years, except for the last few questions which can be tricky. I strongly recommend doing the textbook for additional practices, but understand that it is not possible to prepare for every possible question that can be tested from these two chapters. For my mid-terms, they were mostly doable, but I was not able to score well because of the tougher questions at the back, plus falling into traps that the lecturer laid out. Read the questions carefully!

Also, the way this module is structured is that after the chapter has been tested, it will not come out again in the final exams. However, there may be certain aspects of it that is used in other chapters, so make sure you have fully understood your concepts.


Similar to the mid-terms, the format of the exam does not deviate much from previous years and obviously tests the remaining chapters of the module. I spammed practice on the past year papers to also try and find trends in the questions and to better prepare myself for the paper, and I strongly suggest you to do the same.

The finals was also manageable, but I had some questions in the first part that I left blank, mostly from the combinatorics chapter. The first part consists of questions with only the final answer required from you (no working marks) whereas the second part consisted of long questions which have method marks awarded. There should just enough time for you to finish the paper, provided you have done your revision sufficiently.

Overall, finals was manageable but I was not too optimistic about my grades because I did not do well for my mid-terms and seeing a lot of other people scoring better than me for mid-terms.

Other information

Assignment workload: There were no assignments.

Project workload: There were no projects.

Readings: Light. The lecture notes are sufficient enough to prepare you for your exams, but the textbook can be a good supplement.

Recommended if: A compulsory module for some computing majors and some science majors. Math majors can opt to take this module or MA1100, but I strongly suggest taking MA1100 instead because this module will not prepare you sufficiently for the higher-level math modules.

Rating: 4.5/5. I struggled quite a bit for this module but overall it was a very interesting module. My tutor was good and the lecturer is clear in her explanations (most of the time).

Expected grade: B (finals was manageable but not too optimistic because likely there is a steep bell curve)

Actual grade: A+

Okay this deserves some elaboration. I was extremely shocked when I saw my results (especially when it was a leaked result 2 days before the official results release). I had a friend taking the same module as me and he got an A+ as well, which made us equally dumbfounded. I have no possible explanations to this grade, except probably that I was blessed by the bell curve god. I did manage to finish the second part of the finals though, so maybe that set me apart from other students.

Last updated