0.1.1 The OOP Series at NTC

These three courses, Programming Concepts A, B and C, and the courses that follow it, Object-Oriented Programming 2 and Object-Oriented Programming 3 are all in a series that focus on the foundation of object-oriented thought, design, and development. A book that is not used in these courses is effective at describing object-oriented programming, and the way that these courses describe object-oriented programming is also used in this book.

Head First Design Patterns

Programming Concepts A, B and C cover the basics of object-oriented programming. Object-Oriented Programming 2 cover principles or design principles. Object-Oriented Programming 3 covers design patterns.

LEGO Geometry

Using an example of LEGO bricks. The basics would tell you the characteristics of each individual brick, the geometry that would tell you you had 3 plates to a brick. The PC classes would explain the stud of a brick and how it works, the tubes in the back of a brick and how they work, different sizes of brick and how they’re stacked, and plates and how they work together. Slopes, angles, and various corner and specialized pieces.

These aspects of LEGO are similar to PC A, B and C. They are an overview of the various tools available to you to build a good software application. They cover the foundation of object-oriented programming.

OOP2 covers design principles. How to write good software. OOP2 would interlock and stagger those LEGO bricks resembling something like you’d see on a brick wall, it solidifies what you’ve learned. OOP2 would also be how things like plates, slopes, and how these things work together in creations. It’s more about the techniques that are used to make robust, rigid structures in software.

OOP3 covers design patterns. A pattern is a best practice at a macro or larger level. This would be taking a small LEGO creation that you’ve built and reusing it in a variety of settings. It is a sub assembly that you can use in a larger system. It is using best practices that have been discovered and stood the test of time.

The basics, or four pillars of PC A, B, and C are abstraction, encapsulation, polymorphism, and inheritance.