How to use the Python programming language in fulfilling crypto-arithmetic tasks in secondary school
https://doi.org/10.32517/2221-1993-2023-22-4-67-73
Abstract
The article provides a way to optimize an enumeration process in the Python programming language while solving crypto-arithmetic (enumerative) tasks where two multi-digit numbers add to each other in a column. It is noted that there are two directions in fulfilling enumeration problems which suggest being optimized by combinatorial (algebraic) and programming methods. Moreover, it has been found out that it is impractical to express algebraic optimization methods directly in program codes, since programming languages have their own possibilities for optimizing search procedures.
Therefore, the process of learning how to optimize search while fulfilling enumerative tasks should be carried out in two stages. Combinatorial methods are the best means of forming students’ logical mindsets and algorithmic skills. That is the reason why these methods should necessarily be included in the informatics course at the level of general secondary education. Then, at the advanced stage of training, or at the level of secondary general education, it is useful for students to move to the programming direction mastering high-level programming languages.
The optimizing strategy of solving crypto-arithmetic problems described in the article, and its implementation in the Python language involves omitting conventional cyclic structures, as well as widely known methods of processing character data. When compiling a computer program "слова.py", the authors applied the join method and the permutations function of the itertools module from the Python standard library. This choice has greatly simplified the recording of the program codes and reduced the time it took to search for the solution.
About the Authors
Z. I. ZinnatullinRussian Federation
Moscow
O. M. Korchazhkina
Russian Federation
Moscow
References
1. Босова Л. Л. Программирование как инструмент формирования вычислительного мышления обучающихся // Информатика в школе. 2020. № 10. С. 4–10. EDN: GURIPH. DOI: 10.32517/2221-1993-2020-19-10-4-10.
2. Босова Л. Л., Аквилянов Н. А. Обработка символьных данных: от простого к сложному // Информатика в школе. 2022. № 6. С. 5–11. EDN: DVGZGT. DOI: 10.32517/2221-19932022-21-6-5-11.
3. Босова Л. Л., Павлов Д. И., Ткач Т. В., Бутарев К. В. О содержании «Базового курса информатики» в проекте «ИТ-класс в московской школе» // Информатика в школе. 2021. № 10. С. 9–18. EDN: FVCHQS. DOI: 10.32517/2221-1993-2021-20-10-9-18
4. Заславская О. Ю., Любутов О. Д. Особенности методики преподавания цикла For в языке Python в средней школе // Информатика в школе. 2022. № 4. С. 70–73. EDN: KGUBSE. DOI: 10.32517/2221-1993-2022-21-4-70-73.
5. Корчажкина О.М. Криптоарифметические и другие переборные задачи на уроках информатики // Актуальные проблемы методики обучения информатике и математике в современной школе: Материалы международной научнопрактической интернет-конференции (г. Москва, 18–24 апреля 2022 г.). М.: МГПУ, 2022. С. 159–170. EDN: IRPYVZ.
6. Корчажкина О. М. Оптимизация поиска при решении переборных задач в углубленном курсе информатики на уровне основного общего образования // Системы и средства информатики. 2022. Т. 32. № 4. С. 145–156. EDN: PFCFPE. DOI: 10.14357/08696527220414.
7. Пэйн Б. Python для детей и родителей: пер. с англ. М. А. Райтмана. М.: Издательство «Э», 2017. 352 с.
8. Саймон Г. Науки об искусственном: пер. с англ. 2-е изд. М.: Едиториал УРСС, 2004. 144 с.
9. Самылкина Н. Н. Организация углубленного обучения информатике на основе интегративного подхода: монография. М.: МПГУ, 2020. 346 с.
10. Смольняков В. Г. Методика выполнения задания № 8 ЕГЭ по информатике и ИКТ комбинаторным способом и способом программирования на Python // Информатика в школе. 2021. № 10. С. 54–60. EDN: JIOUDT. DOI: 10.32517/2221-19932021-20-10-54-60.
11. Щерба А. В. Программирование на Python®: Первые шаги. М.: Лаборатория знаний, 2022. 250 с.
Review
For citations:
Zinnatullin Z.I., Korchazhkina O.M. How to use the Python programming language in fulfilling crypto-arithmetic tasks in secondary school. Informatics in school. 2023;(4):67-73. (In Russ.) https://doi.org/10.32517/2221-1993-2023-22-4-67-73