Вопрос об эффективности обучения всегда был одним из ключевых вопросов методики преподавания. Методы и способы проверки качества обучения постоянно совершенствуются, комбинируются с другими методами, автоматизируются.
Очевидно, что результативность процесса обучения во многом зависит от тщательности разработки методики контроля знаний. Контроль знаний не просто неотъемлемая часть любой системы обучения, это средство управления учебной деятельностью учащихся. Ведь именно по результатам выполнения контрольных заданий можно судить о качестве обучения, о недостаточности знаний по определенным темам, или затруднении в их усвоении, как отдельными учащимися, так и группы в целом, а, следовательно, об эффективности выбранных методов преподавания.
В отечественной системе образования за последнее десятилетие тестирование как форма проверки знаний из инновационного метода превратилась в метод традиционный, практически заменив собой большинство фундаментальных методов проверки, основанных на выполнении контрольных заданий [1].
До сих пор существует множество противоречий относительно эффективности тестирования как метода оценки знаний по сравнению с так называемыми классическими или фундаментальными методами проверки знаний: это и ограниченность в выборе вариантов ответа, и очевидность правильного ответа, и высокая вероятность определения правильного ответа не на основе знаний, а логическим путем. Одним из путей разрешения проблем достоверной и оперативной оценки знаний учащихся можно по праву считать применение индивидуальных тестовых заданий, автоматически генерируемых во время тестирования.
В настоящее время с развитием компьютерной техники и программного обеспечения появилась возможность проведения тестирования с использованием специальных программных комплексов. Компьютерные системы тестирования стали удобным инструментом для преподавателя, сокращая его временные затраты на проверку знаний студентов, по сравнению с традиционными методами контроля, и вооружая его аналитической информацией, что позволяет более рационально организовать процесс обучения.
Однако большинство наиболее распространенных тестовых оболочек, например, таких как SuperTest, TestBuilder, SunRav TestOfficePro и других, хотя и обладают достаточно широким инструментарием для разработки и проведения компьютерного тестирования, в частности, позволяют перемешивать тестовые задания и варианты ответов, делать случайный выбор тестовых заданий из тестовой базы, но, тем не менее, задания не генерируют.
Именно тестовый контроль на основе динамически генерируемых тестовых заданий обеспечивает равные для всех обучаемых объективные условия проверки, и несет в себе не только контролирующую, но и обучающую функцию. Это и минимум временных затрат на получение надежных итогов контроля с получением результатов практически сразу по завершении контролирующего теста, и обучающие свойства традиционных или фундаментальных методов контроля, где проходящему контроль нужно не только знать изученный материал, но и уметь адаптировать его для решения конкретно поставленной задачи.
Информатике как дисциплине, целиком связанной со всеми сферами, касающимися электронно-вычислительных машин, свойственна многогранность и динамика. Возможности, предоставляемые компьютерами и программным обеспечением, каждый день дают все новые и новые доказательства своей безграничности. Следовательно, и обучение информатике как основному предмету, равно как и контроль знаний по этой дисциплине не могут быть основаны только на классических методах обучения.
Разумеется, существуют теоретические основы информатики, которые составляют необходимую базу для дальнейшего развития. Как правило, они и преподаются с использованием тех самых классических методов. Но ошибочно думать, что теория и практика в преподавании информатики равнозначны. Информатика в учебном заведении должна быть практическим предметом, а, следовательно, и упор в преподавании информатики и преподаваемый материал должны носить практический характер, а методы проведения контроля должны быть основаны на динамически генерируемых тестовых заданиях.
Таким образом, передо мной была поставлена цель – разработать сетевое программное средство для тестирования знаний учащихся по линии алгоритмизации и программирования школьного курса информатики.
Что же представляет собой контроль в тестовой форме с генерацией заданий? Каким образом он может быть реализован? Во-первых, это возможность создания бесконечного количества уникальных вариантов тестирования, каждый тестируемый при этом может получать абсолютно произвольный набор вопросов не схожий ни в порядке следования, ни в содержании, что, разумеется, значительно повышает достоверность получаемых от тестирования данных.
Во-вторых, это непосредственно возможность генерации самих заданий. Одним из важных элементов подобных программ должны быть генераторы, которые обеспечивают конструирование вопросов, задач и заданий [2].
Схемы использования генераторов могут быть различными: построение индивидуальных заданий для проведения практических занятий, синтез вопросов для организации контроля и самоконтроля, конструирование задач в различных тренажерах и др. В основе генераторов могут лежать модели и алгоритмы синтеза вопросов и задач. Эти модели могут иметь универсальный характер или зависеть от предметной области [3]. Что особенно актуально при проведении контроля по линии алгоритмизации и программирования. Именно возможность генерации заданий делает подобный вид тестирования не только контролирующим инструментом, но и обучающим.
И наконец, в-третьих, это возможность получения достоверных результатов, выраженных в конкретном числовом значении баллов сразу после окончания тестирования, что значительно экономит время на подведение итогов тестирования, как отдельного учащегося, так и группы в целом.
Для реализации вышеуказанных возможностей изначально существует два пути. Первый, это использование готовых программных решений, второй – разработка собственной системы тестирования отвечающей поставленным задачам.
Большинство учителей выбирает первый путь – использование уже готовых программ для создания тестов, обосновывая свой выбор то трудоемкостью, то недостаточностью знаний, пренебрегая тем, что развитие программного обеспечения уже сделало возможным разработку программных продуктов в более сжатые сроки, а имеющиеся программные технологии постоянно совершенствуются и все больше ориентируются не только на среднестатистического разработчика, но даже на пользователей, не имеющих изначально навыков программирования.
Однако, универсальные тестовые оболочки не позволяют в полной мере обеспечить разнообразие контрольных заданий, а специально разработанное динамическое программное средство будет способно генерировать не только контрольные тесты с произвольным количеством вопросов в произвольном порядке, но и сами задания, неповторимые для всех участников одновременного тестирования, с последующей обработкой как индивидуальных, так и групповых результатов.
В качестве средств достижения поставленной цели были использованы такие технологии, как Python, HTML, CSS3, JavaScript, область применения которых достаточно широка и набирает все большую популярность с развитием сети Интернет, сетевых технологий и мобильных устройств, за счет доступности, простоты использования, и широчайших возможностей для творчества.
Python – это один из наиболее популярных современных языков программирования. Он пригоден для решения разнообразных задач и предлагает те же возможности, что и другие языки программирования: динамичность, поддержку ООП и кросс-платформенность. Он простой, лаконичный, у него множество модулей расширения, как стандартных, так и специфических. Это язык общего назначения, так что создать клиент-сервер, web-приложения и любое другое программное обеспечение – легко!
Итак, в соответствии с указанной целью передо мною были поставлены следующие задачи:
1) проанализировать существующий подход к оценке знаний методом тестирования и средства их автоматизации;
2) рассмотреть способы и методы генерации заданий;
3) разработать компьютерную сетевую систему тестовой оценки знаний по дисциплине «Информатика», способную генерировать не только тесты произвольной структуры, но и произвольного содержания заданий, с последующей обработкой результатов испытуемого, а также возможностью тестирования группы;
4) провести экспериментальное апробирование разработанных моделей, алгоритмов и программного обеспечения.
Самый интересный этап работы – это написание программы. Но перед тем, как к этому этапу приступить, нужно иметь представление о том, как все будет работать. Я создала для себя опорную схему работы программы, она за все время постоянно совершенствовалась.
При написании программы часто пользовалась сайтом stackoverflow.com. Это очень интересный ресурс, с большим количеством примеров, большинство моих запросов в поисковой системе google выводили на него. Работала в программе PyCharm – это самая интеллектуальная Python IDE с полным набором средств для эффективной разработки на языке программирования Python.
Как работает программа? Все происходит просто. Тест состоит из 20 заданий определенного типа на проверку знаний учащихся по линии алгоритмизации и программирования. Каждое задание – это мини-программа на Питоне, которая позволяет сгенерировать параметры задания – случайные числа из некоторого диапазона, формирует текст задания, выполняет вычисления и получает правильный ответ, генерирует остальные варианты ответов для заданий с выбором ответа и т.п. Готовое задание передается в основную программу (вопрос, правильный ответ, варианты ответов), которая и создает веб-страницу с заданием. В основной программе предусмотрены также: подсчет результатов, вывод оценки в процентах, в пятибалльной и в буквенной системах оценивания, хранение результатов учащихся, вывод правильных и неправильных ответов.
В начале работы основная программа запускает веб-сервер. Пользователь в браузере вводит IP-адрес веб-сервера и заходит на начальную страницу тестирования, в которой регистрируется и получает идентификационный номер. Затем при нажатии кнопки «Начать тест» происходит генерация уникального варианта теста для данного пользователя.
Первая работоспособная версия программы была апробирована в ГБОУ «Физико-математический форум «Ленский край» в марте 2015 г. В это время там была организована «Школа юного программиста», где проходила обучение основам языка программирования Python группа учащихся 7-8 классов. Удалось проверить работоспособность сервера, возможность стабильной работы десятка компьютеров в одной сети, а также правильность функционирования главной программы. После тестирования мною был проведен опрос учащихся. Внешний вид теста, удобство работы, соответствие уровня сложности заданий – по этим критериям было опрошено 20 учащихся, большинство дали положительные отзывы, кроме одного ученика, который выявил проблему с отсутствием так называемой «защиты от дурака», т.е. повторного перематывания вопросов. В данный момент эта проблема устранена с помощью JavaScript’a.
В завершение хотелось бы вкратце презентовать свое программное решение следующими словами:
- · простота разработки,
- · простота модификации,
- · простота использования,
- · кроссплатформенность.