[CS3281&2 - 2019]
  • Schedule
  • CS3281
  • CS3282
  • Call for Applications
  • Mentors
  • Project Expert Areas
  • Students
  • Dashboard
  • Lightning Talks Schedule
  • se-edu/learningresources
  • CS3281&2 Schedule

    Week 1 [Jan 14]

    Todo

    • Update GitHub profile: As most of your work will be submitted via GitHub, you are strongly recommended to update your GitHub profile with your full name and a suitable profile photo.
    • Add your info and your resume to the repo nus-cs3281/2019 [⏰ Deadline: Friday]. You will be given write permission to the repo by Monday.
    • Set up the dev environment of your CS3282 internal project(s) in your Computer. Follow instructions provided by the project for new contributors.
    • Join nusossprojects slack channel when you receive the invitation.

    Monday

    • Lecture : CS3281 Module Intro
      • Sit as teams. Team allocation:
        • Team 1: Marvin, Gilbert, Amrut, Jeremy,
        • Team 2: Kenneth, Chester, Chunhui, Junming
        • Team 3: Aadyaa, Shu Peng, Bryan, Pengcheng (Jacob), Ronak
        • Team 4: Zhen Yong, Wang Chao, Monika, Rahul,
        • Team 5: Chelsey, Si Jie, Henry, Ayush, Heng Yeow

    Thursday

    • Lecture: CS3282 Module Intro
      • Sit as project teams

    Saturday (Code Sprint)

    • The code sprint is an opportunity for you to spend an extended amount of time on the project so that you get a solid start to the coding activities. Some project mentors may be available during this time for you to discuss project related matters with them.

    • Venue: SR10

    • Schedule:

      • 0930 - 1200 : Project work
      • 1200 - 1300 : Lunch break (lunch provided 🍲)
      • 1300 - 1700 : Project work

    Week 2 [Jan 21]

    Todo

    • Start looking for an external project to contribute to. 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.

    Monday

    • Lecture: Tips for tech talks - Part 1
    • Choosing topics for Lightning Talks:
      • ⏰ By the end of Monday, post an issue in repo nus-cs3281/2019 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.
    • Read the schedule for next Monday to find more info about the upcoming lightning talks. The order of talks (i.e., who presents in which week) is given there too.

    Thursday

    • Lecture: Product demos, project-specific discussions
    • Demo the product created by your project.
      • Suggested timing (try not to exceed the max time limit, OK to take less time than allocated):
        • MarkBind: 10-15 minutes
        • PowerPointLabs: 20-30 minutes
        • RepoSense: 10-15 minutes
        • TEAMMATES: 10-15 minutes
      • The main objective is to learn/explain the product from the user's POV. Focus on giving an overview of the product from the user's POV, and limit to highlights of the features if there are many features (i.e., no need to do a comprehensive demo of every little feature). No need for every team member to take part either. Decide among yourselves who will demo which feature.
    • If you are presenting next Monday and if you plan to use your own laptop for the presentation, do test your connection to the projector during the session.

    Week 3 [Jan 28]

    Monday

    • Lecture: Lightning Talks Round A - Part 1
      • See the Lightning Talks Schedule (created based on the alphabetical order of last three letters of the full name (as per IVLE), limited to 1-2 students from each team per week).

    Give priority to applying the techniques covered in week 2 Monday 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 this sequence:

    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 some 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). The may be similar to key points but not necessarily the same. 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 slide content.

      • 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. This can be avoided if you rehearse the talk with a peer first.
        Peers reviewing a talk rehearsal: please listen to the talk as if you know nothing about the topic so that you can spot those holes.
      • 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.

    8. End the talk with key points and CtA. It is also good to reiterate WIIFY together with key points.

    9. Test your laptop connection to the projector in advance.

    • No laptops allowed during talks (except the speaker).
    • Note down comments about the talk on paper (provided).
    • ⏰ by Monday 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 Tuesday 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.

    Thursday

    • Lecture: Project-specific discussions

    Week 4 [Feb 4]

    Todo

    • If you haven't already, get started with contributing to the external project. If you don't make any progress by week 5, you need to find another project.
    • Get started with adding content to the learning resources repo (aka 'book chapter' deliverable).

    Book Chapter

    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 to create/enhance the relevant pages as you learn the topic. Minimally, you are expected to merge one PR by week 7 and one more by week 13.
    • Do read the instructions on how to contribute to se-edu/learningresources.
    • Improving existing content is as valuable as adding new content.
    • While you have write access to the repo, use your own fork to submit PRs.
    • You can create PRs without corresponding issues.
    • Please get the PRs reviewed and approved by a peer before requesting prof's review. You can also request reviews from past contributors of the repo (especially if you are improving an existing topic) but there is no guarantee that they will be available to review.
    • When getting reviews, it is useful to get a review from somebody how knows the topic (to help with the accuracy of the content) but also from somebody who is new to the topic (i.e., your target reader).
    • Aim to get some content merged before mid-semester break.
    • If there are others in the class working on the same topic, coordinate among yourselves to avoid duplication of work.

    Monday

    • Lightning Talks Round A - Part 2

    Thursday

    • Lecture: Project-specific discussions

    Sunday

    Don't worry if your RepoSense graph doesn't have as many ramps as others. Data shown on the RepoSense report are not directly comparable across projects or even within a project, as different projects have different commit rates and the nature of one dev's work may be very different from another. The RepoSense report is just a means for conveniently accessing your work in one page, and also a means of stress testing RepoSense.

    Week 5 [Feb 11]

    Todo

    • If you haven't started already, this is a good time to start getting at least one peer-review from classmates before requesting reviews from a senior developer.
      • You can request a review from a peer directly or you can post a 'call for reviewers' in the respective chat channels.
      • You can get early inputs from senior devs if necessary, e.g., you are not sure about the overall direction of the PR, you want to know the rationale for the current code, etc.
    • You can also help to manage new/external contributors e.g., answer their questions, review their PRs etc. Even if their question is directed at a senior dev or the prof, you can jump in and answer if you know the answer.

    Monday

    • Project Specific Discussions

    Thursday

    • Lecture : Lightning Talks Round A - Part 3

    Week 6 [Feb 18]

    Monday

    • Lecture: Tips for Tech Talks - Part 2

    Thursday

    • Lecture: Project-specific discussions

    Todo

    • ⏰ by Friday
      • Post Lightning Talks Round B topic in the issue tracker, as was done in Round A

    Recess


    • Team 1: Chelsey, Jacob, Marvin, Rahul
    • Team 2: Si Jie, Bryan, Gilbert, Junming
    • Team 3: Henry, Ronak, Amrut, Kenneth, Monika
    • Team 4: Ayush, Shu Peng, Chunhui, Zhen Yong
    • Team 5: Heng Yeow, Aadya, Jeremy, Chester, Wang Chao

    Week 7 [Mar 4]

    For the internal project(s), avoid starting work that you are not confident of finishing by week 13. Not only unmerged work will not earn credit for the module, such work might affect your grade negatively because of the waste of mentor efforts it caused to the project. Of course work abandoned due to no fault of your own (e.g., senior devs decided later the direction is not worth pursuing) will still earn you credit.

    Todo

    • ⏰ by Monday
      • Some progress expected on the external project

    Monday

    • Lightning Talks Round B - Part 1 (see Lightning Talks Schedule)
      • The break-down of rounds B1-3 will be similar to rounds A1-3 i.e., if you presented in round A1 (week 3), you will present in round B1 (week 7).
      • 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)
    • 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.

    Give priority to applying the techniques covered in week 2 Monday 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 this sequence:

    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 some 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). The may be similar to key points but not necessarily the same. 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 slide content.

      • 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. This can be avoided if you rehearse the talk with a peer first.
        Peers reviewing a talk rehearsal: please listen to the talk as if you know nothing about the topic so that you can spot those holes.
      • 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.

    8. End the talk with key points and CtA. It is also good to reiterate WIIFY together with key points.

    9. Test your laptop connection to the projector in advance.

    Thursday

    • Lecture: Project-specific discussions

    Todo

    • ⏰ by Friday
      • Some progress expected on book chapter

    Week 8 [Mar 11]

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

    Monday

    • Lecture : Lightning Talks Round B - Part 2

    Thursday

    • Lecture: Project-specific discussions

    Week 9 [Mar 18]

    Monday

    • Lecture: Lightning Talks Round B - Part 3

    Thursday

    • Lecture: Project-specific discussions

    Week 10 [Mar 25]

    Todo

    • 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 nus-cs3281/2019/students/yourName/observations.md.
        • Recommended length: about 0.5 - 1 A4 page
        • Deadline: Before week 10 Monday session
      • 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.

    Monday

    • Lecture : Feedback for LT round B

    Thursday

    • Lecture: Project-specific discussions, Discussion on external project workflow

    Week 11 [Apr 1]

    Todo

    • Plan to finish ongoing (and new) PRs by end of week 12, with one week to spare. If PRs are stalling due to lack of reviews from mentors, feel free to nag.

    • STePS preparations:

      • Start planning the posters. Note that here are some requirements from STePS regarding the poster format (e.g., include some sponsor logos). While STePS let you print the poster for free, you'll have to print it by the schedule they give, and the printing date is likely to be earlier than presentation date. Please get my feedback for the poster before printing it. You can get a copy of the previous year poster from the whoever did the poster last year. As the poster is not graded, it is ok to reuse some of the stuff from the previous year poster, but best not to copy it wholesale.
      • Submit project info (screenshots, videos etc.) to the STePS website. We want our projects to appear well in the STePS website because our main goal of participating in STePS is to gain exposure for your projects within the industry.

    Monday

    • Lecture : Tips for Tech Talks - Recap. Feedback for LT round B (remainder)

    Thursday

    • Lecture: Project-specific discussions, Discussion on external project workflow (remainder)

    Week 12 [Apr 8]

    Monday

    • Lecture : Lightning Talks Round C - Part 1
      • Venue SR1
      • No Q&A

    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 all the important elements of PUMA given below (listed in the order one would define each when planning the talk structure) as 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 gratuitous 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.

    Delivery

    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.

    Thursday

    • Lecture: Project-specific discussions

    Week 13 [Apr 15]

    Monday

    • Lecture: Lightning Talks Round C - Part 2

    Wednesday

    • STePS

    Thursday

    • Lecture:

    Reading Week [Apr 22]

    • Exit interviews (Schedule TBD)