Foundations of Object-Oriented Programming

Course: Software Engineering

Structural unit: Faculty of Computer Science and Cybernetics

Title
Foundations of Object-Oriented Programming
Code
ННД.16
Module type
Обов’язкова дисципліна для ОП
Educational cycle
First
Year of study when the component is delivered
2022/2023
Semester/trimester when the component is delivered
4 Semester
Number of ECTS credits allocated
8
Learning outcomes
PLO01. Analyze, purposefully search for and select the necessary information and reference resources and knowledge to solve professional problems, taking into account modern advances in science and technology. PLO04. Know and apply professional standards and other regulatory documents in the field of software engineering. PLO05. Know and apply relevant mathematical concepts, methods of domain, system and object-oriented analysis and mathematical modeling for software development. PLO07. Know and apply in practice the fundamental concepts, paradigms and basic principles of operation of languages, tools and computing facilities of software engineering. PLO08. Be able to develop a human-machine interface. PLO12. Apply in practice effective approaches to software design. Details in section 6 https://iss.csc.knu.ua/files/study/bachelor-degree/courses-2019-202x/introduction-to-object-oriented-programming.pdf
Form of study
Full-time form
Prerequisites and co-requisites
1. Know: basic concepts of programming and principles of program development; basic algorithms and data structures 2. Be able to: design, develop and test programs at a basic level. 3. Have basic skills: programming in C, C ++.
Course content
The purpose of the discipline is the formation of students' basics of knowledge necessary for understanding the organization, operation and design of object-oriented software systems; mastering the skills of designing object-oriented systems; mastering programming skills in C/C++. As a result of studying the discipline the student must: know the principles of organization and operation of object-oriented software systems; basic methods of designing object-oriented software systems, in particular the use of design patterns; basic principles of object-oriented programming, including encapsulation, inheritance and polymorphism. be able to create programs using the C/C++ programming language and standard C/C++ language libraries; use modern development tools, including unit testing tools, revision control systems; design object-oriented software systems using graphical UML notation.
Recommended or required reading and other learning resources/tools
1. Bjarne Stroustrup: The C++ Programming Language, 4th Edition. // Addison-Wesley Professional, 2013. 2. Bjarne Stroustrup: Programming: Principles and Practice Using C++, 2nd Edition // Addison-Wesley Professional, 2014. 3. Bjarne Stroustrup: A Tour of C++, 2nd Edition. // Addison-Wesley Professional, 2018. 4. Scott Meyers: Effective C++ Digital Collection: 140 Ways to Improve Your Programming, 1st Edition // Addison-Wesley Professional, 2012. 5. Scott Meyers: Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 // O’Reilly Media, Inc., 2015. 6. Erikh Gamma, Richard Khelm, Ral'f Dzhonson, Dzhon Vlissides: Priyemy ob"yektno-oriyentirovannogo proyektirovaniya. Patterny proyektirovaniya. // Piter, 2015. 7. Maks Shleye: Qt 5.10. Professional'noye programmirovaniye na C++ // BKHV-Peterburg, 2018. 8. Satter G. Resheniye slozhnykh zadach na S++. M. Vil'yams 2002.
Planned learning activities and teaching methods
Lectures, laboratory classes, independent work, tests, defense of laboratory work, exam.
Assessment methods and criteria
- semester assessment: 1. Test 1: LO1.1, LO 1.2 - 10 points / 6 points. 2. Test 2: LO 1.3, LO 1.4 - 10 points / 6 points. 3. Laboratory work 1 (project): LO 1.1, LO 2.1, LO 3.1 - 10 points / 6 points. 4. Laboratory work 2 (project): LO 1.2, LO 2.1, LO 2.2, LO 3.1 - 10 points / 6 points. 5. Laboratory work 3 (project): LO 1.3, LO 2.3, LO 3.1 - 10 points / 6 points. 6. Laboratory work 4 (project): LO 1.4, LO 2.4, LO 3.1 - 10 points / 6 points. - final assessment (in the form of an exam): - the maximum number of points that can be obtained by a student: 40 points; - learning outcomes that will be evaluated: LO 1.1, LO 1.2, LO 1.3, LO 2.3; - form and types of tasks: written. Types of tasks: 4 written tasks.
Language of instruction
Ukrainian

Lecturers

This discipline is taught by the following teachers

Kostiantyn A. Zhereb
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics
Oleh O. Suprun
Department of Intelligent Software Systems
Faculty of Computer Science and Cybernetics