CS2103 Software Engineering

Module: CS2103 Software Engineering

Semester taken: AY 2019/20 Semester 1

Lecturer: Dr Damith C. Rajapakse

Tutor: Mr Choo Chun Hoe Jonathan

Textbook: None

What it is about

This module teaches the basics of software engineering and how to work together as a team to deliver a software product. Certain tools for collaboration, such as Git and GitHub, will be taught, along with a unified modeling language for designing a software. Finally, there is a project that runs for the second half of the module which will allow you to apply the concepts taught in the module in a team setting.

CS2103 and CS2103T are the same modules, but members of a group must be from the same module code. Hence, CS2103 is for students that are unable to take CS2101, such as RVRC students and also DDP students like me.

Assessment components

  • Individual Project: 10%

  • Team Project: 45%

  • Participation: 5%

  • Final Exam: 40%


This is the first module that exposes CS students to popular tools such as Git. Gone are the days of saving code onto Dropbox or Google Drive, especially for those that are new to coding. It is also the first module that requires students to work together as a team to deliver a software project at the end of the semester. Hence, this module serves as a very good foundation for future group-based project modules that you need to take as a CS student.

However, the downside is that the workload is extremely high. You will spend a lot of time coding and debugging your code, which definitely does not make this module feel worth its 4 MCs. However, the project is written in Java, so it should be comfortable for most students who just came out fresh from CS2030, or a living hell for those that hate Java to the core. For the first half of the semester before the group project starts, there is another individual project that is also written in Java and is aimed to get students familiar with the IDE and code base provided by the lecturer.

There is a 2-hour lecture every week and I personally felt that it was the most enjoyable lecture series that I have ever attended. The professor had very animated slides and adopted great presentation skills in teaching students. I definitely learnt a lot from the professor and always looked forward to his lectures on Fridays.


The tutorials are 1 hour per week. Half of the tutorial is used to cover some of the concepts taught during lectures, whereas the other half is spent talking about the progress of the group project. The tutorials itself are the most chill component of the module, as everyone will be seated down together to talk about the project and some basic software engineering principles.


The final exam is split into 2 parts. The first part is MCQs with 100 questions and 1 hour to complete, whereas the second part requires you to draw diagrams using UML and some short answer questions. The pace of the exam is rather fast for the first part, but slows down somewhat for the second part, and it is all open-book.

Overall, the difficulty of the final exam is not very high, especially when it is open-book and the answers can be found inside the given textbook. However, you generally do not have much time to search for the answers.

Other information

Assignment workload: There were no assignments.

Project workload: Extremely high, with an individual project during the first half of the semester and a group project during the second half of the semester.

Readings: None

Recommended if: A compulsory module for CS students. It is largely a project-based module, so theories taught are minimal.

Rating: 4.5/5. Interesting module but the workload is high.

Expected grade: A

Actual grade: A- (unfortunately, I think it is due to my project not being robust enough)

Last updated