Thinking Like an Object Oriented Programmer

taught by Bob Tabor

Course description

In this first of a series of courses on Object Oriented Programming, Bob Tabor presents the rationale for a more conceptual starting point to learning OOP. In this course he talks about the concepts and processes of Object Oriented Analysis, Design and Programming, abstraction of the real world into a conceptual model, the philosophy of object orientation, establishing roles and delegating responsibilities to objects that work together in community to accomplish tasks outlined in use cases. He talks about the tenets of Object Oriented Programming, discussing encapsulation, composition, inheritance (both implementation and interface inheritance), polymorphism, aggregation, and how these tenets play a role in higher level principles and design patterns.

Course Curriculum

Code Downloads for this Course
001 - Introduction
002 - Establishing Crucial Metaphors
003 - Application Life Cycle and Object Orientation
004 - Big Upfront Design: Object Oriented Analysis and Design
005 - Agile Methodology
006 - The Process Can Affect the Design
007 - Abstracting the Real World into a Domain Model
008 - Establishing Roles and Delegating Responsibilities to Objects
009 - Contracts, Interfaces and Collaborations
010 - Collaborations and Object Role Stereotypes
011 - Collaborations: Conditions of Use and After Effect Guarantees
012 - Domain vs. Application Specific Objects
013 - Components as Neighborhoods of Objects
014 - Architectural Layers of Responsibility using Objects
015 - Designing Objects and Interactions Guided by Principles and Patterns
016 - Why Encapsulation?
017 - Why Implementation Inheritance?
018 - Why Interface Inheritance?
019 - Why Polymorphism?
020 - Understanding Relationships: Coupling and Dependency
021 - Understanding Relationships: Inversion of Control and Dependency Injection
022 - Understanding Relationships: Aggregation
023 - Understanding Relationships: Composition
024 - Understanding the Agile Analysis and Design Process using Visual Studio Team Services
025 - Where to Go From Here?
Hide Content
Bob Tabor
Bob Tabor

Bob Tabor is an author, trainer, entrepreneur and five time Microsoft Most Valuable Professional award winner. He founded LearnVisualStudio.NET in February, 2002 in an effort to make training inexpensive and accessible to everyone. He was the first to create training videos on C# and .NET, ASP.NET, Visual Basic, Visual Studio, SQL Server and more. In 2004, Microsoft approach Bob about creating courses that would be included "in the box" in the various Visual Studio 2005 Express Editions. These became the very first video training courses hosted on Microsoft's own web properties. Since then Bob has created hundreds of hours of training featured on Microsoft's like Channel9 and Microsoft Virtual Academy. Universities, companies and non-profits around the world use Bob's training in their curriculum on a daily basis.

Before striking out on his own, he worked as a software development consultant in the Dallas, Texas USA area at large organizations like Ernst & Young, KPMG, Sprint, American Heart Association, Mary Kay Corporation and others. He has a degree in Management Information Systems from Loyola University of Chicago, but with regard to software development is self-taught. After struggling for years to grasp important software development ideas, he realized that the fundamental problem with training was that it was expensive and instructors were inconsistent in their knowledge and presentation skills. Bob is married, has two sons in college and lives in the Dallas, Texas, USA area.