Дата публикации: 01.04.2024

Новый метод оценки алгоритмического мышления на непрограммистских задачах: разведывательное исследование

Аннотация

Алгоритмическое мышление в основном оценивается через стандартизированные тесты и профессиональные задачи, что сужает возможности выявления специфики алгоритмизации решения у людей с разным опытом программирования. С целью уточнить гипотезу о такой специфике мы предложили альтернативный метод оценки, требующий алгоритмизации, но не специальных знаний в программировании. По протоколам решений разработанной нами задачи выделены параметры качества алгоритмизации, допускающие надежную кодировку. Результаты показали, что предложенный метод дает требуемую вариативность решений и позволяет создавать новые варианты задач на основе выделенных параметров. Также уточнена гипотеза о специфике алгоритмизации у людей с разным опытом программирования, хотя ее проверка требует специальных исследований.




Подходы к оценке мышления программистов

Программистская деятельность заключается в создании программ — алгоритмических решений разнообразных задач. Согласно профессиональному стандарту [4] деятельность программиста направлена на разработку и отладку кода, включая формализацию и алгоритмизацию поставленных задач: написание программного кода, его проверку и отладку. Поэтому работа с задачей: анализом условий, структурированием имеющихся данных, пониманием ограничений, оценкой качества решения и выбора оптимального решения — напрямую касается профессиональной компетенции программиста. Неудивительно поэтому, что во множестве исследований оценивались эффекты обучения программированию в отношении самых разных видов когнитивных способностей, имеющих отношение к решению задач: например, дивергентного мышления [8], метакогнитивных способностей [7], способности разрешать проблемы [13; 20], навыков рассуждения [14; 20], креативности [9], интеллекта [2].

Если же ставится задача исследовать не эффекты обучения программированию, а специфические особенности решения задач программистами, то в литературе выделяются две методические возможности для такого исследования: во-первых, стандартизированные тесты, во-вторых, тестовые «программистские» задачи, когда, например, предлагается написать какой-то код или найти в готовом решении ошибки. Однако ни один подход не позволяет выявить искомую специфику решения задач. Так, при стандартизированном тестировании исследователи имеют дело с некоторым результатом когнитивной деятельности, выраженным числом правильно решенных тестовых заданий. Хотя такой подход позволяет сравнивать результаты решения задачи программистами, сам процесс размышления, связывающий постановку задачи с итоговым ответом, остается скрытым.

В отличие от стандартизированных тестов, использование программистских задач позволяет оценить изменения в подходах к их решению и специфике размышления. При этом такого рода задача может быть поставлена только людям, которые уже имеют профессиональную подготовку, и, таким образом, не дает возможности описать специфику алгоритмического мышления программистов в сравнении с непрограммистами. Поэтому при всей полезности исследований с использованием профессиональных задач вопрос о методе сравнения алгоритмического мышления программистов остается открытым.

Список литературы

1. Fox, R. W. The Effect of Computer Programming Education on the Reasoning Skills of High School Students / R. W. Fox, M. E. Farmer // Instructional Science. — 2011. — Vol. 45, № 5. — P. 583–602.
2. Ye, N. Expert-novice knowledge of computer programming at different levels of abstraction / N. Ye, G. Salvendy // Ergonomics. — 1996. — Vol. 39, № 3. — P. 461–481.
3. Woodrow, B. Expert-novice differences for software: implications for problem-solving and knowledge acquisition / B. Woodrow // Behaviour and Information Technology. — 1986. — Vol. 5, № 1. — P. 15–29.
4. Weiser, M. Programming problem representation in novice and expert programmers / M. Weiser, J. Shertz // International Journal of Man-Machine Studies. — 1983. — Vol. 19, № 4. — P. 391–398.
5. Using eye tracking to examine expert-novice differences during simulated surgical training : A case study / S. Li, M. C. Duffy, P. L. Susanne [et al.] // Computers in Human Behavior. — 2023. — Vol. 144, № 7. — DOI: 10.1016/j.chb.2023.107720
6. Understanding the Differences Between Novice and Expert Programmers in Memorizing Source / M. Kramer, M. Barkmin, D. Tobinski, T. Brinda // Tomorrow’s Learning : Involving Everyone. Learning with and about Technologies and Computing. WCCE 2017. IFIP A
7. Sala, G. Experts’ memory superiority for domain-specific random material generalizes across fields of expertise : A meta-analysis / G. Sala, F. Gobet // Memory and Cognition. — 2017. — Vol. 45, № 2. — DOI: 10.3758/s13421-016-0663-2
8. Psycharis, S. The effects of computer programming on high school students’ reasoning skills and mathematical self-efficacy and problem solving / S. Psycharis, M. Kallia // Instructional Science. — 2017. — Vol. 45. — P. 583–602.
9. Obaidellah, U. A Survey on the Usage of Eye-Tracking in Computer Programming / U. Obaidellah, M. Haek, P. C.-H. Cheng // ACM Computing Surveys. — 2018. — Vol. 51, № 1. — DOI: 10.1145/3145904
10. Norman, D. A. User centered system design : New perspectives on human-computer interaction / D. A. Norman, S. W. Draper // Cognitive Engineering, Lawrence Erlbaum Associates, Hillsdale. — New Jersey, 1986. — P. 31–61.
11. Metacognitive Difficulties Faced by Novice Programmers in Automated Assessment Tools / J. Prather, P. Raymond, M. Kayla, A. Peters // ACM Conference on International Computing Education Research (ICER’18) / Association for Computing Machinery. — New Y
12. Koenemann, J. Expert problem solving strategies for program comprehension / J. Koenemann, S. P. Robertson // The SIGCHI Conference on Human Factors in Computing Systems. — New Orleans, 1991. — P. 125–130.
13. How Experts Adapt Their Gaze Behavior When Modeling a Task to Novices / S. N. Emhardt, E. M. Kok, H. Jarodzka [et al.]. // Cognitive Science. — 2020. — Vol. 44, № 9. — e12893. — DOI: 10.1111/cogs.12893
14. Кукушкина, Ю. А. Критическое мышление как фактор профессиональной компетентности программистов / Ю. А Кукушкина, В. Ф. Спиридонов // Психология. — 2008. — Т. 5, № 1. — С. 165–174.
15. Fessakis, G. Problem solving by 5–6 years old kindergarten children in a computer programming environment: a case study / G. Fessakis, E. Gouli, E. Mavroudi // Computers and Education. — 2013. — Vol. 63. — P. 87–97.
16. Eye tracking in computing education / T. Busjahn, C. Schulte, B. Sharif [et al.] // The Tenth Annual Conference on International Computing Education Research. — Glasgow, 2014. — P. 3–10.
17. Developer Reading Behavior While Summarizing Java Methods : Size and Context Matters / N. J. Abid, B. Sharif, N. Dragan [et al.] // IEEE/ACM 41st International Conference on Software Engineering (ICSE). — Montreal, 2019. — DOI: 10.1109/ICSE.2019.00052
18. Comparing Programming Language Comprehension between Novice and Expert Programmers Using EEG Analysis / S. Lee, A. Matteson, D. Hooshyar [et al.] // IEEE 16th International Conference on Bioinformatics and Bioengineering (BIBE). — Taichung, Taiwan, 20
19. Clements, D. H. Enhancement of Creativity in Computer Environments / D. H. Clements // American Educational Research Journal. — 1991. — Vol. 28, № 1. — P. 173–187.
20. Cathcart, W. G. Effects of Logo Instruction on Cognitive Style / W. G. Cathcart // Journal of Educational Computing Research. — 1990. — Vol. 6, № 2. — P. 231–242.
21. Bernard, M. Enhancing the Metacognitive Skill of Novice Programmers Through Collaborative Learning / M. Bernard, E. Bachu // Intelligent Systems Reference Library. — 2015. — Vol. 76. — P. 277–298. — DOI: 10.1007/978-3-319-11062-2_11
22. Aljehane, S. Determining Differences in Reading Behavior Between Experts and Novices by Investigating Eye Movement on Source Code Constructs During a Bug Fixing Task / S. Aljehane, B. Sharif, J. Maletic // ACM Symposium on Eye Tracking Research and App
23. Adelson, B. Problem solving and the development of abstract categories in programming languages / B. Adelson // Memory and Cognition. — 1981. — Vol. 9. — P. 422–433.
24. Российская Федерация. Правительство. Об утверждении федерального государственного образовательного стандарта среднего профессионального образования по специальности 09.02.03 Программирование в компьютерных системах : Приказ Минобрнауки РФ от 28.07.2014
25. Примеры заданий предварительного тестирования PISA 2015 / Федеральный институт оценки качества образования. — OECD, 2015. — 89 с. — (Программа ОЭСР «Международная оценка образовательных достижений учащихся»).
26. Орел, Е. А. Особенности интеллекта профессиональных программистов / Е. А. Орел // Вестник Московского университета. Серия 14, Психология. — 2007. — № 2. — С. 70–79.

Остальные статьи