18
взгляд». Само собой, это порождает возможность ошибок при оценивании программного кода. Кроме
того, обучающиеся имеют особенность быстро распознавать метод проверки их кода преподавателем
и после нескольких итерации находят наименее трудозатратный для себя метод сдачи решаемых задач.
И если преподаватель применяет «общий взгляд» при проверке решения задач, это может привести к
учащению фактов плагиата со стороны обучающихся. В свою очередь это приведет потере интереса
обучающихся к программированию.
В сфере образования, с каждым годом все больше и больше внимания уделяется применению
информационных технологии при проведении образовательных реформ.
Подтверждением тому
является государственная программа «Цифровой Казахстан на 2017–2020 года» [4]. Ключевой задачей
для преподавателей курсов программирования является поднятие энтузиазма и полностью отразить
методологию преподавания, в частности процесс обучения ориентированный на обучающегося.
Смешанное обучение, являющиеся новой формой преподавания, использующей информационный
технологии как важный компонент своей реализации [5]. Согласно результатам тестирования, метод
смешанного обучения дает более высокие результаты по сравнению с обучением лицом к лицу. В
данной работе описывается попытка внедрения схемы смешанного обучения с оцениванием
практических заданий через автоматизированную онлайн систему тестирования программного кода
обучающихся в реальном времени на базе популярной онлайн тестирующей системы. Удобство для
обучающихся заключается в возможности выгрузки решений практических заданий в любое удобное
для них время, а для преподавателя в снижении трудоемкости проверки работ своих учеников. Кроме
того, при тщательном подборе практических заданий усиливается контроль за выполнением заданий
обучающимися, процесс оценивания делается более прозрачным для студентов, что в итоге
благотворно влияет на общее качество преподавания курса программирования и алгоритмизации.
Наиболее актуальные на момент публикации статьи тестирующие онлайн системы представлены в
таблице 1. Они предназначены для хостинга собственного соревнования по программированию. Все
эти системы обладают функционалом для компиляции и запуска на
исполнение компьютерных
программ на распространенных языках программирования. Код программы отправляется через
программный интерфейс системы в текстовом виде, после чего проверяется ее корректность на
исполнение с помощью тестовых входных данных. Задача описывается таким образом, чтобы были
детально и четко определены входные и выходные данные. В интерфейсе системы пользователь
выбирает требуемую задачу, читает ее постановку, примеры входных и выходных данных и
прикрепляет свое решение в виде текстового файла. Отправленный исходный код обычно запускается
в соответствующей языку среде исполнения с ограничениями по времени выполнения, памяти, размеру
исходного кода и т.д. В зависимости от количества пройденных тестовых наборов данных решения
оцениваются в процентах. Обычно решение должно пройти все тесты, чтобы быть засчитанным как
корректное, так как тестирующие онлайн системы обычно применяются в олимпиадах и соревнованиях
по программированию. В случае описываемой тестирующей системы для целей учебного курса
требуемый процент успешно пройденных тестов был снижен до 50%. Тестирующая система ранжирует
пользователей по количеству решенных задач и затраченного на каждую из них времени.
Таблица 1 – Наиболее актуальные
тестирующие онлайн системы
№
Название
системы
Язык
платформы
С
открытым
исходным
кодом
Количество
поддерживаемых
языков
программирования
Год
выпуска
1
A+ [6]
Английский
Да
Мало
2017
2
Cloud Coder [7]
Английский
Да
Средне
2012
3
Code Runner
(плагин для
Moodle) [8]
Английский
Да
Много
2016
4
DOMjudge [9]
Английский
Да
Много
2004
5
eJudge [10]
Русский
Да
Много
2005
6
SIO2 [11]
Мультиязычная
Да
Средне
2012
7
TestMyCode [12]
Английский
Да
Мало
2013
8
Tsinghua Online
Judge [13]
Китайский
Нет
Средне
2012
9
Web-CAT [14]
Английский
Да
Много
2003
19
В ходе анализа выбор пал на систему eJudge [10]. Авторы задались целью использовать ее в качестве
вспомогательного инструмента для автоматического оценивания заданий выполненных
обучающимися. Критериями при этом были: поддержка русского языка, большая гибкость при
настройке и даже доработке под свои нужды системы, активность команды разработчиков системы.
Таким образом, eJudge является полноценной автоматизированной тестирующей онлайн системой,
позволяющей пользователям подготавливать и проводить олимпиады и соревнования по
программированию в онлайн режиме согласно правилам, утвержденным ACM ICPC [15]. Система
активно поддерживается и постоянно выпускаются обновления. Кроме того, система регулярно
используется крупнейшими российскими онлайн площадками для проведения олимпиад по
программированию и алгоритмизации.
Помимо описанного выше главного преимущества тестирующей онлайн системы, заключающейся
в возможности преподавателю и его ассистентам оценивать практическую работу обучающихся
автоматически, в ходе использования системы во время занятий были выявлены несколько других
преимуществ. Во-первых, преподаватель может проверять корректность решений, отправленных
обучающимся с высокой точностью. Если преподаватель подготовил полный набор тестовых случаев
для определенной задачи с покрытием всех граничных случаев исходя из постановки задачи, то
вероятность принятия неверного решения стремиться к нулю. Во-вторых, время, затрачиваемое
преподавателем на оценивание
решений задачи обучающимися, значительно уменьшается.
Следовательно, сэкономленное время может быть потрачено на увеличение количества вариантов
учебных заданий или улучшения их качества. В-третьих, обучающиеся получают практически
мгновенный ответ на вопрос корректности своего решения задачи. В работе авторов из Национального
университета Сингапура приводится детальное описание крайне успешного применения тестирующей
онлайн системы в учебном процессе для дисциплины связанных с алгоритмами и структурами данных,
соревновательным программированием [16]. Другие авторы представили детальный обзор случаев
применения тестирующих онлайн систем в образовательных целях через анализ нескольких систем
[17]. Авторы [18] также подготовили более свежий обзор доступного программного обеспечения,
посвященного автоматическому оцениванию решений программных заданий с акцентом на детальное
описание их особенностей и различных сценариев использования, что крайне интересно с
образовательной точки зрения. В свою очередь, авторы [19] дали краткое
описание того как они
расширили архитектуру стандартной тестирующей онлайн системы для разработки функционала
далеко перешагивающего за простое оценивание решений обучающихся. Их система предоставляет
полезные отзывы пользователям о качестве их кода на семантическом уровне в форме понятных
человеку советов, попутно объясняя причины ошибок в коде с примерами их устранения. Такой подход
к преподаванию дисциплин, связанных с алгоритмизацией и программированием может значительно
повлиять на процесс обучения [20]. Интересной идеей по построению компьютерных игр, которые
интегрируются в тестирующую онлайн систему для того чтобы быть более привлекательными для
пользователей описан в работе [21].
Тестирующая онлайн система была применена при преподавании курсов по алгоритмам и
структурам данных, клиент-серверным приложениям в Казахском национальном университете имени
аль-Фараби, г. Алматы. Обобщая вышесказанное можно выделить следующие преимущества при
использовании тестирующих онлайн систем в учебном процессе:
1)
Развитие навыков критического мышления у обучающихся;
2)
Формирование новой категории методов оценивания с повышенной обратной связью и
точностью;
3)
Стимулирование интереса к процессу и
результату программирования;
4)
Оперативное получение отзыва от системы и преподавателя.
Как и при любой замене человеческого труда автоматизированным, использование тестирующих
онлайн систем в учебном процессе имеет свои недостатки. Так, обычно тестирующая система может
оценивать корректно или нет решение задачи и, в случае необходимости выдавать информацию об
ошибке без объяснения причин ее возникновения и путей решения. От обучающихся требуются
неплохие навыки отладки программ и критического мышления, так как крайне сложно для
преподавателя охватить все аспекты при написании постановки учебной задачи. Таким образом, если
обучающиеся столкнутся с непреодолимой проблемой или недостижимыми результатами при
написании программ, они вынуждены будут обратиться к преподавателю за помощью. Однако здесь,
преподаватель имеет возможность просмотреть решение отправленное обучающимся в систему
удаленно для определения ошибок при написании программного кода. Затем, преподаватель может
20
объяснить обучающемуся его ошибки непосредственно во время занятий. Также некоторые
обучающиеся из категории неуспевающих имеют склонность к плагиату исходных кодов других
обучающихся
для сдачи заданий, решаемых во внеклассном режиме. В таких ситуациях хорошо
помогает увеличение количества вариантов задании. Здесь играет роль тот фактор, что успевающие
обучающиеся обычно отказываются делать задания своих одногруппников, если они не совпадают с
их собственными.
Достарыңызбен бөлісу: