CityU Final Year Project

Many students contact a teacher to seek for potential FYP supervisor.  In my experience, many proposed projects are not quite FYPs. I write down here some of the criteria that students may sharpen their FYP proposals before contacting a teacher with the aim of improving the chance of FYP proposal acceptance.

  • Does every program development project mean a software engineering FYP?

Short Answer:  No, no, and no.

Each FYP must solve at least one highly technical problem. If you just discuss the problem but not the solution to your classmates or friends or any CS graduate, and they can also propose a solution similar or better than your solution, such scenarios indicate a few issues about your proposal. Some of the possible cases are as follows: (1) The FYP does not have a sufficient technical boundary to an average CS guy. If everyone can work out a solution about the FYP easily, the technical contribution of the FYP may be very limited. (2) The technology that you want to learn or develop is a bit outdated; otherwise, those graduates should have little or no idea on how to develop such a system. (3) The problem by itself may not be technical enough, which is fatal. For instance, if your proposal aims to solve a business problem such as developing a Point-of-Sales (POS) system, your FYP proposal has not pointed out any technical problem to justify that you need to develop this yet-another-10000001st-project of the same kind in this world. More importantly, the student needs to justify in the proposals on why a particular FYP can be completed by a particular student.

  • What is a software engineering FYP?

Short Answers:  To develop new SE technique or process that assists software development or makes a deployed software application better.
Millions of programmers in the world face more or less similar problems, and they need to write similar codes to address the same aspect of these problems. Some tools that help a particular huge group of programmers to complete their coding or documentation more effectively or efficiently would be SE FYPs.
A FYP proposal should clearly point out the limitations (e.g., ineffectiveness) of existing software engineering processes (e..g, UP) and techniques (e.g., design patterns, xUnit, data race detection) and propose to works out a satisfactory solution to address the limitations.  In the proposal, the way that the FYP aims to do to understand the problem and their limitations as well as the solutions should be provided. 

  • What are the FYP topics that I offer currently? 

Answers: The list is open.  A major purpose of FYP is for students to use their CS and SE skills to work out a technical solution for a problem that the student is interested in solving it.

Some SE topics are as follows:
-    Static or dynamic analysis of multithreaded programs
-    Generation of test cases for cloud applications
-    Abstraction-refinement-guided construction of class diagrams from use cases and open code repository
-    Namespace-centric service discovery
-    Automatic recovery of faulty web services
-    Model-based debugging and its integration to regression testing
-    Software development environment on Smartphone
-    Efficient context-aware service composition


  • How do we prepare a FYP presentation?

Answer: Choose a presentation style to tell the examiners about the problem, the related work that solves the problem, your methodology to work out a solution, the solution idea, the implementation of the solution, the outcome or the effect of the implementation,  and the conclusion of the FYP. Making your presentation convincing is vital.



Selected Tags

Tag Groups


ACM SigSoft
IEEE Software Engineering Online