CS3281 and CS3282 (Officially known as Thematic Systems Project I & II for legacy reasons, a more apt name would be Software Engineering in Live Projects) aim to build up your ability to work with software systems currently in-use, to build up your SE capabilities towards levels expected from engineers working at high-end software companies. Special emphasis will be placed on maintainability, efficiency, scalability, and reliability. You will work under the guidance of mentors some of whom are currently working in the industry. Both modules involve working in OSS projects that are currently being used by others.
These two modules are offered in Semester 2 only.
You will not be allowed to take both modules concurrently. Instead, you'll have to take CS3281 first and come back for CS3282 in a subsequent semester.
Prerequisites : CS2103/T or CS2113/T (with approval)
Students will be assessed on each module separately, based on their contributions to the project, and their skills/expertise gained. Both modules are 100% CA with no final exam.
The class enrollment is capped at 20 students due to resource constraints.
There is a soft lower bound for students’ CAP of 3.9; you may still apply for CS3281&2 if they have a CAP below 3.9, provided you can show evidence of a strong passion for software engineering e.g., side projects done.
To get the full value of these module pair, you are encouraged to stay involved with the projects beyond the semester time to experience leading/managing live projects. Furthermore, this module depends on past students mentoring current students. Such work can count for CS3282 and possibly be paid.
Please do not apply if you are not sincerely interested in staying with the projects beyond the semester to become project mentors.
Student selection is not based on ModReg. Instead, submit your application using this application form (requires NUSNET login, requires you to upload the latest transcript).
⏰ Interested students are to complete the application process by Mon 5th December 2022. Late applications will not be entertained.
The outcome of all applications are expected to be released via email around 21 December 2022.
A good way to increase your chances of getting selected is to start contributing to an NUS-OSS project before you apply for the module. The more you have contributed, the more you will score in criterion 1 above.
Even contributions around the application period (up to 2 weeks after the application deadline) can count. All the NUS-OSS projects have some guidance on how to get started on contributing -- if you need more help, go ahead and post a help request in the project's issue tracker.
Q: Can I apply to both CS3217 and CS3281?
A: Yes. If you get places in both, you will be given time to decide which one to take.
Q: What's the difference between CS3217 and CS3281&2?
A: Here are some similarities/differences:
|design and deliver a complete product -- includes an individual project (6 weeks) and a team project (6 weeks)||work with existing applications that are currently in use (higher focus downstream value addition such as reliability, scalability, security, maintainability, etc.)|
|typically involves iOS ecosystem + other modern frameworks/platforms||low involvement of iOS ecosystem but involves other modern application frameworks/platforms|
|small intake (~40-50), via a selection process, hard to get in||small intake (~20), via a selection process, hard to get in|
|done over one semester, although most students also take CS3216||done over two semesters, with a gap in-between (i.e., takes at least 1.5 academic years to complete)|
|expects you to design and deliver a good product by the end of the semester||expects you to manage and evolve an existing product over a longer period, guided by past devs, while guiding new devs (in later stages)|
|high workload, intended for strong programmers only||high workload, intended for strong programmers only|
Q: Can I take this module while doing ATAP/SIP?
A: No. Reason: You need to be available during working hours for lectures and project meetings.
Q: For CS3281, can I choose a project that is not one of the NUS-OSS projects?
A: No. Reason: As 100% of your CS3281 module grade depends on your project work, you need to work in a project that is fully under our control.
Q: Can CEG students take this module?
Q: If selected for both CS3217 and CS3281&2, can I take both?
A: Discouraged (but allowed). Reason: all three modules have high workload.
Please direct any questions to CS3281&2 module coordinator Dr Damith Rajapakse
damith [at] comp.nus.edu.sg