|
Материалы выпускной работы магистра |
|
|
Обзор результатов поиска по теме магистерской работы |
|
|
|
«Решение HDL-задач в системе
тестирования знаний ATP» Корченко А.А Донецкий национальный
технический университет, 2004
|
|
В Украине остается актуальным вопрос развития системы дистанционного
образования. На данный момент существует достаточно большое количество курсов
как онлайн, так и оффлайн, предлагающих услуги дистанционного обучения. Как
правило, эти курсы содержат некоторый теоретический материал (лекции) и практические
задания (тесты). Однако анализ этих источников показал, что в них практически
не используются такие типы тестовых вопросов как задачи программирования.
Прежде
всего, такое положение обусловлено отсутствием какой-либо автоматизации при
проверке решения задач, что требует затрат времени эксперта, и не всегда
является возможным. В то же время при проверке знаний по программированию
достаточно удобным подходом является использование этих типов задач, которые
позволяют быстро и качественно оценить способности и практические навыки
студента. В этой статье рассматривается подход к автоматизации решения задач
программирования при проведении тестирования знаний.
Задача программирования
– это тип вопроса, ответом на который является программа на каком-либо языке
программирования. Традиционными подходами к проверке таких задач являются
ручная проверка и шаблонная проверка.
Ручная проверка заключается
в том, что эксперт проверяет решение задачи, не используя при этом средств
автоматизации. Такой подход позволяет проверять задачи любой сложности, однако
требует затрат времени высококвалифицированного специалиста. При шаблонной
проверке ответ студента сравнивается с некоторым подготовленным шаблоном,
но такое сравнение носит характер лишь символьной тождественности. Такая
проверка может быть полезной для узкого круга задач, когда ответ является
однозначным.
В данной работе предлагается подход к проверке задач
программирования с помощью средств соответствующих САПР (рис.1), что позволяет
полностью автоматизировать процесс проверки задач.
Рис.1. Структура
подхода к проверке задач программирования Для реализации
предлагаемого подхода предлагается использовать следующие шаги для автоматизации
проверки задач:
- Синтаксическая проверка – компиляция программы средствами САПР
для выявления синтаксических ошибок.
- Проверка стиля программы – проверка способа написания программы
- может выполняться как средствами САПР, так и с помощью дополнительного
ПО. Дополнительно могут задаваться языковые конструкции, которые допускается
(не допускается) использовать, и их количество.
- Моделирование программы – выполняется анализ работы программы,
для сравнения используется некоторый эталон.
С учетом выше сказанного создание задачи программирования включает такие
этапы (рис. 2):
- Формулировка задачи – описание задачи в словесном или ином
виде.
- Задание эталона для проверки – создание эталона программы,
который будет использоваться при проверке логики работы (моделировании).
- Определение стиля программы – определение способа, которым
должна быть написана программа.
- Параметры тестирования – задание различных параметров, таких,
как количество баллов за правильный ответ, время на подготовку, количество
попыток и др.
Рис.
2. Этапы создания задачи программирования При тестировании
процесс проверки задачи программирования включает следующие этапы:
- Ввод программы пользователем как ответа на задачу.
- Синтаксическая проверка – компиляция программы; при появлении ошибок
пользователю может быть предложено исправить их.
- Проверка стиля программы.
- Проверка логики работы программы (моделирование) – проводится путем
сравнения с работой эталонной программы (рис.3).
Рис.
3. Схема моделирования программы пользователя Следует отметить,
что проверка решения происходит полностью автоматически, что важно при проведении
тестирования. Процесс создания задачи может быть максимально автоматизирован
– необходимыми элементами являются лишь текст вопроса и эталон программы,
все остальные детали задачи могут быть созданы автоматически.
Рассматриваемый
подход к решению задач был реализован в системе тестирования знаний «Advanced
Testing Package (ATP)» [1,3,4].
Система ATP позволяет использовать
задачи программирования на языках HDL (Hardware Description Languages), а
также на языке C/C++. В качестве САПР для автоматической проверки задач HDL
используется пакет Active-HDL фирмы Aldec Inc. [2], а для проверки задач
C/C++ используется компилятор MinGW.
Пример задачи программирования
на языке VHDL приведен на рис.4.
Задание: Напишите
VHDL-программу в потоковом стиле, которая реализует генератор импульсов:
частота 5 МГц, скважность 50%.
Ответ: entity
Oscil is port (Clock: out bit); end entity;
architecture
Behavioral of Oscil is signal C: bit; begin C
<= not C after 100ns; Clock <= C; end architecture; |
Рис. 4. Пример задачи программирования При
реализации подхода к автоматической проверке задач в системе ATP был также
предложен новый тип вопроса, который основывается на задаче программирования
– задаче синтеза схемы HDL. Этот тип вопроса предполагает в качестве ответа
ввод описания некоторой цифровой схемы (рис.5).
Задание: Минимизируйте функцию y=x1x3+x2x3x4+x1x4+nx1nx3x4+x2x3nx4 и
постройте минимальную схему в базисе 2И-НЕ
Ответ
пользователя в формате описания схемы: nand2
(nx3,x4,net1); nand2 (x2,x3,net2); nand2 (net1,net2,net3); nand2
(x1,x4,net4); nand2 (net3,net4,y); |
Рис. 5. Пример задачи синтеза схемы HDL Таким
образом, предложенный подход к автоматизированной проверке задач может быть
использован для самого широкого круга дисциплин, которые связаны с программированием
и цифровой схемотехникой.
Для автоматизации создания вопросов в системе
ATP предусмотрен мастер задач, который позволяет максимально ускорить и упростить
процесс подготовки вопроса. Этот мастер задач включает в себя средства для
создания эталонной программы, задания тестовых векторов и других деталей.
ЛИТЕРАТУРА
- Сайт разработчика системы Advanced Testing Package hardclub.donntu.ru
- Сайт компании Aldec Inc. www.aldec.com
- Зинченко Ю.Е., Масюк А.Л., Корченко А.А., Зинченко Т.А.
Универсальный тестирующий комплекс на базе систем ATP и Online-Testing
/ Научно-практическая конференция «Современные технологии проектирования
систем на микросхемах программируемой логики (ПЛИС)» – Харьков, 2003.
- Масюк А.Л., Корченко А.А., Масюк Л.Н., Зинченко Ю.Е. Тестирование
знаний по VHDL на базе пакета ATP-VHDL / “Образование и виртуальность
– 2002”. Сборник научных трудов 6-й Международной конференции Украинской
ассоциации дистанционного образования – Харьков-Ялта-2002.
|
|
|
|