Научная статья на тему 'Компьютерный контроль знаний при изучении математических дисциплин студентами-программистами'

Компьютерный контроль знаний при изучении математических дисциплин студентами-программистами Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
178
24
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОНТРОЛЬ ЗНАНИЙ / СТУДЕНТ-ПРОГРАММИСТ / МАТЕМАТИКА / ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ / ТЕСТИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кадан Александр Михайлович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Компьютерный контроль знаний при изучении математических дисциплин студентами-программистами»

Кадан А.М.

УО «Гродненский государственный университет имени Янки Купалы», Гродно, Беларусь, заведующий кафедрой системного программирования и компьютерной безопасности,

kadan@ mf. grsu.by

Компьютерный контроль знаний при изучении математических дисциплин студентами-программистами

КЛЮЧЕВЫЕ СЛОВА:

Контроль знаний, студент-программист, математика, информационные технологии, тестирование.

АННОТАЦИЯ:

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

Введение

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

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

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

материала.

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

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

Системы автоматизированного тестового контроля

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

В настоящее время существует ряд программных систем аналогичного назначения. В большинстве случаев подобные системы обладают схожей функциональностью, но практически у каждой из них можно выделить свои особенные характеристики. Такие системы активно применяются при подготовке к ACM-соревнованиям и непосредственно при их проведении (http://acm.uva.es, http://acm.timus.ru. http://dl.gsu..by), для поддержки технологий дистанционного обучения (http://dl.gsu.by), а так же при организации соревнований по программированию различного уровня (http: //test-the-best.by и http://topcoder.com).

Активно используется учебными заведениями система Contester [2]. Также надо отметить более чем восьмилетний опыт использования системы e-Contest [3] на факультете математики и информатики Гродненского государственного университета им.Янки Купалы, а также интерактивный интернет-сервис для компьютерного тестирования знаний в области математики [4]. К отличительным особенностям последнего можно отнести замену анализа ответа пользователя генерацией задачи проверки возможности эквивалентного преобразования ответа испытуемого к эталону ответу и использование пакета символьной

математики Maple или MathCAD для решения сгенерированных задач.

Некоторые проблемы тестового контроля знаний

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

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

• Обеспечение пользователю возможности ввода ответа с использованием системы обозначений, традиционно принятой в данной области знаний;

• Предварительная обработка введенного ответа клиентским приложением тестирующей системы с целью контроля правильности синтаксиса введенных выражений;

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

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

Поэтому представляется рациональным перенести часть функций

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

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

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

Пример области применения

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

Так, к примеру, решение, с использованием языка Python, типовой задачи нахождения энтропии из курса «Теория информации» представленной в следующем виде:_

# Вычислить энтропию дискретной случайной величины,

# представленной вектором вероятностей ее значений.

# Результат - в бит/симв

Р = {'х0':1/2, 'х1':1/4, 'х2':1/8, 'х3':1/8}

Н = ...

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

Вариант правильного ответа 1 P = {'x0':1/2, 'x1':1/4, 'x2':1/8, 'x3':1/8}

Вариант правильного ответа 2_

from math import log P = {'x0':1/2, 'x1':1/4, 'x2':1/8, 'x3':1/8}

H = -(1/2*log(1/2,2) + 1/4*log(1/4,2) + 2*1/8*log(1/8,2))_

Вариант правильного ответа 3_

from math import log P = {'x0':1/2, 'x1':1/4, 'x2':1/8, 'x3':1/8} def entro(a): s = 0

for x in a:

s -= a[x]*log(a[x],2) return s

H = entro(P)_

Вариант правильного ответа 4_

from math import log P = {'x0':1/2, 'x1':1/4, 'x2':1/8, 'x3':1/8} def entro(a):

return sum(-a[x]*log(a[x],2) for x in a)

H = entro(P)_

Вариант правильного ответа 5_

from math import log P = {'x0':1/2, 'x1':1/4, 'x2':1/8, 'x3':1/8}

H = sum(-P[x]*log(P[x],2) for x in P)_

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

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

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

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

3. Система реализуется как клиент-серверное приложение.

4. Взаимодействие пользователя с системой должно осуществляться

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

Рис. 1. Схема взаимодействия компонент системы

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

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

7. Тестовое задание представляет собой шаблон (файл с исходным кодом), который содержит фрагменты кода, которые должны быть преобразованы в ответы согласно требованиям, изложенным в инструкции.

8. Ответы испытуемых оформляются в файле исходного кода в виде фрагментов кода на используемом языке программирования.

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

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

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

испытуемым.

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

Рис.2. Структура основных компонент системы Схема работы испытуемого

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

1. Инструкцию по выполнению работы, содержащую теоретический материал и задания для испытуемого

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

3. Файл с интерфейсным модулем для отправки решений на сервер

4. Необязательные файлы с кодом необходимых библиотек.

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

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

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

Эквивалентность таких структур позволяет сделать заключение об успешности выполнения задания испытуемым. Заключение

К настоящему времени спроектирован прототип представленной системы, реализованы его основные компоненты. Прототип функционирует в рамках корпоративной образовательной среды кафедры системного программирования и компьютерной безопасности Гродненского госуниверситета и используется автором при чтении дисциплины «Теория информации» студентам специальности «Программное обеспечение информационных технологий». Изучаются вопросы безопасности его использования и устойчивости к атакам.

Литература

1. Moodle. Система управления обучением [Электронный ресурс] - https://moodle . org/ - Дата доступа: 15.09.2013.

2. Contester. Система для проведения турниров и индивидуального решения задач по олимпиадному программированию [Электронный ресурс] - http://www.contester.ru/ - Дата доступа: 15.09.2013.

3. Кадан, А.М. Использование системы автоматизированного тестирования учебных программ для обучения программированию / А.М. Кадан, С.В. Курило // Современные информационные компьютерные технологии: сб. науч. ст. В 2 ч. Ч. 1 / ГрГУ им. Я.Купалы; редкол.: Е.А.Ровба, А.М.Кадан (отв.редактор) [и др.]. - Гродно, ГрГУ, 2008. - С.232-235.

4. Kadan, A. Interactive Internet-service for Computer Testing in Mathematics / A. Kadan, D. Maskevich // Pattern Recognition and Information Processing: Proceedings of The Seventh International Conference (21-23 May, Minsk, Republic of Belarus). In two volumes. Vol. 1. - Minsk: United Institute of Informatics Problem of National Academy of Sciences of Belarus, 2003. - P.178 181

i Надоели баннеры? Вы всегда можете отключить рекламу.