Date
| Topics
| Examples/Videos | Lab
| Readings
| Due |
Introduction and Basic Design Principles through Refactoring |
Week 1
Aug 23/25 |
Course Overview
Feedback
and Habits
What are Objects
Debugging
OpenJFX Animation |
Clean Code
OpenJFX Animation
Software Install video
GIT Setup video
|
Checkin
GITing Started
Designing
Frogger |
Everything is an Object
Debugging
JavaFX (sections 1-3)
Visual Guide to Version Control
|
|
Week 2
Aug 30/
Sep 1 |
Integrity
Clean Code
Code Smells
Refactoring
|
Bins
IntelliJ's Debugger videos
Video of Lecture
|
Debugging
Hangman
|
Clean Code
OO in One Sentence
Code Smells
Refactoring: Extract Class
|
Monday, Aug 30
- CompSci Autobiography
- Fluxx Objects
- Breakout Game
|
Week 3
Sep 6/8
|
Equity
Inheritance
Design Principles
|
Roulette
Video of Lecture
Video from start of Lab
GUI Layout video
|
Debugging Inheritance and Undoing GIT Mistakes
Maze |
Single Responsibility Principle
Access Control (Encapsulation)
Inheritance and Polymorphism
Refactoring: Replace Conditional
|
Monday, Sep 6
- Reflection
- Fluxx Use Cases
- Revise Breakout Game
- Hangman Game
|
Week 4
Sep 13/15 |
Ownership Mindset
Testing
Exceptions
|
Bins with Testing
Video of Lecture
Video from start of Lab
Exceptions Video
|
Testing
Browser
|
JUnit Test Infected
Model-View Separation Principle
Exceptions
|
Monday, Sep 13
- Ethics
- Fluxx Changes
- Revise Hangman Game
- Maze Solver
|
Basic Teamwork and Recognizing Good Design |
Week 5 Sep 20/22
|
Teamwork
Open Close Principle
|
Browser with Resources
Video of Lecture
Git Merge Video
Conventions Video
|
Team Meeting
Preparation Questions
|
Open-Closed Principle
Write Better Code With OOP
Git Branching
Effective Teamwork |
Monday, Sep 20
- Schedule Survey
- Improvement Analysis
- Fluxx Design Analysis
- Revise Maze Solver
- NanoBrowser
|
Week 6
Sep 27/29
|
Software Design Mindset
Liskov Substitution Principle
TestFX |
TestFX
Video of Lecture
Video from start of Lab
|
TDD
Testing
|
Liskov Substitution Principle
Designing with Exceptions
User Interface Testing with TestFX
|
Monday, Sep 27
- Starting
Friday, Oct 1
- OOLALA, Basic
|
Week 7
Oct 6
|
FALL BREAK (no lecture) |
|
Code Review |
|
|
Advanced Teamwork and Design Strategies |
Week 8
Oct 11/13 |
Encapsulation Mindset
MVC
Interface Separation Principle
Lambdas
|
Encapsulation
Video of Lecture
| Team Meeting |
MVC
Interface Separation Principle
Lambda Expressions
Managing Conflict in Teams
|
Monday, Oct 11
- Team Review
- OOLALA, Complete |
Week 9
Oct 18/20 |
Flexibility Mindset
Dependency Inversion Principle
Reflection
|
Reflection
Video of Lecture
|
Lambdas and Reflection |
Java Interfaces Are So Very Cool
Dependency Inversion Principle
Reflection
Ethical Responses to Cyber Crime
|
Monday, Oct 18
- Project Analysis
- Cell Society, Plan
Tuesday, Oct 19
- Cell Society, Test
|
Week 10
Oct 25/27
|
SOLID Mindset
Design Smells
Ethics |
Video of Lecture |
Code Review |
From STUPID to SOLID
Respecting Levels of Abstraction
Why Lamba Expressions
|
Monday, Oct 25
- Ethics in the News
Tuesday, Oct 26
- Cell Society, Basic |
Final Project: Putting it All Together |
Week 11
Nov 1/3
|
API Design
Agile Planning |
Agile Planning Video
Video of (old) OOGA Overview
API Video with Discussion
|
Team Meeting |
API Design
Agile Project Management
Introducing OO Frameworks
Teamwork is an Individual Skill
|
Monday, Nov 1
- Team Review
- Cell Society, Change |
Week 12
Nov 8/10
|
Design Patterns
Data Driven Design
Unix Philosophy |
Video from start of Lab |
Ethics: Google v. Oracle Ruling
Design Patterns
|
Introduction to Design Patterns
Composition vs. Inheritance
The Magic of Data Driven Design
Refactoring to Patterns
|
Monday, Nov 8
- Project Analysis
- OOGA, Plan |
Week 13
Nov 15/17
|
Logging
Streams
|
Bins with Logs
Wordcloud with Streams
Video of Lecture
Video from start of Lab
Accessibility Video
|
Ethics: GitHub CoPilot
Retrospective and Planing
|
Functional Programming in Java
Refactoring Loops with Pipelines
Java Logging Best Practices
Maven: A Build Automation Tool
|
Monday, Nov 15
- Ethical Tech Takeover
- OOGA, Test
|
Week 14 Nov 22/24 |
THANKSGIVING (no lecture or lab) |
Workflows of Refactoring by Martin Fowler
Therapeutic Refactoring by Katrina Owen
|
|
|
Tuesday, Nov 22
- Improvement Review
- OOGA, Basic
|
Week 15 Nov 29/ Dec 1 |
General Software Design
Future of Java
Security |
Video of Lecture
Video from start of Lab
|
Ethics: Open Source, Maintainance and Inclusivity
User Testing
API Review
Code Review
|
Four Pillars of OOP
Secure Coding Guidelines for Java
Java at 25
The API-First World |
Monday, Dec 6
- Team Review
- OOGA, Complete
|
Sun Dec 12 9-12pm |
Final Project Demo |
|
|
True Programmers Never Stop Learning
Designing a Document Editor
Do Programmers Need a Code of Conduct
|
Monday, December 13
- Project Analysis
- OOGA, Demo
|