ON THE ADVANTAGE OF STUDYING THE BASICS OF DYNAMIC PROGRAMMING IN HIGH SCHOOL AND UNIVERSITY
DOI:
https://doi.org/10.32782/3041-2021/2025-2-30Keywords:
feasibility of studying dynamic programming, optimization methods, methods of teaching informatics, algorithmic thinking, IT competence development, efficient programming, asymptotic computational complexity, algorithm optimizationAbstract
The article substantiates the feasibility of studying the basics of dynamic programming in computer science lessons in high school and in programming classes in junior years of universities in the topics “Nested Loops”, “Arrays” and “Recursions”. A model problem is presented and the sequence of its solution is described to demonstrate the basics of the dynamic programming method: allocation of system states, where the last state corresponds to the solution of the entire problem; establishment of a criterion for optimality of states; sequential determination of the optimal result for each state with saving this result for further calculation of optimal results of subsequent states; formation of a path to achieve an optimal result for the entire problem through the reverse determination of the corresponding intermediate states. It is shown that the relationship between the states of the system does not necessarily have to be linear, the main thing is that the optimal result of the next state is determined through the saved optimal results of the previous states.Recursive formulas are determined for sequential calculation of optimal results of each state of the problem.The program fragments for implementing the developed algorithms of the main stages of solving the problem in the C# programming language are presented. The complexity of the given algorithms for implementing individual stages of solving the problem was assessed using algorithm theory methods. It was established that the asymptotic computational complexity of the forward and backward steps of the dynamic programming method based on recurrent formulas is at least an order of magnitude lower than the corresponding recursive calls of subroutines. The correctness of the theoretical calculations and the correctness of the given program fragments were confirmed experimentally using a remote independent computing environment on the website https://basecamp.eolymp.com. It is emphasized that studying the basics of dynamic programming will form regression testing skills and writing not only correct but also effective programs in students.
References
Динамічне та нелінійне програмування. Методичні вказівки до проведення практичних та самостійних занять з курсу «Дослідження операцій» для студентів факультету кібернетики / упорядн. В. І. Тюптя, В. І. Шевченко, В. К. Стрюк. Київ : Електронна бібліотека факультету кібернетики Київського національного університету імені Тараса Шевченка, 2003, 30 с. URL: http://csc.univ.kiev.ua/uk/library/books/tiuptia-31.pdf (дата звернення: 27.05.2025).
Інформатика для 10–11 класів (профільне навчання). URL: https://mon.gov.ua/storage/app/media/zagalna%20 serednya/programy-10-11-klas/2018-2019/01/10-11-profilniy-riven.docx (дата звернення: 27.05.2025).
Інформатика. Навчальна програма вибірково-обов’язкового предмета для учнів 10–11 класів загальноосвітніх навчальних закладів (рівень стандарту). URL: https://mon.gov.ua/storage/app/media/zagalna%20serednya/programy-10-11-klas/2018-2019/informatika-standart-10-11.docx (дата звернення: 27.05.2025).
Метод динамічного програмування та його особливості. URL: https://foxminded.ua/metod-dynamichnoho-prohramuvannia/ (дата звернення: 27.05.2025).
Олефіренко Н. В., Курганський А. Р. Розробка електронного посібника для навчання школярів основ динамічного програмування. Наумовські читання : збірник тез доповідей ХІХ науково-методичної конференції здобувачів вищої освіти та молодих учених (м. Харків, 2–24 листопада 2021 року). Харків, 2022, с. 158–160.
Програма курсу «Інформатика». 5–9 класи загальноосвітніх навчальних закладів. URL: https://mon.gov.ua/storage/app/media/zagalna%20serednya/programy-5-9-klas/onovlennya-12-2017/programa-informatika-5-9-traven-2015.pdf (дата звернення: 27.05.2025).
Програма курсу «Інформатика». 8–9 класи загальноосвітніх навчальних закладів з поглибленим вивченням інформатики. URL: https://mon.gov.ua/storage/app/media/zagalna%20serednya/programy-5-9-klas/informatika.pdf (дата звернення: 27.05.2025).
Шпортько О. В., Малаш К. М. Застосування мемоізації в задачах мінімізації кількості знаків арифметичних операцій. Вісник Національного університету водного господарства та природокористування. Серія : Тех- нічні науки. Рівне : НУВГП, 2020. № 2 (90). С. 127–143.
Bellman R. On the Theory of Dynamic Programming. Proc N. A S. USA. Vol. 38 (8). 1952. Pp. 716–719. URL: https://www.pnas.org/doi/abs/10.1073/pnas.38.8.716.
Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. Introduction to Algorithms. Third Edition. Cambridge : MIT Press, 2009. 1320 p.
Downloads
Published
Issue
Section
License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.