Algorithmization and programming 2

Mandatory discipline
Навчальна дисципліна професійної підготовки
Обсяг освітнього компонента: 
• у кредитах ЄКТС — 6.0.
Кількість аудиторних занять: 
15 lectures, 8 laboratory lectures, 7 practical classes.
Самостійна робота: 
120 hours.
Індивідуальна робота: 
• очна форма — курсова робота.
Семестровий контроль: 
Exam. Protection of course work.
Освітню компоненту забезпечує: 
Анотація: 

Abstract of the academic discipline

The purpose of studying the discipline: the formation and development of competencies aimed at acquiring practical skills of professional computer ownership and the application of procedurally oriented technology for developing software products when solving applied tasks in the field of computer science, mastering the theoretical foundations of algorithmization and programming, mastering basic programming techniques algorithmic structures and basic data structures.
Practical significance and use of acquired knowledge: Understanding imperative programming paradigms. Gaining knowledge about the basic principles and techniques of structural programming, features of function programming. Gaining knowledge about the peculiarities of using dynamic memory, processing data using pointers, address arithmetic. Understanding of dynamic and file data structure programming. Mastering the techniques and technology of program debugging and testing. Obtaining knowledge and skills in documenting software products.

Main learning outcomes
PRN#5. Design, develop and analyze algorithms for solving computational and logical problems, evaluate the effectiveness and complexity of algorithms based on the application of formal models of algorithms and calculated functions.
PRN#9. To develop software models of subject environments, to choose a programming paradigm from the standpoint of convenience and quality of application for the implementation of methods and algorithms for solving problems in the field of computer science.

Subjects and types of educational classes
1 week.
Lecture #16 "Programming using pointers".
Laboratory lesson #16
"Programming using pointers. Dynamic arrays".
2 week.
Lecture #17 "Means of allocating and freeing dynamic memory".
Practical lesson #1
"Using pointers when working with dynamic memory".
3 week.
Lecture #18 "Structural programming. Functions in the C programming language".
Laboratory lesson #17
"Creating a function in the C programming language."
Obtaining the task for the course work.
4 week.
Lecture #19 "Programming of functions. Transfer of arguments".
Practical lesson #2
"Development of programs using functions".
Performance of the course work.
5 week.
Lecture #20 "Working with files and streams".
Laboratory lesson #18
"Working with files in the C programming language. Functions of character and string input/output of data."
Performance of the course work.
6 week.
Lecture #21 "Working with files. Direct access to files".
Practical lesson #3
"Programming files".
Performance of the course work.
7 week.
Lecture #22 "Dynamic data structures. The abstract data type is a list.
Laboratory lesson #19
"Working with files in the C programming language. Format and block data input/output functions."
Performance of the course work.
Modular test # 3.
8 week.
Lecture #23 "Programming of dynamic data structures. Types of linked lists".
Practical lesson #4
"Working with lists: creation, data processing."
Performance of the course work.
9 week.
Lecture #24 "Classification of linear lists. Programming of dynamic data structures. Stack".
Laboratory lesson 20
"Working with files in the C programming language. System operations with files."
Performance of the course work.
10 week.
Lecture #25 "Abstract data type queue. The logical structure of the queue".
Practical lesson #5 "Working with stacks: creation, processing of data."
Performance of the course work.
11 week.
Lecture #26 "Programming tools at the bit level".
Laboratory lesson #21 "Programming bitwise operations".
Performance of the course work.
12 week.
Lecture #27 "Software control of the screen in text mode".
Practical lesson #6 "Representation of data at the level of bits and operations with them".
Performance of the course work. Issuance of an explanatory note.
13 week.
Lecture #28 "Programming of dynamic data structures. Trees. Basic terminology".
Laboratory lesson #22
"Management of data display on the screen. Data input/output using windows.
Performance of the course work. Completion of the explanatory note.
14 week.
Lecture #29 "Programming of dynamic data structures. Binary trees".
Practical lesson #7
"Working with binary trees: creation, data processing."
Defense of the course work.
15 week.
Lecture 30 "Abstract data type - priority queue".
Laboratory lesson #23
"Management of data display on the screen. Data input/output using color and styles".
Defense of the course work.
Modular test # 4.

Individual work of the applicant takes place during the semester and consists of preparation for classroom works, control measures, individual tasks.
Consultations: are carried out by the teacher during the semester according to the schedule.

Assessment of learning outcomes
The evaluation of the results of studies in the discipline is carried out according to the cumulative system, which allows the student to receive a maximum of 100 points during the semester.

Module # 3
Laboratory works # 16, 17, 18, 19 – maximum 5 points per one work = 20 points.
Active work in practical lessons – maximum 2 points per one lesson - 6 points.
Modular test #3 – perfect execution 24 points (maximum points for each task of modular test are given).
The course work is evaluated maximum possible 30 points.

Module # 4
Laboratory works 20, 21, 22, 23 - maximum 5 points per one work = 20 points.
Active work in a practical lesson - maximum 2 points per lesson - 8 points.
Modular test # 4 – perfect execution of 22 points (maximum points for each task of modular test are given).
Defense of the course work - maximum 70 points.

Links to recommended sources of information

1. Shpak Z.Ya. Programming in the C language: a tutorial. – L.: Lviv Polytechnic, 2011. – 436 p.
2. Kozak L.I., Kostyuk I.V., Stasevych S.P. Fundamentals of programming: a study guide. - Lviv: "New World-2000", 2020. - 328 p.
3. Krenevich A.P. Algorithms and data structures: a textbook. - K.: VOC "Kyiv University", 2021. - 200 p.
4. Kovalyuk T.V. Algorithmization and programming: a textbook. - Lviv: "Magnolia 2006", 2021. - 400 p.

2022