Введение В настоящее время практически все вузы оснащены компьютерами, имеют свои локальные сети, доступ к сети Internet, что позволяет перейти от традиционных методов обучения и оценки полученных знаний к новым обучающим технологиям. Можно выделить пять этапов в эволюции развития контроля знаний, которые отражают формы организации контрольных заданий и роль преподавателя в этом процессе:
Традиционный контроль знаний. Для оценки знаний студентов в учебном процессе традиционно используются такие формы контроля знаний, как: контрольная работа, коллоквиум, лабораторная работа, курсовая работа, курсовой проект, реферат, домашнее задание, собеседование, тестирование, зачет, экзамен, дипломная работа. Преподаватель подготавливает варианты заданий, проверяет и оценивает результаты работы студентов.
Контроль знаний с использованием бумажных (не компьютерных) средств. При данном подходе для контроля используются заранее подготовленные бланки, содержащие контрольные задания (тесты). Студенты заполняют выданные бланки, решая задания и отвечая на вопросы. Преподаватель проверяет работы, используя специальные трафареты и таблицы ответов.
Контроль знаний с использованием технических устройств. При данном подходе выделяют два способа организации контроля:
- студент, получив от преподавателя индивидуальный набор заданий, выполняет его и вводит в устройство номер своего варианта и результат решения каждого задания, а устройство проверяет введенные ответы, рассчитывает и выводит оценку за работу;
- устройство используется как для ввода заданий, для проверки корректности введенных ответов, так и для вывода результатов контроля и/или оценки.
Компьютерный контроль знаний. Организация контроля в данном случае направлена, во-первых, на то, чтобы облегчить работу преподавателя, освободив его от рутины проверки письменных работ (он может посвятить больше времени индивидуальным занятиям со студентами) и, во-вторых, на повышение объективности проводимой проверки и оценки знаний. Контроль знаний обеспечивают специальные компьютерные программы, в которых осуществляется: формирование индивидуального набора контрольных заданий каждому обучаемому; вывод заданий на экран; анализ ответов обучаемого; выставление оценки; хранение результатов контроля и данных о работе студента с обучающей программой, которые могут быть впоследствии использованы преподавателем и др.
Удаленный контроль знаний. Данный подход является одной из форм компьютерного контроля знаний, появление которой связано с широким использованием в учебном процессе возможностей сети Internet. Отличительными чертами удаленного контроля знаний является применение современных технических средств связи и передачи информации между обучаемым и преподавателем, а также свобода выбора обучаемым темпов обучения, времени и места обучения.
По сравнению с традиционными формами КЗ, компьютерный контроль знаний, умений и навыков имеет ряд преимуществ: использование новейших методик проверки и оценки знаний студентов, современных информационных технологий, возможная адаптация к индивидуальным характеристикам студентов. Однако применение компьютерных технологий в учебном процессе требует более четкого и однозначного определения целей контроля, отбора методического материала для оценки знаний и умений студентов, с учетом цели проводимой проверки, а также разработки модели (ей) контроля и оценки знаний. В рамках данного проекта была реализована система компьютерного контроля знаний.
АНАЛИз предметной области Динамическое программирование
Динамическое программирование в математике и теории вычислительных систем — метод решения задач с оптимальной подструктурой и перекрывающимися подзадачами, который намного эффективнее, чем полный перебор.
Оптимальная подструктура в динамическом программировании означает, что оптимальное решение подзадач меньшего размера может быть использовано для решения исходной задачи. В общем случае мы можем решить задачу, в которой присутствует оптимальная подструктура, проделывая следующие три шага.
Разбиение задачи на подзадачи меньшего размера.
Нахождение оптимального решения подзадач рекурсивно, проделывая такой же трехшаговый алгоритм.
Использование полученного решения подзадач для конструирования решения исходной задачи.
Подзадачи решаются делением их на подзадачи ещё меньшего размера и т. д., пока не приходят к тривиальному случаю задачи, решаемой за константное время (ответ можно сказать сразу).
Перекрывающиеся подзадачи в динамическом программировании означают подзадачи, которые используются для решения некоторого количества задач (не одной) большего размера (то есть мы несколько раз проделываем одно и то же). Получается следующее: простой рекурсивный подход будет расходовать время на вычисление решение для задач, которые он уже решал.
Чтобы избежать такого хода событий необходимо сохранять решения подзадач, которые мы уже решали, и когда нам снова потребуется решение подзадачи, мы вместо того, чтобы вычислять его заново, просто достанем его из памяти. Этот подход называется кэширование. Можно проделывать и дальнейшие оптимизации — например, если мы точно уверены, что решение подзадачи нам больше не потребуется, можно выкинуть его из памяти, освободив её для других нужд, или если процессор простаивает и мы знаем, что решение некоторых, ещё не посчитанных подзадач, нам понадобится в дальнейшем, мы можем решить их заранее.
Таким образом, динамическое программирование пользуется следующими свойствами задачи:
перекрывающиеся подзадачи;
оптимальная подструктура;
возможность запоминания решения часто встречающихся подзадач.
Динамическое программирование обычно придерживается двух подходов к решению задач:
нисходящее динамическое программирование: задача разбивается на подзадачи меньшего размера, они решаются и затем комбинируются для решения исходной задачи. Используется запоминание для решений часто встречающихся подзадач.
восходящее динамическое программирование: все подзадачи, которые впоследствии понадобятся для решения исходной задачи просчитываются заранее и затем используются для построения решения исходной задачи. Этот способ лучше нисходящего программирования в смысле размера необходимого стека и количества вызова функций, но иногда бывает нелегко заранее выяснить, решение каких подзадач нам потребуется в дальнейшем.
Обычное динамическое программирование является частным случаем несериального динамического программирования, когда граф взаимосвязей переменных — просто путь. НСДП, являясь естественным и общим методом для учета структуры задачи оптимизации, рассматривает множество ограничений и/или целевую функцию как рекурсивно вычислимую функцию. Это позволяет находить решение поэтапно, на каждом из этапов используя информацию, полученную на предыдущих этапах, причём эффективность этого алгоритма прямо зависит от структуры графа взаимосвязей переменных. Если этот граф достаточно разрежен, то объём вычислений на каждом этапе может сохраняться в разумных пределах.
|