Section outline

  • 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.