CS3283 and CS3284 Media Technology Project I and II (MTP) 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.” The second part “focuses on the development of algorithms required for the systems, implementation and testing of the algorithms and the systems, and evaluation of the systems according to the users? requirements.”
Basically, MTP is 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 Friday 4-6pm, in COM1 Level 2, Video Conferencing Room. Ooi Wei Tsang is the instructor for the module.
MTP provides 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. Thus, each student is expected to spend an average of 20 hours a week in the semester on the project. Accordingly, at the end of the semester 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).
MTP is twice as heavy as your normal 4 MC module. Students taking MTP are expected to plan their timetable properly to allow sufficient time to contribute to the project.
Each team is expected to meet for 10 hours a week (split into 5-5), for intense work sessions (think hackathon-type of intensity). Instructors will join at some of the sessions to 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 release cycle and test-driven development where test cases will be developed (and tested) during development. Continuous integration and continuous deployment will be adopted for all projects.
A Kanban board (or similar techniques) will be used to keep track of tasks and progresses. We will use GitHub extensively.
We will also have lectures in the early part of the semester for discussions and recap of various software engineering principles. See the class schedule for details.
Your final grade will be calculated from two components: a team grade (40%) and an individual grade (60%).
I expected everyone in to contribute almost equally to the team. As such, the team grade will be the same for everyone. I, however, may increase or decrease the grade for individuals if there is a team member that contributes significantly more or less than others.
The individual grade is given to an individual student, independent of how other students is doing in the team.
The evaluation will also be done continuously instead of at the end of the semester. There will be three CAs at the following checkpoints:
CA1 @ Week 4 : CA1 (20%) is based on the software requirement analysis and design report produced at this time. The grade for CA1 is given as a team grade.
CA2 @ Week 9: CA2 (40%) is based on the implementation and testing done from Week 5 to Week 9. The grade for CA2 is given as individual grade.
CA3 @ Week 13: CA3 (40%) is based on the work done in the final phase of the project: including evaluation and further testing of your project, bug fixing, etc, and your final deliverables: presentation, demonstration, project video, project poster, and final report. Half of CA3 grade is given as team grade, the other half as individual grade.
As you can see, individual work contributes significantly to your final MTP grade. The assessment of individual grade will be based on:
Individual Work Log: Students should maintain a work log which is to be submitted at the end of every week. Basically, students should detailed the work that they have done in that week. I will evaluate the quality and amount of work done based on what the student claims.
Github Commits: I read git commits and and the code to know exactly how much a student has contributed to the code base and the quality of the work done.
Peer Reviews: Comments from peers will serve as additional signals to whether a student is contributing his/her share to the team and what his/her major contributions are.