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
Topics:
- Ensure prerequisite Java knowledge
- Designing a software solution
- Using git, GitHub and gradle
- Planning for change
- Using external libraries (Apache poi)
Homework 2
Topics:
- Refactoring with Extract Methods and Extract Class
- JUnit 5
- White-box and Black-Box Testing
- Test Driven Development
Homework 3
Assignment: TBD
Topics:
- 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
Topics:
- Web services
- Parsing JSON
- Databases (specifically SQLite)
- JDBC
- Queries
Homework 6
Topics:
- Is a capstone assignment that features elements of another assignments
- Usage of Hibernate ORM
- JavaFX
- Three Tier Architecture
- Design Patterns