| CompSci 308 Spring 2026 |
Advanced Software Design and Implementation |
The only way to make the deadline — the only way to go fast — is to keep the code as clean as possible at all times. — Robert Martin on LeBlanc's Law: "Later equals Never."
The exact order and details of topics is subject to change during the semester based on the pace needed, but we will try to set them at least two weeks in advance.
Materials discussed in class and lecture recordings will be posted here.
| Date | Topics | Examples/Videos | Lab | Readings | Due |
|---|---|---|---|---|---|
| Week 1 Jan 8 |
Course Overview GIT in Practice |
Example: Conditionals Example: Bounce |
GITing Started Making Classes |
Clean Code OO in One Sentence JavaFX Basics (sections 1-3) GIT Basics |
Sun 1/11: Journal - CompSci Autobiography |
| Week 2 Jan 13/15 |
Refactoring and Code Smells |
Example: Bins | Refactoring |
Single Responsibility Principle Code Smells Everything is an Object Refactoring: Extract Class |
Tue 1/13: Breakout - Plan and Basic Start Fri 1/16: Journal - Habits and Failure |
| Week 3 Jan 20/22 |
Abstraction | Team Meeting |
Tue 1/20: Breakout - Complete Fri 1/23: Journal - Project Analysis |
||
| Week 4 Jan 27/29 |
Separating Model from Views |
||||
| Week 5 Feb 3/5 |
APIs and Interfaces |
||||
| Week 6 Feb 10/12 |
Encapsulation |
||||
| Week 7 Feb 17/19 |
Design Patterns |
||||
| Week 8 Feb 24/26 |
SOLID Design |
||||
| Week 9 Mar 3/5 |
Ethics | ||||
| 10 - Mar 10/12 |
SPRING BREAK | ||||
| Week 11 Mar 17/19 |
Agile Project Management |
Team Meeting |
|||
| Week 12 Mar 24/26 |
Agile Project Design |
||||
| Week 13 Mar 31/Apr 2 |
TBD |
||||
| Week 14 Apr 7/9 |
TBD |
||||
| Week 15 Apr 14/16 |
TBD |
||||
| Week 16 Apr 21 |
Wrap-Up | NO Lab Meeting | |||
| Fri, May 1 | Final Project Demos, in person 7-10pm |