This site is from a past semester! The current version will be here when the new semester starts.
CS2113/T 2020 Jan-Apr
  • Full Timeline
  • Week 1 [from Mon Jan 13]
  • Week 2 [from Wed Jan 15 noon]
  • Week 3 [from Wed Jan 22 noon]
  • Week 4 [from Wed Jan 29 noon]
  • Week 5 [from Wed Feb 5 noon]
  • Week 6 [from Wed Feb 12 noon]
  • Week 7 [from Wed Feb 19 noon]
  • Week 8 [from Wed Mar 4 noon]
  • Week 9 [from Wed Mar 11 noon]
  • Week 10 [from Wed Mar 18 noon]
  • Week 11 [from Wed Mar 25 noon]
  • Week 12 [from Wed Apr 1 noon]
  • Week 13 [from Wed Apr 8 noon]
  • Textbook
  • Admin Info
  • Report Bugs
  • Forum
  • Instructors
  • Announcements
  • File Submissions
  • Tutorial Schedule
  • repl.it link
  • Java Coding Standard
  • Forum Activities Dashboard
  • Participation Dashboard

  •  Individual Project (iP):
  • Individual Project Info
  • Duke Upstream Repo
  • iP Code Dashboard
  • iP Progress Dashboard

  •  Team Project (tP):
  • Team Project Info
  • Team List
  • tP Code Dashboard
  • tP Progress Dashboard
  • Week 4 [from Wed Jan 29 noon] - Tutorial

    1 Discuss tP progress

    • Show your collaborative project doc(s) to the tutor.
    • Share the project direction (i.e., user profile, value proposition) you have decided upon.
    • Give feedback to the other team. Some examples:
      • Suppose you belong to the proposed target user group; do you find the value proposition attractive?
      • Do you foresee any potential violation of the project constraints?

    2 Review Peer iP PRs

    • The quality of the work you will do in this tutorial task will be considered for your iP grade.
    • This task is applicable even if you have been exempted from the iP.

    Review a PR created by your classmates by following the steps given below. Note that you are expected to have read the following guidelines as given in this week's iP tasks:

    We expect the PR peer-review to be mutually beneficial to the reviewer and the author. i.e., you receive suggestions on how to improve your code, and get to learn alternative designs by reading others' code.

    • If you are new to GitHub PRs, see GitHub help on how to review PRs.
    • Read the blog post 10 tips for reviewing code you don’t like - by David Lloyd (a Red Hat developer). In particular, follow the tip about phrasing objections as questions.
    • Rather than give one overall comment for the entire PR, add specific comments at relevant places of the code.
    • Feel free to ask for more info from the author, to help you understand the code/design. For example, you can ask why the author chose to write the code in a specific way.
    • Feel free to compliment the author when appropriate e.g., hey, I like how clean this bit of code is 👍
    • You can also suggest alternatives for the author to consider. Feel free to refer back to your own PR if you think a comparison would benefit the author. You are very welcome to offer to help the author with the project (in your PR review, or outside of it) if you think the author needs such help i.e., as an informal mentor. Such mentoring will help both the author and you to become stronger programmers.
    • You can use Markdown (specifically, GitHub-Flavored Markdown) in your comments.

    Guidelines for authors:

    • Don't get into arguments with reviewers. If you disagree with the reviewer, you can explain your own view in a non-confrontational way without trying to prove your way is better.
    • Thank reviewers for their inputs.

    • Step 1 Form sub-groups of 2 (preferred) or 3 (if unavoidable) members. You can form sub-groups between tP teams that are under the same tutor.
    • Step 2 Open the PR allocated to you, as given in the panel below.
    Team Reviewer PR to review
    CS2113T-M16-1 E0309556 alwayshuizhen
    CS2113T-M16-1 Keith-JK yantingsanity
    CS2113T-M16-1 jichngan jinfayap
    CS2113T-M16-1 joelczk JensonWee
    CS2113T-M16-1 lwxymere cheongisabella
    CS2113T-M16-2 JensonWee zi-hui
    CS2113T-M16-2 alwayshuizhen lwxymere
    CS2113T-M16-2 cheongisabella jichngan
    CS2113T-M16-2 jinfayap joelczk
    CS2113T-M16-2 yantingsanity E0309556
    CS2113T-M16-2 zi-hui Keith-JK
    CS2113T-T12-1 MeLoveCarbs sliu107
    CS2113T-T12-1 lowxizhi ananda-lye
    CS2113T-T12-1 matthewc97 GanapathySanathBalaji
    CS2113T-T12-1 synCKun btricec
    CS2113T-T12-2 Janicetyy JTWang2000
    CS2113T-T12-2 NyanWunPaing quinnyyy
    CS2113T-T12-2 itskesin NizarMohd
    CS2113T-T12-2 sitinadiah25 siuhian
    CS2113T-T12-3 GanapathySanathBalaji SibingWu
    CS2113T-T12-3 NizarMohd alexlim510
    CS2113T-T12-3 hongquan448 g-lilian
    CS2113T-T12-3 terrytay DDzuikeai
    CS2113T-T12-4 anqi-nus iceclementi
    CS2113T-T12-4 benchan911 Andrew880228
    CS2113T-T12-4 harithadiv trishaangelica
    CS2113T-T12-4 lowjiayee JosephLimWeiJie
    CS2113T-T13-1 JLoh579 matthewc97
    CS2113T-T13-1 Shannonwje yuchenlichuck
    CS2113T-T13-1 jiajuinphoon lowxizhi
    CS2113T-T13-1 kokjoon97 Janicetyy
    CS2113T-T13-1 trishaangelica hongquan448
    CS2113T-T13-2 A11riseforme synCKun
    CS2113T-T13-2 HAOYUN49 melylopez99
    CS2113T-T13-2 iceclementi Jeremy733
    CS2113T-T13-2 wangqinNick Yukilite
    CS2113T-T13-3 JustinnT JeremiasLiew
    CS2113T-T13-3 Yukilite jiajuinphoon
    CS2113T-T13-3 andy-aw-why dejunnn
    CS2113T-T13-3 brandoncjh nigellenl
    CS2113T-T13-3 thanhduc2000 Zhilin-Huang
    CS2113-T14-1 Andrew880228 andy-aw-why
    CS2113-T14-1 Zhilin-Huang Bencotti
    CS2113-T14-1 g-lilian wangqinNick
    CS2113-T14-1 quinnyyy nguan1
    CS2113-T14-1 sliu107 JustinnT
    CS2113-T14-2 alaukiknpant JLoh579
    CS2113-T14-2 katelo731 lamyuewei
    CS2113-T14-2 melylopez99 rsanchez-macias
    CS2113-T14-2 yolanmz gmuthu17
    CS2113-T14-3 Bencotti lowjiayee
    CS2113-T14-3 JTWang2000 harithadiv
    CS2113-T14-3 rsanchez-macias anqi-nus
    CS2113-T14-3 yuchenlichuck alaukiknpant
    CS2113-T14-4 JosephLimWeiJie kcubey
    CS2113-T14-4 SibingWu benchan911
    CS2113-T14-4 gmuthu17 RenzoTsai
    CS2113-T14-4 nguan1 terrytay
    CS2113-T15-1 ananda-lye chengTzeNing
    CS2113-T15-1 btricec sitinadiah25
    CS2113-T15-1 nigellenl NyanWunPaing
    CS2113-T15-1 rdimaio bennychanya
    CS2113-T15-1 siuhian itskesin
    CS2113-T15-2 JeremiasLiew katelo731
    CS2113-T15-2 Jeremy733 DeetoMok
    CS2113-T15-2 alexlim510 HAOYUN49
    CS2113-T15-2 kcubey thanhduc2000
    CS2113-T15-3 DeetoMok yolanmz
    CS2113-T15-3 RenzoTsai yuxianglim
    CS2113-T15-3 bennychanya MeLoveCarbs
    CS2113-T15-3 chengTzeNing rdimaio
    CS2113-T15-4 DDzuikeai Shannonwje
    CS2113-T15-4 dejunnn kokjoon97
    CS2113-T15-4 lamyuewei brandoncjh
    CS2113-T15-4 yuxianglim A11riseforme

    If the student you have been allocated to review has not created a PR (or the PR has a trivial amount of code), you can choose another PR that is allocated to another student in your own tutorial but not in your sub-team.

    Tip for future reference: GitHub allows you to filter PRs/Issues using various criteria such as author:AuthorUsername (example -- see the filters text box in the target page).

    Alternatively, you can use PR labels (if any) to filter PRs/Issues.

    • Step 3 Review the code for coding standard compliance. You can view the code in the PR by clicking on the Files changed tab. When you find a possible coding standard violation, do the following:

      1. Show it to your review partner(s) to confirm it is indeed a violation. You can seek tutor's opinion if you are not sure.
      2. Add a comment to communicate your finding with the author.
        • Hover over the offending line of code and click on the that appears to start the comment.

        • Write your comment ( You can use GFMD syntax in your comment)
          e.g., Shouldn't this be **in a new line**, as per our _coding standard_? :thinking:

          Shouldn't this be in a new line, as per our coding standard? 🤔

          e.g.,

          Also consider alternative names such as doX or putX here, which might be more in line with the coding standard.

        • As illustrated in the examples above, phrasing comments as questions or using words such as 'consider' (instead of You should do X or Change this to X) is recommended to reflect that you are a peer, not a superior.

        • When you are done writing the comment, click on the (not the button)

    • Step 4 Review the code for code quality best practices you have learned so far. When you find a potential opportunity to improve the code quality, confirm with your review partners (and the tutor, if needed) and add a comment as before. Some code quality issues you can check for (not an exhaustive list):

      • Methods that are too long
      • Code nested too deeply
      • Not enough SLAP
      • Names that can be improved
      • Logic hard to understand

    As this is a peer review of PRs, you are not expected to always know better than the PR author. Feel free to,

    • Compliment the author if you learned a better way of implementing something by reviewing the PR. e.g., This way of doing X seems much cleaner that the way I did. Nice :+1:
    • Ask the author for more info. e.g., I find this use of class X interesting? May I know why you did it this way instead of ...?
    • Step 5 Finish the review. When it is time to end the tutorial, finish the review as follows:

      1. Click on the at the top of the page.
      2. Choose the Comment option (not Approve or Request changes).
      3. In the comment box, mention your review partners e.g., Also took part in this review @JonhDoe. You can also give an overall comment about the code e.g.,
        Overall, we found your code easy to read for the most part except a few places
        where the nesting was too deep. Hope our comments help you improve the code further.
        All the best for your iP :-)
        [Also took part in this review: @JonhDoe]
      4. Click on the button to finish the review.
    • Step 6 [After the tutorial] Respond to comments received. You are recommended to (but not obliged to) respond to comments received from peers, especially if the PR reviewer asked you for more info. As mentioned in the guidelines below, do not get into arguments with PR reviewers/authors.

    We expect the PR peer-review to be mutually beneficial to the reviewer and the author. i.e., you receive suggestions on how to improve your code, and get to learn alternative designs by reading others' code.

    • If you are new to GitHub PRs, see GitHub help on how to review PRs.
    • Read the blog post 10 tips for reviewing code you don’t like - by David Lloyd (a Red Hat developer). In particular, follow the tip about phrasing objections as questions.
    • Rather than give one overall comment for the entire PR, add specific comments at relevant places of the code.
    • Feel free to ask for more info from the author, to help you understand the code/design. For example, you can ask why the author chose to write the code in a specific way.
    • Feel free to compliment the author when appropriate e.g., hey, I like how clean this bit of code is 👍
    • You can also suggest alternatives for the author to consider. Feel free to refer back to your own PR if you think a comparison would benefit the author. You are very welcome to offer to help the author with the project (in your PR review, or outside of it) if you think the author needs such help i.e., as an informal mentor. Such mentoring will help both the author and you to become stronger programmers.
    • You can use Markdown (specifically, GitHub-Flavored Markdown) in your comments.

    Guidelines for authors:

    • Don't get into arguments with reviewers. If you disagree with the reviewer, you can explain your own view in a non-confrontational way without trying to prove your way is better.
    • Thank reviewers for their inputs.