This course will be delivered in blended learning mode (i.e., a mix of online and F2F activities) this semester.

Summary of the Course Timeline


Week 1 - Mon, Jan 12th

Topics:

  • [W1.1] OOP: Classes & Objects

  • [W1.2] OOP Inheritance

  • [W1.3] OOP: Polymorphism

  • [W1.4] Java: Collections

  • [W1.5] Exception Handling

  • [W1.6] RCS: Getting Started with Git

Full ToC


Admin:

  1. Submit the pre-course survey Fri, Jan 16th 2359
  2. Learn about the course
  3. Submit prereq topics quiz Mon, Jan 19th 2359
  4. Set up the tools Fri, Jan 16th
  5. Get started on the Git learning trail

Week 2 - Mon, Jan 19th

Topics:

  • [W2.2] SDLC Process Models: Basics

  • [W2.3] RCS: Getting Started with GitHub

  • [W2.4] RCS: Doing More with Revision History

  • [W2.5] IDEs: Basic Features

  • [W2.6] Automated Testing of Text UIs

Full ToC


Admin:

  1. Submit weekly quiz Fri, Jan 23rd 1600
  2. Get connected to our communication channels

iP:

  1. Learn about the project
  2. Set up prerequisites
  3. Set up the project on your computer
  4. Add Increments while committing frequently: Level-0, Level-1, Level-2, Level-3, Level-4, A-TextUiTesting, Level-5, Level-6, A-Enums Fri, Jan 23rd 1600

Week 3 - Mon, Jan 26th

Topics:

  • [W3.1] RCS: Branching

  • [W3.2] RCS: Creating Pull Requests

  • [W3.3] Automating the Build Process

  • [W3.4] Java: JavaDoc, file I/O, packages, JARs

  • [W3.5] Code Quality: Coding Standards

  • [W3.6] Developer Testing

  • [W3.7] Unit Testing

Full ToC


Admin:

  1. Submit weekly quiz
  2. [CS2103 students only] Form teams during the tutorial

iP:

  1. Do any leftover iP tasks from the previous week
  2. Create a PR to the upstream repo
  3. Add Increments as branches: Level-7, Level-8
  4. Add Increments: A-MoreOOP, A-Packages, A-Gradle, A-JUnit, A-Jar
  5. Add Increments as parallel branches: A-JavaDoc, A-CodingStandard, Level-9
  6. [Optional] Get a head start on JavaFX

tP:

  1. Individual Task: Explore AB3 features Sat, Jan 31st 23:59
  2. Team Task: Set up a project meeting time Tue, Feb 3rd
  3. Team Task: Check up on team's collective iP status Tue, Feb 3rd

Week 4 - Mon, Feb 2nd

Topics:

  • [W4.1] Design: Models

  • [W4.2] Class/Object Diagrams: Basics

  • [W4.3] Class Diagrams: Beyond Basics

  • [W4.4] Java: JavaFX

  • [W4.5] Java: varargs

  • [W4.6] Code Quality: Naming

  • [W4.7] Static Analysis

  • [W4.8] Code reviews

  • [W4.9] RCS: Managing Pull Requests I

Full ToC


Admin:

  1. Accept GitHub invitation from the course organization
  2. Submit weekly quiz

iP:

  1. Use GFMD in the PR description
  2. Review some peer PRs Fri, Feb 6th 1600
  3. Learn from others (optional)
  4. Add Increments as branches: A-CheckStyle, Level-10, A-Varargs

tP:

  1. Start weekly project meetings
  2. Start a collaborative doc to take project notes before the tutorial
  3. Decide on an overall project direction (user profile, value proposition) decide by tutorial, submit by: Sat, Feb 7th 23:59

Week 5 - Mon, Feb 9th

Topics:

  • [W5.1] Requirements: Intro

  • [W5.2] Requirements: Gathering

  • [W5.3] Requirements: Specifying

  • [W5.8] RCS: Managing Pull Requests II

Full ToC


Admin:

  1. Submit weekly quiz
  2. [optional] Submit midterm feedback for the course Sat, Feb 14th 2359
  3. Prelim peer evaluation on TEAMMATES Thu, Feb 12th 2359

iP:

  1. Generate a new JAR file
  2. Write some full commit messages
  3. Add Increments as PRs: A-Assertions, A-CodeQuality, A-Streams
  4. Add Increment: A-CI
  5. Add an extension

tP:

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

Week 6 - Mon, Feb 16th

Topics:

  • [W6.1] Modeling: Sequence Diagrams

  • [W6.2] Architecture Diagrams

  • [W6.3] IDEs: Intermediate Features

  • [W6.4] Logging

Full ToC


Admin:

  1. Submit weekly quiz

iP:

  1. Add Increment: A-AiAssisted
  2. Add Increments: A-BetterGui, A-Personality, A-MoreErrorHandling, A-MoreTesting
  3. Finalize the features
  4. Set up a product website
  5. Submit the final version Fri, Feb 20th 2359

tP:

  1. Conceptualize the MVP version
  2. Draft the feature specification Sun, Feb 22nd 23:59
  3. Set up the project repo
  4. Get familiar with the codebase

Week 7 - Mon, Mar 2nd

Topics:

  • [W7.1] Requirements: Use Cases

  • [W7.2] Design: High-Level View

  • [W7.3] Design: Fundamentals

  • [W7.4] IDEs: Advanced Features : OPTIONAL

  • [W7.5] Integration Approaches

  • [W7.6] Project Mgt: Scheduling and Tracking

  • [W7.7] Project Mgt: Workflows

Full ToC


Admin:

  1. Submit weekly quiz

iP:

  1. [Optional] Get more out of the iP

tP: v1.1

  1. Do a 'workflow practice' session Thu, Mar 5th 23:59
  2. Update the project website
  3. Update the DG: user stories, glossary, NFRs, use cases
  4. Start the next iteration

Week 8 - Mon, Mar 9th

Topics:

  • [W8.1] [Revisiting] Drawing Class/Object Diagrams - Basics

  • [W8.2] [Revisiting] Drawing Class/Object Diagrams - Intermediate

  • [W8.3] [Revisiting] Drawing Sequence Diagrams

  • [W8.4] Testing: Types

  • [W8.5] Testing: Intermediate Concepts

Full ToC


Admin:

  1. Submit weekly quiz
  2. Submit midterm peer evaluations on TEAMMATES Sun, Mar 15th 2359

iP:

  1. Evaluate two peer iPs Sat, Mar 14th 2359

tP: v1.2

  1. Divide MVP features among members
  2. / [Optional] Rename packages/classes
  3. Add the first functionality increment Thu, Mar 12th 23:59

Week 9 - Mon, Mar 16th

Topics:

  • [W9.1] Conceptual Class Diagrams (aka OODMs)

  • [W9.2] Activity Diagrams

  • [W9.3] Conceptualizing a Design

  • [W9.4] Architecture Diagrams: Drawing

  • [W9.5] Design Principles

  • [W9.6] [Revisiting] SDLC Process Models

  • [W9.7] SDLC Process Models (continued)

  • [W9.8] Writing Developer Documents

Full ToC


Admin:

  1. Submit weekly quiz

tP: v1.3

  1. Plan the first product release (v1.3)
  2. Manage the iteration, and deliver v1.3 Thu, Mar 19th 23:59

Week 10 - Mon, Mar 23rd

Topics:

  • [W10.2] Defensive Programming

  • [W10.3] Test Cases: Intro

  • [W10.4] Test Cases: Equivalence Partitioning

  • [W10.5] Test Cases: Boundary Value Analysis

Full ToC


Admin:

  1. Submit weekly quiz

tP: v1.4

  1. Do a postmortem of the previous iteration before the tutorial
  2. Plan the alpha version (v1.4)
  3. Deliver the alpha version (v1.4) Thu, Mar 26th 23:59
  4. Start updating UML diagrams in the DG

Week 11 - Mon, Mar 30th

Topics:

  • [W11.1] More Design Patterns

  • [W11.2] Architectural Styles

  • [W11.3] Test Cases: Combining Multiple Inputs

  • [W11.4] Other QA Techniques

  • [W11.7] Other UML Models : OPTIONAL

Full ToC


Admin:

  1. Submit weekly quiz

tP: v1.5

  1. Alpha-test the product
  2. Fix alpha-test bugs, fine-tune features, improve code quality
  3. Update UG and DG
  4. Settle code authorship
  5. Release v1.5 Thu, Apr 2nd 23:59

Week 12 - Mon, Apr 6th

Topics:

  • No topics allocated to this week.

Admin:

  1. Submit the declaration about code reuse COMPULSORY | Tue, Apr 14th 2359
  2. Submit feedback for tutors

tP:

  1. Finish any remaining v1.5 tasks
  2. Take part in the practical exam dry run (PE-D) Fri, Apr 10th 1600-1800

Week 13 - Mon, Apr 13th

Topics:

  • No topics allocated to this week.

Admin:

  1. Submit final peer evaluation on TEAMMATES Thu, Apr 16th 2359
  2. Submit the PE-Readiness Quiz before the PE

tP: v1.6

  1. Fix PE-D bugs
  2. Submit final deliverables Tue, Apr 14th 14:00
  3. Prepare for the practical exam
  4. Ensure the code is RepoSense-compatible
  5. Take part in the practical exam (PE) Fri, Apr 17th 12 noon to Sat, Apr 18th 12 noon