Taken in AY22/23 Sem 1 to AY22/23 Sem 2

Module information

The individual project dissertation provides the opportunity for a student to demonstrate independence and originality and to apply knowledge learnt in courses to a reasonably large problem requiring analytical and/or design and/or experimental effort. Students taking this course must work independently on a research project or applied research project, under the supervision of staff. Please see the Nature of Projects to get an idea of the broad classifications to which a proposed project belongs to.

The project demonstrates a student’s work ethic, level of initiative, determination and innovative ways of solving problems. It also tests a student’s ability to adapt to work in a research or a large scale project environment involving design and development, or take up an individually challenging problem requiring innovative solution and able to think laterally when difficulties are encountered. The project also provides scope for student to use their skill in technical project execution and management, and to think and seek solutions when difficulties are encountered, as each student is largely responsible for their own programme of work.

The project is expected to kindle interest in research in students and motivate them to undertake research work through higher studies by joining our PhD programme. The applied research work carried out in these projects has enabled some of our students to start their own start-up companies through our incubation centre or otherwise.

Continual assessment - Student is required to submit a report at the end of first semester into the project. The supervisor and main evaluator would assess on student’s performance and also on his/her competence and attitude towards the project.

On completion of the project a student is required to submit a dissertation describing the project work, and give an oral presentation before a panel of examiners, in a seminar environment.

~ From the Official Website


The project spans over a period of 2 semesters. With approximately 400 hours of work across the 2 semesters.


  1. Must complete 70% of the MCs required for the degree programme to take CP4101.
  2. Must have attained the CAP requirements of the selected FYP Project.

Module Details

This module is 12 MCs and is letter graded.

These are the tasks that we have to complete for the module:

  1. Project Update Form (If required)
  2. CA Report
  3. CA Presentation
  4. Final Report
  5. Final Presentation
  6. Submit E-Copy or Report
  7. Submit Feedback of Final Report

Proposing your own projects

There are 3 different ways to get a FYP Project

  1. Proposal by Academic Staff
    • Prof Projects
  2. Proposal by Industry
    • Projects by Industry
  3. Proposal by Student
    • Self proposed project by yourself / other students

Signing up


There are 3 different rounds of FYP Project Selection.

  1. Round 1: Week 7 of the previous semester
  2. Round 2: Week 10 of the previous semester
  3. Manual Registration: Week 13 of previous semester up to week 1 of FYP Semester

For more information, you can visit the Official Project Selection Schedule

Project Selection

  1. Go onto Project Admin
  2. Login to the website
  3. Browse through the list of projects

My Personal Experience

My Circumstances

During the semester preceding my Final Year Project (FYP), I embarked on my exchange program that broadened my horizons. However, this meant I missed both Round 1 and Round 2 of the Official FYP selection period, adding an unexpected twist to my academic journey. Undeterred, I took the initiative to reach out to several professors via email, expressing my eagerness to contribute to their projects. Through a stroke of luck, I secured my top-choice project.

My Project Decisions

As someone who specialized in Software Engineering and Computer Security, I was looking for a project that are within these 2 fields. However, as I had some research experience during my internship after my exchange project. I was not looking to do a research based project.

My criteria for selecting a project were as follows:

  1. Not research based
  2. Software Engineering or Computer Security related

While browsing through the different projects on the Project Admin, I manage to find a project on Visual Python: A Visual Programming Language for Python. I felt that the project was very meaningful and would be a good fit for me.

Thus, I reached out to Prof. Alan who was the supervisor for the project. He scheduled a meeting with me to see if I am a right fit for the project. Lucky for me, he agreed to let me take on the Project. I am still very grateful for this opportunity to work on this project.

Starting experience

My project started a little earlier than the typical FYP start date (during the summer holidays in June). This meant that I had to juggle between my internship and my FYP project.

It was a brownfield project that was started by the previous FYP student. The code base is fully written in ReactJs.

To start off the project, Prof. Alan had me start on some small tasks to get me familiar with the project. He event scheduled a meeting with the previous FYP student to get me up to speed with the project.

After the meeting, I had to plan the project timelines and milestones that I wanted to achieve.

During this period of time, progress was slow and there was not much being accomplished.

During Semester

After my internship ended, I was able to focus on my FYP project. At this point, I was more familiar with the code base and was able to channel more of my time to improving the project. My FYP partner also joined me during this period of time on the project.

We had weekly meetings with Prof Alan to update him on our progress and to get his feedback on our work. Prof Alan would try out what we had implemented and gave us his genuine feedback and suggestions on how we can continue the project.

We had many opportunities to try different ways to implement the features that we require and discover for ourselves what works and what does not. We also learnt lessons from other similar projects that have taken off and tried to incorporate their ideas into our project.

During this period of time, we had the opportunity to learn:

  1. React JS
  2. Nginx
  3. Docker
  4. CI/CD
  5. Netlify Integration
  6. Linux Scripting

These skills were invaluable to me even after graduation.


Prof Alan was also very kind in helping us vet through our reports before the official submission deadlines.

Here is what I used in my project report. Please take this as a guide as every project might have a different format that is required / more suitable. If you have any questions, you can reach out to your professors or your FYP supervisor.

For the CA project, the format of the report is as follows:

  1. Introduction
    • Abstract of the report
  2. Literature Review & Existing Tools
    • Literature Review of other similar projects and their pros & cons
  3. Progress of the project so far
    • What we have done during the previous semester
    • Design Decisions
    • Tech Stack and why we choose to use them
    • Strengths & Limitations of our project
  4. Research Plan for the Next Semester
    • What we plan to do for the next semester
  5. References
    • References used in the report (APA format)
  6. Appendices
    • Full list of features implemented
    • Timeline of the project
    • Full tech stack of the project

For the final project, the format will be longer:

  1. Introduction
    • Abstract of the report
    • Motivation
    • Objectives
  2. Related Works
    • Literature review of other projects
    • The other projects’ strengths and limitations
  3. Features of our current project
    • Including screenshots and how to use them
  4. Design Decisions
    • Why we choose to use certain tech stack vs others
  5. Testing
    • Test methodology
    • Heuristic Evaluation
    • Software testing
    • User testing
    • Results of the tests
  6. Conclusion
    • Summary of the project
    • Future work
    • Limitations of the project
  7. References
  8. Appendices
    • Timeline for entire FYP
    • Tech Stack used
    • Other useful information


As the presentation was done for both me and my FYP partner, we had to kind of de-conflict on what we wanted to present. We decided to focus on the sections which we have implemented during the semester.

The presentation is basically a condensed version of the report with the areas that you want to zoom in a little more.

The presentation was done in front of Prof Alan and our reviewing professors. Be prepared to answer questions from the reviewing professors.


Workload (7/10)

The workload is moderately high. I spend most of my afternoons during FYP. The time is mostly spent on:

  1. Implementing the features
  2. Deployment of the project
  3. Making design decisions
  4. Optimization / Refactoring of the code base

Organization (N/A)

The organization of the project depends on us and how we plan it. Prof Alan was very helpful in helping us plan the project and giving us feedback on our plans.

At the end of the day, we have to decide on what features we want to do and how we want to implement them. We have to strike a balance between the features that we want to implement and the time that we have to implement them.

Enjoyment (8/10)

I enjoyed doing the FYP project a lot. I was able to learn a lot of new skills and apply them to the project.

I also enjoyed working with Prof Alan and my FYP partner. The project guided me through the whole process of a software project from start to finish.

Usefulness (8/10)

The skills learnt during the project was very useful for my current job and future software engineering jobs.

Overall (8/10)

Overall, I really enjoyed taking this module. I was able to learn a lot of new skills and apply them to the project.

However I feel that if you can graduate 1 semester earlier, you should do so instead and earn some job experience instead.

Expected Grade: A Actual Grade: A+

If you have any more questions about CP4101, feel free to reach out to me on Linkedin.

  1. CP4101 B.Comp. Dissertation Module Website
  2. NUSMods
  3. My FYP: Visual Python
  4. Project Admin
  5. FYP Selection Schedule