| Introduction. SOLID class design principles
| GRASP class design principles and package design principles
| Architectural styles (Layers, Event-driven, MVC)
| Domain-driven design
| Service-oriented design
| Midterm/Live coding session
| Enterprise app architectures (Resource Access)
| Enterprise app architectures (Presentation)
| Enterprise app architectures (Concurrency)
| Applying Creational Design Patterns
| Applying Structural Design Patterns
| Applying Behavioral Design Patterns
| Software Design Quality metrics
| Final review