According to the official NUS bulletin, CS3283 and CS3284 are two modules “on the development of media technology systems such as interactive systems, games, retrieval systems, multimedia computing applications, etc. Students will form project teams to work on media technology projects. This first part focuses on the analysis of the user’s needs, formulation of the computing requirements of the desired solution that meets the user’s needs, design of the systems according to the requirements, implementation of first-cut prototype for evaluation purpose, and evaluation of the design.”
This is a module where teams of students get together, hone their software engineering skills, put the computing knowledge learned in the classroom into practice, and build something cool.
The class is scheduled for lecture on Thursday 4-6pm, in COM1 Level 2, Video Conferencing Room. Ooi Wei Tsang is the instructor for the module.
CS3283 and CS3284 provide opportunities for students to experience and put into practice, the following software engineering methodologies and practices.
At the end of the project, students should be able to:
The official prerequisites for MTP are CS2103 and one of the 3000-level media modules (the later requirement can be waived for non-CM students).
Having relevant experience of the following modules, however, are extremely useful. Each team should have one or more students who have relevant experience related to these modules. Almost all software systems require an understanding of all of these fundamentals.
Additional knowledge (such as AI) may be needed, depending on the nature and domain of the project.
Each of CS3283 and CS3284 is worth 4 MCs. Each student is expected to spend an average of 10 hours a week each semester on the project. Accordingly, at the end of the academic year, a team with k-member is expected to produce deliverables worthy of 260k person-hour of work. To put that into perspective, a 4-member team should produce a work that is equivalent to about 6.5 person-month (8 hours/day, 20 days/month).
Students taking MTP are expected to plan their timetable properly to allow sufficient time to contribute to the project.
Each team will meet for 5 hours (consecutively) a week, for intense work sessions (think hackathon-type of intensity). Instructors will join every work session, at least at the end. Instructors will review and evaluate the work progress of the team (and individual students) at the work session, including conducting random code review with individual students.
We will adopt a somewhat agile methods where there is a weekly (or bi-weekly) release cycle and test-driven development where test cases will be developed (and tested) during development.
There will be a stand up meeting at the beginning and the end of every work session. A Kanban board (or similar techniques) will be used to keep track of tasks and progresses. We will use github extensively (if the existing project does not already have a repository).
We will also have lectures in some of the weeks for discussions and recap of various software engineering principles. See the class schedule for details.
There are two components to the final grade assigned: 70% individual grade, and 30% team grade. As you can see, unlike other project modules, the evaluation will based heavily on individual contributions.
The evaluation will also be done continuously instead of at the end of the semester. A letter grade will be assigned to the performance of each student every four weeks. The final individual grade will be the cumulative grade over the semester.
The final team grade will be assessed through the final report, demonstration, and presentation, to be held during the reading week.