| CompSci 308 Spring 2026 |
Advanced Software Design and Implementation |
Computer Science is a science of abstraction - creating the right model for a problem and devising the appropriate mechanizable techniques to solve it. — A. Aho and J. Ullman
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 | Example: Roulette | Team Meeting |
Access Control (Encapsulation) Inheritance and Polymorphism Refactoring: Replace Conditional How to Work Well on Teams |
Tue 1/20: Breakout - Complete Fri 1/23: Journal - Project Analysis |
| Week 4 Jan 27/29 |
Separating Model from Views |
Open Closed Principle Model-View Separation Principle JUnit Test Infected JavaFX GUIs (sections 4-5) |
|||
| 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 |