CS3282 Schedule

Week 1 [15th Jan]


  • Check your details in nus-cs3281/2024 [⏰ Deadline: Friday] and update if necessary. You will be given write permission to the repo by Monday.
  • Discuss with other senior team members to plan onboarding activities for the code sprint. Minimally, plan to have a chat with the CS3281 students. In addition, you can do technical briefings, tutorials, workshops etc. to get CS3281 students started on the project work.


  • Lecture : CS3282 Course Intro
    • Hybrid lecture (Zoom link is in Canvas homepage) -- F2F by default unless you obtained permissions to not attend F2F.

Saturday (Code Sprint)

  • Join the code sprint and introduce yourself to CS3281 students

Activity: Book Chapter Report

The purpose of this activity is to encourage you to read SE books.


  1. Have a quick look at the default recommended book Software Engineering at Google (PDF available for free). You may also pick a different SE book that you have read before or want to read this semester. Pick a chapter that you want to read/use for this activity.
  2. Post an issue in nus-cs3281/2024 indicating which book and which chapter you plan to read. Assign the issue to yourself.
    Doing this early will help you avoid clashing with chapters chosen by others. We prefer not to have multiple book reports on the same chapter.
  3. Read the book chapter.
  4. Post a short summary of the chapter in the same issue. Just a few bullet points is enough. Optionally, you can also comment on the relevance of the chapter to your NUS-OSS project.

Try to finish the above by the end of the recess week.

You are welcome to do more than one book/chapter too.

Week 2 [22nd Jan]


  • Keep updating progress.md and knowledge.md, in the nus-cs3281/2024 repo periodically.
    • progress.md: Your contributions to the internal project(s). Update similar to how you did in CS3281.
    • knowledge.md: Keep evolving your knowledge.md to showcase things you have learned in various areas (e.g., your chosen expertise areas): resources explored, lessons learned, deliverables produced, etc.
  • If you plan to contribute to an external project, start looking for one if you haven't done so already. Once you have found a potential project, you can follow their instructions to get started on contributing. You can even try multiple projects if you are not sure the chosen project will work out.


  • Lecture: Tips for tech talks - Part 1
  • Choosing topics for Lightning Talks:
    • ⏰ By the end of today, post an issue in repo nus-cs3281/2024 as follows  Reason: posting titles in advance will help us avoid topic duplications:
      • Issue subject: the title of your talk
      • Issue body: 2-3 sentence preview of the talk
    • Check to see if there are duplicate topics already posted. You are discouraged from (but not prevented from) choosing a topic already chosen by another.
    • It is in your interest to choose a topic related to one of your expert areas. It is not a strict requirement though.
    • Note that you will be peer-evaluated for the quality of delivery as well as the usefulness of the talk. It is recommended to pick topics that are potentially useful to the audience.
  • Read next week's schedule to find more info about the upcoming lightning talks. The order of talks (i.e., who presents in which week) is given there too.

Week 3 [29th Jan]


Steps to follow when preparing

Give priority to applying the techniques covered in week 2 lecture even if you feel like they are cramping your natural presentation style or you can do better without them. Harmonizing your style with the new techniques can come later. In particular, WIIFY, Key Points, and Impact should be the driving forces of your presentation. Figure them out at the start of your preparations, not as an afterthought.

Try to follow these steps in the given order:

  1. Define the intended impact of the talk.
    • Try to choose an impact that has a do component (e.g., get audience to switch to technology X), not just know and believe components (e.g., tell audience about X). The do component will make the talk motivational and higher-impact; without it, the talk will be simply informational.
    • Frame the intended impact as a call-to-action (CtA).
  2. Find a WIIFY i.e., a good reason for the audience to follow your CtA. The WIIFY can work better if it relates to this specific audience at a concrete level. For example, explaining how Foo technology can benefit SoC students right now is better than making a general claim that Foo is a useful technology. Sometimes realizing that ‘there is a cool technology out there benefiting many others, but it is not accessible to me right now’ can be a turn off.
    If you cannot find a convincing WIIFY, reconsider the topic as there is a risk that the audience may not find the talk useful.
  3. Choose key points that help you achieve that impact. Be clear about your key points.
    • We look for points, not topics e.g., how to use X is a topic while X is easy to use is a point. In the past years, I found that some students still confused points with topics. A point forms a sentence e.g., The tool X is easy to use. whereas a topic may not e.g., Tool X usage.
    • Make sure your key points are aligned with the intended impact. If you key points are a, b, c, you should be able to say "a; b; c; therefore, CtA" e.g., "X is fast; X is free; X is getting popular; therefore, switch to X!"
  4. Decide the talk roadmap (aka the agenda, or the promise). They may be similar to key points but not necessarily the same. The roadmap can be topics (rather than points) and can be questions (rather than answers).
    Roadmap Key points
    What is X?
    Demo of X
    Benefits of X
    X is fast
    X is free
    X is getting popular
  5. Find a PUNCH. This is hard, but give it your best shot. One good tactic is to find an extreme example of a pain point that can be solved by your topic e.g, if your CtA is switch to X, you can start with an example that shows how bad something can be without X.
  6. Design the slides.
    • One common mistake is inadvertently including big holes in the talk, for example, forgetting to explain some concept that is vital to understanding the topic. Critically review your talk from the target audience point of view.
    • Also mention how the topic fits into the big picture.
      e.g., if your talk is about X, the big picture can be like this:

      There are two categories of tools for doing Bar which is an essential part in building apps. Category 1 tools work inside-out and Category 2 tools work outside-in. Tool X is the currently a hot tool in category 2 because it is faster and more secure than other popular tools in that category, namely Y and Z.

    • Ensure the last slide has the key points (not a big Thank You or Q&A)
    • Limit the content to what you can deliver in 7 minutes (in rehearsals, aim to finish in 6 minutes; the actual talk is likely to take longer than the rehearsal). The remaining 3 minutes is for Q&A.
  7. Start the talk with a PUNCH, WIIFY, and the Roadmap. Avoid the traditional My name is A, my topic is B type start.
    To keep things simpler in this round, assume the host/MC will introduce you first (i.e., no need to do a self-intro yourself).
  8. End the talk with key points and CtA. It is also good to reiterate WIIFY together with key points.

No open laptops during lightning talks!

One important way we can support the speakers is to give them our undivided attention. To that end, we have a policy of not allowing any open laptops (among the audience) during lightning talks.
Speakers: Please finalize your slides before the session starts, as you will not be able to do last minute tweaks to slides during the session itself (due to the above policy).

After the session
  • ⏰ by Thursday midnight: Speakers should update the issue description (rather than add as a new comment) as follows:
    • Add a link to the slides.  Note that GitHub allows attaching ppt files. Just drag-drop the files to the comment box.
    • State WIIFY, Key Points, Impact
  • ⏰ by Friday midnight:
    • All must submit feedback to speakers (via TEAMMATES). The quality of feedback is considered in grading.
    • Feel free to continue the discussion about each talk in the issue tracker.

Week 4 [5th Feb]


If you haven't already,

  • [If applicable] get started with contributing to the external project. If you don't make any progress by week 5, you need to find another project.



Week 5 [12th Feb]


  • As you mentor CS3281 students, try to get them to peer-review each others' PRs and to help guide other contributors.


  • Lecture : Lightning Talks Round A - Part 3

Week 6 [19th Feb]


  • Lecture: Tips for Tech Talks - Part 2


  • ⏰ by Friday : Post Lightning Talks Round B topic in the issue tracker, as was done in Round A
  • ⏰ by end of recess week : Aim to finish the 'Book Chapter Report' activity



Week 7 [4th Mar]

For your reference, below are the instructions given to CS3281 students regarding their plan for the second half of the semester.

By the end of this semester, we expect you to,

  1. deliver substantial value to the project, which may be through developing a fairly big feature (working solo or with others) or doing a bunch of tasks in a specific area,
  2. more importantly, to gain expertise in a substantial part of the codebase (while being fairly familiar with the rest).

If you can't work out a plan that achieves the above, you can seek guidance from the seniors and/or the prof as well.

Deliverables for you (i.e., CS3282 mentors):

  1. guide mentees achieve the above goals,
  2. to ensure CS3281 students collectively gain expertise in the full codebase, and is able to 'manage' the project in future by themselves.


  • ⏰ by Monday
    • [If applicable] Some progress expected on the external project


  • Lightning Talks Round B - Part 1 (see Lightning Talks Schedule)
    • In your slide design and delivery, try to apply the tips covered in week 6 lecture. Some of those points are given in the panel below but you are advised to look at the lecture slides again before you prepare for the talk. While are you not required to use the generic slide deck pptx file, do take a look at it and make sure all its elements are also present in your slide deck.
    • In addition, aim for a stronger application of tips given for round A (see the panel below for a reference)
  • Team-specific discussions (if there's time left)

Tips for round B

  • Make slides more visual:

    • Instead of bullet points, use other suitable visual structures e.g., a flow chart

    • Instead of text, use graphical forms

    • But avoid visual clutter such as background graphics that do not add value

    • Given below is a video containing some slide design tips:

  • Make the point clear:

    • Ask yourself "what is the point I want to make in this slide?" Once you have determined the point, ask yourself "can I improve the slide to make the point clearer?"
    • Use assertion-evidence type slides rather that topic-content type where applicable.
    • Ensure every technical term used is either known to the audience or you define it explicitly. If you are not sure if the audience know the definition, slip in the definition casually to your explanations.
    • Demo/describe your solution early to avoid setting expectations too high. If you spend a lot of time explaning the problem or criticising competing solutions, audience expectations of your own solution might climb too high.
  • Animate meaningfully: Use animations/transitions to enhance the meaning of your slide content.

  • Use the Click-Look-Recall technique instead of using cue cards:

    • Ensure that you know the sequence of your talking points in advance.
    • Map each point to a click on your slide, which should add a visual cue onto the slide that reminds you of the point you are supposed to talk about.
    • During delivery, look at the screen as you click, and use the visual cue to recall the point.

For reference: Tips from round A

Week 8 [11th Mar]

  • ⏰ by Friday
    • Peer evaluations
  • ⏰ by Sunday
    • Update the progress page


  • Lecture :
    • Lightning Talks Round B - Part 2
    • Team-specific discussions

Week 9 [18th Mar]

  • ⏰ by Thursday
  • Have a sync-up meeting with CS3281 mentees, together with non-CS3282 mentors (if they are available).


  • Lecture: Lecture:
    • Lightning Talks Round B - Part 3

Week 10 [25th Mar]

As CS3281 students are now entering the managing phase, get them more involved in management activities of the project.


  • ⏰ by Thursday [If applicable] Document your observations about the workflow of your external OSS project:
    • Info to include:
      1. Links to any online documents about the workflow of external project
      2. Important things you learned from contributing to that project, if any
      3. Practices/tools of the external project that you think can be adopted by your NUS-OSS project
      4. [Optional] Suggested areas of improvement for the external project
    • Submission:
      • Add your observations to the file https://github.com/nus-cs3281/2024/students/yourName/observations.md.
        Afterwards, your additions will appear in the Observations page.
      • Recommended length: about 0.5 - 1 A4 page
    • If you contributed to multiple projects, you may document all those projects in your observations or choose one of them to include.
    • If some of your classmates contributed to the same project, you should still write your own observations.


  • Lecture (NUS Well-Being Day):
    • Tips for Tech Talks - Part III (to be released online)
    • Discussion about observations from the external project (to be done online)

Week 11 [1st Apr]

Help to maintain a healthy supply of beginner-friendly issues: If you encounter small non-urgent issues (so called 'low hanging fruits'), it is best to leave them for future new contributors, because we expect several new contributors to join the project during the upcoming summer.

In fact, go the extra mile to create such issues when you can, as a good supply of such beginner-friendly issues is an essential asset for an OSS project.


  • Help CS3281 students finish ongoing (and new) PRs by end of week 12, with one week to spare.


  • Project-specific discussions:
    • Strategize how to wrap up the semester's work
    • Discuss the future of the project, for the summer and beyond

Week 12 [8th Apr]


  • Lecture : Lightning Talks Round C - Part 1
    • No Q&A
    • This should be an improved version of the talk you gave in round B, based on feedback you received for it.
      • You can also consider incorporating into the talk answers to relevant questions raised during round B Q&A session.
      • Also consider adding info on the cons/downsides of the topic so that the talk can become more balanced, and your message to the audience become more credible (i.e., it appears like advice from an expert rather than a sales pitch).
    • Talk length should be strictly 7 minutes or less, as we have 10-11 talks per session.
    • Assume some audience members have not seen round A or B (we plan to invite CS3281 students to attend this round of talks). So, don't refer to past rounds during your talk.

Targets for LT Round C

In this round you are expected to hit almost all targets(🎯) given below. You are recommended to follow tips (💡) given under each target closely.

Talk structure

  1. 🎯 The talk is well-structured and aims for high impact.
    1. 💡 Document the following elements an extra/hidden slide in the slide deck (for verification/grading purposes)
      • Intended impact:
        • Know
        • Believe
        • Do
      • WIIFY
      • Key points
      • Call-to-action
      • Roadmap
      • PUNCH

Slide design

  1. 🎯 No visual clutter
    1. 💡 Remove any conspicuous background graphics that do not add value
    2. 💡 Avoid using images that don't really add value
  2. 🎯 Visual slides
    1. 💡 Wherever you have bullet points (or paragraph text), look for another suitable structure such as a table, flow chart, map, graph, etc.
    2. 💡 Use graphics instead of (or in addition to) text
  3. 🎯 Important elements of the talk are captured prominently in slides
    1. 💡 Ensure WIIFY, Roadmap, start/end of sections of the Roadmap, and each keypoint are captured as separate slides or as noticeable visual elements
    2. 💡 Use words Key point in text so that they are hard to miss
      e.g., KEY POINT: Java is verbose!
    3. 💡 use a different (and more prominent) design for important slides and key elements
      e.g., use a brighter background, bigger font size
  4. 🎯 Last slide is used to good effect
    1. 💡 at least it should contain key points and the call-to-action
    2. 💡 as the last slide should contain the essence of the talk, it is ok to be 'crowded'
    3. 💡 you may want to include your contact details in the last slide too
  5. 🎯 Slides optimized to convey the point, and help your delivery
    1. 💡 Write down in slide notes the point(s) a slide is supposed to convey. Each slide should have at least a main point, and possibly some sub points. e.g.,
      Java is still the most popular language today.
      * Java positions lead job vacancies.
      * Highest percentage of devices support JVM.
      * All fortune 500 companies use Java for their enterprise systems.
    2. 💡 If possible, use the assertion-evidence format to bring out the main point. i.e., show the main point as the slide title.
      e.g., the slide title can be Java is still the most popular language today. (i.e., the main point) instead of Java popularity (i.e., a phrase/topic)
    3. 💡 For each sub point, ensure there is a corresponding click.
      e.g., the slide should have at least three clicks so that you can use the click-look-recall technique as a prompt to talk about each of the three sub points.
  6. 🎯 Minimum use of jargon
    1. 💡 Format jargon in a different way e.g., use a different font so that you remember to define them. Alternatively, put the definition on the slide.
  7. 🎯 Meaningful animations
    1. 💡 Use meaningful slide transitions e.g., use a more drastic transition when moving from one major section to another.
    2. 💡 When possible, gradually remove/introduce elements into a slide so that the audience can maintain context i.e., minimize drastic change of scenery.


  1. 🎯 Start with a PUNCH (instead of traditional self-intro)
    1. 💡 Open with a brief greeting, and jump starlight into your PUNCH
  2. 🎯 WIIFY and Roadmap clearly communicated.
    1. 💡 Use clear 'marker' phrases to draw attention to these important elements of the talk. e.g., "I think this is a very important topic to you because ..." "In the next few minutes, I'm going to talk about (a)... (b)... and (c)"
  3. 🎯 Each key point is clearly made
    1. 💡 When the key slide comes up, use the marker phrase "So, the key point here is ..." to draw attention to it.
  4. 🎯 Finish by reiterating key points, and call-to-action.
    1. 💡 Follow the call-to-action with a clear "Thank you!" and if applicable, "I'm ready for your questions" to indicate the end of your talk.

Week 13 [15th Apr]


  • Lecture : Lightning Talks Round C - Part 2