Александр Корченко
Контактная информация
Важнейшие факты
Рассказ о себе

Материалы выпускной работы магистра

Обзор результатов поиска по теме магистерской работы
Главная Библиотека [Статьи]
«Решение HDL-задач в системе тестирования знаний ATP»
Корченко А.А
Донецкий национальный технический университет, 2004
 

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

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

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

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

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


Рис.1. Структура подхода к проверке задач программирования

Для реализации предлагаемого подхода предлагается использовать следующие шаги для автоматизации проверки задач:
  1. Синтаксическая проверка – компиляция программы средствами САПР для выявления синтаксических ошибок.
  2. Проверка стиля программы – проверка способа написания программы - может выполняться как средствами САПР, так и с помощью дополнительного ПО. Дополнительно могут задаваться языковые конструкции, которые допускается (не допускается) использовать, и их количество.
  3. Моделирование программы – выполняется анализ работы программы, для сравнения используется некоторый эталон.
С учетом выше сказанного создание задачи программирования включает такие этапы (рис. 2):
  1. Формулировка задачи – описание задачи в словесном или ином виде.
  2. Задание эталона для проверки – создание эталона программы, который будет использоваться при проверке логики работы (моделировании).
  3. Определение стиля программы – определение способа, которым должна быть написана программа.
  4. Параметры тестирования – задание различных параметров, таких, как количество баллов за правильный ответ, время на подготовку, количество попыток и др.


Рис. 2. Этапы создания задачи программирования

При тестировании процесс проверки задачи программирования включает следующие этапы:
  1. Ввод программы пользователем как ответа на задачу.
  2. Синтаксическая проверка – компиляция программы; при появлении ошибок пользователю может быть предложено исправить их.
  3. Проверка стиля программы.
  4. Проверка логики работы программы (моделирование) – проводится путем сравнения с работой эталонной программы (рис.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 предусмотрен мастер задач, который позволяет максимально ускорить и упростить процесс подготовки вопроса. Этот мастер задач включает в себя средства для создания эталонной программы, задания тестовых векторов и других деталей.


ЛИТЕРАТУРА
  1. Сайт разработчика системы Advanced Testing Package hardclub.donntu.ru
  2. Сайт компании Aldec Inc. www.aldec.com
  3. Зинченко Ю.Е., Масюк А.Л., Корченко А.А., Зинченко Т.А. Универсальный тестирующий комплекс на базе систем ATP и Online-Testing / Научно-практическая конференция «Современные технологии проектирования систем на микросхемах программируемой логики (ПЛИС)» – Харьков, 2003.
  4. Масюк А.Л., Корченко А.А., Масюк Л.Н., Зинченко Ю.Е. Тестирование знаний по VHDL на базе пакета ATP-VHDL / “Образование и виртуальность – 2002”. Сборник научных трудов 6-й Международной конференции Украинской ассоциации дистанционного образования – Харьков-Ялта-2002.

 
© Александр Корченко, 2004