This site is from a past semester! The current version will be here when the new semester starts.
TIC4001 2020
  • 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
  • Report Bugs
  • Forum
  • Gitter (Chat)
  • Instructors
  • Announcements
  • Files
  • Java Coding Standard
  • Git Conventions
  • Participation Dashboard

  •  Individual Project (iP):
  • Individual Project Info
  • iP List
  • iP Upstream Repo
  • iP Code Dashboard
  • iP Progress Dashboard

  •  Team Project (tP):
  • Team Project Info
  • Team List
  • tP Code Dashboard
  • tP Progress Dashboard
  • Standards/ConventionsiP: Week 2


    iP (Individual Project): Overview

    The objectives of the individual project (iP) is to learn/refresh the basics of,

    • Java
    • OOP
    • IDEs
    • Git and GitHub
    • Project automation tools
    • Code quality

    The iP is very similar to the project you did in TIC2002 but with the following differences:

    • Faster pace: You'll need to finish the project within 6 weeks.
    • Better tools: You'll be using industry-strength tools more e.g., use an IDE instead of repl.it
    • Higher rigor: You are expected to follow a more systematic process e.g., using Git and GitHub more.
    • Higher bar: The code quality is expected to be higher and the functionality should be more robust e.g., required to follow some code quality guidelines.

    If you didn't do well in the TIC2002 project, this is another chance for you to catch up and level up your skills in preparation for the team project that is coming up later.

    If you did well in the TIC2002 project, use this as an opportunity to stretch yourself and improve your skills further e.g., go beyond the minimum requirements, try different design options

    All skills you will learn in the iP will be useful in the team project (tP). Furthermore, some of the iP code can be adapted for the tP.
    The more you do in the iP and farther you push beyond the minimal expectations, the easier it will be in your tP.

    The iP is based on the generic project called Project Duke, the overview of which is given below.

    Duke Overview

    Project Duke

    Duke, the Java Mascot
    [credit: Wikipedia]

    Project Duke is a educational software project designed to take you through the steps of building a small software incrementally, while applying as many Java and SE techniques as possible along the way.

    The project aims to build a product named Duke, a Personal Assistant Chatbot that helps a person to keep track of various things. The name Duke was chosen as a placeholder name, in honor of Duke, the Java Mascot. You may give it any other name and personality you wish.

    Here is a sample interaction with Duke:

        ____________________________________________________________
    ____ _
    | _ \ _ _| | _____
    | | | | | | | |/ / _ \
    | |_| | |_| | < __/
    |____/ \__,_|_|\_\___|

    Hello! I'm Duke
    What can I do for you?
    ____________________________________________________________

    list
    ____________________________________________________________
    Here are the tasks in your list:
    1.[T][✓] read book
    2.[D][✗] return book (by: June 6th)
    3.[E][✗] project meeting (at: Aug 6th 2-4pm)
    4.[T][✓] join sports club
    ____________________________________________________________

    todo borrow book
    ____________________________________________________________
    Got it. I've added this task:
    [T][✗] borrow book
    Now you have 5 tasks in the list.
    ____________________________________________________________


    deadline return book /by Sunday
    ____________________________________________________________
    Got it. I've added this task:
    [D][✗] return book (by: Sunday)
    Now you have 6 tasks in the list.
    ____________________________________________________________

    done 2
    ____________________________________________________________
    Nice! I've marked this task as done:
    [D][✓] return book (by: June 6th)
    ____________________________________________________________

    blah
    ____________________________________________________________
    ☹ OOPS!!! I'm sorry, but I don't know what that means :-(
    ____________________________________________________________

    bye
    ____________________________________________________________
    Bye. Hope to see you again soon!
    ____________________________________________________________

    The project consists of the following increments:

    • Levels: A series of features, meant to be added to Duke in the given order, although some can be skipped. These have been named Level 1 to Level 10 to indicate how each makes the product progressively "level up".
    • Extensions:
      • Category A These are internal/feature enhancements meant to help you practice a specific Java or an SE technique.
      • Category B These are enhancements related to task tracking.
      • Category C These are enhancements, not specifically related to task tracking.
      • Category D Each of these adds the ability to track another type of entities.

    The iP is to be done over the first half of the semester.

    • Volatile requirements ahead!: Some requirements will only be released later (or could be changed along the way), to simulate how requirements of a project may not be available at the start or stay the same during the project.
    • Requirements may differ between students!: Note that some requirements that are to be released later could be different from one student to another.

    Standards/ConventionsiP: Week 2