|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
9
|
0,9
|
0,1
|
9
|
2,19722
|
2
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
8
|
0,8
|
0,2
|
4
|
1,38629
|
3
|
1
|
1
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
7
|
0,7
|
0,3
|
2,333
|
0,8473
|
4
|
1
|
1
|
1
|
1
|
0
|
1
|
0
|
1
|
0
|
0
|
6
|
0,6
|
0,4
|
1,5
|
0,40547
|
5
|
1
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
6
|
0,6
|
0,4
|
1,5
|
0,40547
|
6
|
1
|
1
|
1
|
0
|
0
|
1
|
0
|
0
|
0
|
5
|
0,5
|
0,5
|
1
|
0
|
7
|
1
|
1
|
0
|
1
|
1
|
0
|
1
|
0
|
0
|
0
|
5
|
0,5
|
0,5
|
1
|
0
|
8
|
1
|
1
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
5
|
0,5
|
0,5
|
1
|
0
|
9
|
1
|
0
|
1
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
4
|
0,4
|
0,6
|
0,667
|
-0,4055
|
10
|
0
|
1
|
1
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
4
|
0,4
|
0,6
|
0,667
|
-0,4055
|
11
|
1
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
3
|
0,3
|
0,7
|
0,429
|
-0,8473
|
12
|
1
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
2
|
0,2
|
0,8
|
0,25
|
-1,3863
|
13
|
1
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0,1
|
0,9
|
0,111
|
-2,1972
|
|
12
|
11
|
9
|
7
|
6
|
6
|
5
|
4
|
3
|
2
|
65
|
|
|
|
|
|
1
|
2
|
4
|
6
|
7
|
7
|
8
|
9
|
10
|
11
|
|
|
|
|
|
|
0,923
|
0,846
|
0,692
|
0,538
|
0,462
|
0,462
|
0,385
|
0,308
|
0,231
|
0,154
|
5
|
|
|
|
|
|
0,077
|
0,154
|
0,308
|
0,462
|
0,538
|
0,538
|
0,615
|
0,692
|
0,769
|
0,846
|
|
|
|
|
|
|
0,071
|
0,13
|
0,213
|
0,249
|
0,249
|
0,249
|
0,237
|
0,213
|
0,178
|
0,13
|
|
|
|
|
|
|
0,083
|
0,182
|
0,444
|
0,857
|
1,167
|
1,167
|
1,6
|
2,25
|
3,333
|
5,5
|
|
|
|
|
|
|
-2,48
|
-1,7
|
-0,81
|
-0,15
|
0,154
|
0,154
|
0,47
|
0,811
|
1,204
|
1,705
|
|
|
|
|
|
Таблица 2. Матрица
результатов с расчётами
В этой матрице проведено
два упорядочения.
Одно касается
испытуемых. В первой строке представлены баллы самого успешного испытуемого, во
второй менее, и т.д., по нисходящей сумме баллов, если ее посчитать для каждого
испытуемого.
Другое упорядочение
проведено для заданий. На первом месте стоит самое легкое задание, по которому
имеется наибольшее число правильных ответов, на втором - меньшее, и т. д., до
последнего, у которого имеется всего один правильный ответ.
В таблице 2 приводятся и
основные статистические данные, которые принимаются во внимание на первом этапе
эмпирической проверки качества заданий.
Вначале определяется
мера трудности заданий. Известную трудность заданий, как первое требование к
тестовым заданиям, можно образно сравнить с разновысокими барьерами на беговой
дорожке стадиона, где каждый последующий барьер чуть выше предыдущего. Успешно
преодолеть все барьеры сможет только тот, кто лучше подготовлен.
Трудность задания может
определяться двояко:
1)умозрительно – то есть
на основе предполагаемого числа и характера умственных операций, которые
необходимы для успешного выполнения задания;
2)эмпирически - путем
опробования задания, с подсчетом доли неправильных ответов по каждому из них.
Эмпирически трудность
заданий можно определить, сложив элементы матрицы по столбцам, что укажет на
число правильных ответов, полученных по каждому заданию () . Чем
больше правильных ответов на задание, тем оно легче для данной группы
испытуемых.
Больше правильных
ответов оказалось в первом задании ( = 12),
это значит , что оно самое легкое в матрице.
В классической теории
тестов многие годы рассматривались только эмпирические показатели трудности. В
новых вариантах психологических и педагогических теорий тестов больше внимание
стало уделяться ,помимо эмпирических показателей , характеру умственной
деятельности учащихся в процессе выполнения тестовых заданий различных форм.
В силу простоты
показатель ,
удобен, но до тех пор, пока не появляются другие группы испытуемых, с разным
числом испытуемых ().
Поэтому для получения сопоставительных характеристик , делят
на число испытуемых в каждой группе.[4]
В результате получается
нормированный (числом испытуемых) статистический показатель - доля правильных
ответов, .
Значения приводятся
в третьей строке нижней части таблицы 2.
Статистика долгое
время использовалась в качестве показателя трудности в так называемой
классической теории тестов. Позже была осознана содержащаяся в ней смысловая
неточность: ведь увеличение значения указывает
не на возрастание трудности, а, наоборот, на возрастание легкости, если можно
применить такое слово.
Поэтому в последние годы
с показателем трудности заданий стали ассоциировать противоположную статистику -
долю неправильных ответов (). Эта
доля вычисляется из отношения числа неправильных ответов ( -
вторая строка нижней части таблицы) к числу испытуемых ():
Значения представлены
в четвертой строке нижней части таблицы 2. Естественным образом принимается,
что
Результаты сложения по
строкам представлены в последнем столбце таблицы. Из последнего, одиннадцатого
столбца таблицы видно, что больше правильных ответов у первого испытуемого, а
меньше - у последнего. Это столбец представляет собой числовой вектор тестовых
баллов испытуемых. Суммирование баллов всех испытуемых, представленных в
таблице, дает число 65. Полезно посчитать средний арифметический тестовый балл
в данной группе испытуемых
(4)
Это равенство отражает
сумму всех элементов матрицы тестовых заданий, но только для случаев, когда для
получения используются
одинаковые весовые коэффициенты ()
значимости заданий в тесте, все равные, например, единице.
3.4 Современный
подход к понятию «трудность».
В современных
технологиях адаптивного обучения и контроля используется другая мера трудности
задания, равная . Эту
меру трудности, получаемую в шкале натуральных логарифмов, называют логит
трудности задания. Симметрично введена и логарифмическая оценка уровня знаний,
так называемый логит уровня знаний, равный , где - доля
правильных ответов испытуемого, рассчитываемая по формуле , в
которой означает
число правильных ответов испытуемого , а
символ означает
общее число заданий. [5]
Логарифмические оценки
таких, казалось бы, реально несопоставимых феноменов как уровень знаний каждого
испытуемого, с уровнем трудности каждого задания, привели к незамысловатой,
внешне, попытке сравнить их посредством вычитания. Однако эффективность такого
сравнения оказала огромное влияние на развитие зарубежной педагогической теории
и практики.
Впервые появилась
возможность непосредственного сопоставления любого множества заданий с любым
числом испытуемых. ЭВМ сопоставляет логит задания и логит знаний и на этой
основе подбирает очередное задание в системах адаптивного обучения и контроля
знаний.
Требование известной
трудности оказывается важнейшим системообразующим признаком тестового задания.
Если тест- это система заданий возрастающей трудности, то в нем нет места
заданиям без известной меры трудности.
3.5 Вариация,
дисперсия баллов и дифференцирующая способность.
Если на какое-то задание
правильно отвечают все тестируемые, то такое задание становится не тестовым.
Испытуемые отвечали на него одинаково; между ними нет вариации. Соответственно,
по данному заданию в матрице будут стоять одни единички.
Не тестовым надо считать
и то задание, на которое нет ни одного правильного ответа; в матрице по нему
ставят, соответственно, одни нули. Вариация по нему также равна нулю. Нулевая
вариация означает практическую необходимость удаления задания из проектируемого
теста. Оно, для данной группы, не тестовое. Возможно, в другой группе это
задание заработает, но это будет задание уже другого, а не данного теста, если
под тестом понимать метод и результат измерения знаний.
Удобной мерой вариации
является значение дисперсии баллов, обозначаемой символом . Для
заданий, в которых используется только дихотомическая оценка (1 или 0), мера
вариации определяется по сравнительно простой формуле:
(5)
Значения дисперсии по
каждому заданию, рассчитанные по этой формуле, представлены в пятой строке
нижней части таблицы 2.
Помимо вариации баллов в
каждом задании считается вариация тестовых баллов испытуемых, набранных ими в
тесте, по всем заданиям. Расчет показателей вариации тестовых баллов начинается
с определения суммы квадратов отклонений значений баллов от среднего
арифметического тестового балла (), по
формуле:
(6)
Для данных таблицы 2:
(7)
У показателя SSy тоже
есть недостаток, который заключается в его зависимости от числа испытуемых: при
прочих равных условиях, чем больше группа, тем большей оказывается , что
делает этот показатель несопоставимым для групп с разным числом испытуемых.
Поэтому для исправления отмеченного недостатка используют второй прием - делят на
число испытуемых в группе. В результате получается стандартный показатель
вариации тестовых баллов, называемый дисперсией или,
по-старому, вариансой.
Для тестовых баллов в
столбце табл.
на рис.2 дисперсия вычисляется по формуле:
(8)
При N, равном тринадцати
испытуемым, дисперсия равна:
(9)
Для удобства в
интерпретации тестовых результатов вместо дисперсии часто используется
стандартное отклонение тестовых баллов от средней арифметической. Оно
обозначается символом Sy и вычисляется как корень квадратный из значения sy2.
(10)
Стандартное отклонение
Sy является общепринятой мерой вариации тестовых баллов.
Подставляя наши данные,
получаем
(11)
Дифференцирующая
способность является четвертым требованием к тестовым заданиям.
Если на какое-то задание
правильно отвечают все тестируемые, то такое задание не дифференцирует сильных
от слабых и потому ему в тесте делать нечего. Нет в тесте места и тем заданиям,
на которые нет ни одного правильного ответа; в матрице по ним ставят одни нули.
4.
Visual Basic for Applications (VBA)
Программирование в Excel
, в основном, сводится к управлению объектами. Эта задача выполняется с помощью
инструкций, введённых на языке, понятном Excel .
Visual Basic For Application
( далее VBA
) – немного упрощённая реализация языка программирования Visual Basic
, встроенная в линейку продуктов Microsoft Office
(включая версии для Mac OS), а
так же во многие другие программные пакеты, такие как AutoCAD, WordPerfect и
ESRI ArcGIS. VBA покрывает и расширяет функциональность ранее использовавшихся
специализированных макро-языков, таких как WordBasic.
VBA является
интерпретируемым языком. Как и следует из его названия, VBA близок к Visual
Basic, но может выполняться лишь в рамках приложения, в которое он встроен.
Кроме того, он может использоваться для управления одним приложением из
другого, с помощью OLE Automation (например, таким образом можно создать
документ Word на основе данных из Excel). В будущем Microsoft планирует
заменить VBA на Visual Studio Tools for Applications (VSTA) — инструментарий
расширения функциональности приложений, основанный на Microsoft .NET.[6]
VBA в настоящее время входит в состав всех приложений Microsoft Office
и даже приложений других компаний. Следовательно, овладев VBA
для Excel,
можно сразу перейти к созданию макросов для других программных продуктов Microsoft
(равно, как и приложений других компаний). Более того, можно создавать
полноценные программные продукты, одновременно использующие функции самых
разных приложений.
4.1 Объектные модели
Секрет
использования VBA заключается в правильном понимании объектной
модели в каждом отдельном приложении. Следует отметить, VBA
всего лишь управляет объектами, а у каждого программного продукта (Excel,
Word,
Access,
PowerPoint
и т.п.) своя объектная модель. Приложением можно управлять программным образом
только с помощью объектов, которые представлены в этом приложении.
Например, в объектной
модели Excel
представлено несколько мощных объектов анализа данных, например, рабочие листы,
диаграммы, сводные таблицы, сценарии, а также многочисленные математические,
финансовые, инженерные и общие функции. С помощью VBA можно работать с этими объектами и разрабатывать автоматизированные
процедуры.
4.2 Основы VBA
Предназначение
VBA:
1.Действия
в VBA
осуществляются в результате выполнения кода VBA.
2. Разработчик создаёт
(или записывает) программу VBA, которая сохраняется в
модуле VBA
Модуль
VBA
состоит из процедур.
Процедура,
по существу, представляет собой элемент компьютерной программы, выполняющей
определенное действие. Ниже приведен пример простой процедуры под названием Test:
она вычисляет сумму, а затем отображает результат в окне сообщений:
Sub
Test ()
Sum
=1+1
MsgBox
"Ответ: " & Sum
End Sub
Кроме
процедур Sub, в модуле VBA может
использоваться второй тип процедур — функции.
Процедура
функции возвращает одно значение (или массив). Функция может быть вызвана из
другой процедуры VBA или использоваться в формуле
рабочего листа. Ниже приведен пример функции с названием AddTwo:
Function AddTwo(arg1,
arg2)
AddTwo
= arg1
+ arg2
End Function
Excel
позволяет управлять более, чем ста классами объектов, включая рабочую книгу,
рабочий лист, диапазон ячеек рабочего листа, диаграмму и нарисованный
прямоугольник. В распоряжении разработчика находятся и другие объекты, с
которыми можно работать в VBA.
4.3 Классы объектов
Классы
объектов в VBA организованы в иерархическую
структуру.
Объекты
могут быть контейнерами для других объектов. Например, Excel
— это объект под названием Application, он
содержит другие объекты, например, Workbook
(Рабочая книга).
Объект
Workbook
может состоять из других объектов, например, Worksheet
(Рабочий лист) и Chart (Диаграмма).
Объект
Worksheet
также содержит объекты, например, Range
(Диапазон), PivotTable (Сводная таблица) и т.д.
Организацию таких объектов называют объектной моделью Excel.
Одинаковые
объекты формируют коллекцию.
Например,
коллекция Worksheets состоит из всех рабочих листов
конкретной рабочей книги, а коллекция CommandBars
— из всех объектов CommandBar. Коллекции — это
объекты в себе.
При
ссылке на объект, вложенный в другой объект, положение в иерархической
структуре объектной модели задается с помощью точки-разделителя.
Например,
на рабочую книгу с названием Книга1.xls можно
сослаться следующим образом:
Application.
Workbooks(«Книга1.xls»)
Это
ссылка на рабочую книгу Книга1.xls в коллекции Workbooks.
Коллекция Workbooks находится в объекте Application.
Переходя на следующий уровень, можно сослаться на лист под названием «Лист1» в
книге Книга1.xls:
Application.
Workbooks («Книга1.хls») .Worksheets
(«Лист1»)
Сослаться
на ячейку, перейдя на один уровень ниже, следующим образом:
Application. Workbooks(«Книга1.xls»).Worksheets(«Лист1»).Range(«А1»)
При опущенной ссылке на
объект Excel
по умолчанию используются активные объекты. Если книга Лист1 — активная рабочая
книга, то предыдущую ссылку можно упростить: Worksheets
(«Лист1»).Range(«А1»)
Если
лист «Лист1» — активный, то ссылку можно упростить еще больше:
Range(«A1»)
4.4 Свойства объектов
Свойство
можно считать параметром или настройкой объекта. Например, объект диапазона
имеет такие свойства, как Value (Значение) и Name
(Имя). Объект диаграммы обладает такими свойствами, как HasTitle
(Заголовок) и Туре (Тип). Разработчик вправе использовать VBA,
чтобы задать свойства объектов и их изменить.
Свойства
в программном коде отделяются от названия объекта точкой.
Например,
можно сослаться на значение в ячейке А1 листа «Лист1» следующим образом:
Worksheets
(«Лист1»).Range(«А1»).Value
Пользователь
вправе присваивать значения переменным VBA.
Переменную можно считать константой, которая
используется для хранения конкретного значения.
Чтобы
присвоить значение ячейки А1 листа Лист1 переменной с названием Interest,
можно
использовать следующий оператор VBA:
Interest
= Worksheets («Лист1»).Range («А1») .Value
4.5 Методы
У
объектов есть методы.
Метод
- это действие, которое выполняется над объектом. Например, один из методов
объекта Range
— ClearContents.
Этот метод удаляет содержимое диапазона ячеек.
Методы
вводятся после названия объекта с методом, в роли разделителя выступает точка.
Например,
для удаления содержимого ячейки А1 активного рабочего листа используется
следующая команда:
Range(«А1»)
.ClearContents
4.6 Редактор VBE
В
Excel
5 и Excel
95 модуль VBA записывался на отдельном листе рабочей
книги. Начиная с версии Excel 97t
модули VBA
уже не представляются в виде листов рабочей книги. Вместо этого для работы и
просмотра модулей VBA используется редактор Visual Basic
(VBE
— Visual Basic Editor).
Модули
VBA
все еще сохраняются вместе с файлами рабочей книги; просто они не видны до тех
пор, пока не запущен редактор VBE.
VBE—
это отдельное приложение, запускающееся в Excel.
Программа сама выполняет всю операцию по запуску VBE, когда
это необходимо, VBE не может запускаться отдельно
от Excel;
для запуска VBE используется только Excel.
Во
время работы в Excel перейти к окну VBE
с помощью одного из следующих способов.
1)Нажать
<AU+F1
2)Выбрать
команду Сервис=>Макрос=>Редактор Visual Basic.
3)Щелкнуть на кнопке
Редактор Visual Basic,
расположенной на панели инструментов Visual Basic.
4.7 Иерархия объектов
Объект
Application
(то есть Excel) содержит другие объекты. Ниже
приведено несколько примеров объектов, которые находятся в объекте Application:
Workbooks
(коллекция всех объектов Workbook — рабочих книг);
Windows
(коллекция всех объектов window — окон);
Addlns
(коллекция всех объектов Addln — надстроек).
Некоторые
объекты могут содержать другие объекты. Например, коллекция Workbooks
состоит из всех открытых объектов Workbook, а
объект Workbook
включает другие объекты, некоторые из которых представлены ниже;
Worksheets
(коллекция объектов Worksheet — рабочих листов);
Charts
(коллекция объектов Chart — диаграмм);
Names (коллекция объектов Name —
имен).
Каждый
из этих объектов, в свою очередь, может содержать другие объекты. Коллекция Worksheets
состоит из всех объектов Worksheet рабочей книги Workbook.
Объект Worksheet
включает другие объекты, среди которых следующие;
Chartobjects
(коллекция объектов Char tobject
— элементов диаграмм);
Range
— диапазон;
PageSetup
— параметры страницы;
PivotTables
(коллекция объектов PivotTable — сводных таблиц).
Одной
из ключевых концепций в программировании на языке VBA
являются коллекции. Коллекция — это группа, объектов одного класса [и сама
коллекция тоже является объектом). Как указывалось выше: Workbooks
— это коллекция всех открытых в данный момент объектов Workbook.
Worksheets
— коллекция всех объектов Worksheet,
которые содержатся в конкретном объекте Workbook.
Разработчик может одновременно управлять целой коллекцией объектов или
отдельным объектом этой коллекции. Чтобы сослаться на один объект из коллекции,
необходимо ввести название или номер объекта в скобках после названия
коллекции:
Worksheets («Лист1»)
Если
лист «Лист1» — это первый рабочий лист в коллекции, то можно использовать следующую
ссылку:
Worksheets
(1)
На
второй лист в рабочей книге Workbook можно сослаться
соответственно следующим образом:
Worksheets
(2)
Кроме того, существует
коллекция с названием Sheets, состоящая из всех
листов рабочей книги, рабочих листов и листов диаграмм. Если «Лист1» — первый
лист в книге, то на него можно сослаться так
Sheets (1)
4.8 Свойства объектов
Все
объекты
обладают свойствами. Например, объект Range
обладает свойством с названием Value. Например, можно создать
оператор VBA, чтобы отобразить свойство Value
или задать свойству Value определенное значение. Ниже
приведена процедура» использующая функцию VBA MsgBox
для отображения окна, в котором представлено значение ячейки А1 листа Лист!
активной рабочей книги.
Sub
ShowValue()
HsgSox Worksheets(«Лист1»).Range(«А1»).Value
End Sub
Код
предыдущего примера отображает текущее значение свойства Value
для конкретной ячейки — А1 рабочего листа Лист1 активной рабочей книги. Однако
если в активной книге отсутствует лист с названием Лист1, то макрос выдаст
ошибку.
MsgBox
— полезная функция, часто используемая для отображения результатов выполнения
операторов VBA.
Также
разработчик вправе изменять свойство Value . Ниже приведена процедура по изменению значения ячейки А1 путем
определения значения свойства Value:
Sub
ChangeValueO
Worksheets["Лист1"),Range("Al").Value
= 123
End Sub
Многие
объекты имеют свойство по умолчанию. Для объекта Range
свойством по умолчанию является Values.
Следовательно, выражение .Value в приведенном выше коде
можно опустить, и ничего не изменится. Однако лучше включать ссылку на
свойство, даже если оно используется по умолчанию.
4.9 Методы объектов
Кроме
свойств, объекты имеют методы. Простой пример - использование метода Clear
по отношению к диапазону ячеек. После выполнения этой процедуры ячейки А1:СЗ
листа Лист1 станут пустыми, и дополнительное форматирование ячеек будет
удалено.
Sub
SapRange ()
Worksheets(«Лист1»).Range(«Al:C3»).Clear
End Sub
Если
необходимо удалить значения в диапазоне, но оставить форматирование, можно
использовать метод ClearContents
объекта Range.
Многие
методы получают аргументы, определяющие выполняемые над объектом действия более
детально. Далее приводится пример, в котором ячейка А1 копируется в ячейку В1 с
помощью метода Сору объекта Range.
В
данном примере метод Сору получает один аргумент (адрес ячейки, в которую
следует скопировать данные):
Sub
CopyOnet ()
Worksheets(
«Лист1») .Range(«Al») .Copy _
Worksheets(«Лист1»).Range(«В1»)
End sub
5.Практическая
часть
При выполнении данной
работы была поставлена цель изучить основы VBA,
объектную модель данного языка, основные принципы программирования. Изучить
приемы, применяемые при анализе результатов теста, способы определения качества
теста то есть провести анализ результатов теста.
Поэтому на данном этапе
работы было начато написание кода на языке Visual Basic for Applications
с использованием табличного редактора Microsoft Excel.
Написанный код позволяет
копировать результаты тестирования из исходного файла, выбираемого
пользователем, в текущий файл с последующей обработкой данных.
По результатам
сгенерированным текущим кодом преподаватели могут определить, как часто
задавался тот или иной вопрос, а также определить частоту правильных ответов на
него тестируемыми.
Это пригодится,
например, для формирования у преподавателя знания о качестве владения
студентами материала и сделать упор на ошибки, допущенные в тесте, в процессе
дальнейшего изучения курса.
В приложении 1
содержится код основной программы с комментариями (записаны после знака
апострофа «’»).
В приложении 2
содержится код, включающий в себя используемые в программе процедуры с
комментариями
Ниже представлена блок –
схема программы:
Описание работы
программы по анализу результатов теста.
Запуск макроса можно
осуществить следующим образом:
1)
Сервис=>Макрос=>Макросы
2)
Нажав комбинацию клавиш Alt+F8
как
показано на рисунке 1.
Затем, в появившемся
диалоговом окне «Макрос», выбрать Test и нажать кнопку «Выполнить», как
показано на рисунке 2:
После нажатия кнопки
«Выполнить» начнётся выполнение кода макроса и пользователь увидит
сообщение-приветствие и просьбу выбрать файл для анализа:
Затем появляется
пользовательское окно, в котором пользователь должен указать путь к файлу как
показано на рис.4:
После того, как
пользователь выберет файл начнётся выполнение макроса, при этом файл, выбранный
пользователем, откроется. Затем из импортированного файла будут скопированы
необходимые данные в текущий файл, название которого «Тест.xls». По завершении
копирования будут произведены необходимые вычисления. Затем появится окно, в
котором будет показано время выполнения макроса как на рисунке 5:
Затем пользователь может
работать с полученными результатами примерный вид которых можно увидеть на
рисунке 6:
В дальнейшем планируется
осуществить вывод полученных результатов в отдельный файл с последующим
сохранением, оформление в виде документа приложения Microsoft Word
или составления презентации на основе Microsoft PowerPoint
6. Заключение
1.
Изучена система тестирования АСТ и принципы
формирования ею результатов тестирования.
2.
Изучены принципы обработки результатов
тестирования с использованием понятия теории тестирования.
3.
Изучен принцип составления матрицы результатов и
её дальнейшей обработки
4.
Изучены такие показатели теста как валидность,
надёжность, дисперсия, дифференцирующая способность.
5.
Написана программа на языке программирования VBA,
позволяющая проводить частичный анализ тестовых результатов.
В дальнейшем планируется
в данной программе сводить результаты тестирования не только конкретной группы,
а нескольких с целью уточнения показателей качества теста. Будет проводиться
построение корреляционной таблицы для каждого вопроса в тесте с целью анализа
построения теста.
Планируется осуществить
сбор результатов, содержащий показатели надёжности тестовых заданий с
последующим представлением в виде документа на базе Microsoft Word
преподавателю с целью дальнейшей корректировки содержания теста.
7.
Список использованной литературы
1. Аванесов В.С. Форма
тестовых заданий. М.: Центр тестирования, 2005
2. Аванесов В.С. Тесты в
социологическом исследовании. М.: Наука , 1982
3. Аванесов В.С. Научные
проблемы тестового контроля знаний. М. Иссл. Центр проблем качества подготовки
специалистов. М.: 1994
4. Яноши Л. Теория и
практика обработки результатов измерений. М.: Мир, 1965
5. Пособия «Композиция
тестовых заданий». М.: Центр Тестирования. 2002
6. www.wikipedia.org.ru/VBA
7. http://bit.pirit.info/forum/index.php
8. Уокенбах Дж. Профессиональное
программирование на VBA в Excel
2002. М.: Диалектика, 2003
9. Берлинер Э.М. Microsoft Office
2003
10. Мюррей К. Microsoft Office
2003. Новые горизонты
11. Кузьмин В. Microsoft Office
2003. Учебный курс
8.Приложения
Приложение 1: Код
основной программы
Sub Test()
Dim FNXLS As String
'Путь к импортированному файлу
Dim FNO As String 'Название импортированного файла
Dim StartTime As Date 'Время
начала
модуля
Dim EndTime As Date 'Время
окончания работы модуля
Dim CountOfSheets As Integer
Dim CountOfUsers As Integer
Dim Fn1 As String
Dim i As Integer 'Переменная - счётчик
Dim j As Integer
Dim n1 As Integer
Dim k As Integer
Fn1 = "Тест.xls"
Dim q1 As Integer
Dim q2 As Integer
Dim q3 As Integer
ОСНОВНАЯ
ЧАСТЬ
GreetMe4
FNXLS = FileNameXLS
If FNXLS = " " Then
Exit Sub
StartTime = Timer
FNO = FileNameOnly(FNXLS)
MsgBox "Работаем с
файлом: " & FNO
Workbooks.Open FNO
'Открытие рабочей книги с названием, соответствующим значению переменной FNO на
чтение
CountOfSheets =
Sheets.Count 'Определение количества листов в книге
CountOfUsers = Num(FNO)
Workbooks(Fn1).Worksheets(1).Range("A1:IV256").Clear
Workbooks(FNO).Sheets(1).Cells(2,
2).Copy Workbooks(Fn1).Sheets(1).Cells(2, 2)
Workbooks(FNO).Sheets(1).Cells(3,
2).Copy Workbooks(Fn1).Sheets(1).Cells(3, 2)
Workbooks(FNO).Sheets(1).Cells(4,
2).Copy Workbooks(Fn1).Sheets(1).Cells(4, 2)
Workbooks(Fn1).Sheets(1).Cells(6,
1) = "Вопрос" ' Оформление конечного файла
Workbooks(Fn1).Sheets(1).Cells(7,
1) = "Кол-во"
Workbooks(Fn1).Sheets(1).Cells(8,
1) = "Ri"
Workbooks(Fn1).Sheets(1).Cells(9,
1) = "Ri/N"
Workbooks(Fn1).Sheets(1).Cells(11,
1) = "Вопрос"
Workbooks(Fn1).Sheets(1).Cells(12,
1) = "Кол-во"
Workbooks(Fn1).Sheets(1).Cells(13,
1) = "Ri"
Workbooks(Fn1).Sheets(1).Cells(14,
1) = "Ri/N"
Workbooks(Fn1).Sheets(1).Cells(17,
1) = "Вопрос"
Workbooks(Fn1).Sheets(1).Cells(17,
2) = "Кол-во"
Workbooks(Fn1).Sheets(1).Cells(17,
3) = "Ri"
Workbooks(Fn1).Sheets(1).Cells(17,
4) = "Ri/N"
Workbooks(Fn1).Sheets(1).Cells(17,
7) = "Кол-во"
Workbooks(Fn1).Sheets(1).Cells(17,
8) = "Процент"
n1 = 2
n = CountOfUsers
' Количество учащихся в группе
' Копирование данных а
текущий файл
k = 1
For i = 1 To CountOfSheets
For j = 1 To 256
If j = 255 Then k = 0
If
Workbooks(FNO).Sheets(i).Cells(n + 1 + 6, j + k) > 0 Then
Workbooks(FNO).Sheets(i).Cells(n + 1 + 6, j + k).Copy _
Workbooks(Fn1).Sheets(1).Cells(7,
n1)
If
Workbooks(FNO).Sheets(i).Cells(n + 1 + 6, j + k) > 0 Then
Workbooks(FNO).Sheets(i).Cells(6, j + k).Copy _
Workbooks(Fn1).Sheets(1).Cells(6,
n1)
If
Workbooks(FNO).Sheets(i).Cells(n + 1 + 6, j + k) > 0 Then
Workbooks(FNO).Sheets(i).Cells(n + 2 + 6, j + k).Copy _
Workbooks(Fn1).Sheets(1).Cells(8,
n1)
If
Workbooks(FNO).Sheets(i).Cells(n + 1 + 6, j + k) > 0 Then n1 = n1 + 1
Next j
Next i
n1 = n1 - 1 - 7
For i = n1 + 2 To 256
Workbooks(Fn1).Sheets(1).Cells(6,
i).Clear
Next i
For i = 2 To n1 + 1
q1 =
Workbooks(Fn1).Sheets(1).Cells(6, i)
q2 =
Workbooks(Fn1).Sheets(1).Cells(7, i)
q3 =
Workbooks(Fn1).Sheets(1).Cells(8, i)
Workbooks(Fn1).Sheets(1).Cells(11,
i) = Workbooks(Fn1).Sheets(1).Cells(6, n1 + 3 - i)
Workbooks(Fn1).Sheets(1).Cells(12,
i) = Workbooks(Fn1).Sheets(1).Cells(7, n1 + 3 - i)
Workbooks(Fn1).Sheets(1).Cells(13,
i) = Workbooks(Fn1).Sheets(1).Cells(8, n1 + 3 - i)
Workbooks(Fn1).Sheets(1).Cells(11,
n1 + 3 - i) = q1
Workbooks(Fn1).Sheets(1).Cells(12,
n1 + 3 - i) = q2
Workbooks(Fn1).Sheets(1).Cells(13,
n1 + 3 - i) = q3
Next i
For i = 2 To n1 + 1
Workbooks(Fn1).Sheets(1).Cells(9,
i) = Workbooks(Fn1).Sheets(1).Cells(8, i) / Workbooks(Fn1).Sheets(1).Cells(7,
i)
Workbooks(Fn1).Sheets(1).Cells(14,
i) = Workbooks(Fn1).Sheets(1).Cells(13, i) / Workbooks(Fn1).Sheets(1).Cells(12,
i)
Next i
For i = 1 To n1
Workbooks(Fn1).Sheets(1).Cells(11,
i + 1).Copy Workbooks(Fn1).Sheets(1).Cells(17 + i, 1)
Workbooks(Fn1).Sheets(1).Cells(12,
i + 1).Copy Workbooks(Fn1).Sheets(1).Cells(17 + i, 2)
Workbooks(Fn1).Sheets(1).Cells(13,
i + 1).Copy Workbooks(Fn1).Sheets(1).Cells(17 + i, 3)
Workbooks(Fn1).Sheets(1).Cells(17
+ i, 4) = Workbooks(Fn1).Sheets(1).Cells(17 + i, 3) /
Workbooks(Fn1).Sheets(1).Cells(17 + i, 2)
Next i
For i = 0 To 9
Workbooks(Fn1).Sheets(1).Cells(18
+ i, 7) = 0
Workbooks(Fn1).Sheets(1).Cells(18
+ i, 8) = (i + 1) * 10
Next i
For i = 1 To n1
If
Workbooks(Fn1).Sheets(1).Cells(17 + i, 4) = 0 Then
Workbooks(Fn1).Sheets(1).Cells(18, 7) = Workbooks(Fn1).Sheets(1).Cells(18, 7) +
Workbooks(Fn1).Sheets(1).Cells(17 + i, 2)
Next i
For j = 0 To 9 Step 1
For i = 1 To n1
If
Workbooks(Fn1).Sheets(1).Cells(17 + i, 4) > j * 0.1 And
Workbooks(Fn1).Sheets(1).Cells(17 + i, 4) <= (j + 1) * 0.1 Then _
Workbooks(Fn1).Sheets(1).Cells(18
+ j, 7) = Workbooks(Fn1).Sheets(1).Cells(18 + j, 7) +
Workbooks(Fn1).Sheets(1).Cells(17 + i, 2)
Next i
Next j
For i = 2 To n1 + 1
Workbooks(Fn1).Sheets(1).Cells(9,
i) = Format(Workbooks(Fn1).Sheets(1).Cells(9, i), "0.00%")
Workbooks(Fn1).Sheets(1).Cells(14,
i) = Format(Workbooks(Fn1).Sheets(1).Cells(14, i), "0.00%")
Workbooks(Fn1).Sheets(1).Cells(16
+ i, 4) = Format(Workbooks(Fn1).Sheets(1).Cells(16 + i, 4), "0.00%")
Next i
Workbooks(FNO).Close
SaveChanges:=False 'Закрытие рабочей книги с названием, соответствующим
значению переменной FNO без сохранения изменений
EndTime = Timer
MsgBox "Выполнено
за "
& Format(EndTime - StartTime, "0.0") & " сек."
'Определение
времени выполнения
End Sub
Приложение
2: Процедуры, используемые в программе
Public Function FileNameXLS()
As String
'Импорт
файла
Dim Filt As String
Dim FilterIndex As Integer
Dim FileName As Variant
Dim Title As String
'Настройка
списка
файлов
Filt = "Файлы Excel
(*.xls),*.xls,"
'По
умолчанию используется фильтр *.*
FilterIndex = 5
'Заголовок окна
Title = "Выберите
импортируемый файл"
'Получение
имени
файла
FileName =
Application.GetOpenFilename(filefilter:=Filt, FilterIndex:=FilterIndex,
Title:=Title)
'При
отмене - выйти из окна
If FileName
= False Then
MsgBox
"Файл не выбран"
FileNameXLS = "
"
Exit Function
End If
'Отображение полного
имени и пути
'MsgBox
"Вы выбрали "
& FileName
FileNameXLS = FileName
End Function
Private Function
FileNameOnly(pname) As String
'Возвращает имя файла из
пути/имени файла
FileNameOnly
= Dir(pname)
End Function
Sub GreetMe4()
'Процедура для
определения приветствия
If Time < 0.5 Then
MsgBox "Доброе
утро" & ", выберите импортируемый файл"
Else
If Time >= 0.5 And Time
< 0.75 Then
MsgBox
"Добрый день" & ", выберите импортируемый файл"
Else
If Time >= 0.75 Then
MsgBox "Добрый
вечер" & ", выберите импортируемый файл"
End If
End If
End If
End Sub
Function Num(File) As Integer
'Определение количества
тестиреумых
Dim i As Integer
For i = 7 To 10000
If
Workbooks(File).Sheets(1).Cells(i, 1).Value = "Кол-во"
Then Exit Function
Num = Num + 1
Next i
End Function
Sub Diagr()
Application.ScreenUpdating =
False
Charts.Add
ActiveChart.Location _
Where:=xlLocationAsObject,
Name:="Лист1"
With ActiveChart
.SetSourceData
Range("G18:H27")
.HasTitle = True
.ChartType =
xl3DColumnClustered
.HasLegend = False
.ApplyDataLabels
Type:=xlDataLabelsShowValue
.Axes(xlCategory).TickLabels.Orientation
= xlHorizontal
.ChartTitle.Font.Bold = True
.ChartTitle.Font.Size = 12
.PlotArea.Top = 18
.PlotArea.Height = 162
.Axes(xlValue).MaximumScale =
0.6
.Deselect
End With
Application.ScreenUpdating =
True
End Sub