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