CS3282 : Thematic Systems Project II

The info given below is from the previous round, as a reference only. Major changes are highly unlikely, however.

Course structure

The following are the main parts of the course:

You can choose a combination of the following optional components to make up the remaining 25%:

Lectures

THU 1400-1600 in COM1-02-12

[PM] Project Management

Objective : To learn to manage a project.

Contribute as a senior developer to the NUS-OSS project you joined in CS3281. Typical work includes reviewing and managing PRs, guiding new contributors, process improvements, other administrative tasks. You can also tackle development tasks that are too difficult for newer developers.

Deliverables:

Contributions to the project as a senior developer, and possibly, an area-lead-in-training.

Ideally, at the end of the semester, you should reach a level in which you can at least shoulder some of the project-lead level responsibilities, technical and managerial.

Grading:

  • Based on quality and quantity of the contributions.

[AI] AI in SE

In this component you will aim to develop an expertise in the use of AI tools in SE projects, in large production systems in particular. You will experiment with latest AI tools (e.g., Cursor, Claude, Gemini etc.) and evaluate how they can be used in the NUS-OSS project you are working in.

You will share this knowledge with the class (and the outside world -- through channels such as se-edu/guides), and guide CS3281 students in using those tools.

Grading

  • Criteria: depth of knowledge gained and shared, effectiveness of AI tools use in achieving project outcomes

[PC] Professional Conduct

This component is measured based on peer evaluations and instructor observations

  • Peer evaluations will measure:
    • How helpful you are to classmates in peer reviewing lightning talk rehearsals, book chapter contributions, etc.
  • Instructor observations will measure:
    • Punctuality and attentiveness for lightning talks
    • Conformance to administrative requirements of the course
    • Adherence to course deadlines
    • The quality of feedback given for lightning talks (i.e. post-talk feedback)
    • Participation in class discussions

[EP] External Project

Objective : To learn to work with big OSS projects.

You can choose any OSS project as your External project, provided it is a big mature external project with an established community and experienced developers.

Some sources of potential external projects:

If you are not making good progress with the chosen project by week 5, you should switch to a different project. Or you can try multiple projects at the same time. "The project was too slow to respond" is not a valid excuse.

The work under this part is cumulative i.e. the work can be in more than one qualifying projects. Even work done before the semester can be counted.

Deliverables:

  • 2 - 3 PRs merged. Only merged PRs are counted.
  • A one-page report (due by week 10) containing,
    • a comparison between the process of the external project to the
    • suggestions for the internal project based on what you observed in the external project

Grading:

  • Based on PRs completed [20%] and the report [5%]

[IP2] 2nd Internal Project

Contribute to another NUS-OSS project.

Deliverables are similar to CS3281.

Pre-Course Preparations

  • Start looking for an external OSS project. Once you have found a few potential projects, try to get started on contributing to them. Even work done before the semester starts can count for course grading.