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
  • Week 4 [Fri, Aug 28th] - Summary

    Topics:

    • [W4.1] Java: Casting

    • [W4.2] OOP + Java: Abstract Classes

    • [W4.3] OOP + Java: Interfaces

    • [W4.4] Java: Packages

    • [W4.5] Java: Access Modifiers

    • [W4.6] Error Handling: Exceptions

    • [W4.7] Code Quality: Naming

    • [W4.8] Code Quality: Readability

    • [W4.9] Refactoring

    • [W4.10] RCS: Reviewing pull requests

    • [W4.11] RCS: Branching

    • [W4.1] Java: Casting
    • [W4.1a] C++ to Java → Miscellaneous Topics → Casting :
    • [W4.2] OOP + Java: Abstract Classes
    • [W4.2a] Paradigms → OOP → Inheritance → Abstract classes and methods :

    • [W4.2b] C++ to Java → Inheritance → Abstract classes and methods :

    • [W4.3] OOP + Java: Interfaces
    • [W4.3a] Paradigms → OOP → Inheritance → Interfaces :

    • [W4.3b] C++ to Java → Inheritance → Interfaces :

    • [W4.4] Java: Packages
    • [W4.4a] C++ to Java → Miscellaneous Topics → Packages :
    • [W4.5] Java: Access Modifiers
    • [W4.5a] C++ to Java → Miscellaneous Topics → Access modifiers :

    • [W4.6] Error Handling: Exceptions
    • [W4.6a] Implementation → Error Handling → Introduction → What :

    • [W4.6b] Implementation → Error Handling → Exceptions → What :

    • [W4.6c] Implementation → Error Handling → Exceptions → How :

    • [W4.6d] C++ to Java → Exceptions → What are Exceptions? :

    • [W4.6e] C++ to Java → Exceptions → How to use Exceptions :

    • [W4.6f] Implementation → Error Handling → Exceptions → When :

    • [W4.7] Code Quality: Naming
    • [W4.7a] Implementation → Code Quality → Naming → Introduction :

    • [W4.7b] Implementation → Code Quality → Naming → Basic → Use nouns for things and verbs for actions :

    • [W4.7c] Implementation → Code Quality → Naming → Basic → Use standard words :

    • [W4.7d] Implementation → Code Quality → Naming → Intermediate → Use name to explain :

    • [W4.7e] Implementation → Code Quality → Naming → Intermediate → Not too long, not too short :

    • [W4.7f] Implementation → Code Quality → Naming → Intermediate → Avoid misleading names :

    • [W4.8] Code Quality: Readability

       Readability

    • [W4.8a] Implementation → Code Quality → Readability → Basic → Avoid long methods :

    • [W4.8b] Implementation → Code Quality → Readability → Basic → Avoid deep nesting :

    • [W4.8c] Implementation → Code Quality → Readability → Basic → Avoid complicated expressions :

    • [W4.8d] Implementation → Code Quality → Readability → Basic → Avoid magic numbers :

    • [W4.8e] Implementation → Code Quality → Readability → Basic → Make the code obvious :

    • [W4.8f] Implementation → Code Quality → Readability → Intermediate → Structure code logically :

    • [W4.8g] Implementation → Code Quality → Readability → Intermediate → Do not 'Trip Up' reader :

    • [W4.8h] Implementation → Code Quality → Readability → Intermediate → Practice KISSing :

    • [W4.8i] Implementation → Code Quality → Readability → Intermediate → Avoid premature optimizations :

    • [W4.8j] Implementation → Code Quality → Readability → Intermediate → SLAP hard :

    • [W4.8k] Implementation → Code Quality → Readability → Advanced → Make the happy path prominent :

    • [W4.9] Refactoring
    • [W4.9a] Implementation → Refactoring → What :

    • [W4.9b] Tools → IntelliJ IDEA → Refactoring

    • [W4.9c] Implementation → Refactoring → How :

    • [W4.9d] Implementation → Refactoring → When :

    • [W4.10] RCS: Reviewing pull requests
    • [W4.10a] Tools → Git and GitHub → Reviewing PRs
    • [W4.11a] Project Management → Revision Control → Branching :

    • [W4.11b] Tools → Git and GitHub → branch: Doing multiple parallel changes :

    • [W4.11c] Tools → Git and GitHub → Dealing with merge conflicts

    Admin:

    1. Submit post-lecture quiz counted for participation

    iP:

    1. Add Increments as branches: Level-5, A-CodeQuality, A-AbstractClasses, A-Packages
    2. Review some peer PRs counted for participation

    tP:

    1. Start weekly project meetings
    2. Start a collaborative doc to take project notes before next lecture
    3. Decide on an overall project direction (user profile, problem addressed) before next lecture