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 courses involve working in OSS projects that are currently being used by others.
These two courses are offered in Semester 2 only.
The two courses cannot be taken 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 their contributions to the project, and their skills/expertise gained. Both courses 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’ of 3.9; you may still apply for CS3281&2 if they have a GPA 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 course pair, you are encouraged to stay involved with the projects beyond the semester time to experience leading/managing live projects. Furthermore, this course 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 CourseReg. Instead, submit your application using this application form (requires NUSNET login, requires you to upload the latest transcript).
⏰ Interested students are to submit the application by Mon 2nd December 2024 (soft deadline). We will accept late applications till Mon 9th December (hard deadline).
The outcome of all applications are expected to be released via email around December 20th, 2024.
A good way to increase your chances of getting selected is to start contributing to an NUS-OSS project before you apply for the course. 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:
CS3217 | CS3281&2 |
---|---|
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 course 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 course 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 course?
A: Yes, with approval.
Q: If selected for both CS3217 and CS3281, can I take both?
A: Discouraged (but allowed). Reason: both courses have high workload.
Please direct any questions to CS3281&2 course coordinator Dr Damith Rajapakse damith [at] comp.nus.edu.sg