This site is from a past semester! The current version will be here when the new semester starts.
CS2103/T 2020 Aug-Dec
  • Full Timeline
  • Week 1 [Mon, Aug 10th]
  • Week 2 [Fri, Aug 14th]
  • Week 3 [Fri, Aug 21st]
  • Week 4 [Fri, Aug 28th]
  • Week 5 [Fri, Sep 4th]
  • Week 6 [Fri, Sep 11th]
  • Week 7 [Fri, Sep 18th]
  • Week 8 [Fri, Oct 2nd]
  • Week 9 [Fri, Oct 9th]
  • Week 10 [Fri, Oct 16th]
  • Week 11 [Fri, Oct 23rd]
  • Week 12 [Fri, Oct 30th]
  • Week 13 [Fri, Nov 6th]
  • Textbook
  • Admin Info
  • Dashboards
  •  Individual Project (iP):
  • Individual Project Info
  • iP Upstream Repo
  • iP Showcase
  • iP Code Dashboard
  • iP Progress Dashboard

  •  Team Project (tP):
  • Team Project Info
  • Addressbook-level3
  • Team List
  • tP Code Dashboard
  • tP Progress Dashboard
  • Report Bugs
  • Forum
  • Gitter (Chat)
  • Instructors
  • Announcements
  • Files
  • Tutorial Schedule
  • Java Coding Standard
  • Git Conventions
  • Forum Activities Dashboard
  • Participation Dashboard
  • Week 5 [Fri, Sep 4th] - Summary

    Topics:

    • [W5.1] Requirements: Intro

    • [W5.2] Requirements: Gathering

    • [W5.3] Requirements: Specifying

    • [W5.8] RCS: Managing Pull Requests

    • [W5.1] Requirements: Intro
    • [W5.1a] Requirements → Requirements → Introduction

    • [W5.1b] Requirements → Requirements → Non-functional requirements

    • [W5.1c] Requirements → Requirements → Quality of requirements

    • [W5.1d] Requirements → Requirements → Prioritizing requirements

    • [W5.2] Requirements: Gathering
    • [W5.2a] Requirements → Gathering Requirements → Brainstorming

    • [W5.2b] Requirements → Gathering Requirements → Product surveys

    • [W5.2c] Requirements → Gathering Requirements → Observation

    • [W5.2d] Requirements → Gathering Requirements → User surveys

    • [W5.2e] Requirements → Gathering Requirements → Interviews

    • [W5.2f] Requirements → Gathering Requirements → Focus groups

    • [W5.2g] Requirements → Gathering Requirements → Prototyping

    • [W5.3] Requirements: Specifying

       Prose

    • [W5.3a] Requirements → Specifying Requirements → Prose → What

       Feature Lists

    • [W5.3b] Requirements → Specifying Requirements → Feature Lists → What

       User Stories

    • [W5.3c] Requirements → Specifying Requirements → User Stories → Introduction

    • [W5.3d] Requirements → Specifying Requirements → User Stories → Details

    • [W5.3e] Requirements → Specifying Requirements → User Stories → Usage

       Glossary

    • [W5.3f] Requirements → Specifying Requirements → Glossary → What

       Supplementary Requirements

    • [W5.3g] Requirements → Specifying Requirements → Supplementary Requirements → What

    • [W5.4] Code Quality

       Readability

    • [W5.4a] Implementation → Code Quality → Readability → Introduction

    • [W5.4b] Implementation → Code Quality → Readability → Basic → Avoid long methods

    • [W5.4c] Implementation → Code Quality → Readability → Basic → Avoid deep nesting

    • [W5.4d] Implementation → Code Quality → Readability → Basic → Avoid complicated expressions

    • [W5.4e] Implementation → Code Quality → Readability → Basic → Avoid magic numbers

    • [W5.4f] Implementation → Code Quality → Readability → Basic → Make the code obvious

    • [W5.4g] Implementation → Code Quality → Readability → Intermediate → Structure code logically

    • [W5.4h] Implementation → Code Quality → Readability → Intermediate → Do not 'Trip Up' reader

    • [W5.4i] Implementation → Code Quality → Readability → Intermediate → Practice KISSing

    • [W5.4j] Implementation → Code Quality → Readability → Intermediate → Avoid premature optimizations

    • [W5.4k] Implementation → Code Quality → Readability → Intermediate → SLAP hard

    • [W5.4l] Implementation → Code Quality → Readability → Advanced → Make the happy path prominent

       Unsafe Practices

    • [W5.4m] Implementation → Code Quality → Error-Prone Practices → Introduction

    • [W5.4n] Implementation → Code Quality → Error-Prone Practices → Basic → Use the default branch

    • [W5.4o] Implementation → Code Quality → Error-Prone Practices → Basic → Don't recycle variables or parameters

    • [W5.4p] Implementation → Code Quality → Error-Prone Practices → Basic → Avoid empty catch blocks

    • [W5.4q] Implementation → Code Quality → Error-Prone Practices → Basic → Delete dead code

    • [W5.4r] Implementation → Code Quality → Error-Prone Practices → Intermediate → Minimize scope of variables

    • [W5.4s] Implementation → Code Quality → Error-Prone Practices → Intermediate → Minimize code duplication

       Code Comments

    • [W5.4t] Implementation → Code Quality → Comments → Introduction

    • [W5.4u] Implementation → Code Quality → Comments → Basic → Do not repeat the obvious

    • [W5.4v] Implementation → Code Quality → Comments → Basic → Write to the reader

    • [W5.4w] Implementation → Code Quality → Comments → Intermediate → Explain WHAT and WHY, not HOW

    • [W5.5] Refactoring
    • [W5.5a] Implementation → Refactoring → What

    • [W5.5b] Tools → IntelliJ IDEA → Refactoring

    • [W5.5c] Implementation → Refactoring → How

    • [W5.5d] Implementation → Refactoring → When : OPTIONAL

    • [W5.6a] Implementation → Error Handling → Assertions → What :

    • [W5.6b] Implementation → Error Handling → Assertions → How :

    • [W5.6c] Implementation → Error Handling → Assertions → When :

    • [W5.7] Java: streams
    • [W5.7a] C++ to Java → Miscellaneous Topics → Streams: Basic :

    • [W5.8] RCS: Managing Pull Requests
    • [W5.8a] Tools → Git and GitHub → Merging PRs

    Admin:

    1. Submit post-lecture quiz counted for participation
    2. Practice peer evaluation on TEAMMATES Thu, Sep 10th 2359 counted for participation

    iP:

    1. Generate a new jar file
    2. Add Increments as PRs: A-Assertions, A-CodeQuality, A-Lambdas, A-Streams
    3. Add Increment: A-CI
    4. Add an extension

    tP:

    1. Brainstorm user stories before the tutorial
    2. Choose user stories for v1.2 before/during the tutorial