Section outline

  • Lesson 10. Object-Oriented Programming.

    Objective: involves systematic mastery of concepts from a basic understanding of the object paradigm to the ability to design complex class hierarchies. At the Knowing/Remembering level, the student must name and define the four main features of object-oriented programming (encapsulation, polymorphism, inheritance, and abstraction), as well as list the composition of project files, such as source, header, and object code. At the Understanding level, the student is expected to explain Björn Stroustrup's metaphor for OOP as "a highly intellectual synonym for good programming" and formulate the essence of the data hiding mechanism through encapsulation to protect the integrity of objects. The Applying level requires the student to demonstrate the use of inheritance to create new classes based on existing ones, to apply the property of polymorphism to provide code flexibility through the same interface for different data types, and to use a debugger to monitor the values ​​of variables during program execution. At the Analyzing level, the student must compare procedural programming with object-oriented programming, distinguish the roles of the compiler and linker in the process of creating an executable file, and analyze how the class hierarchy facilitates code reuse. At the Evaluating level, it is necessary to justify the viability of the object-oriented paradigm as a "long-liver" in the software industry, criticize the excessive specificity of procedural algorithms compared to object models, and evaluate the effectiveness of using abstraction to highlight only the significant characteristics of an object in the context of the problem being solved. At the highest level of Creating, the student must develop (plan) the architecture of a software project in the form of a hierarchy of classes that minimizes dependencies between components, and design (create) an object model of a real system, integrating encapsulation and polymorphism mechanisms to ensure the scalability of the solution.