Object-oriented Programming can develop your abstract, associative and logical thinking, change your perspective of how you perceive processes, events, objects, subjects and immaterial concepts that you want to replicate in your applications. Creating an accurate model of complex business, ecological, biological, chemical, physical, philosophical or personal problems filled with appropriate interactions (methods) will produce reasonable solutions that can eventually change the world or improve your skills and virtues.
The course is mostly based on practical examples (you can see some of them in the first video that has a free preview) and that is understandable because OOP is allowing us to take any object/subject, investigate its meaning and interconnectedness to other objects and create virtual models of the existing concept(s). There could be more than one viable solution and the more intricacies and concepts you know, the better your programming architecture will be.
Knowing about encapsulation for example will make it impossible for unwanted side effects to take place in your application. Understanding when to use composition and inheritance is a vital skill towards creating your set of objects and their relations. Recognizing when to create one or two levels of abstraction and how to implement polymorphism are advanced skills that has to be integrated by the students. Differentiating between the advantages and disadvantages of using abstract classes and interfaces is another crucial point for the students. Deliberate thinking about SOLID principles, strong cohesion, loose coupling and dependency injections before finishing your architecture of classes is necessary to be done if the students want to develop adaptive applications.
Before we start making multi-tier applications a strong foundation of knowledge, skills and experience with solving simple tasks are necessary. This course is the second stepping stone towards achieving that goal.
I hope that my students will be benevolent toward each other in the Q&A section of the courses and be successful in their future career as a software developer (and engineer).
24
37
TAKE THIS COURSE