Course curriculum

  • 1

    Course Content

    • Download Code Files

    • Lesson 1 - Introduction

    • Lesson 2 - Establishing Crucial Metaphors

    • Lesson 3 - Application Lifecycle and Object Orientation

    • Lesson 4 - Big Upfront Design: Object Oriented Analysis and Design

    • Lesson 5 - Agile Methodology

    • Lesson 6 - The Process can Affect the Design

    • Lesson 7 - Abstracting the Real World into a Domain Model

    • Lesson 8 - Establishing Roles and Delegating Responsibilities to Objects

    • Lesson 9 - Contracts, Interfaces and Collaborations

    • Lesson 10 - Collaborations and Object Role Stereotypes

    • Lesson 11 - Collaborations: Conditions of Use and After Effect Guarantees

    • Lesson 12 - Domain vs Application Specific Objects

    • Lesson 13 - Components as Neighborhoods of Objects

    • Lesson 14 - Architectural Layers of Responsibility using Objects

    • Lesson 15 - Designing Objects and Interactions Guided By Principles and Patterns

    • Lesson 16 - Why Encapsulation?

    • Lesson 17 - Why Implementation Inheritance?

    • Lesson 18 - Why Interface Inheritance?

    • Lesson 19 - Why Polymorphism?

    • Lesson 20 - Understanding Relationships: Coupling and Dependency

    • Lesson 21 - Understanding Relationships: Inversion of Control and Dependency Injection

    • Lesson 22 - Understanding Relationships: Aggregation

    • Lesson 23 - Understanding Relationships: Composition

    • Lesson 24 - Understanding the Agile Analysis and Design Process using Visual Studio Team Services

    • Lesson 25 - Where to Go From Here