nextupprevious

Next:Дополнительная литература
Up:Введение
Previous:Цели и содержание практикума
 


Рекомендации преподавателю и студенту

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


Каждое индивидуальное задание -- это самостоятельная, как правило, комбинаторная или логическая задача с краткой и четкой формулировкой, не содержащей описания алгоритма.

Предполагается, что студент, решая задачу, создает интерактивную (диалоговую) Zonnon программу для платформы .NET, которая за один запуск может обрабатывать не один входной набор, а последовательность входных наборов произвольной длины. Эти входные наборы либо заранее размещаются в специальных "входных" файлах программы, предъявляемых преподавателю вместе с разработанной программой, либо задаются пользователем программы в процессе ее исполнения. Таким образом, разработанная студентом программа после завершения обработки очередного входного набора в зависимости от указания пользователя может либо завершить свою работу (остановиться), либо продолжить ее и перейти к обработке следующего входного набора. В последнем случае программа вступает в диалог с пользователем, в процессе которого пользователь программы готовит и инициирует новый счет по программе. Для этого он либо вводит очередной входной набор с помощью клавиатуры и мышки, либо дает указание программе, из какого файла ей нужно взять необходимые данные.

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

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

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

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

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

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

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

Для удобства все индивидуальные задания разбиты на три группы: обычной сложности (их формулировки не имеют пометки), повышенной сложности (с пометкой $\uparrow$) и пониженной сложности (с пометкой $\downarrow$).

При оценке сложности задания рассматривались три показателя: сложность структур данных, сложность вычислений и изобретательность. В показатель "изобретательность" включались такие свойства задания, как непривычность для студента понятий, используемых в задании, сложность извлечения из определений тех свойств, на которых должен базироваться алгоритм решения задания, а также сложная связь между структурами данных и вычислениями. Каждый из указанных трех показателей задания оценивался в баллах 0,1 или 2. Пометку $\downarrow$ получили задания, набравшие в сумме по трем показателям всего 1 балл, а пометку $\uparrow$ -- задания, суммарный балл которых больше 3.

Next:Дополнительная литература
Up:Введение
Previous:Требования к выполнению задания


 © В.Н. Касьянов, Е.В. Касьянова, 2004