Assignment Information

Please note that all assignment due dates for un-released assignments are tentative and subject to change. For due dates, please refer to Canvas/Gradescope.

Homework 1 A/B


  • Ensure prerequisite Java knowledge
  • Designing a software solution
  • Using git, GitHub and gradle
  • Planning for change
  • Using external libraries (Apache poi)

Homework 2


  • Refactoring with Extract Methods and Extract Class
  • JUnit 5
  • White-box and Black-Box Testing
  • Test Driven Development

Homework 3

Assignment: TBD


  • Reading and using code written by someone else
  • Understandability and Refactoring
  • Practical usage of polymorphism
  • Java Streams and Lambda Bodies
  • Starting to nail down what we mean by “good design”
  • Adding features to existing code

Homework 4

Assignment: TBD Topics:

  • Testing with Mockito
  • OO Design Principles
  • Refactoring/Rewriting code to fix design issues
  • UML Class Diagrams

Homework 5


  • Web services
  • Parsing JSON
  • Databases (specifically SQLite)
  • JDBC
  • Queries

Homework 6


  • Is a capstone assignment that features elements of another assignments
  • Usage of Hibernate ORM
  • JavaFX
  • Three Tier Architecture
  • Design Patterns