CS3281 has two main parts: External Project, Expertise Areas
MON 1200-1400 in COM1-B103
Objective : To learn to work with big OSS projects.
You can choose any OSS project as your External project, provided it is be a big mature external project with an established community and experienced developers.
- GSoC projects are a good place to start your search but note that not all GSoC projects qualify.
- Other lists of beginner-friendly OSS projects: up-for-grabs, awesome-for-beginners
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.
- can be double-counted for expert area if the work is related to your expert area.
- 2 - 3 PRs merged. Only merged PRs are counted.
- A one-page report (due by week 10) containing
- Comparison between the process of the external project to the internal project
- Suggestions for the internal project based on what you observed in the external project
- Counts for 30% of the module
- Based on PRs completed [20%] and the report [10%]
Objective: Gain in-depth knowledge of specific areas so that you are considered an expert of that area compared to your colleagues.
One semester is certainly not enough to become an ‘expert’ of something. Consider this module just the initial step in the journey of becoming an expert. Our expectations are,
- By the end of the semester, you know some areas better than your classmates to the extent that you can teach interesting and useful things to them.
- By the time you graduate (say in 3-5 semesters), assuming you continue to improve your knowledge in that area after the module,
your knowledge in that area is among the top 5% of all the SoC UG students graduating with you.
- Pick one from each of the three below.
- Aspect: Various aspects of an SE project e.g. Testing, CI, Scalability, Requirements, Security, Performance, ...
- Language: e.g. Java, C#, JavaScript, HTML, CSS, ...
- Topic: Any other technical topic that you want to claim as your interest/expert area e.g Search Engine Optimization, Regular Expressions
If you are not sure which ones to pick, this document may be useful.
- Learn more about them yourself. While you do that, produce evidence of your knowledge. E.g. blog posts, stackoverflow questions/answers
- Create learning resources for others trying to learn the same area (see Book Chapter deliverables explained below)
- Share interesting and useful bits of your knowledge with the class by giving short talks (refer Lightning Talks deliverables explained below)
- We are going to build a collection of learning resources (an online book of sorts)to help others learn the areas you are learning yourself.
- You are expected to make periodic PRs (at least once every 3 weeks) to create/enhance the relevant pages as you learn the topic. The PR should be peer reviewed by a team member before it is merged.
One important way you can establish credibility as an 'Expert' is by educating others about your expert area and evangelizing it. Lightning Talks is meant to promote that aspect.
- Each student is required to give three short talks on interesting topics expected to be useful your classmates.
- Each talk will be about 7 minutes + 3 minutes for Q&A. There will be 7-8 talks per week (each student will take a turn once every 3 weeks).
- You are required to rehearse the talk with one or more of your team members and improve based on their feedback before delivering it to the class.
- After the talk, you are required to post the talk summary (and the slides) as an issue in the nus-oss/lightningtalks repo for future reference and further discussion.
- Contributions to book chapters [20%] -- 5% at midterm (week 6), 15% at end of semester
- Other evidence of expertise (e.g. blog posts etc.) will be counted too.
- Lightning talks [10% x 3]
- Based on usefulness of content and quality of delivery
- Professional conduct [10%] -- 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 module
- Adherence to module deadlines
- The quality of feedback given for lightning talks (i.e. post-talk feedback)
- Participation in class discussions
- Peer evaluations will measure:
- Exit interview [10%] -- This is a technical interview based on your resume, in particular, claims made w.r.t,
- expertise areas
- project experiences (including the OSS projects from CS3281 and CS3281)
- You’ll work in small team (4-5 members). Team members are expected to peer-review work of each other.
- The team structure could be changed at the middle of the semester.
- It is preferred that the overlap with CS3282 teams is minimized.
- Pick expert areas to study.
- Start looking for an external OSS project. Once you found a few potential projects, try to get started on contributing to them. Even work done before the semester can count for module grading.