Section outline

  • LK - senior lecturer Pokhodenko B.O. group: MП-10-25

    PC - senior lecturer Pokhodenko B.O. group: MП-10-25

    Classes are held remotely in the format of web conferences at the link:
    On conference Zoom

    https://us04web.zoom.us/j/2272646103?pwd=Y1BGUU4xb2tsYWtVVW13eHdBUEZuUT09   

    Identification conference: 227 264 6103

    Code: 6eqvfm

  • Lesson 1. Implementation of the Main Concepts of Object-Oriented Programming in the C# Language

    Objective: the purpose of teaching this topic is to form in students a holistic system of knowledge about the object-oriented approach as a leading tool for overcoming software complexity. The student must master the main causes of complexity in industrial systems, such as conflicting requirements, the need for collective development and flexibility of software structures, as well as understand how the hierarchy of types and levels of abstraction help structure the relationships between components. During the learning process, special attention is paid to understanding the essence of an object through its state, behavior and identity, as well as a deep understanding of the concept of a class as an abstract template for creating specific instances. The practical component involves mastering the syntax of the C# language to define class members, in particular fields, methods, properties and indexers, as well as the competent use of access modifiers to ensure data encapsulation and protection. Students learn to implement various types of constructors, including static ones, and use initializers to guarantee the integrity of objects when they are created. An important aspect is the study of the life cycle of objects in the CLR managed memory, where the student must understand the mechanisms of automatic garbage collection, the principles of distributing objects by generations, and learn, if necessary, to programmatically interact with system library types to optimize resource use. As a result of studying the material, the student must be able to independently design expressive program structures that model real-world objects, are resistant to change, and are efficient in terms of memory management.
  • Lesson 2. Implementation of polymorphism in C#

    Objective: is to form in students a comprehensive understanding of polymorphism as a fundamental property of object-oriented programming, which allows using a single interface to manage objects of different types. The student must master the key concepts of the idea of ​​"one interface, many methods", realize the advantages of eliminating program complexity by delegating the choice of a specific action to the compiler, and learn to identify situations that require the use of polymorphic behavior. In the learning process, special attention is paid to distinguishing between the mechanisms of static binding, which occurs at the compilation stage based on the type of the variable, and dynamic binding, which is implemented during program execution in accordance with the real type of the object. Students must master the practical skills of creating class hierarchies using virtual methods (keyword virtual) and their overriding (override), as well as understand ways to restrict inheritance using the sealed modifier. An important aspect is the study of the role of abstract classes as high-level design tools that describe the general concept without detailing the implementation, and the assimilation of strict rules for working with them, in particular the prohibition of creating instances via new. In addition, students learn to implement polymorphism through interfaces, understand their differences from abstract classes, master the mechanisms of multiple inheritance of interfaces and resolve name conflicts when implementing several interfaces simultaneously. At the end of studying the topic, the student should be able to analyze the feasibility of choosing between abstract classes and interfaces, effectively use the type checking operators is and as for manipulating objects, and design flexible programming models that use modern features of the C# language, such as properties for isolating data access logic.