ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕСИОНАЛЬНОГО ОБРАЗОВАНИЯ
Российский государственный педагогический университет им. А. И. Герцена КУРСОВАЯ РАБОТА
Разработка трехуровневого веб-приложения
для контроля знаний средствами PHP и MySQL
Выполнил: студент III курса
факультета информационных технологий
П. А. Аксютин Научный руководитель –
кандидат педагогических наук,
доцент
И. Б. Государев Санкт-Петербург
2007
Содержание
Содержание 2
Введение. 3
1. Педагогическое тестирование 5
Определения и классификация 5
Формы тестов 7
Обзор существующих решений 7
2. Описание продукта 13
Хранение информации 14
Пользовательский интерфейс 17
Примеры пользовательского интерфейса. 20
Серверная компонента 22
Добавление новых тестов 25
Заключение 26
Список литературы 28
Введение. В настоящее время невозможно отрицать потребность системы образования в средствах обеспечения дистанционного обучения. Внедрение дистанционного обучения связано с решением ряда ключевых вопросов: один из них – организация контроля знаний.
На современном этапе существует множество решений в области поддержки дистанционного обучения, в том числе, в состав образовательных комплексов, как правило, входят компоненты позволяющие организовать контроль знаний. Однако чаще всего подобные программные комплексы являются закрытыми и дорогостоящими разработками. С другой стороны популярные сегодня бесплатные системы тестирования, класса HyperTest, являются неудобными для использования в образовательном процессе из-за ограниченной функциональности и непереносимости. Актуальность данной работы состоит в необходимости разрешения этого противоречия. Целью данной курсовой работы стала разработка кроссплатформенного открытого программного комплекса предназначенного для проведения контроля знаний учащихся, позволяющего использовать мультимедиа возможности современных ПК, построенного на свободно распространяемых технологиях. Для достижения поставленной цели необходимо решить следующие задачи:
Спроектировать реляционную базу данных для хранения информации (СУБД MySQL).
Разработать интерфейс пользователя на основе распространённых технологий и языков: xHTML, CSS, JavaScript, DOM.
Разработать программное средство на языке PHP, являющееся промежуточным звеном между базой данных и пользовательским (клиентским) интерфейсом.
Реализовать возможность интеграции мультимедиа материала на основе технологии Adobe (Macromedia) Flash.
Результатами работы над курсовым проектом стали договорённости о внедрении системы контроля знаний на сайты Малого Медицинского Факультета Санкт-Петербургского Государственного Университета http://mmf.spb.ru (руководитель Барабанов Сергей Викторович) и Лаборатории Ботаники Санкт-Петербургского Городского Дворца Творчества Юных http://youngbotany.spb.ru (заведующий лабораторией Черепанов Иван Владимирович).
1. Педагогическое тестирование
Определения и классификация Педагогический тест - это система заданий специфической формы, позволяющая измерить уровень обученности студентов, совокупность их представлений, знаний, и навыков на той или иной области содержания. Существуют несколько подходов к классификации тестов [8]. Во-первых, педагогические тесты классифицируются по методологии интерпретации результатов тестирования на нормативно-ориентированные и критериально-ориентированные.
Во-вторых, педагогические тесты различаются на гомогенные и гетерогенные.
В-третьих, педагогические тесты в системе профессионального образования (ПО) подразделяются на виды: вступительные, текущие, на тесты промежуточной и итоговой аттестации.
В-четвертых, по форме предъявления педагогические тесты различаются на "бумажные" (бланковые), когда испытуемому предоставляется распечатка теста на бумаге, и на компьютерные, когда студент должен отвечать на задания работая на компьютере. Нормативно-ориентированный педагогический тест (по-английски norm-referenced test) позволяет сравнивать учебные достижения (уровень подготовки, уровень профессиональных знаний и умений) отдельных испытуемых друг с другом. Критериально-ориентированный педагогический тест (по-английски criterion-referenced test) позволяет оценивать, в какой степени испытуемые овладели необходимым учебным материалом.
Гомогенный педагогический тест основывается на содержании какой-либо одной дисциплины. При его разработке авторы должны четко отслеживать, чтобы каждое задание не выходило по своему содержанию за рамки данной дисциплины. Гомогенный тест может быть как нормативно-ориентированным, так и критериально - ориентированным, в зависимости от цели его создания. Такой тип педагогического теста наиболее распространен в учебном процессе. Гетерогенный педагогический тест основывается на содержании нескольких дисциплин. Основными видами контроля над учебной деятельностью студентов являются текущий, периодический (рубежный, поэтапный, промежуточный) и итоговый контроль [12].
Текущий тестовый контроль может осуществляться в ходе повседневной учебной работы. Текущий тестовый контроль проводится с помощью нескольких параллельных форм (вариантов) теста, разработанного самим преподавателем или группой преподавателей. Этот вид контроля имеет большое значение для стимулирования у студентов стремления к самостоятельной систематической работе над выполнением классных и домашних заданий, повышения интереса к учению и чувства ответственности за его результаты.
Компьютерная выдача педагогических тестов имеет свои особенности, которые необходимо учитывать при их разработке. Анализ информации на экране монитора компьютера часто бывает затруднен из-за неправильной подачи материала. Хотя именно компьютеризованное тестирование имеет свои преимущества и перспективы применения в образовании. Особенная роль здесь принадлежит компьютерно-адаптивному тестированию, когда каждому испытуемому предъявляется уникальный набор заданий. В развитых странах именно компьютерно-адаптивное тестирование, особенно с применение локальных и глобальных (Интернет) сетей, приобретает чрезвычайно важное значение.
Формы тестов Существует две основные формы организации тестов — закрытая и открытая. Организация теста в закрытой форме обеспечивает относительно простой диалог с тестируемым и, как следствие, быстроту прохождения теста, так как не требует от учащегося особых навыков работы на компьютере, но имеет и недостаток: наличие "скрытой" подсказки — выбирать ответ гораздо легче, чем писать его полностью самостоятельно. Организация теста открытой формы предполагает хорошую начальную подготовку учащегося как пользователя персонального компьютера. Для многих предметов выбор критерия оценки правильности ответа при такой организации теста очень затруднителен, так как требуется решать такие вопросы, как учитывать ли степень развернутости ответа, грамотность ученика и т.п. В данной работе описывается система, позволяющая создавать тесты в открытой и закрытой форме. При этом тесты в закрытой форме могут быть с выбором одного из нескольких вариантов и с множественным выбором. Одним из недостатков существующих распространенных систем тестирования является невозможность распределенной обработки результатов тестирования.
Обзор существующих решений HyperTest Данная система часто используется в учебном процессе, по одной простой причине: она проста в эксплуатации. Однако наряду с этим бесспорным достоинством существует и целый ряд недостатков:
Согласно лицензионному соглашению текущие тестовые версии являются условно-бесплатными, а в будущем планируется переход на коммерческую основу.
Возможны только закрытые вопросы с множественным ответом.
В системе нет поддержки мультимедиа содержимого.
Вопросы и ответы хранятся в незащищённом файле, доступ учеников к которому означает провал контроля знаний.
Система привязана к программной платформе Microsoft Windows.
Нет возможности проводить удалённый контроль знаний.
Рисунок 1.1 (Интерфейс системы тестирования HyperTest)
Etest Система тестирования функционально схожая с HyperTest, но имеющая ряд выгодных отличий:
Доступно множество типов вопросов, в том числе вопросы на соответствие, открытые вопросы и т.д.
Существует возможность интеграции изображений
Однако все остальные перечисленные выше не недостатки системы HyperTest так же относятся к системе тестирования Etest.
Рисунок 1.2 (Интерфейс СТ Etest)
Moodle Moodle – это полноценная свободно распространяемая система поддержки дистанционного обучения. Система Moodle – содержит развитый компонент контроля знаний с множеством настроек. Однако ее использование предполагает предварительную серьезную подготовку преподавателя. Кроме того, установка системы весьма нетривиальна, а установить компонент тестирования отдельно невозможно.
Рисунок 1.3 (Интерфейс системы Moodle) Рисунок 1.4 (Интерфейс системы Moodle)
Рисунок 1.5 (Интерфейс системы Moodle)
Рассмотрев предложенные снимки экранов, можно убедиться в богатстве и одновременной сложности настроек системы. В результате анализа нескольких систем тестирования, в целях устранения указанных недостатков в работе предложена система разработки тестов, подробно описанная далее в тексте работы.
2. Описание продукта Программный продукт представленный в данной курсовой работе состоит из трех уровней-слоев: уровень хранения данных, уровень взаимодействия с пользователем и собственно, программный (основной) уровень.
Все три уровня представлены на следующей модели приложения:
с хема 2.1 (модель приложения)
Хранение информации Уровень «хранения данных» базируется на системе управления базами данных MySQL. В базе данных приложение хранит следующую информацию:
Тесты с наборами вопросов \ ответов
Информацию о зарегистрированных пользователях
Результаты прохождения тестов
Списки и описания дисциплин \ разделов.
Использование СУБД позволяет ограничить круг лиц, имеющих доступ к конфиденциальной информации, а также к материалам теста, что выгодно отличает данную модель приложения от системы тестирования HyperTest. Выбор MySQL в качестве СУБД не случаен: MySQL – это популярная свободная СУБД, зарекомендовавшая себя как быстрое и надёжное решение для хранения информации веб-приложений. Кроме того, немаловажным фактором стало наличие удобного и быстрого API в языке программирования PHP для работы именно с этой СУБД. Использование СУБД MySQL по лицензии GNU General Public License [6] накладывает некоторые обязательства. Это означает, что приложение, разработанное с использованием GPL лицензии должно лицензироваться так же по GPL. Собственно открытость приложения разрабатываемого в рамках данной курсовой работы актуальна и является одной из преследуемых целей разработки. Ниже представлена модель «сущность-связь» [4] базы данных, разработанная для нужд курсовой работы:
Схема 2.2 (модель реляционной базы данных) На схеме представлены как реально используемые в данной версии приложения сущности и связи, так и сущности и связи, предназначенные для реализации перспективных разработок.
Описание сущностей Сущность
| Описание
| tests_list
| Информация о тестах.
| questions_list
| Информация о вопросах.
| answers_list
| Информация об ответах на вопросы questions_list.
| subjects_list
| Информация о разделах, позволяющих группировать тесты по темам.
| users
| Информация о пользователях зарегистрированных в системе, в настоящий момент используемая для ограничения доступа пользователей к элементам управления системой по привилегиям.
| daybook_records
| Информация о результатах прохождения тестов, в данной версии приложения не используется, является перспективной разработкой.
| Таблица 2.3 (сущности \ таблицы базы данных)
Описание атрибутов Атрибут
| Тип данных
| Описание
| name
| Строка
| Название теста
| about, help
| Строка
| Подробное описание
| number_of_references
| Число
| Число прохождений теста
| time-limit
| Число
| Время на прохождение теста в секундах
| addition
| Дата\Время
| Дата и время добавления теста
| last_check
| Дата\Время
| Дата и время последнего изменения
| shuffle
| Число
| Указатель на необходимость перемешивания вопросов
| user_priv
| Число
| Доступные\необходимые привилегии пользователя
| enabled
| Число
| Указатель на доступность\публичность записи.
| content
| Текст
| Содержимое вопроса, ответа
| media
| Текст
| Путь до прикреплённого к вопросу файла.
| media_type
| Число
| Тип прикреплённого мультимедиа файла
| media_size
| Текст
| Ширина и высота прикреплённого файла
| type
| Число
| Тип вопроса
| iscorrect
| Число
| Указатель на правильность ответа
| login, password
| Текст
| Параметры для идентификации пользователя
| email
| Текст
| Адрес электронной почты
| form
| Текст
| Класс
| f_name, l_name
| Текст
| Фамилия и Имя пользователя
| last_visit
| Дата\Время
| Дата и время последнего визита пользователя
| mark
| Число
| Оценка за тест
| date
| Дата\Время
| Время прохождения теста
| Таблица 2.4 (атрибуты \ поля базы данных)
Примеры SQL запросов В качестве примеров используемых SQL-запросов [4] рассмотрим следующие действия:
Проверка пользователя по логину $Login и паролю $Password': SELECT * FROM akstest_users WHERE login='$Login' AND password='$Password';
Получение количества вопросов в тесте $test_id: SELECT count(*) AS num FROM akstest_questions_list WHERE fromTest_id=$test_id AND enabled=1;
Получение списка ответов на вопрос $question: SELECT id, content FROM akstest_answers_list WHERE fromQuestion_id=$question AND enabled=1;
Вставка нового теста с параметрами $test_title, $test_about', $test_time' и $test_shuffle, полученными из формы: NSERT INTO akstest_tests_list (`id`, `name`, `about`, `number_of_references`, `fromSubject_id`, `time_limit`, `addition`, `last_check`, `shuffle`, `user_priv_needed`, `enabled`) VALUES (NULL, '$test_title', '$test_about', 0, 1, '$test_time', NOW(), NOW(), '$test_shuffle', 10, 1);
Пользовательский интерфейс Пользовательский интерфейс представляет собой web-документ, структурную схему которого можно представить в следующем виде:
Меню навигации – это коллекция ссылок на разделы и некоторые инструменты управления приложением, например: ссылка на страницу с формой добавления нового теста.
Рабочая область – основная содержательная часть приложения, в которой происходит взаимодействие с пользователем: отображается тест, его результаты, список доступных тестов и т.д.
Область состояния – панель, отображающая текущее состояние приложения. Также в этой области расположена ссылка на раздел помощи.
Для создания интерактивного пользовательского интерфейса использовались распространённые, поддерживаемые всеми современными браузерами, технологии:
Язык разметки документов xHTML 1.0 Transitional
Каскадные стили CSS 2.0
Язык управления документом Java Script [3]
Объектная модель документа DOM level 1 [2]
Adobe (Macromedia) Flash
Выбор данных технологий обусловлен фактором повсеместной распространённости и доступности. Использование вышеуказанных технологий обеспечивает кроссплатформенность для пользователя, что является очередным достоинством данного приложения. Например, браузер Mozilla Firefox доступен для использования во всех популярных ОС, будь то Windows, *nix или Apple MacOS X и поддерживает все перечисленные технологии и языки. Технология Adobe Flash используется для доставки мультимедиа содержимого пользователю, в частности данная система контроля знаний позволяет прикреплять Flash-ролики к любому вопросу теста. В качестве содержимого Flash-ролика могут быть звуковая или видео информация. Одним из направлений развития проекта является организация удобного проигрывателя звуковой и видео информации. В связи с особенностью организации клиентской части приложения, существуют некоторые ограничения на содержание роликов: Воспроизведение любых звуков должно инициироваться пользователем. Использование Flash-роликов позволяет донести до пользователя практически любой тип мультимедиа, что отличает данное приложение от множества систем тестирования, не позволяющих интегрировать мультимедиа содержимое в материал. Исходные коды приложения могут быть загружены по адресу http://lite-test.dynamicpages.ru
Примеры пользовательского интерфейса. Рисунок 2.5 (Интерфейс приложения \ параметры теста)
Рисунок 2.6 (Интерфейс приложения \ прохождение теста, включенный flash-ролик)
Рисунок 2.7 (Интерфейс приложения \ Форма авторизации пользователя)
Рисунок 2.8 (Интерфейс приложения \ Форма добавления теста)
Серверная компонента Связующее звено между пользовательским интерфейсом и базой данных создано на основе серверного языка программирования PHP [1].
Выбор PHP, как языка реализации серверной компоненты, обусловлен его распространённостью (на некоторых хостинговых площадках присутствует даже несколько различных версий PHP) , обилием справочной информации и примеров. Немаловажными факторами стали кроссплатформенность и свободное распространение технологии. Функциональная схема серверной компоненты тесно связана со структурной схемой веб-документа, рассмотренной в прошлом разделе.
Схема 2.9 (Функциональная схема серверной компоненты) За отображение страниц отвечает файл index.php, расположенный в корневом каталоге. Данный файл формирует веб-страницу в три этапа:
Подключение области навигации - файл header.php
Подключение функционального модуля (A-H) в рабочую область, в зависимости от значения параметров, указанных в адресной строке.
Подключение области состояния – файл footer.php
Ниже приведён исходный код файла index.php:
session_start();
include "config.php"; //Параметры доступа к БД
if(!$dbconn) {
echo("----Ошибка! Нет доступа к серверу. MySQL Error: ".mysql_error()." ");
exit();
}
if(!@mysql_select_db($dbname,$dbconn)) {
echo("----Ошибка! Нет доступа к базе данных. MySQL Error: ".mysql_error()." ");
exit();
}
include "includes/header.php"; $file=@$_GET['p'];
if($file==''||$file=='main') $file='main_page';
$file='pages/'.$file.'.php';
if(file_exists($file))
include $file;
else
include "pages/error_page.php"; include "includes/footer.php";
mysql_close($dbconn);
?> В схеме перечислены следующие файлы:
Главная страница, содержащая список последних изменений в приложении, общее описание системы и некоторую другую общую информацию.
Страница ошибок загружается в том случае, если требуемая страница не найдена.
Страница ввода данных аутентификации, появляется при попытке неизвестного пользователя получить доступ к защищённой странице.
Модуль отображающий список доступных тематических разделов.
Модуль вывода списка доступных в выбранном разделе тестов.
Модуль предназначенный для вывода информации о тесте пред началом тестирования.
Модуль отображающий выбранный пользователем тест.
Модуль проверки правильности ответов и вывода результатов.
Работа с системой тестирования предполагается по следующей схеме:
Схема 2.10 (Этапы работы приложения)
Добавление новых тестов Модуль добавления новых тестов (/admin/addnew/) состоит из двух файлов:
index.php, отвечающий за отображение формы ввода параметров теста и вопросов. В этом файле отдельно стоит не столько серверную составляющую, сколько сложный динамический пользовательский интерфейс, построенный средствами JavaScript и Document Object Model. Уникальность данного интерфейса состоит в возможности одновременного ввода всего материала теста, добавлении новых вопросов, перемешивании вопросов, удалении ненужных вопросов.
creator.php – файл обработчик сложной формы из файла index.php, обеспечивающий загрузку указанных пользователем файлов и выполняющий многочисленные SQL-запросы, вносящие информацию в базу данных. Один из запросов этого, используемый в этом файле, приведён в разделе «хранение даных».
Доступ к инструменту добавления теста возможен лишь ограниченному кругу лиц и вход на защищённую страницу возможен только после ввода персонального логина и пароля. Подробные видео-руководства доступны на сайте проекта: http://lite-test.dynamicpages.ru/support/ Исходные коды серверных компонент доступны на сайте проекта: http://lite-test.dynamicpages.ru/codes/
Заключение
В работе решена актуальная проблема построения системы контроля знаний, обладающая свойствами открытости и платформонезависимости, а также содержащая средства доставки мультимедиа содержимого:
Спроектирована реляционная база данных для хранения информации (СУБД MySQL).
Разработан интерфейс пользователя на основе распространённых технологий и языков: xHTML, CSS, JavaScript, DOM.
Разработано программное средство на языке PHP, являющееся промежуточным звеном между базой данных и пользовательским (клиентским) интерфейсом.
Реализована возможность интеграции мультимедиа материала на основе технологии Adobe (Macromedia) Flash.
В ближайшее время, после незначительных доработок, система тестирования будет внедрена в сайты Лаборатории Ботаники СПбГДТЮ http://youngbotany.spb.ru/ и Малого Медицинского Факультета СПбГУ http://mmf.spb.ru/ Указанные выше сайты уже содержат богатый обучающий материал, но не обладают приложениями контроля знаний. Данная система призвана устранить этот недостаток сайтов, как систем дистанционного обучения. Среди направлений дальнейшего совершенствования системы следует указать следующие:
Доработка инструмента редактирования существующих тестов, не включенного в данную версию приложения;
Доработка системы иерархии тестов, позволяющей группировать тесты по тематическому признаку;
Разработка модуля регистрации достижений учащихся, а так же предоставление API, использование которого позволит использовать внешнюю систему мониторинга;
Разработка проигрывателя MP3 и Видео файлов для включения в тесты на основе технологии Adobe Flash.
Список литературы Олищук А.В., Чаплыгин А.Н., Разработка Web-приложений на PHP 5. Профессиональная работа. – М.: Вильямс, 2006, 352с.
Д. Гудман, JavaScript и DHTML. Сборник рецептов. Для профессионалов – СПб.: Питер, 2004, 528с.
Д. Флэнаган, JavaScript. Подробное руководство. – СПб.: Символ-плюс, 2000, 960с.
Д. Кренке, Теория и практика построения баз данных – СПб.: Питер, 2005, 864с.
Официальная документация PHP http://php.ru/manual/
Перевод текста GNU GPL http://www.citforum.ru/operating_systems/articles/gpl_rus.shtml
Дж Армстронг, Д. ДеХан, FLASH 8: фирменное руководство от Macromedia – М.: Триумф, 2006, 256с.
Аванесов В.С. Композиция тестовых заданий. М., 2002.
Анастази А., Урбина С. Психологическое тестирование. СПб., 2002.
ЕГЭ. Сборник нормативных документов. М., 2002.
Майоров А.Н. Теория и практика создания тестов для системы образования. М., 2000.
Мельникова М.Б. Теория и практика конструирования педагогических тестов. М., 2002.
Челышкова М.Б. Теория и практика конструирования педагогических тестов. М., 2002.
|