This site is from a past semester! The current version will be here when the new semester starts.

Peer EvaluationsExams


Tool: Learning Management System

This module website is the main source of information for the module. In addition, we use Canvas for some things (e.g., announcements, file submissions, grade book, ...).

Tool: Zoom (for Lectures)

Install Zoom in your computer. Installation and login instructions are here. Remember to login using your NUSNET account.

Tool: GitHub (for code hosting)

You are required to use GitHub as the hosting and collaboration platform of your project (i.e., to hold the Code repository, Issue Tracker, etc.).


Create a GitHub account (if you don't have one yet), as explained in the panel below.

More info: See Appendix E - Using GitHub.

Tool: Git (for revision control)

You are required to use Git. Other revision control software are not allowed. The recommended GUI client for Git is SourceTree, but you may use any other, or none.


Install Git and a Git GUI client on your computer.
SourceTree comes bundled with Git i.e., if you install SourceTree, you get both Git and a GUI client in one shot. If you are already comfortable using Git command line, you need not install/use a GUI client.

Set Git We use various tools to analyze your code. For us to be able to identify your commits, we encourage you to set your Git in all computers you use to a sensible string that uniquely identifies you. For example, you can set it to your GitHub username or your full name. If this user name is not set properly or if you use multiple usernames for Git, our grading scripts might miss some of your work.

After installing Git in a computer, you can set the Git username as follows:

  1. Open a command window that can run Git commands (e.g., Git bash window)
  2. Run the command git config --global YOUR_GITHUB_USERNAME (omit the --global flag to limit the setting to the current repo only)
    e.g., git config --global JohnDoe

More info about setting Git username is here.

Caveat against using other Git GUIs: While we do not insist that you use SourceTree, note that we are unable to provide any support if you run into any problems while using a different Git GUI.

Tools: for communication

Forum (for longer-running discussions)
  • The preferred channels for module-related communication is the forum on GitHub (not the Canvas forum)
  • When communicating with instructors, use the forum. Use private channels (e.g., emails, private messages, face-to-face, private chat groups) only when the forum is not suitable. Rationale: 1. More classmates can benefit from the discussions, 2. It is also safer because the prof can monitor information you receive for accuracy.
  • You are encouraged to help others in the forum (e.g., share tips, help with technical problems). We consider such sharing when giving out A+ grades and when recruiting tutors.


We encourage all to watch the forum to get alerts when new issues/comments are posted image

MS Teams (for quick chats, in-lecture consultations)
  • Use MS Teams for short chats.
  • Install MST in your computer. Installation and login instructions are here. Remember to login using your NUSNET account.

Tool: Intellij IDE

You are recommended to use Intellij IDEA for module-related programming work. While the use of Intellij is not compulsory, note that module materials are optimized for Intellij.

Use other IDEs at your own risk.


  • Install the IDE in your computer. You may use the Intellij community edition (free) or the ultimate edition (free for students).
  • If you have an older version of the IDE, we recommend updating to the latest version.

Tool: RepoSense (for authorship tracking)

We will be using a tool called RepoSense to make it easier for you to see (and learn from) code written by others, and to help us see who wrote which part of the code.

RepoSense report screenshot Figure: RepoSense Report Features

Viewing the current status of code authorship data:

  • The reports generated by the tool for the individual and team projects will be made available in the module website at some point in the semester. The feature that is most relevant to you is the Code Panel (shown on the right side of the screenshot above). It shows the code attributed to a given author.
  • Click on your name to load the code attributed to you (based on Git blame/log data) onto the code panel on the right.
  • If the code shown roughly matches the code you wrote, all is fine and there is nothing for you to do.

If the code does not match the actual authorship: Given below are the possible reasons for the code shown to mismatch the code you wrote.

  • Reason 1: the Author name of some of your commits is not known to RepoSense -- this is a result of not setting the git.username property as instructed in our Git setup instructions.
    How to check: Find the Author name of your commits that are missing (you can use SourceTree or the git log command for that -- it's not possible to do that using the GitHub interface though).
    Check if that author name is included in the RepoSense config for the iP or the RepoSense config for the tP (whichever the applicable one)
    Remedy: Send the missing author name(s) to the prof so that the RepoSense configuration can be updated accordingly.

  • Reason 2: The actual authorship does not match the authorship determined by git blame/log e.g., another student touched your code after you wrote it, and Git log attributed the code to that student instead.
    Remedy: You can add @@author annotations as explained in the panel below:

Adding @@author tags to indicate authorship

  • Reason 3: Some commits should not be included in the authorship analysis e.g., you committed the code of a third party library by mistake.
    Remedy: Let us know the hashes of the commits that need to be omitted from the analysis.

If none of the above works, please please post in the forum or contact us via so that we can advise you what to do.

We recommend you ensure your code is RepoSense-compatible by v1.3

Tool: TEAMMATES (for Peer Evaluations)

We use the TEAMMATES online peer evaluation system. TEAMMATES is a project run by NUS SoC students and used by over 0.6 million users from over 1000 universities.

Preparation: When the first feedback session is open on TEAMMATES, you will receive an eamil from TEAMMATES. There is nothing for you to do until then.

When you do receive that email, it will contain a unique link that you can use to access TEAMMATES without logging in first. Logging in to TEAMMATES using a Google account is optional (but doing so will allow you to see all your TEAMMATES sessions in one page).

Peer EvaluationsExams