Algorithms and Programming, part 2

Major: Financial Engineering
Code of subject: 6.113.03.O.010
Credits: 8.00
Department: Applied Mathematics
Lecturer: Ryzha I.A. (Ph.D.)
Semester: 2 семестр
Mode of study: денна
Мета вивчення дисципліни: The purpose of the course is to familiarize students with the basics of OOP; to give an idea of its basic concepts (encapsulation, polymorphism, inheritance); to teach how to use programming languages that support OOP methodology (C++ and C# in Microsoft Visual Studio); to introduce standard algorithms and templates (STL); to familiarize with the basics of UML (Unified Modeling Language), which is a standard tool for modeling, designing, developing and testing complex systems and processes; to give an idea of design patterns and their classification (creational patterns, structural patterns, behavior patterns, concurrency patterns).
Завдання: The study of a discipline involves the formation and development of the following students competencies: • general: ЗК3-ЗК6; ЗК8; ЗК11; ЗК13 according to EPP; • professional: ФК1; ФК2; ФК4 according to EPP. The learning outcomes of this discipline detail the following learning outcomes: ЗН2; ЗН4; УМ1; УМ5 according to EPP.
Learning outcomes: As a result of studying, the student must: • learn particularities of object-oriented programming languages (C++/С#); main concepts of OOP (encapsulation, polymorphism, inheritance); possibilities of standard template library (STL); basics of usage of unified modeling language (UML); some most popular design patterns; • be able to declare class, its attributes and methods; understand the purpose and applications of constructors, destructors, overloaded functions, methods and operators; declare virtual (and pure virtual) methods and abstract classes; declare and implement static attributes and methods of a class; declare and implement friends of a class; implement encapsulation, polymorphism and inheritance (including multiple inheritance) in class design; declare and use of interfaces; apply some common STL templates (vector, stack, iterator etc.) in applications design; describe application’s architecture using UML diagrams; use some design patterns in application design (abstract factory, singleton; adapter, bridge, proxy; iterator, observer, strategy).
Required prior and related subjects: prerequisites: • Algorythms and programming, Part 1 co-requisites: • Organization of Databases and Knowledge • Discrete Mathematics, Part 1 • Calculus, Part 2.
Summary of the subject: The course "Algorithms and programming, part 2" consists of the blocks "Fundamentals of structured programming in C/C++", "Fundamentals of OOP (in C/C++)", "Standard streams (in C/C++)", "Fundamentals of STL (in C/C++), "Basics of C# and the .NET platform", "Basics of UML", "Design Patterns" and "Other platforms and languages for OOP".
Опис: Basics of OOP and main concepts (encapsulation, polymorphism, inheritance). Programming languages supporting OOP methodologies (C++, C#). Standard algorithms and templates (STL). Basics of UML (Unified Modelling Language). Design patterns.
Assessment methods and criteria: Diagnostics of students' knowledge is carried out with the help of oral questioning during the laboratory classes, the students' three written tests and final examination.
Критерії оцінювання результатів навчання: Current control (oral questioning, laboratory training, written tests) – 45% (45 points). Final control – 55% (55 points, exam): written form – 55% (55 points).
Порядок та критерії виставляння балів та оцінок: 100-88 points - certified with an “excellent” grade - High level: the student demonstrates an in-depth mastery of the conceptual and categorical apparatus of the discipline, systematic knowledge, skills and abilities of their practical application. The mastered knowledge, skills and abilities provide the ability to independently formulate goals and organize learning activities, search and find solutions in non-standard, atypical educational and professional situations. The applicant demonstrates the ability to make generalizations based on critical analysis of factual material, ideas, theories and concepts, to formulate conclusions based on them. His/her activity is based on interest and motivation for self-development, continuous professional development, independent research activities, implemented with the support and guidance of the teacher. 87-71 points - certified with a grade of “good” - Sufficient level: involves mastery of the conceptual and categorical apparatus of the discipline at an advanced level, conscious use of knowledge, skills and abilities to reveal the essence of the issue. Possession of a partially structured set of knowledge provides the ability to apply it in familiar educational and professional situations. Aware of the specifics of tasks and learning situations, the student demonstrates the ability to search for and choose their solution according to the given sample, to argue for the use of a particular method of solving the problem. Their activities are based on interest and motivation for self-development and continuous professional development. 70-50 points - certified with a grade of “satisfactory” - Satisfactory level: outlines the mastery of the conceptual and categorical apparatus of the discipline at the average level, partial awareness of educational and professional tasks, problems and situations, knowledge of ways to solve typical problems and tasks. The applicant demonstrates an average level of skills and abilities to apply knowledge in practice, and solving problems requires assistance, support from a model. The basis of learning activities is situational and heuristic, dominated by motives of duty, unconscious use of opportunities for self-development. 49-00 points - certified with a grade of “unsatisfactory” - Unsatisfactory level: indicates an elementary mastery of the conceptual and categorical apparatus of the discipline, a general understanding of the content of the educational material, partial use of knowledge, skills and abilities. The basis of learning activities is situational and pragmatic interest.
Recommended books: 1. Prata S. C++ Primer Plus, 6th Edition. Addison-Wesley, 2011. 1420 pp. 2. Trey N. Accelerated C# 2010. Apress Berkeley, CA, 2010. 656 pp. 3. Booch G., Rumbaugh J. and Jacobson I. The Unified Modeling Language User Guide, 2nd Edition. Addison-Wesley Professional, 2005. 475 pp. 4. Gamma E., Helm R., Johnson R. and Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994. 417 pp.