Українська   English
ДонНТУ   Портал магистров

Реферат по теме выпускной работы

На момент написания статьи дипломный проект не был закончен. Окончательное завершение июнь 2018 года. Полный текст работы и материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Содержание

Введение

В современном мире большое значение имеет контроль знаний студентов, работников и т. д. В данном контексте контроль понимается как система научно обоснованной проверки результатов знаний.

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

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

1. Актуальность темы

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

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

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

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

  1. Наличие не предполагаемого количества вариантов правильного ответа (в случае задачи программирования программный код может быть написан многими различными способами, каждый из которых может быть верным).
  2. Значительные затраты времени и интеллектуальных усилий на экспертную проверку ответа.

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

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

Кроме того, при проведении тестирования знаний как дистанционно, так и локально, важным является обеспечение уровня безопасности (авторизация, защита базы тестов и т. д.), а также организация работы как со студентами, так и с преподавателями.

Таким образом, работа, направленная на разработку новых способов тестирования знаний и разработку на их основе систем тестирования знаний, является актуальной.

2. Цель и задачи исследования

Создание модели системы тестирования на базе web-технологий является крайне перспективной и актуальной задачей. Целью данного дипломного проекта является создание системы компьютерного тестирования знаний с помощью средств web-разработки и создание программы для работы тестовой системы. В конкретном случае предполагается реализация защиты от копирования информации, списывания при контроле знаний, реализация системы решения задач.

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

Стоит так же упомянуть требования к тестовым заданием:

Рассмотрим пункты гибкое управление системой тестирования, высокая безопасность, защищенность. Это базовые параметры и присутствие их необходимо. Первый пункт решается, например, созданием банка вопросов, которые будут выбираться оттуда случайным образом, а так же перемешиванием вариантов ответа. Поэтому даже в том случае, если некоторые студенты получат одни и те же вопросы (причем порядковый номер у них будет наверняка разный), то номера правильных вариантов ответа у них тоже будут разными. Второй пункт означает создание равных для всех условий прохождения контроля знаний, невозможность списыванияv[3].

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

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

  1. Реализация возможности возврата к пропущенным вопросам. Зачастую пользователи пропускают сложные вопросы и в первую очередь отвечают на простые, однако, вернуться к пропущенным вопросам уже не могут.
  2. Реализация гибкой системы категорирования тестов. Когда пользователь заходит на сайт интернет тестирования, то зачастую теряется при выборе интересующего его раздела. Категорирование по дисциплинам, специальностям и группам может значительно сократить время поиска нужного теста.
  3. Разным преподавателям необходимы разные настройки для тестирования. К примеру, разрешить пользователям продолжить тестирование, если они его закрыли, случайно или намеренно. Разрешить пользователям пропускать вопросы, если они сложные, и разрешить возвращаться к пропущенным вопросам. Также запретить переходить к следующему вопросу пока не будет дан правильный ответ на текущий вопрос (для пробных тестов). Чтобы исключить появление однотипных тестов необходимо реализовать сортировку вопросов в случайном порядке или же, наоборот, отключить сортировку вопросов в случайном порядке, если необходим одинаковый порядок вопросов в тесте.
  4. Особое внимание нужно уделить возможности использования одного и того же вопроса в разных тестах. Чтобы преподаватель не тратил время на создание аналогично вопроса для другого теста, если темы для разных дисциплин пересекаются.

В настоящее время выработано четыре основных формы тестовых заданий, которые являются основой для составления тестов по любым учебным дисциплинам:

  1. Задания закрытой формы. Инструкция: обвести кружком, либо отметить крестиком, галочкой нужный вариант ответа. Вариативность заданий закрытой формы весьма велика, но в основе всегда лежит один и тот же принцип: испытуемому предлагается выбрать ответ на задание из нескольких предложенных, причем только один из них является правильным.
  2. Задания открытой формы. Инструкция: дополнить. В отличие от заданий закрытой формы здесь не предлагается вариантов ответа, а делается пропуск смысловой единицы в каком-либо утверждении, причем предполагается, что заполнить этот пропуск можно строго однозначно.
  3. Задания на соответствие. Инструкция: установить соответствие. Здесь необходимо установить соответствие между смысловыми единицами в правом и левом столбиках, причем, справа иногда вариантов дается больше, чем слева, то есть заведомо предполагается, что какие-то из них являются в данном случае неправильными.
  4. Задания на установление правильной последовательности. Инструкция: установить правильную последовательность. Достаточно сложная форма, проверяющая глубокие и прочные знания учебного материала. Смысл ее состоит в установлении последовательности каких-либо событий, действий, терминов и т. д. В пустых квадратиках надо расставить цифры.

Существуют различные разновидности и модификации тестовых заданий, однако все они основываются на этих четырех формах.

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

Задачей данного дипломного проекта является создание компьютерной программы которая будет объединять в себе несколько разновидностей тестовых заданий включая задачи.

3. Обзор исследований и разработок

Основная направленность программ для проведения тестирования знаний в области программирования является проверка решения задач на различных олимпиадах.

Большинство таких программ реализуются с использованием серверов и представлены в виде сайтов с различными задачами по программированию на популярных языках, таких как: C++, C, Pascal, Delphi, и т. д.

Изучив различные материалы по этой теме, я предлагаю рассмотреть самые распространённые программы и интернет ресурсы для проведения тестирования знаний.

Ejudge – это система для проведения различных мероприятий, в которых необходима автоматическая проверка программ. Система может применяться для проведения олимпиад и поддержки учебных курсов. Интерфейс участника представлен на рисунке 1[15].

Интерфейс участника Ejudge

Рисунок 1 – Интерфейс участника Ejudge

Возможности:

  1. Ограничение турниров по времени.
  2. Одновременное проведение нескольких турниров.
  3. Автоматическая регистрация участников турнира.
  4. Многоязычный веб-интерфейс.
  5. Защищённое исполнение программ.

Поддерживаемые языки:

  1. C/C++,GCC (+ valgrind), Clang.
  2. Pascal/Delphi, Free Pascal, Pascal ABC.NET, Borland Kylix.
  3. Java/C#, Oracle Java, GNU Java, Mono C#.
  4. Basic, Free Basic, Mono Visual Basic.
  5. Python, Ruby, Python2, Python3, Ruby.
  6. Другие: PHP, Go, Haskel, Prolog, Fortran, Kumir, Make, Perl, Asm.

Достоинства Ejudge:

  1. Стабильно работает.
  2. Высокий уровень безопасности.
  3. Поддерживаются все современные языки программирования.
  4. Большое количество настраиваемых возможностей.

Недостатки:

  1. Не удобный турнирный и администраторский интерфейс.
  2. Не удобная установка и настройка.

Cyber Judge – относительно новая система автоматического тестирования, предназначенная для проведения соревнований по регламенту Всероссийских олимпиад школьников по информатике. Особенностью данной системы является возможность не только автоматического, но и ручного тестирования решений, что является существенным для ROI, так как по правилам, тестирование происходит в присутствии участников. Данная система поддерживает проверяющие программы, написанные при помощи Testlib, но не совместима с NPC2 по формату конфигурационных файлов. Таким образом, перенос задач из одной системы в другую, сводится к изменению конфигурационных файлов задачи. Данная система находится в стадии модификации, и в будущем, возможно, будет поддерживать проведение дистанционных соревнований[15].

Ural State University Problem Set with Online Judge System – архив задач и система проведения дистанционных олимпиад. Данная система популярна в России и Китае. Дистанционные олимпиады обычно проводятся одновременно с очными олимпиадами Уральского Государственного Университета. О проведении соревнования участники предупреждаются по e-mail, примерно за неделю до его начала. Обычно в соревнованиях такого рода участвуют 200-300 команд. Для подсчета результатов используются правила ACM ICPC. Для участников доступен стандартный набор языков программирования: C, С++ и Pascal (Delphi). К сожалению, данная система автоматического тестирования допускает только тестирование зада с однозначным ответом (выходные данные, сформированные программой участника, сравниваются с эталонными)[15].

Codewars – это интерактивный сборник задач по программированию, решая которые вы набиваете свой скилл в том или ином языке. Стартовая страница данного сборника задач выглядит довольно таки простой в использовании (рис. 2).

Стартовая страница Codewars

Рисунок 2 – Стартовая страница Codewars

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

Сейчас сервис поддерживает следующие языки: ruby, python, javascript, java, haskell, C#, coffescript и clojure. На рисунке 3 представлен вид простой задачки с Codewars.

Представление задач в Codewars

Рисунок 3 – Представление задач в Codewars

Valladolid Programming Contest Problem Set – старейший архив олимпиадных задач. На данный момент, является одним из самых популярных сервисов такого рода в Интернет. Содержит сотни задач с тестами. К сожалению, все общение с тестирующей системой происходит по e-mail, что является существенным недостатком для некоторых 6 пользователей. Еще одним недостатком данной системы является использование только операционной системы Linux, и соответствующих языков программирования (GNU C, GNU C++, Free Pascal), что существенно сужает количество возможных участников. Для каждой задачи подводится статистика – рейтинг сложности (отношение количества правильных решений задачи к общему количеству попыток сдать данную задачу), что позволяет участникам выбирать посильные для них задачи. Архив активно пополняется задачами с различных соревнований, как очных, так и проводимых через Интернет[15].

CodeChef – платформа для программистских соревнований, поддерживаемая индийским разработчиком ПО Directi. Что такого выдающегося в этой платформе? Во-первых, перед соревнованиями можно хорошенько потренироваться, выбрав один из шести уровней сложности. Во-вторых, платформа предлагает выбор из почти 30 языков программирования, которыми можно пользоваться при решении задач. В месяц проводится около 2-3 соревнований с ограничением по времени. Некоторые из них – командные, и перед регистрацией нужно присоединиться к одной из команд или создать свою, что не так уж и сложно, ведь в CodeChef 125 тысяч участников. Пример представления задач представлен на рисунке 4 [14].

Представление задач в CodeChef

Рисунок 4 – Представление задач в CodeChef

PC 2 ( Рrogramming Сontest Сontrol, объявленный PC-квадрат или иногда просто PC-Два для краткости) представляет собой систему, программное обеспечение, предназначенное для поддержки операций соревнование по программированию в различных вычислительных средах. PC 2 позволяет участникам (команды) представить программы по сети, чтобы их мог оспорить судья. Судьи могут перекомпилировать представленную программу, выполнить его, просмотреть исходный код и / или результаты выполнения, и отправить ответ обратно в команду. Система также поддерживает режим автоматизирован судейский, где судейство выполняется с помощью программного обеспечения, а не человеческих судей [15].

PC 2 был разработан в Университете штата Калифорния, Сакраменто (CSUS) и доступна на World Wide Web. Самая последняя версия, V9, написана на Java (с использованием Eclipse) и предназначен для работы на любой платформе Java 1.5 (или выше), включая Windows, (98 / ME / 2000 / XP / Vista / 7), Mac OS X ( 10.4+) и различных систем Unix на базе, включая Solaris, Linux и FreeBSD[6].

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

Advanced Testing Package – многоцелевая система интерактивного тестирования, разработанная для автоматизации контроля знаний [4].

ATP отличается от аналогичных систем прежде всего легкостью при настраивании и использовании, а также поддержкой обмена по FTP-протоколу и интеграцией с внешним программным обеспечением (компиляторами), что позволяет автоматизировать процесс проверки вопросов-задач.

Разрабатывается c 1998 года (организацией Hard Club с 2000 года); с 2003 года – в сотрудничестве с компанией Aldec, Inc. Версия пакета с поддержкой языков VHDL и Verilog с 2004 года распространяется на территории США и Европы [4].

Основные области применения

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

Основные возможности

  1. создание базы вопросов по любой теме практически без ограничения на ее объем;
  2. использование четырех основных типов вопросов: однозначный ответ;, одиночный выбор;, множественный выбор;, однозначная последовательность; (хронология;);
  3. четыре дополнительных типа вопросов: С++, VHDL и Verilog - программы, а также эксперт;;
  4. довольно гибкие настройки по ограничению времени, количества подсказок, допущенных ошибок, а также по оценке ответов пользователя;
  5. настраиваемая система подсчета баллов при проведении опроса;
  6. защита базы вопросов от несанкционированного доступа и изменения;
  7. предоставление полного отчета по проведенному опросу и размещение его в требуемом месте (как на отдельной машине, так и на host-машине локальной сети).

База вопросов содержит всю информацию, необходимую для проведения опроса. Файл в формате *.at4, содержащий одну конкретную базу вопросов, подготавливается в редакторе. Затем такой файл может быть загружен программой-анализатором, которая на его основе проводит опрос.[8]

База вопросов, помимо списка вопросов, задаваемых пользователю, включает: тему, свойства и комментарии.

Тема – это текст, характеризующий тематику всех вопросов, содержащихся в базе. База может вообще не иметь темы, но это нежелательно.

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

Комментарии – это дополнительная текстовая информация, характеризующая базу вопросов, такая, как автор базы, дата создания, версия и т. д. Комментарии не являются обязательными.

Список вопросов является основой любой базы вопросов. Каждый вопрос состоит из собственно текста вопроса, списка вариантов ответа с отметкой верного (верных) вариантов, а также индивидуальных свойств. ATP4 поддерживает 4 основных типа вопросов: Однозначный ответ;, Одиночный выбор;, Множественный выбор; и Однозначная последовательность; (Хронология;), а также 4 дополнительных: VHDL-программа, Verilog-программа, C++ программа, и Эксперт;.

На рисунке 5 представлена структура пакета ATP 4[9].

Структура пакета ATP 4

Рисунок 5 – Анимация структура пакета ATP 4
(анимация: 21 кадров, циклическое повторение, 95 килобайт)

4. Подход к решению поставленной задачи

Необходимо разработать WEB-систему тестирования студентов со следующими возможностями:

  1. Категорирование страниц сайта по различным терминам. С возможностью для преподавателей создать свои категории сортировки и включать в них термины.
  2. Создание теста. С возможностями: сортировки вопросов в случайном порядке по желанию преподавателя, отображения результатов и правильных ответов, вывода оценки по завершению тестирования (расчет оценки происходит в зависимости от набранного процента).
  3. Создание вопроса с выбором количества правильных вариантов ответа. С возможностью размещения ответов в случайном порядке и с возможностью добавления данного вопроса в уже существующий тест.
  4. Создание вопроса с рукописным ответом. Преподаватель сам проверяет ответ студента.
  5. Использование групповой политики доступа для обеспечения безопасности. Студент, незарегистрированный пользователь, администратор и преподаватель.
  6. Цель – целью этого документа является проверка, анализ и определение уровня знаний.. Эта система – прикладная программа, которая должна быть полезна для пользователей в том, что они смогут пройти тест онлайн.
  7. Назначение максимального количества баллов за каждый полностью правильный ответ.

Диаграмма прецедентов данного программного продукта представлена на рисунке 6.

Диаграмма прецедентов

Рисунок 6 – Анимация диаграмма прецедентов
(анимация: 15 кадров, циклическое повторение, 95 килобайт)

Данный программный продукт предназначен для прохождения тестирования онлайн. Нами было выделено 2 типа пользователей, которые могут работать в системе. Рядовой пользователь и администратор. Рядовой пользователь имеет начальный уровень подготовки, администратор знаком с системой и управляет ей.

Администратор данного сайта обладает определенными правами, которые представлены на рис. 6 в виде прецедентов:

  1. управление вопросами;
  2. управление пользователями;
  3. управление результатами.

Вывод

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

  1. Создание теста с гибкими настройками.
  2. Создание различных типов вопроса.
  3. Использование групповой политики доступа.
  4. Назначение максимального количества баллов за каждый полностью правильный ответ.

Список источников

  1. Журнал: Труды Санкт-Петербургского государственного университета. [Электронный ресурс]. – Режим доступа: http://cyberleninka.ru/....
  2. Аванесов В. С. Композиция тестовых заданий. М.: Центр тестирования, 2002 – 239 с.
  3. Компьютерное тестирование в образовании. [Электронный ресурс]. – Режим доступа: http://slmini.narod.ru/....
  4. Проект ATP [Электронный ресурс]. – Режим доступа: http://hardclub.donntu.ru....
  5. Компьютерные системы тестирования знаний студентов на различных этапахоценки успеваемости [Электронный ресурс]. – Режим доступа: https://cyberleninka.ru....
  6. Система тестирования знаний по программированию PC2 [Электронный ресурс]. – Режим доступа: http://pc2.ecs.csus.edu/....
  7. Зинченко Ю. Е., Корченко А. А., Масюк А. Л. Автоматизированное решение задач при проведении тестирования / Сборник научных трудов 8-й Международной конференции «ВИРТ-2004» Украинской ассоциации дистанционного образования. – Харьков – Ялта: УАДО, 2004.
  8. Зинченко Ю. Е., Масюк А. Л., Корченко А. А. Универсальный тестирующий комплекс на базе систем ATP и Online-Testing / Научно-практическая конференция «Современные технологии проектирования систем на микросхемах программируемой логики (ПЛИС)» – Харьков, 2003.
  9. Масюк А. Л., Корченко А. А., Масюк Л.Н., Зинченко Ю. Е. Тестирование знаний по VHDL на базе пакета ATP-VHDL / Образование и виртуальность – 2002. Сборник научных трудов 6-й Международной конференции Украинской ассоциации дистанционного образования – Харьков – Ялта, 2002.
  10. Масюк А. Л., Масюк Л. Н., Зинченко Ю. Е. Тестирование знаний по VHDL на базе пакета ATP4 / Материалы научн.-метод. конф. «Информационные технологии и проблемы дистанционного обучения в высшем техническом образовании». – Донецк: ДонНТУ 2002 – С 18-20.
  11. Е. С. Полат, М. Ю. Бухаркина, М. В. Моисеева; Под ред. Е. С. Полат Теория и практика дистанционного обучения: Учеб. пособие для студ. высш. пед. учебн. заведений / М.: Издательский центр «Академия», 2004 – 416 с.
  12. Московский институт радиотехники, электроники и автоматики. Доклад на тему «Обзор существующих платформ и систем управления контентом в целях обеспечения учебного процесса». Докладчик: Кригоузов Илья Сергеевич. Москва, 2011 г.
  13. CodeChef [Электронный ресурс]. – Режим доступа: https://www.codechef.com...
  14. Автоматическое тестирование решений на соревнованиях по программированию. [Электронный ресурс]. – Режим доступа: https://elibrary.ru/...