Object-Oriented Programming

Major: Computer Science (Design and programming of intelligent systems and devices)
Code of subject: 6.122.12.O.008
Credits: 7.00
Department: Computer-Aided Design
Lecturer: Oksana V. Oborska, Ph.D., Lecturer of the CAD Department.
Semester: 2 семестр
Mode of study: денна
Мета вивчення дисципліни: To provide students with the acquisition of in-depth theoretical and practical knowledge, skills and understanding of the principles and methods of object-oriented programming for the formation of algorithmic thinking skills, mastering algorithmization processes and their implementation on computers, successful performance of professional duties in the specialty "Computer Science » and preparing students for further studies.
Завдання: To provide students with the acquisition of in-depth theoretical and practical knowledge, skills and understanding of the principles and methods of object-oriented programming for the formation of algorithmic thinking skills, mastering algorithmization processes and their implementation on computers, successful performance of professional duties in the specialty "Computer Science » and preparing students for further studies.
Learning outcomes: - know the basics of object-oriented programming; - to own modern methods and means of object-oriented programming using the Visual Studio environment; - be able to handle exceptions and class libraries; - to use object-oriented programming technologies. - to own the principles of building information models. Formation of a theoretical knowledge base of students in the C / C ++ programming language; - to get acquainted with the principles of finding errors in programs and methods of their debugging and testing; - to acquire practical skills of work with typical programming problems and methods of their solution. -to evaluate the results obtained and defend them with arguments during the submission of the report.
Required prior and related subjects: prerequisites: algorithmization and programming part 1, алгоритмізація та програмування ч.2; co-requisites: discrete mathematics.
Summary of the subject: The Object Oriented Programming course includes the following topics: Fundamentals of the C ++ Object Oriented Programming Language. History of origin. The differences between C and C ++ are not related to using objects. Comparison of functional and object approach. Object-oriented programming. The main principles of the object-oriented approach. Abstraction. Limitation access. Modularity. Hierarchy. The concept of classes and objects. Constructors and destructors. Class description protocols. Creating objects. Access to fields and methods. Using class access specifiers. See classes. Container, nested, local. Designers and destructors. Rules for determining designers. Methods initialization of elements in constructors. Call procedure constructors and destructors. Static class members. Overload of functions and operations. Unary and binary operators. C ++ stream classes. Placement and healing operations. Input and output preresage. Definition of streaming operations as friendly. I / O process control functions. Flags formatting. Manipulators. File streams. Exceptional handling. Means of control, ejection objects, structural exception management. Inheritance (single, multiple). Inheritance mechanism. Access control. Friendly classes and friendly features. Encapsulation, imitation, polymorphism. Virtual functions. Pure virtual functions and abstract base classes. Placing VPTR and VMT tables in memory. Virtual destructors. Library of standard templates. Stack, lists, queues, decks, associative mappings, sets. Character strings, vectors, matrices, algorithms, arrays of values. Library of standard templates. Parameterized functions. Parameterized classes. Containers. API - functions for managing flows and processes. Sync streams in Windows. DLL (Dynamic-Linc Library). Qt Creator. Overview of properties DLL. Creating a DLL and applying Qt. Qt Creator - basic properties. UML tools. Object-oriented analysis and design of the subject environment using UML. Patterns and anti-patterns of design. Features of work.
Опис: History of origin. The differences between C and C++ are not related to the use of objects. Comparison of functional and object approach. Object-oriented programming. The main principles of the object approach. Abstraction. Access restrictions. Modularity. Hierarchy. Concept of classes and objects. Constructors and destructors. Class description protocols. Creation of objects. Access to fields and methods. Using class access specifiers. Kinds of classes. Container, nested, local. Constructors and destructors. Rules for defining constructors. Methods of initializing elements in constructors. The order of calling constructors and destructors. Static class members. Overloading of functions and operations. Unary and binary operators. C++ thread classes. Placement and healing operations. Input and output redirection. Defining streaming operations as friendly. I/O process control functions. Formatting flags. Manipulators. File streams. Handling of exceptional situations. Management tools, throwing objects, structural exception management. Inheritance (single, multiple). Mechanism of inheritance. Access control. Friendly classes and friendly functions. Encapsulation, imitation, polymorphism. Virtual functions. Pure virtual functions and abstract base classes. Placement of VPTR and VMT tables in memory. Virtual destructors. A library of standard templates. Stack, lists, queues, decks, associative mappings, sets. Character strings, vectors, matrices, algorithms, arrays of values. A library of standard templates. Parameterized functions. Parameterized classes. Containers. API – functions for managing flows and processes. Stream synchronization in Windows. DLL (Dynamic-Linc Library). Qt Creator. Overview of DLL properties. Creating a DLL and using Qt. Qt Creator - main features. UML tools. Object-oriented analysis and design of the subject environment using UML tools. Design patterns and antipatterns. Features of work.
Assessment methods and criteria: - current control (45%): written reports with laboratory work, oral questioning; - final control (55%, examination control ): testing (45%), oral component (10%).
Критерії оцінювання результатів навчання: 8 laboratory works of 5 points each (40 points in total) 50 points written work 10 points oral component
Порядок та критерії виставляння балів та оцінок: 100–88 points – (“excellent”) awarded for a high level of knowledge (some inaccuracies are allowed) of the educational material of the component contained in the main and additional recommended literary sources, the ability to analyze the phenomena being studied in their interrelationship and development, clearly, succinctly, logically, consistently answer the questions, the ability to apply theoretical provisions when solving practical problems; 87–71 points – (“good”) is awarded for a generally correct understanding of the educational material of the component, including calculations, reasoned answers to the questions posed, which, however, contain certain (insignificant) shortcomings, for the ability to apply theoretical provisions when solving practical tasks; 70 – 50 points – (“satisfactory”) awarded for weak knowledge of the component’s educational material, inaccurate or poorly reasoned answers, with a violation of the sequence of presentation, for weak application of theoretical provisions when solving practical problems; 49–26 points – (“not certified” with the possibility of retaking the semester control) is awarded for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to apply theoretical provisions when solving practical problems; 25-00 points - ("unsatisfactory" with mandatory re-study) is given for ignorance of a significant part of the educational material of the component, significant errors in answering questions, inability to navigate when solving practical problems, ignorance of the main fundamental provisions.
Recommended books: Powers L., Snell M. Microsoft Visual Studio 2015 Unleashed 3rd Edition. — Sams Publishing, 2015. — 1320 p. — ISBN-10: 0672337363, ISBN-13: 978-0672337369. 2. Penberthy W. Beginning ASP.NET for Visual Studio 2015 Wrox, 2016. — 792 p. — ISBN: 978-1-119-07742-8. 3. Bublyk V.V. Object-oriented programming Textbook. — K.: IT book, 2015. — 624 p.: illustrations. Auxiliary 1. Methodological instructions for performing laboratory work from the course "Object-oriented programming" for the specialty 122 "Computer science" / Add.: O.V. Oborska, V.I. Karkulovskyi, N.B. Yavorsky - Lviv Polytechnic National University, Lviv, 2021. - 127 p. Information resources C++ Tutorial [Electronic resource] // Tutorialspoint official website. – Access mode: http://www.tutorialspoint.com/cprogramming.
Уніфікований додаток: Lviv Polytechnic National University ensures the realization of the right of persons with disabilities to obtain higher education. Inclusive educational services are provided by the Service of accessibility to learning opportunities "Without restrictions", the purpose of which is to provide permanent individual support for the educational process of students with disabilities and chronic diseases. An important tool for the implementation of the inclusive educational policy at the University is the Program for improving the qualifications of scientific and pedagogical workers and educational and support staff in the field of social inclusion and inclusive education. Contact at: St. Karpinsky, 2/4, 1st floor, room 112 E-mail: nolimits@lpnu.ua Websites: https://lpnu.ua/nolimits https://lpnu.ua/integration
Академічна доброчесність: The policy regarding the academic integrity of the participants of the educational process is formed on the basis of compliance with the principles of academic integrity, taking into account the norms "Regulations on academic integrity at the Lviv Polytechnic National University" (approved by the academic council of the university on June 20, 2017, protocol No. 35).