Подсистема CLASS является виртуальной семинарской аудиторией, которая предназначена для получения опыта программирования на некотором языке высокого уровня. Это - среда проблемного обучения, в которой студенты группы под руководством инструктора обучаются конструировать корректные и эффективные программы для решения достаточно простых задач [1].
Любой курс, поддерживаемый системой CLASS, включает набор проектов, предназначенных для выполнения студентами. Каждый проект Р - это множество однотипных задач {р,P2,..., Pn}, где n ≥ 0 - количество вариантов проекта P.
В системе CLASS имеются проекты двух видов: упражнения и задания, различающиеся по виду предполагаемого решения.
Каждое упражнение Р - это набор вопросов {P, P ,..., P}, предполагаемые ответы на которые не рассматриваются системой как исполняемые программы.
В отличие от упражнений любое задание Р - это множество задач на программирование; так что решить вариант i задания P, те Pi ,- это значит написать исполняемую программу.
По уровню сложности решаемых задач различаются проекты двух типов: стандартной и повышенной сложности.
Проекты стандартной сложности не имеют пометок и образованы из тех задач, которые проверяют понимание студентом изложенного в учебнике теоретического материала. В частности, к проектам стандартной сложности относятся те упражнения и задания, которые направлены на обучение студентов использованию новых языковых конструкций совместно с уже усвоенными, а также на отработку описанных в учебнике схем решения задач.
Другой тип проектов выделен специальной пометкой «проект повышенной сложности» и содержит задачи, которые добавляют новую или требующую размышлений информацию к материалу, изложенному в учебнике. Такие проекты заставляют студентов обдумывать некоторую важную концепцию, относящуюся к теоретическому материалу учебника, или находить ответ на вопрос, который может возникать у студента во время учебника.
Каждый проект стандартной сложности требует, чтобы у студента, допускаемого к его выполнению, уровень знания для всех тех единиц, которые образуют индекс данного проекта, был бы не ниже уровня продвинутого студента, а любой проект повышенной сложности может начать решать только тот студент, который является экспертом во всех единицах знаний, входящих в индекс данного проекта.
В каждом проекте можно выделить некоторый вариант в качестве примера. Решение такого варианта, который получает номер 0, оформляется в виде гипертекстового документа, содержащего формулировку задачи, ее решение и обоснование решения. В частности, в случае задания он содержит описание задания, текст программы и комментарии к программе, поясняющие и обосновывающие данное решение.
Для поддержки данной возможности используются виртуальные и пользовательские номера вариантов проектов.
Виртуальные номера используются при описании проекта лектором на языке описания проектов, а пользовательские – это номера, в терминах которых варианты данного проекта используются студентами в курсе, поддерживаемом системой CLASS. В частности, вариант, имеющий в качестве пользовательского номера нуль, является примером данного проекта.
Лектор, описывая проект в терминах виртуальных номеров, одновременно задает функцию преобразования виртуальных номеров в пользовательские. Указанная функция используются подсистемой генерации проектов каждый раз, когда происходит обращение к проекту за формулировкой некоторого его варианта или за его тестами.
Задания системы CLASS.
Каждое задание системы CLASS предполагает составление программы, читающей входные данные из файла lnput.txt и записывающие результаты своего исполнения (выходные данные) в файл output.txt. [2].
С каждым заданием а связывается множество эталонных решений S(а), множество тестов задания Т(а) , множество правил вывода знаний студента Ŕ(а) и два вектора знаний: P(α)- вектор предварительных знаний и F (а) - вектор итоговых знаний.
Эталонные решения S(а)- это прокомментированные программы решения задания а. В комментариях описываются особенности данного решения задания а и приводится мотивированная его оценка. Эталонные решения используются преподавателями (лекторами и инструкторами) и не доступны студентам.
Тесты задания T (а) используются системой для проверки правильности понимания студентом условия задания и автоматически проверки правильности составленной студентом программы. Каждый тест из множества T(а) - это пара, состоящая из входных и соответствующих выходных данных.
Множество тестов T (а) задания а. распадается на два непересекающихся подмножества T(а) и T2(а), т.е. T(а) = T(а) - T2(а) и т1(а) о = 0, называемых тестами правильности понимания задания и
тестами правильности программы (решения задания).
Перед тем, как начать решать задание, студент должен подтвердить, что он правильно понимает условие задания. Для этого он должен для каждого теста t ∈ T1(а) правильно ввести выходные данные теста t по заданным входным. Тесты из t ∈ T(а) могут использоваться студентом также на начальном этапе отладки программы решения задания а.
Перед тем, как студенту будет разрешено отдать программу (решение задания а ) на проверку инструктору, он должен продемонстрировать системе ее правильность на всех тестах из T (а). Для этого его программа должна на входных данных каждого теста t ∈ T(а) выдавать выходные данные, которые соответствуют ожидаемым.
Каждому тесту t ∈ T(а) могут быть сопоставлены два текста: диагностическое сообщение и общедоступный комментарий. Диагностическое сообщение - это тот текст, который выдается студенту тогда, когда программа студента является неправильной относительно теста t. В тексте комментария указываются предполагаемое ограничения на рабочие характеристики программы для данного теста.
Каждое правило вывода знаний студента из множества Ŕ(а) имеет вид: B → N, где
B - логическое выражение, содержащее литералы вида x или - x,
x ∈ T (а),а
N- вектор знаний.
Правило B → N работает в два этапа.
На первом этапе в B вместо каждого вхождения теста x ∈ T2 (а) подставляется либо значение true, если на входных данных теста x программа выдает предполагаемые результаты, либо значение false в противном случае.
На втором этапе вычисляется выражения B, и, если оно принимает истинное значение, то происходит перевычисление вектора знаний K(x) студента x, решающего данное задание, по следующему правилу K(x):= min(N,K(x)).
Вектора предварительных и итоговых знаний P (а) и f (ɑ), приписанные заданию а, имеют следующий смысл. Предполагается, что студент x может приступить к выполнению проекта a только в этом случае, если K (x) ≥ P(α).
Успешное выполнение проекта a приводит к перевычислению вектора знаний K(x) студента x, решающего данное задание, по следующему правилу K(x):= max(N,K(x)).
Литература
- Илипов М.М. К вопросу о разработке адаптивной среды дистанционного обучения ASDT. Материалы международной научно-практической конференции «Алдамжаровские чтения», Костанай, 2008. - С. 45.
- Зайцева Л.В. Методы и модели адаптации к учащимся в системах компьютерного обучения //Educational Technology & Society. — 2003. - Vol . - С. 89.