iP: Week 4iP: Week 6


iP: Week 5

  1. Learn from others (optional)
  2. Add Increment as a branch: Level-5
  3. Add Increment: A-Packages

1 Learn from others (optional)

  • You can use the iP Code Dashboard to view others' iP code, using the Links → iP Code Dashboard item in the top navigation menu of this course website. We encourage you to read others' code and learn from them. If you adopt solutions from others (also encouraged), please follow our reuse policy.

Click on the  icon corresponding to a student name to see the code written by that person.

You can enable the [ ] show tags option at the top of the dashboard to see tags in each repo. Similarly, you can click on the  icon to see a list of commits in a specific repo.

AI Guidance » Learn from others

Scanning through a large amount of materials to find interesting bits seems like the kind of 'legwork' suitable to delegate to AI.

Here's a prompt you can write to get AI's help with learning from peer iP submissions. But don't give it to the AI directly.

Pick 20 PRs from https://github.com/NUS-CS2113-AY2627-S1/ip/pulls randomly.

Compare their code to my code in this repo (master branch). Point out up to 10 cases that differ from mine in notable ways where examining the difference could be potentially instructive to me. Present your results by doing something along the lines of /present-changes-visually skill to generate a page _temp/interesting-differences-in-PRs.html containing these differences (include explanations as well).

For each case:

  • Aask me which one is the better choice and why (or a more pointed question specific to the code).
  • After I give my opinion, give me yours.

Instead, you can ask AI's help to refine the prompt first, like this:

Help me refine the following prompt. The goal of the prompt is to get you to help me learn from peer code submissions. Feel free to extend the prompt in ways that achieves my goal better.


Pick 20 PRs from https://github.com/NUS-CS2113-AY2627-S1/ip/pulls randomly.

Compare their code to my code in this repo (master branch). Point out up to 10 cases that differ from mine in notable ways where examining the difference could be potentially instructive to me. Present your results by doing something along the lines of /present-changes-visually skill to generate a page _temp/interesting-differences-in-PRs.html containing these differences (include explanations as well).

For each case:

  • Aask me which one is the better choice and why (or a more pointed question specific to the code).
  • After I give my opinion, give me yours.

Remember to do a sanity check of the refined prompt to confirm it matches your expectations. After that, you can issue the refined prompt to Codex, possibly in a separate chat thread.

The above is an example of two useful strategies in using AI:

Good Getting AI to help you learn more with less manual work.
Good Getting AI to write/rewrite prompts.


2 Add Increment as a branch: Level-5

  • Do each increment as a Git branch. Here is an example:
    • Start a branch named branch-{increment ID} (e.g., branch-Level-5). You are recommended to have multiple commits in that branch. Follow the branch naming convention exactly or else our gradings scripts might miss your branch.
    • After the increment is ready, merge the branch-Level-5 back on to master, without a fast-forward so that git creates a separate commit for the merge. git tag that merge commit as Level-5.
    • Push the branch to your fork so that the grading script can detect it. As before, push the tag as well.
    • Advanced Git users: do not delete the branch after merging.
Duke Level-5: Handle Errors

3 Add Increment: A-Packages

  • Recommended: if you are new to git, do this as a separate branch too (for additional practice), similar to how you did Level-5 (branch name branch-A-Packages).
Duke A-Packages: Organize into Packages optional


iP: Week 4iP: Week 6