Аннотация:
Рассматривается возможность автоматизации качественного оценивания решений задач по программированию при обучении учащихся средней школы. Рассмотрены существующие на данный момент способы оценивания решения задач по программированию, выделены их преимущества и недостатки. На основе рассмотренных способов обоснована возможность использования представления исходного кода решения задачи в виде семантической сети для его дальнейшего качественного оценивания машинными методами. Вводится понятие функции подобия двух семантических сетей, построенных на программном коде. Данная функция определяется как отношение суммы размеров подграфов, составленных из общих элементов семантических сетей, к сумме размеров исследуемых сетей. Приводятся свойства получаемой функции, вытекающие из ее определения, а также приводится алгоритм вычисления функции подобия, созданного на основе алгоритма ISD. Рассматриваются различные модификации указанного алгоритма, обосновывается влияние каждого из них на итоговый результат. Для проверки работоспособности алгоритма был поставлен эксперимент по сравнению различных решений задачи по поиску максимального элемента, а также сравнению решений для различных задач базового курса программирования между собой. Результаты эксперимента приведены в сводной таблице и позволяют обосновать выбранную модификацию алгоритма расчета функции подобия. Результаты также демонстрируют перспективность использования данного метода для определения компетентности обучаемых в изучаемом языке программирования. В качестве побочного результата алгоритм качественного оценивания программного кода на основе его семантической сети позволяет осуществлять автоматическую проверку на плагиат программного решения задачи.
Ключевые слова:программирование, решение задач, программный код, исходный код, функция подобия, модификация алгоритма.
УДК:
004.9
Поступила в редакцию: 09.11.2023 Принята в печать: 23.01.2024