Разработка программы генерации тестов из базы данных на языке РНР

Курсовая работа

На тему:

«Генератор тестов»


Содержание

	

	Введение 

	Глава 1. Тесты и их назначение

	1.1 Виды тестов

	1.2 Функции тестов

	1.3 Правила разработки тестового задания и теста

	Глава 2. Практическая реализация приложения

	Заключение

	Список использованных источников

	Приложение 1.


Введение



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

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

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

Целью данной курсовой работы является разработка программы генерации тестов из базы данных на языке РНР.


Глава 1. Тесты и их назначение



1.1 Виды тестов



Дадим несколько определений понятию тест:

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

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

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

Тест (от английского test — «испытание», «проверка») — стандартизированные, краткие, ограниченные во времени испытания, предназначенные для установления количественных и качественных индивидуальных различий.

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

	Выделяют пять общих требований к тестам:

			Валидность (адекватность);

			определенность (общепонятность);

			простота;

			однозначность;

			надежность. 

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

Тестирование имеет три основных этапа:

проектирование и разработка (выбор) теста;

реализация процедуры тестирования;

анализ, оценка и интерпретация результатов тестирования.

Основной составляющей теста является тестовое задание.

Тестовое задание — составная часть теста, отвечающая требованиям технологичности, формы, содержания и, кроме того, статистическим требованиям:

		известной трудности;

		достаточной вариации тестовых баллов;

		положительной корреляцией баллов задания с баллами по всему тесту.

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

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

Классификация тестов проводится по различным признакам. Приведем основные:

По процедуре создания – стандартизованные, не стандартизованные.

По средствам предъявления – бланковые, натурные, компьютерные.

По генерированию – детерминированные, стохастические, динамические.

По направленности – интеллекта, личностные, достижений.

По однородности – гомогенные, гетерогенные.

По целям – информационные, диагностические, обучающие, мотивационные, аттестационные.

По форме – закрытого типа, открытого типа, на установление соответствия, на установление правильной последовательности действий.

По методологии интерпретации результатов – нормативно-ориентированные (по отношению к некоторому нормативному образцу) и критериально ориентированные (для оценки степени овладения знаниями и умениями).

Есть и другие подходы к классификации тестов.

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

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

	Задания на дополнение. В этих тестах задания оформляются с пропущенными словами или символами. Пропущенное место должно быть заполнено тестирующимися. Такие тесты полезны при изучении алгоритмов.

	Задания свободного изложения. 

		Закрытая форма: задания, в которых есть готовые ответы и необходимо выбрать один или несколько правильных ответов из нескольких предоставленных альтернативных ответов. К этой форме относятся: 

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

			Задания с многозначным ответом. В варианты ответа может быть внесено более одного верного ответа, но в разных видах. Либо среди ответов может не быть верных ответов. 

				Задания на соответствие – тестовое задание, при выполнении которого необходимо установить правильное соответствие между элементами двух множеств: объектов (субъектов, процессов) и их атрибутов (свойств, характеристик, структур и т.д.). Такие задания также могут быть однозначными и многозначными.

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

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



1.2 Функции тестов



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

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

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

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



1.3 Правила разработки тестового задания и теста



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

Тестовое задание должно быть сформулировано ясно и четко, всегда ориентировано на получение однозначного заключения.

Нужно стараться формулировать задание в виде одного предложения, и оно должно быть легко воспринимаемым каждым испытуемым.

Задание теста должно проверять конкретное знание, умение или конкретные навыки испытуемых.

Тестовые задания должны быть информативными на всем диапазоне изменения уровня сложности. 

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

Ответы должны содержать не более 2–3 ключевых слов по условию вопроса.

Желательно строить ответы одинаковой формы, а если возможно, то и длины.

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

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

Ответы должны быть независимы и одинаково привлекательны для выбора.

В тестовых заданиях нельзя использовать сокращения, если задание не рассчитано на их знание.

В каждом задании закрытой формы количество вариантов ответов должно быть от 4 до 6, а в заданиях на установление соответствия – примерно в 2 раза больше.

Условие задания не должно никогда (ни для одного варианта ответа) принимать неопределенное значение.

Все вариантов ответов должны быть подобраны умело.

Повторяющиеся слова и словосочетания в ответах должны быть исключены и перенесены в основную часть условия.

Из ответа к одному тестовому заданию нельзя получать каким-либо образом ответ к другому заданию.

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

Ни один тестируемый не должен получать преимущество перед другим на всем промежутке тестирования.

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

Спецификация (описание атрибутов теста – предмет, время разработки, автор и др.) к тесту должна содержать всю информацию, необходимую для проведения тестирования. 

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

Количество заданий в базе данных тестовых заданий должно быть примерно в 10 раз больше усредненной длины теста (т.е. от 200-300 заданий). 

Большинство заданий в тесте – закрытой формы. Закрытая форма более быстро воспринимаема и близка ежедневно решаемой человеком проблеме выбора.

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

Возможны следующие варианты предъявления тестовых заданий:

		от легких заданий – к более сложным; 

		от средних заданий – к более легким или трудным (в зависимости от ответа); 

		от сложных заданий – к более легким и др.

Основными критериями отбора содержания теста являются: 

		соответствие гипотезе тестирования; 

		значимость; 

		правильность; 

		репрезентативность; 

		соответствие современному состоянию науки и методики; 

		сбалансированность содержания теста; 

		тематическая направленность; 

		вариативность содержания; 

		доступность; 

		соответствие уровня трудности содержанию цели тестирования.

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


Глава 2. Практическая реализация приложения



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

При запуске приложения, показывается название программы и кнопка-ссылка «Начать». После нажатия этой кнопки начинается сам тест. 

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

В Базе данных хранится две таблицы: таблица вопросов «Vopr» и таблица ответов к ним – «Otv». Вопросы в базе данных разбиты на блоки, по три вопроса в каждом, каждый следующий блок содержит более сложные вопросы, чем предыдущий.

Таблица вопросов содержит следующие поля: ID – идентификационный номер вопроса; Vopros – формулировка самого вопроса; Block – номер блока, к которому принадлежит вопрос. 

Таблица ответов содержит поля: ID – идентификационный номер ответа; Otvet – формулировка ответа; ID_vopr – номер вопроса, к которому относится ответ; Znach – значение истинности ответа, может принимать два значения: T(true) – ответ является верным, F(false) – не верный ответ.

Значения хранящиеся в таблицах можно посмотреть в приложении 1.

Веб-приложение состоит из трех html-страниц: главная, тестовая и страница проверки.

Главная страница, содержит приветственное слово и кнопку-ссылку для перехода на следующую страницу и начала теста.

Код страницы: 



<html>

<head>

<title> Генератор тестов :: Главная </title>

</head>

<body bgcolor="#D9ECFF">

<div align="center">

<font size="6">Главная</font> <p>&nbsp;</p><p>&nbsp;</p>

<table border="1" width="50%" cellpadding="7" bgcolor="#BFDFFF" align="center">

		<tr>	<td> Приветствуем Вас в генераторе тестов.

		</td></tr>

		<tr>	<td height="10%">

			Пожалуйста, нажмите на кнопку, чтобы начать.

		</td></tr>

		<tr><td height="29">

		 <a title="Жмите, не бойтесь :)"href="index.php">

<font size="4">Начать</font></a>

</td></tr>

</table> </div>

</body>

</html>


Графическое представление (интерфейс пользователя): 







Тестовая страница – страница, содержащая код на языке РНР, который непосредственно и генерирует вопросы из БД и ответы к ним, а также выводит вопросы с ответами на экран. 

Рассмотрим РНР код:



<?php

	ERROR_REPORTING(E_ALL & ~E_NOTICE & ~E_WARNING);

$mysql_host="localhost";

$mysql_user="tanushka";

$mysql_password="******";

$mysql_database="Gener";

/* Соединяемся, выбираем базу данных */

$link = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or die("Could not connect:".mysql_error());

 mysql_select_db("$mysql_database") or die("Could not select database");

echo "<FORM method=\"POST\" action='proverka.php'>";

$num = 1; // переменная, отвечающая за номер вопроса;

while ($num<=5) { 

	$query = "SELECT * FROM Vopr WHERE Block='$num'";

	$q=@mysql_query ($query);

if(!$q) break;

while ($row=@mysql_fetch_array($q))

{$quest[]=$row;} 

$current=$quest[rand(0,count($quest)-1)];

echo "<hr>";

echo $current['Vopros'];	

echo "</hr>";

echo "<input type='hidden' name='q[$num]'

value='".$current['ID']."'>";

$query2= "SELECT * FROM Otv WHERE 

ID_vopr='".$current['ID']."'";

$a=@mysql_query ($query2);



while ($arow=@mysql_fetch_array($a))

{ echo "<p><input type='radio' name='a[$num]' value='".$arow ['ID']."'> ".$arow ['Otvet']." </p>";

}

echo "<br><br>";

unset($quest);

$num++; // переходим к следующему вопросу

}

echo "<INPUT TYPE=submit VALUE='Отправить'>";

echo " </FORM>";		

/* Закрываем соединение */

 mysql_close($link);

?>



Страница проверки – страница, содержащая РНР код, сравнивающий правильный ответ с ответом пользователя, если они совпадают, пользователю начисляется балл.


РНР код:



<?

if (!isset ($_POST['q'])||!isset($_POST ['a']))

exit(0);

$q=$_POST['q'];

$a=$_POST['a'];

$ball=0;

$mysql_host="localhost";

$mysql_user="tanushka";

$mysql_password="******";

$mysql_database="Gener";

/* Соединяемся, выбираем базу данных */

$link = mysql_connect("$mysql_host", "$mysql_user", "$mysql_password") or die("Could not connect:".mysql_error());

mysql_select_db("$mysql_database") or die("Could not select database");

for ($i=1; $i<=count($q); $i++)

{$query="SELECT * FROM Otv WHERE ID_vopr='".$q[$i]."' AND

Znach='T'";

$p=@mysql_query($query);

$row=@mysql_fetch_array($p);

$answer = $row['ID'];

if($a[$i]==$answer) $ball++;

unset($query,$p,$row);

}

echo "Ваш балл ".$ball." Из ".count($q).";

?>


Заключение



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

В данном курсовом проекте был создан: “Генератор тестов на языке РНР”. Он представляет собой веб-приложение, которое выбирает произвольным образом 5 вопросов и ответов к ним из базы данных, выводит их на экран и проверяет, сколько правильных ответов дал пользователь.

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

Данное веб-приложение может быть усовершенствовано до полноценной системы тестового контроля знаний пользователей. Его пользовательский интерфейс может быть улучшен за счет разделения списка вопросов на страницы, т.е. каждый новый вопрос выводился бы на новой странице. Также данное приложение можно сделать межпредметным, т.е. добавить возможность выбора дисциплины, по которой будет проводиться тестирование.


Список использованных источников



	1. Интернет Университет Информационных Технологий – дистанционное образование [Электронный ресурс]. Режим доступа: http:// www.intuit.ru. - Загл. с экрана. Яз. Рус.

2. Википедия – свободная библиотека [Электронный ресурс]. Режим доступа: http://ru.wikipedia.org/wiki - Загл. с экрана. Яз. Рус.

3. Сайт компании “Softwerk”[Электронный ресурс]. Режим доступа: http://www.softwerk.ru - Загл. с экрана. Яз. Рус.

4. Котеров, Д.В. Самоучитель PHP4/ Д.В. Котеров – СПб.: БХВ-Петербург, 2001.

5. Кузнецов, М.В. РНР 5 на примерах / М.В. Кузнецов, И.В. Симдянов, С.В. Голышев. – СПб.: БХВ-Петербург, 2005. – 575 с.


Приложение 1.



Описание таблиц хранящихся в базе данных “Gener”:

Таблица вопросов “Vopr”

ID

Vopros

Block

1

2*2

1

2

3*3

1

3

4*4

1

4

7*8

2

5

9*5

2

6

5*4

2

7

11*7

3

8

15*3

3

9

16*2

3

10

44:4

4

11

42:7

4

12

56:7

4

13

512:2

5

14

1024:2

5

15

256:2

5



Таблица ответов “Otv”

ID

Otvet

ID_vopr

Znach

1

4

1

T

2

5

1

F

3

6

1

F

4

7

1

F

5

11

2

F

6

12

2

F

7

9

2

T

8

10

2

F

9

5

3

F

10

12

3

F

11

15

3

F

12

16

3

T

13

56

4

T

14

63

4

F

15

58

4

F

16

55

4

F

17

40

5

F

18

45

5

T

19

55

5

F

20

48

5

F

21

15

6

F

22

18

6

F

23

20

6

T

24

24

6

F

25

77

7

T

26

76

7

F

27

87

7

F

28

79

7

F

29

46

8

F

30

45

8

T

31

30

8

F

32

35

8

F

33

30

9

F

34

34

9

F

35

32

9

T

36

36

9

F

37

10

10

F

38

11

10

T

39

12

10

F

40

13

10

F

41

8

11

F

42

7

11

F

43

6

11

T

44

5

11

F

45

6

12

F

46

7

12

F

47

9

12

F

48

8

12

T

49

1028

13

F

50

266

13

F

51

256

13

T

52

117

13

F

53

512

14

T

54

522

14

F

55

507

14

F

56

519

14

F

57

127

15

F

58

129

15

F

59

128

15

T

60

132

15

F







2