Автоматическая проверка правильности решения задач

Прием тезисов завершен. Вы можете только разместить черновик.
Автор: Новиков Федор Александрович, Доктор технических наук, Старший научный сотрудник
Санкт-Петербургский политехнический университет Петра Великого
Основной целью предлагаемой работы является разработка метода автоматической проверки правильности решения задач студентами, а также разработка программной поддержки этого метода и апробация разработанной программы в рамках учебного процесса по направлению подготовки «Прикладная математика и информатика».

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

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

  • задачи «на память», в которых предлагается дать систему определений, перечислить свойства объектов и т.д.; при этом проверяются остаточные знания;
  • задачи «на доказательство», в которых предлагается доказать известную теорему; при этом проверяется умение воспроизводить убедительные рассуждения;
  • задачи «на построение», в которых предлагается что-то вычислить, найти, преобразовать выражение к определенному виду (= решить уравнение) и т.д.; при этом проверяется умение строить и использовать конструктивные модели.

Наиболее значимыми для выработки устойчивых навыков являются задачи "на построение". Существует несколько методов проверки правильности решения задач «на построение». Самым распространенным является проверка ответа (или открытое тестирование) – то есть сравнение ответа, найденного студентом, с заранее заданным ответом. Открытое тестирование легко автоматизируется, но имманентно обладает рядом общеизвестных недостатков.

Значительно ценнее методика, при которой проверяется не только ответ, но и ход решения задачи. Проверить автоматически правильность решения задачи не всегда возможно, но в некоторых случаях удается. Наиболее известные и яркие практические примеры: 1) проведение соревнований по спортивному программированию; 2) решение школьных задач по планиметрии «на построение». В обоих случаях задача формулируется на естественном языке, но с активным использованием предопределенных понятий предметной области, которые считаются известными студентам, а решения записываются на формальном языке предметной области (языке программирования, языке «циркуля и линейки»), который также должен быть известен студентам. 

Идея состоит в том, чтобы применить для решения задачи автоматической проверки правильности решения подход, показавший неплохие результаты в символическом искусственном интеллекте. А именно, формулировка задачи и ответ, включая все промежуточные результаты, записываются как формулы некоторой специально придуманной формальной теории (для заданной предметной области). В таком случае решение задачи – это вывод в придуманной формальной теории. От системы не требуется автоматически искать вывод – это обычно трудная, а для некоторых формальных теорий алгоритмически неразрешимая проблема. От системы требуется автоматически проверить, что предъявленная последовательность формул действительно является выводом (то есть, получена по правилам вывода заданной формальной теории). А это уже не очень трудная задача, примерно равная по сложности синтаксическому анализу формального текста. Основная трудность состоит в придумывании подходящей формальной теории для заданной предметной области. 

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

В 2015/2016 учебном году на кафедре Прикладная математика Санкт-Петербургского политехнического университета был разработан прототип системы автоматической проверки правильности решения задач студентами. Прототип экспериментально апробирован на студентах второго курса для нескольких предметных областей из дискретной математики: наивная теория множеств, булева алгебра и т.д. Результаты экспериментов дают основания для оптимизма!  

Список использованных источников
  1. Новиков Ф.А., Тихонова У.Н. Автоматный метод определения проблемно-ориентированных языков. Информационно-управляющие системы, №6, 2009, с.34–40, №2, 2010, с.31–37, №3, 2010, с. 29–37
  2. Новиков Ф.А., Новосельцев В.Б. Программирование, 2010, №1, с. 66 – 78
Вид представления доклада  Устное выступление и публикация
Ключевые слова  автоматизация образования, решение задач, искусственный интеллект, язык предметной области

По вопросам спонсорского участия, оплаты участия коммерческих компаний, а также иным организационно-информационным вопросам просьба обращаться в организационный комитет по адресу: dea@ito.edu.ru, edu@apkit.ru или по телефону: +7 (925) 514-33-74.