UPDATED: NOV 2021
Just because you learned how to use a hammer doesn't mean you are ready to construct a building. Similarly, It's not enough to just understand a programming language. That's just a tool that can be used to develop various programs. The real craftsmanship is in software DESIGN.
This course is designed to take a junior level programmer with limited knowledge about object orientation to a competent level object oriented software designer! I expect you to understand the basics of loops, methods and conditionals in Java. You'll be completing hands-on HOMEWORK Exercises through out the course! I have provided detailed video solutions to the exercises so that you can check your answers and get step by step instructions of how to tackle the object oriented design assignments.
When it comes to object oriented design, admittedly, there is limited material online for you to practice with. So in this course, we use a LEARN-BY-DOING approach to explore a series of progressively challenging exercises to discover the 5 core object oriented design PRINCIPLES summarized by an acronym called SOLID:
(S). Single Responsibility
(L). Liskov Substitution
(l ). Interface Segregation
(D). Dependency Inversion