CS3281 Schedule

The schedule for future weeks is tentative, given as a reference only. The prof will finalize the details of a week near to the start of the week, although major changes are highly unlikely.

Week 1 [9th Jan]

Todo

  • Update GitHub profile: As most of your work will be submitted via GitHub, you are encouraged to update your GitHub profile with your full or partial name.
  • Add your info to the repo nus-cs3281/2023 [⏰ Deadline: Friday]. You will be given write permission to the repo by Monday.
  • Set up the dev environment of your project in your Computer. Follow instructions provided by the project for new contributors.
  • Join nusossprojects slack channel when you receive the invitation. As our projects use slack for chats, please keep slack running (and notifications enabled) during periods in which you are actively involved in our projects (or check slack at least once a day).

Monday

  • Lecture: CS3281 Module Intro
    • Online lecture (Zoom link is in Canvas course home page)

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.
  • Agenda
    • 10-11am: A common Zoom session for students and mentors to introduce themselves. Try to join from a private location where you can use the webcam and appear without a mask. The Zoom link will be posted in Canvas.
    • 11am onwards: Separate briefings for each project, on Zoom, led by mentors. e.g., technical overview, on-boarding, etc. Will be recorded in case some students are interested to learn a 2nd project. The Zoom links will be provided by the mentors on the day.
    • Afternoon: Students do tasks indicated by mentors earlier and consult mentors if needed.
    • 4-5.30pm: Prof to meet with each team separately for a short debriefing. Mentors need not join.
      Use the same Zoom link used for the intro session.

Week 2 [16th Jan]

Monday

  • Lecture: Product demos, project-specific discussions
  • Demo the product created by your project.
    • MarkBind, RepoSense, TEAMMATES: ~20 minutes each
      CATcher: 10-15 minutes (also include WATcher in the demo)
    • 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 (but preferred) for every team member to take part either. Decide among yourselves who will demo which feature.

Week 3 [23rd Jan]

Monday

  • Lecture: Project-specific discussions

Keep records of your work

As you learn the codebase, investigate issues, learn related tools etc., try to get them recorded somewhere. Some options:

  • record in your 'knowledge' page e.g., a tool you learned
  • post it an issue in the issue tracker e.g., investigating the applicability of a tool to the project
  • an update to project documentation e.g., a solution you found to a problem that happens in the dev environment

Reasons: It increases the visibility of your work. Those records can be useful references to you and others.

Week 4 [30th Jan]

Monday

  • Lecture: Project-specific discussions

Sunday

Week 5 [6th Feb]

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

Sunday

  • Keep updating the the progress page and the knowledge page on a weekly basis, as was done in the previous week. These pages are used in grading.
  • ⏰ PR to update these csv config files if all your internal project work is not captured in the dashboard. More info about the file format can be found here.

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 6 [13th Feb]

Monday

  • Lecture: Project-specific discussions

Recess


Week 7 [27th Feb]

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

Monday

  • Lecture: Project-specific discussions

Week 8 [6th Mar]

Monday

  • Lecture: Project-specific discussions

Week 9 [13th Mar]

Monday

  • Lecture: Project-specific discussions

Week 10 [20th Mar]

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

Monday

  • Lecture: Project-specific discussions

Week 11 [27th Mar]

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.

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.

Monday

  • Lecture: Project-specific discussions

Week 12 [3rd Apr]

Monday

  • Lecture: Project-specific discussions

Week 13 [10th Apr]

Monday

  • Lecture
    • Project specific discussions

As we are now reaching the end of the semester:

  • Wrap up any ongoing PRs soon. Only merged work can be counted for grading.
  • Update your knowledge and progress pages. Those will be used in grading.

Soft deadline: end of week 13; hard deadline: end of reading week

Reading week, exam period

  • Ensure the progress/knowledge pages are up-to-date latest by the end of the first week in the exam period.

Work done after the semester

  • For those taking CS3282 in a future semester, the work done after the semester is over can be paid as part-time work, or used to earn CS3282 credit. You can do a mix too, as long as the same work is not used for both.
    • If you wish to get paid, please let prof know in advance so that the relevant paperwork can be done in time.
    • If you wish to earn CS3282 credit, keep good records of the work done so that they can be included in CS3282 work later when you take the module.
    • Any value addition towards the module (e.g., PR reviews, mentoring, development work, etc.) can be used for either of the above.
    • The work done prior to CS3282 start date can count up to 40% of the module load i.e., at least 60% of the module work needs to be done during the semester itself.
  • While keeping in touch with the project during the intervening period is not compulsory, it is strongly encouraged as it would help you to deepen your expertise in the project. The more expertise you have in the project, the better you will be able to do project management and mentoring tasks included in the CS3282 workload.
  • See here for more info on CS3282 workload.