🏫
Module Reviews
  • Welcome
  • School of Computing
    • CP2106 Independent Software Development Project (Orbital)
    • CS1010J Programming Methodology
    • CS1231 Discrete Structures
    • CS2030 Programming Methodology II
    • CS2040 Data Structures and Algorithms
    • CS2100 Computer Organisation
    • CS2102 Database Systems
    • CS2103 Software Engineering
    • CS2105 Introduction to Computer Networks
    • CS2106 Introduction to Operating Systems
    • CS3103 Computer Networks Practice
    • CS3223 Database Systems Implementation
    • CS3230 Design and Analysis of Algorithms
    • ES2660 Communicating in the Information Age
    • IS1103 IS Innovations in Organisations and Society
  • NUS Business School
    • ACC1701 / ACC1002 Accounting for Decision Makers
    • BSP1702 / BSP1004 Legal Environment Of Business
    • BSP1703 / BSP1005 Managerial Economics
    • BSP2701 Global Economy
    • DAO1704 / DSC1007 Decision Analytics using Spreadsheets
    • DAO2702 / DSC2008 Programming for Business Analytics
    • DAO2703 / DSC2006 Operations and Technology Management
    • DBA3701 / DSC3214 Introduction To Optimisation
    • DBA3712 / DSC3224 Dynamic Pricing & Revenue Management
    • DOS3701 / DSC3201 Supply Chain Management
    • DOS3703 / DSC3203 Service Operations Management
    • ES2002 Business Communication for Leaders
    • FIN2704 / FIN2004 Finance
    • FSP4003 Field Service Project
    • MKT1705 / MKT1003 Principles of Marketing
    • MNO1706 / MNO1001 Organisational Behavior
    • MNO2705 / MNO2007 Leadership and Decision Making under Uncertainty
  • Other faculties
    • GEH1035 Phy’cal Qns from Everyday Life
    • GEQ1000 Asking Questions
    • GER1000 Quantitative Reasoning
    • GESS1025 / GES1035 Singapore: Imagining the Next 50 Years
    • GET1004 / GEK1531 Cyber Security
    • LAM1201 Malay 1
    • LAM2201 Malay 2
    • MA2001 / MA1101R Linear Algebra I
    • MA1521 Calculus for Computing
    • PC1141 Introduction to Classical Mechanics
Powered by GitBook
On this page
  • What it is about
  • Assessment components
  • Comments
  • Tutorials
  • Finals
  • Other information

Was this helpful?

  1. School of Computing

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%

Comments

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.

Tutorials

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.

Finals

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)

PreviousCS2102 Database SystemsNextCS2105 Introduction to Computer Networks

Last updated 3 years ago

Was this helpful?