Lecture videos and other lecture resources are available via links on these pages or via Minerva.

Slides & code examples are provided for personal use only; please do not upload this material anywhere.

  1. Introduction
  2. Object-Oriented Concepts
  3. Modelling Software With UML
  4. Unit Testing to Support Refactoring
  5. Refactoring Case Study
  6. Principles of Refactoring
  7. Fundamentals of Design Patterns
  8. More Design Patterns
  9. SOLID Principles (SRP and DIP)
  10. SOLID Principles (OCP, LSP and ISP)
  11. Designing With Components
  12. Metrics, Tools and Visualization
  13. Hexagonal & Clean Architecture
  14. Quality Characteristics
  15. Common Monolithic Architectural Styles
  16. Other Monolithic Styles
  17. Microservices and Service-Based Architectures
  18. Event-Driven Architectures
  19. Space-Based & 'Serverless' Architectures
  20. Documenting Architecture