Object-Oriented Programming in C ++

Major: Telecommunications and Radio Engineering
Code of subject: 6.172.01.E.052
Credits: 4.00
Department: Telecommunication
Lecturer: Kaidan Mykola Volodymyrovych
Semester: 7 семестр
Mode of study: денна
Мета вивчення дисципліни: The purpose of teaching the discipline is to familiarize students with the basics of an object-oriented approach to writing programs for solving a wide range of engineering and scientific and technical problems and to prepare students for the development (programming) and support of telecommunication systems software.
Завдання: The study of an educational discipline involves the formation of competencies in students of education: general competences: - ZK-5. Ability to communicate in the state language both orally and in writing; - ZK-8. Ability to identify, pose and solve problems; - ZK-15. Knowledge of another language(s).
Learning outcomes: As a result of studying the academic discipline, the student must be able to demonstrate the following learning outcomes: - UM13. Apply knowledge and understanding to solve problems of synthesis and analysis in information and communication systems, which are characteristic of the chosen specialty. - UM14. Systematically think and apply creative abilities to the formation of fundamentally new ideas; - UM17. Work effectively both individually and as part of a team. As a result of studying the academic discipline, the student must be able to demonstrate the following program learning outcomes: RN 1 (UM13. Apply knowledge and understanding to solve problems of synthesis and analysis in information and communication systems, which are characteristic of the chosen specialty.) RN 2 (UM14. To think systematically and apply creative abilities to the formation of fundamentally new ideas.) RN 3 (KOM 1. Ability to communicate, including oral and written communication in Ukrainian and foreign (English) languages) RN 4 (KOM 2. Ability to use various methods of modern information technologies for effective communication at the professional and social levels) RN 5 (AiV1. Ability to adapt to new situations and make appropriate decisions) RN 6 (AiV2. The ability to realize the need for lifelong learning in order to deepen the acquired and acquire new professional knowledge) RN 7 (AiV3. The ability to take responsibility for the work performed, to make decisions independently, to achieve the set goal in compliance with the requirements of professional ethics)
Required prior and related subjects: Previous educational disciplines Theory of algorithms and data structures Associated and subsequent educational disciplines Object-oriented programming Java, C#
Summary of the subject: Apply knowledge and understanding to solve problems of synthesis and analysis in information and communication systems, which are characteristic of the chosen specialty. To think systematically and apply creative abilities to the formation of fundamentally new ideas. Ability to communicate, including oral and written communication in Ukrainian and foreign (English) languages. Ability to use various methods of modern information technologies for effective communication at professional and social levels. Ability to adapt to new situations and make appropriate decisions. The ability to realize the need for lifelong learning in order to deepen the acquired and acquire new professional knowledge. The ability to take responsibility for the work performed, to make decisions independently, to achieve the set goal in compliance with the requirements of professional ethics.
Опис: 1. Basic concepts of OOP. Basics of C++ 2. Arrays. Rows Pointers and links Array Sorting Multidimensional Arrays Pointers Null Pointers Address Arithmetic and Array Indexing Dynamic Memory Allocation Reference Member Access Operator via Pointer Pointer to Pointer 3. Function Passing arguments to a function Built-in functions Function overloading Default parameters Pointers to functions Stack and Heap Input to std :: array Input to std :: vector Vector capacity Recursion Error handling, cerr and exit ()assert and static_assert Command line arguments Ellipse 4. Basic concepts of object-oriented programming. Classes, objects and methods Access specifiers public and private Encapsulation, getters and setters Constructors Initialization list of class members Delegation of constructors Destructors Hidden pointer * this Separation of declaration from implementation Classes and headers Static variables-members of the class Static methods of the class Friendly functions and classes Anonymous ob objects Nested data types in classes 5. Operator overload. 6. Communication between objects Composition of objects Aggregation Association Dependency 7. Inheritance in C++ Basic inheritance The order of construction of child classes Constructors and initialization of child classes Inheritance and access specifier protected . Adding new functionality to a child class Overriding parent class methods Hiding parent class methods Multiple inheritance 8. Virtual functions. Pointers, references and inheritance Virtual functions and polymorphism Override and final modifiers Virtual destructors and virtual assignment Early and late binding Virtual tables Pure virtual functions, interfaces and abstract classes Diamond of death Virtual base classes Object pruning Dynamic type casting. operator dynamic_cast Output of class objects through the output operator 9 Templates Function templates Instances of function templates Container classes Class templates The non-type parameter in the template Explicit specialization of the function template Explicit specialization of the class template Partial specialization of the template 10 Exceptions. throw, try, catch Stack expansion Handlers of all types of exceptions Exception classes and inheritance 11 Smart pointers Move semantics Move constructor and move assignment operator Function std :: move () Smart pointer std::unique_ptr Smart pointer std::shared_ptr Smart pointer std::weak_ptr 12 Standard Template Library (STL) in C++ STL Containers STL Iterators STL Algorithms 13 Working with the network. Berkeley Socket Allocators. Multiplexing. Asynchronous work with the network 14 Processes and interprocess interaction. Processes. Signals. Files Channels Message queues. Semaphores. Shared memory 15 Flows and means of synchronization. Parallel programming
Assessment methods and criteria: Protection of laboratory work in the form of a survey based on completed reports. Examination control written component (individual tasks - theoretical questions and problem solving), oral component (survey based on the list of questions to be studied and submitted for semester control).
Критерії оцінювання результатів навчання: Current control – 40 points Examination control: written component 50; oral component 10
Порядок та критерії виставляння балів та оцінок: 100–88 points – (“excellent”) is 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 awarded 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: 1. Віртуальне навчальне середовище академії Cisco Національного університету «Львівська політехніка», Електронний навчально-методичний комплекс. [Електронний ресурс]. Режим доступу до ресурсу ЕНМК: https://www.netacad.com/portal/course/781746. 2. Віртуальне навчальне середовище Національного університету «Львівська поілтехніка», Електронний навчально-методичний комплекс. [Електронний ресурс]. Режим доступу до ресурсу ЕНМК: http://vns.lpnu.ua/course/view.php?id=8837 Рекомендована література Базова 1. Глинський Я. М. С++ Builder: навч. посіб. / Я.М. Глинський, В.Є. Анохін, В.А. Ряжська. – 4-те вид. – Л. : СПД Глинський, 2008. – 190 с. 2. Путятін Є.П., Степанов В.П. та ін. Основи програмування мовою С++: Навчальний посібник. – Х.: ТОВ «Компанія СМІТ», 2005. – 320 с. 3. Лафоре Л. Объектно-ориентирование программирование в C++, 4-е издание — М.: Питер, 2004. - 923 с. 4. Прата С. Язык программирования C++. Лекции и упражнения, 6-е изд. - Пер. с англ. - М. Издательский дом “Вильямс”, 2012. - 1248 с. 5. Строуструп Б. Введение в язык С++ - М.:Бином, 2011. - 1136 с. 6. Шилдт Г. C++: базовий курс, 3-е изд. : Пер. с англ. - М. Издательский дом “Вильямс”, 2012. - 624 с. Допоміжна 1. Березин Б.И., Березин С.Б. Программирование на С и С++ - М.: ДИАЛОГ-МИФИ, 2001. - 288 с. 2. Керниган Б., Ритчи Д.. Язык программирования С, 2-е издание - М.: Вильямс — 2009. - 292 с. 3. Митчелл М., Оулдем Д., Самьюэл А. Программирование для Linux. Профессиональный подход. - Пер. с англ. - М. Издательский дом “Вильямс”, 2008. - 288 с. 4. Папас К., Мюррей У. Программирование на C и C++ - К.: Издательская група BHV, 2000. - 320 с. 5. Шилдт Г. Справочник программиста C/C++, 3-е изд.: Пер. с англ. - М. Издательский дом “Вильямс”, 2003. - 432 с. 6. Lee M. С++ programming for absolute beginner, Second edition. - Course Technology, 2009. - 363 p. Інформаційні ресурси Електронний навчально-методичний комплекс «Об’єктно-орієнтоване програмування С++» (https://vns.lpnu.ua/user/view.php?id=55455&course=8837) для студентів Інституту телекомунікацій, радіоелектроніки та електронної техніки 172 спеціальності «Телекомунікації та радіотехніка». Укладач - д.т.н., доцент Кайдан Микола Володимирович, професор кафедри телекомунікації. 1. https://cppinstitute.org/ 4. http://cpp.sh/ 5. https://edube.org/sandbox?language=cpp 6. http://ideone.com/. 7. https://www.visualstudio.com. 8. https://eclipse.org.
Уніфікований додаток: 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).

Object-Oriented Programming in C ++ (курсова робота)

Major: Telecommunications and Radio Engineering
Code of subject: 6.172.01.E.056
Credits: 2.00
Department: Telecommunication
Lecturer: Kaidan Mykola Volodymyrovych
Semester: 7 семестр
Mode of study: денна
Мета вивчення дисципліни: Students' acquisition of knowledge, abilities and skills in the object-oriented approach to writing programs for solving a wide range of engineering and scientific and technical problems and preparing students for development (programming) and software support of telecommunication systems.
Завдання: Completion of the course work involves the formation and development of students' competencies: general: • know development environments and tools for creating executable programs; • know the stages of writing executable programs; • know the main characteristics of programming methods; • know the concept of object-oriented programming; • be able to apply concepts of abstraction and encapsulation; • be able to apply the concepts of inheritance and polymorphism; • understand ways of controlling the transmission of digital information packets in telecommunication networks; • understand methods of protecting digital information using primitive encryption algorithms in telecommunication systems; • understand how digital information is processed in telecommunication systems. professional: • develop software for analysis and conversion of digital data in telecommunication systems; • develop software for interference-resistant coding, control over the reliability of reception and transmission of digital information by telecommunication networks; • develop software using algorithms for searching and sorting digital data in telecommunication systems; • develop software for the implementation of protocols for receiving and transmitting packets of information by telecommunication networks.
Learning outcomes: • knowledge of the basic concepts and definitions of object-oriented programming; • knowledge of the basic principles of object-oriented programming; • knowledge of the principles of class building and their hierarchies. • ability to design a variety of real-world data objects; • ability to create a project for future software; • ability to programing in C ++.
Required prior and related subjects: Informatics (for Professional Purposes), part 1; Informatics (for Professional Purposes), part 2; C ++ Object Oriented Programming.
Summary of the subject: The course work is designed to form and develop skills and practical skills in the field of application of an object-oriented approach to the design and implementation of software systems. An explanatory note to a term paper should contain textual and illustrative material.
Опис: Stages of course work Acquaintance with the task, the methodology of course work and clarification of the task option The analysis of the subject area is the first stage of design and ends with the construction of an information structure (conceptual model). At this stage, user needs are analyzed, information objects and their characteristics are selected, and the subject area is structured based on the analysis. Logical design. Development of a logical scheme, which is focused on the selected software tools. Selection of software tools. Representation of a conceptual scheme and a logical scheme Software implementation of the task. Development of recommendations for improving the system and development of new applications in case of development and change of the subject area Protection of term paper
Assessment methods and criteria: Demonstration of the program, checking the report. 100%
Критерії оцінювання результатів навчання: Current control 45 Checking the text and graphic part of the coursework 15 Defense of course work 40
Порядок та критерії виставляння балів та оцінок: 100–88 points – (“excellent”) is 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 awarded 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: 1. Глинський Я. М. С++ Builder: навч. посіб. / Я.М. Глинський, В.Є. Анохін, В.А. Ряжська. – 4-те вид. – Л. : СПД Глинський, 2008. – 190 с. 2. Путятін Є.П., Степанов В.П. та ін. Основи програмування мовою С++: Навчальний посібник. – Х.: ТОВ «Компанія СМІТ», 2005. – 320 с. 3. Lee M. С++ programming for absolute beginner, Second edition. - Course Technology, 2009. - 363 p.
Уніфікований додаток: 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).