Schedule
Week 1
- Mon
- Goals:
- Basic comfort with Java
- Basic setup with IntelliJ
- Topics:
- (Java/OOP) classes, fields, constructors, encapsulation
- (Java/OOP) methods, parameters, local variables, constants/final
- (Java/OOP) static methods
- Activities for Day 1
- Lunchtime Video: Clean Code-Remake (54m)
- Tue
- Goals:
- Variable and function basic principles
- Basic refactorings: extract variable/field/method, rename, inline
- Function size principles (“extract till you drop”)
- Prep:
- Topics:
- (Coding) naming variables and methods
- (Coding) extracting code into small functions
- Activities for Day 2
- Lunchtime Video: Refactoring screencast “2”: Prime generator
- Wed
- Goals:
- Comment and Code formatting principles
- Function structure principles
- Prep:
- Topics:
- (Coding) function parameters, command-query separation
- (Coding) comments and formatting
- Activities for Day 3
- Lunchtime Video: Form
- Thu
- Goals:
- Deep dive into extension mechanisms: inheritance and delegation
- Discussion of the concept and value of polymorphism and information hiding
- “Tell, don’t ask”
- Prep:
- Read Design Patterns, chapter 1.6
- Read Clean Code, chapter 6
- Topics:
- (Java/OOP) Inheritance vs Composition
- (Coding) Law of Demeter (Tell, don’t ask)
- Activities for Day 4
- Lunchtime Video: TDD Part 1
- Fri
- Goals:
- Code tracking with Version Control
- Automated Testing and Test-driven development
- Prep:
- Topics:
- (Practices) Version Control Basics
- (Practices) Test-Driven Development
- Activities for Day 5
- Lunchtime Video: TDD Part 2
Week 2
- Mon
- Goals:
- Exam 1
- Introduction to Agile Methodologies
- Introduction to the SOLID design principles and SRP
- Introduce User Roles/Actors in context of SOLID principles
- (Practices) Principles of Agile Development
- Discussion of XP methodologies (pair programming, tests first etc)
- (Principles) Single Responsibility Principle
- Reading: ASD chapters 7, 8
- Videos: In class: notes #1 and #2
- Activities for Day 6
- Prep:
- Reading: ASD chapters 1-4
- Tue
- Goals:
- Interfaces and dependency inversion (lamp example)
- Introduction to Open-Closed Principle
- (Principles) General values and principles for coding
- (Java/OOP) Interfaces
- (Principles) Open-Closed Principle
- Reading: ASD chapter 9
- Video: In class
- (Principles) Liskov Substitution Principle
- Video: In class
- Reading: ASD chapter 10
- Goals:
- Dependency Inversion Principle
- Interface Segragation Principle
- SOLID Principles Wrap-up Example
- (Principles) Dependency Inversion Principle
- Video: In class
- Reading: ASD chapter 11
- (Principles) Interface Segregation Principle
- Video: In class
- Reading: ASD chapter 12
- Activities for Day 7
- Prep:
- Reading: ASD chapters 7-8
- Wed
- Goals:
- Reinforce the SOLID Principles understanding with a use case example.
- Become comfortable with user roles and user stories
- Be introduced to the projects and meets with clients to create initial requirements and user stories.
- (Practices) SOLID Principles Use Case (as in Clean Code video #14)
- Activities for Day 8
- (Project) Initial client meetings
- Prep:
- Reading: From “User Stories Applied”: Chapters 2, 3, 4
- Thur
- Goals:
- Liskov Substitution Principle and SOLID Principles wrap-up
- Clean Tests
- Test Design
- Activities for Day 9
- Fri
-
Week 3
Design Patterns in the morning; Work on project in the afternoon
- Mon
-
- Tue
-
- Wed
- (Patterns) Command
- Video: Clean Code: Design Patterns
- Reading: ASD chapter 13
- (Patterns) Template Method, Strategy
- Video: Strategy and Template Method Patterns
- Reading: ASD chapter 14
- Activities for Day 13
- Work on Project
- Thu
- (Patterns) Factory
- Video: Clean Code: Factories
- Reading: ASD chapter 21
- (Patterns) Facade, Mediator
- Video: Clean Code: Pattern Roundup
- Reading: ASD chapter 15
- Activities for Day 14
- Work on Project
- Fri
- (Patterns) Null Object
- Video: Clean Code: Pile O’Patterns
- Reading: ASD chapter 16
- (Patterns) Singleton, Monostate
- Video: Clean Code: Pile O’Patterns
- Reading: ASD chapter 17
- Activities for Day 15
- Work on Project
Week 4
- Mon
- (Patterns) Observer
- Video: The Observer Pattern
- Reading: ASD chapter 24
- (Patterns) Adapter, Bridge, Proxy
- Video: Clean Code: Pile O’Patterns
- Reading: ASD chapters 25, 26
- Activities for Day 16
- Work on Project
- Tue
-
- Wed
- (Patterns) Design Pattern Review
- Work on Project
- Work on Project
- Thu
-
- Fri
- Work on Project
- End early, final demo