ОБ ИСПОЛЬЗОВАНИИ ЗАДАЧНИКА PROGRAMMING TASKBOOK 4 ПРИ ИЗУЧЕНИИ ТЕМЫ «ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ» Абрамян М. Э. Южный Федеральный университет, факультет математики, механики и компьютерных наук mabr@math.rsu.ru
Доклад посвящен новым группам учебных заданий электронного задачника Programming Taskbook 4 [1], связанным с обработкой динамических структур. Подобные структуры изучаются в завершающем разделе базового курса программирования; при этом обычно рассматриваются односвязные линейные структуры (стек, очередь), двусвязные списки и бинарные деревья. В языках Паскаль и C++, традиционно используемых при начальном обучении программированию, для хранения и обработки динамических структур применяются цепочки записей, размещенные в динамической памяти, и связанные с ними указатели. Выполняя практические задания на обработку динамических структур, учащиеся сталкиваются с дополнительными трудностями при формировании исходных данных и выводе результатов. Действительно, для того чтобы обработать динамическую структуру, необходимо прежде всего сформировать ее в памяти, а эта задача является достаточно сложной. Не менее сложно также обеспечить визуализацию динамической структуры с целью проверки ее правильности. Автоматизация этих этапов выполнения заданий позволила бы учащимся сосредоточить усилия на разработке алгоритма решения задачи и ускорила бы тестирование разработанного алгоритма. В версии 4.7 задачника Programming Taskbook реализована подобная автоматизация для всех перечисленных выше динамических структур.
Задачник содержит две группы заданий [2], связанных с динамическими структурами. Первая группа (Dynamic) посвящена линейным структурам и содержит 80 заданий. Задания разбиты на подгруппы, в каждой из которых рассматривается конкретная динамическая структура: стек, очередь, двусвязный список. Задания в подгруппах располагаются по возрастанию уровня сложности: от простейших, связанных с просмотром структуры и добавлением или удалением ее элементов, до достаточно трудных (на перегруппировку элементов, объединение или разбиение структур).
Вторая группа (Tree) посвящена бинарным деревьям и содержит 100 заданий. Каждая из ее подгрупп освещает какой-либо аспект обработки деревьев: анализ содержимого дерева, формирование дерева с заданной структурой, преобразование имеющегося дерева, особенности работы с деревьями с обратной связью, деревьями поиска, деревьями разбора выражений и деревьями общего вида.
При разработке заданий групп Dynamic и Tree особые усилия были направлены на обеспечение наглядного отображения содержимого динамических структур. В качестве примера приведем изображение исходного бинарного дерева поиска (текст P1 означает, что с корнем дерева связан указатель, также входящий в набор исходных данных):
Аналогичным образом отображаются в окне задачника и результирующие структуры, созданные учащимися; при этом дополнительно отмечаются ошибки в созданных структурах.
Исходные динамические структуры, как и данные других типов, генерируются задачником с применением датчика случайных чисел, что обеспечивает разнообразие исходных данных при тестировании предложенного решения.
Поскольку версия 4.7 задачника Programming Taskbook позволяет использовать языки платформы .NET (C# и Visual Basic .NET), в которых вместо указателей применяются ссылки на объекты, потребовалось соответствующим образом изменить формулировки заданий групп Dynamic и Tree для этих языков. При выполнении заданий данных групп на одном из языков платформы .NET необходимо пользоваться объектами специального класса Node, определенного в задачнике и предназначенного для хранения информации об элементах динамической структуры.
Подробные сведения о задачнике Programming Taskbook 4 содержатся на его веб-сайте http://ptaskbook.com.
Литература
1. Абрамян М. Э. Programming Taskbook 4 — электронный задачник по программированию на языках Pascal, C, Visual Basic // Научно-методическая конференция «Современные информационные технологии в образовании: Южный Федеральный округ». — Ростов н/Д., 13–14 мая 2004 г. Тезисы докладов. — С. 23–26.
2. Абрамян М. Э. Практикум по программированию на языке Паскаль: Массивы, строки, файлы, рекурсия, линейные динамические структуры, бинарные деревья. — Ростов н/Д.: «ЦВВР», 2008. — 227 с.
|