Summary of the Course Timeline


Week 1 - Mon, Aug 10th

Topics:

  • [W1.1] OOP: Classes & Objects

  • [W1.2] OOP Inheritance

  • [W1.3] OOP: Polymorphism

  • [W1.4] Java: Collections

  • [W1.5] Exception Handling

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

Full ToC


Admin:

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

Week 2 - Mon, Aug 17th

Topics:

  • [W2.1] SDLC Process Models: Basics

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

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

  • [W2.4] IDEs: Basic Features

  • [W2.5] Intro to Automated Testing

Full ToC


Admin:

  1. Submit weekly quiz Fri, Aug 21st 1600
  2. Get connected to our communication channels
  3. [Optional] Start forming teams for the team project

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, Level-5, Level-6, A-Enums Fri, Aug 21st 1600

Week 3 - Mon, Aug 24th

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, Aug 29th 23:59
  2. Team Task: Set up a project meeting time Tue, Sep 1st
  3. Team Task: Check up on team's collective iP status Tue, Sep 1st

Week 4 - Mon, Aug 31st

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, Sep 4th 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 document for project notes before the tutorial
  3. Decide on an overall project direction (user profile, value proposition) decide by tutorial, submit by: Sat, Sep 5th 23:59

Week 5 - Mon, Sep 7th

Topics:

  • [W5.1] Requirements: Intro

  • [W5.2] Requirements: Gathering

  • [W5.3] Requirements: Specifying

  • [W5.4] Code Quality: Readability, Unsafe Practices, Code Comments

  • [W5.5] Refactoring

  • [W5.6] Assertions

  • [W5.7] Java: Streams

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

Full ToC


Admin:

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

iP:

  1. Generate a new JAR file
  2. Write 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, Sep 14th

Topics:

  • [W6.1] Modeling: Sequence Diagrams

  • [W6.2] Architecture Diagrams

  • [W6.3] Debugging

  • [W6.4] IDEs: Intermediate Features

  • [W6.5] Logging

Full ToC


Admin:

  1. Submit weekly quiz

iP:

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

tP:

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

Week 7 - Mon, Sep 28th

Topics:

  • [W7.1] Requirements: Use Cases

  • [W7.2] Requirements Documents

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

  • [W7.4] Design: Fundamentals

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

  • [W7.6] Integration Approaches

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

  • [W7.8] Project Mgt: Workflows

Full ToC


Admin:

  1. Submit weekly quiz

iP:

  1. [Optional] Add AI features to the iP
  2. [Optional] Get more out of the iP

tP: v1.1

  1. Do a 'workflow practice' session Thu, Oct 1st 23:59
  2. Update the README.md and site-wide settings
  3. Update the DG: user stories, glossary, NFRs, use cases
  4. Start the next iteration

Week 8 - Mon, Oct 5th

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, Oct 11th 2359

iP:

  1. Evaluate two peer iPs Sat, Oct 10th 2359

tP: v1.2

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

Week 9 - Mon, Oct 12th

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, Oct 15th 23:59

Week 10 - Mon, Oct 19th

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, Oct 22nd 23:59
  4. Start updating UML diagrams in the DG

Week 11 - Mon, Oct 26th

Topics:

  • [W11.1] More Design Patterns

  • [W11.2] Architectural Styles

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

  • [W11.4] Other QA Techniques

  • [W11.5] Secure Software Engineering

  • [W11.8] 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, Oct 29th 23:59

Week 12 - Mon, Nov 2nd

Topics:

  • [[ name ? Good news, $! : ]] No topics are allocated to this week.

Admin:

  1. Submit the declaration about code reuse COMPULSORY | Tue, Nov 10th 2359
  2. Submit feedback for tutors
  3. Submit final peer evaluation on TEAMMATES Thu, Nov 5th 2359
  4. Submit the PE-Readiness Quiz before the PE

tP: v1.6

  1. Fix any latent bugs
  2. Submit final deliverables Tue, Nov 3rd 14:00
  3. Prepare for the practical exam
  4. Take part in the practical exam (PE) Fri, Nov 6th 12 noon to Sat, Nov 7th 12 noon

Week 13 - Mon, Nov 9th

Topics:

  • [[ name ? Good news, $! : ]] No topics are allocated to this week.

Admin:

 None assigned for this week

tP:

  1. / Attend to post-release tasks