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

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

CC BY
354
40
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЭЛЕКТРОННЫЙ ЗАДАЧНИК / ОБРАБОТКА ФАЙЛОВЫХ ДАННЫХ / FILE DATA PROCESSING / EDUCATIONAL SOFTWARE

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

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

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

We discuss some ways to improve efficiency of file data processing studies based on the application of the dedicated educational software. Then we describe tasks on file data processing which are included in the Programming Taskbook the electronic book of educational training tasks. We also provide examples of such tasks and discuss some advanced features of file usage in implementation of training tasks.

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

Абрамян Михаил Эдуардович УДК 004.42+37

ИСПОЛЬЗОВАНИЕ ЭЛЕКТРОННОГО ЗАДАЧНИКА ПРИ ВЫПОЛНЕНИИ ЗАДАНИЙ, СВЯЗАННЫХ С ОБРАБОТКОЙ ФАЙЛОВЫХ ДАННЫХ

Аннотация

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

Ключевые слова: электронный задачник, обработка файловых данных.

1. ОСОБЕННОСТИ ПРИМЕНЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ ОБУЧЕНИЯ ПРИ РЕШЕНИИ ЗАДАЧ НА ОБРАБОТКУ ФАЙЛОВ

Настоящая статья, как и ранее опубликованная работа [1], посвящена вопросам повышения эффективности проведения практических занятий по программированию путем применения специализированных электронных средств обучения. В [1] было отмечено, что при выполнении практических заданий по разделам курса программирования, связанным с обработкой сложных структур данных, студенты сталкиваются с рядом дополнительных проблем, обусловленных необходимостью подготовки представительного набора тестовых данных и передачи этих данных в программу. Кроме того, отдельной проблемой является проверка полученного решения, в ходе которой требуется сравнивать между собой полученные и «эталонные» (правильные) наборы данных. В случае динамических струк-

© Абрамян М.Э., 2014

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

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

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

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

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

Чтобы электронный задачник позволял повысить эффективность выполнения зада-

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

В существующих сетевых сервисах для автоматической проверки учебных программ (см., например, [3-4]) задачи на обработку файлов практически не представлены, что объясняется, прежде всего, характером подобных задач, ориентированным не на разработку сложных алгоритмов олимпи-адного уровня, а на овладение различными средствами работы с файлами, предусмотренными в том или ином языке программирования. Схема функционирования сетевых тестирующих сервисов допускает, в принципе, реализацию задач, связанных с файловой обработкой, поскольку наборы исходных и «правильных» результирующих данных хранятся на сервере именно в виде текстовых файлов. Однако подобная схема не позволяет использовать в качестве исходных или результирующих данных двоичные файлы. Кроме того, в сетевых тестирующих системах не предусматриваются средства визуализации исходных данных и полученных результатов, что существенно затрудняет поиск причины ошибки, допущенной в программе (даже при выявлении самого факта ошибки тестирующей системой).

Чтобы обеспечить полноценную поддержку процесса выполнения учебных заданий, целесообразно организовать встраивание электронного задачника непосредственно в среду программирования. Такой подход был использован при реализации универсального электронного задачника Programming Taskbook [2], предоставляющего все пере-

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

2. ГРУППЫ ЗАДАНИЙ, ПОСВЯЩЕННЫЕ ФАЙЛОВОЙ ОБРАБОТКЕ

В состав электронного задачника Programming Taskbook входят две группы заданий, посвященные обработке файловых данных: File (90 заданий на двоичные файлы) и Text (60 заданий на текстовые файлы). Кроме того, в группу Param, посвященную реализации подпрограмм (процедур и функций) для обработки сложных структур данных, входит подгруппа из 11 заданий на описание и использование подпрограмм для работы с файлами.

Задания группы File разбиты на 5 подгрупп (в скобках указано количество задач в каждой подгруппе):

- двоичные файлы: основные операции

(41);

- обработка нетипизированных двоичных файлов (6);

- работа с несколькими числовыми файлами; файлы-архивы (10);

- символьные и строковые файлы (16);

- использование файлов для работы с матрицами (17).

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

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

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

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

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

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

Задания группы Text разбиты на 4 подгруппы:

- текстовые файлы: основные операции (23);

- анализ и форматирование текста (16);

- текстовые файлы с числовой информацией (13);

- текстовые файлы: дополнительные задания (8).

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

Задачи в подгруппах располагаются по возрастанию уровня сложности. Каждая подгруппа включает ряд однотипных задач, которые удобно использовать при составлении вариантов индивидуальных заданий или при проведении контрольных работ.

3. ВАРИАНТЫ РЕАЛИЗАЦИИ ДЛЯ РАЗЛИЧНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ

Задачник Programming Taskbook может использоваться при выполнении заданий на разных языках программирования. В версии 4.11 задачника поддерживаются языки

Pascal, Visual Basic, C++, C#, Visual Basic .NET, Python, Java. Задачник интегрирован во многие среды программирования, среди которых можно выделить следующие:

- PascalABC.NET [5], Turbo Delphi 2006; Free Pascal Lazarus 1.0 (язык Pascal);

- Visual Studio 2003, 2005, 2008, 2010, 2012 (языки C++, C#, Visual Basic .NET);

- IDLE 2.5, 2.6, 2.7, 3.2 (язык Python),

- NetBeans 6.x и 7.x (язык Java).

Также он интегрирован в веб-среду программирования ProgrammingABC.NET WDE [6], в которой может использоваться для языков Pascal, C#, Visual Basic. NET и Python. Имеется расширение Programming Taskbook for 1C, позволяющее выполнять базовый набор заданий на встроенном языке системы Ю:Предприятие 8 в программной среде (Конфигураторе) этой системы [7].

Так как во всех приведенных выше языках имеются средства для работы с файлами, задания групп File и Text, описанные в предыдущем пункте, могут выполняться на любом языке и в любой среде программирования из числа поддерживаемых задачником. Единственным исключением является встроенный язык системы ^Предприятие, в котором отсутствует возможность работы с двоичными файлами прямого доступа. Поэтому расширение Programming Taskbook for 1C включает единственную группу заданий на файловую обработку (FilelC), содержащую только те из заданий групп File и Text, которые связаны с текстовыми и нети-пизированными файлами (всего 50 задач).

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

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

Для обеспечения возможности использования различных языков при выполнении заданий на обработку файлов необходимо учитывать особенности файловых форматов при генерации исходных файлов и проверке файлов, созданных или преобразованных программой студента. В случае с двоичными файлами с числовой информацией необходимо принимать во внимание порядок следования байт в числовых форматах: во всех перечисленных выше языках, кроме языка Java, используется формат little-endian (порядок байт от младшего к старшему), в то время как в языке Java по умолчанию в двоичных файлах используется формат big-endian (порядок от старшего к младшему). Поэтому при выполнении заданий на языке Java задачник выполняет дополнительное перекодирование исходных файлов из формата little-endian (принятого в задачнике по умолчанию в силу большей распространенности) в формат big-endian, а перед проверкой полученных файлов выполняется их обратная перекодировка.

Аналогичные проблемы возникают при работе с двоичными строковыми файлами. В современных вариантах языка Pascal (реализованных в средах Delphi, Lazarus и PascalABC.NET) для описания подобных файлов достаточно использовать тип file of ShortString, определяющий двоичный файл, состоящий из элементов-строк протяженностью 256 байт (реальный размер строк может изменяться в диапазоне от 0 до 255 символов; этот размер указывается в первом байте). Для прочих используемых языков аналоги типа ShortString отсутствуют, поэтому в этих языках элементами двоичных строковых файлов считаются строки протяженностью 80 байт. Например, в языке Visual Basic в качестве типа элементов строковых файлов используется String*80 (заметим также, что в этом языке отсутствует особый символьный тип, поэтому в качестве элемен-

тов символьных файлов надо использовать тип String*1). В языке C++ для операций ввода-вывода, связанных с двоичными строковыми файлами, надо использовать тип char[80] (и операции двоичного ввода/вывода read и write, определенные в классах ifstream и ofstream соответственно); при этом реальный размер строки определяется по позиции символа с кодом 0, указываемого после последнего символа строки. Аналогичные форматы используются и для других языков, поддерживаемых задачником (VB.NET, C#, Python, Java). При формировании исходных файлов и анализе файлов, полученных программой студента, задачник автоматически учитывает все перечисленные выше особенности строковых файлов для различных языков.

Еще одной важной характеристикой, относящейся к любым файлам с символьной информацией (двоичным символьным и строковым, а также текстовым) является кодировка символов. В задачах для любых языков предполагается, что вся символьная информация в файлах кодируется с применением 8-битной ANSI-кодировки, принятой по умолчанию в операционной системе Windows с русской локализацией («Windows Cyrillic», CP1251). При выполнении заданий на языках Pascal, Visual Basic, C++ и Python для настройки данной кодировки не требуется выполнять никаких дополнительных действий. Для языков платформы .NET (VB.NET и C#), а также Java при работе с файлами, имеющими кодировку, отличную от UTF-8, необходимо явным образом указывать требуемую кодировку при создании файловых объектов, в противном случае при файловом вводе-выводе русские буквы будут обрабатываться неверно.

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

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

4. ВИЗУАЛИЗАЦИЯ ФАЙЛОВЫХ ДАННЫХ И ДРУГИЕ ВОЗМОЖНОСТИ ЗАДАЧНИКА, СВЯЗАННЫЕ С ФАЙЛОВОЙ ОБРАБОТКОЙ

Как было отмечено в [1], одной из особенностей задачника, существенно ускоряющих процесс выполнения учебных заданий, является автоматизация действий по отображению данных на экране: все исходные данные, а также данные, найденные программой студента, автоматически форматируются и отображаются на предусмотренных для них позициях в соответствующем разделе окна задачника. При этом отображаются не только данные, непосредственно полученные от задачника или переданные задачнику с помощью специализированных операций ввода-вывода (определенных в задачнике для каждого языка программирова-

ния), но и «внешние» данные — исходные и результирующие динамические структуры, размещенные в памяти (см. [1]), и содержимое исходных и результирующих файлов. Элементы двоичных файлов перед выводом преобразуются к их текстовому представлению; в начале каждой экранной строки, содержащей файловые элементы, указывается порядковый номер первого элемента, выведенного на этой строке. В качестве примера на рис. 1 приводится окно задачника для языка С# при первом успешном тестовом запуске задачи File29, в которой требуется уменьшить размер исходного файла до 50 элементов, удалив необходимое количество его конечных элементов.

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

Рис. 1. Первый успешный запуск программы с решением задачи РПе29 (язык С#)

экране и, в случае правильного содержимого, выведет сообщение об успешном тестовом испытании.

Если требуемый файл отсутствует или содержит неверные данные, то будет выведено сообщение об ошибочном решении, причем в окне появится дополнительный раздел с примером правильных результатов. Эта возможность может оказаться очень полезной при анализе ошибочного решения. На рис. 2 приведено ошибочное решение задачи File11, в которой требуется на основе исходного файла вещественных чисел сформировать два новых файла, содержащих элементы исходного файла с нечетными и четными порядковыми номерами соответственно. Сравнивая содержимое полученных и «правильных» файлов, нетрудно заметить, что ошибка связана с тем, что не обрабатывается последний элемент исходного файла (который должен быть записан в первый из результирующих файлов).

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

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

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

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

Рис. 2. Ошибочное решение задачи File 11 (язык Pascal)

Рис. 3. Демонстрационный запуск задачи Textil (язык Pascal)

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

Insert или выполнить двойной щелчок мышью на одном из разделов с многоточием.

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

Рис. 4. Ошибочное решение задачи Textil, раздел результатов

в котором выполнена прокрутка к началу раздела результатов.

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

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

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

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

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

[ч Ргодгатпппд ТазкЬоик - Электронный задачник |ю программированию [Ра5са|] ЁШ1

1 АНАЛ И 3 И =Р 0 РМАТИРО ВАН И Е Т Е КСТА Результаты (Р2) Ц вет (РЗ) Режим ^4) 1

1 Задание: Тен134* Выполняет: Иванов Петр 1

Ошибочное решение. Выход (Его) |

Введено данных: 1 из 1 Пройдено тестов: 0 из 5 ■]

Р 1 Пример верного решения

+ ! 1 ' :}1ух почесал в затылке, совсем сбитый с толку. ' ■ <

3 1 - А сегодня правда твой день рождения? - спросил'

4 йн . '

6 П ' - Правда.'

□ 1 - Ох! Ну, поздравляя) тебя и нелав много-много'

9 1 счастья в этот день.' -П

10 ' '

11 1 - И я тебя поздравляю и вела» много-много счастья' —

12 1 в этот день, медвежонок Пух.'

13 В

Рис. 5. Ошибочное решение задачи Text11, раздел с примером правильного решения

мы (файлы, связанные с заданиями, распознаются по специальному расширению tst).

5. ПРИМЕНЕНИЕ ФАЙЛОВ ПРИ РАЗРАБОТКЕ ПРОВЕРОЧНЫХ ЗАДАНИЙ СПЕЦИАЛЬНОГО ВИДА

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

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

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

Следует заметить, что автоматическое перенаправление стандартного ввода-вывода традиционно используется в сетевых сер-

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

В качестве примера можно привести две специальные группы заданий, включенные в задачник Programming Taskbook и предназначенные для подготовки к сдаче ЕГЭ по информатике. Все эти задания соответствуют задачам ЕГЭ, связанным с разработкой алгоритма и его реализацией на каком-либо языке программирования. Группа ExamBegin содержит 100 заданий на освоение типовых алгоритмов, включенных в кодификатор ЕГЭ по информатике, группа ExamTaskC содержит 100 заданий повышенного уровня сложности, подобных задачам группы С. Задания можно выполнять на языках Pascal и C++, используя различные программные среды, поддерживаемые задачником, в том числе (для языка Pascal) - веб-среду ProgrammingABC.NET WDE. Подробное описание заданий, связанных с ЕГЭ, приведено в работе [8].

При разработке этих заданий был использован механизм, позволяющий оформлять ввод-вывод данных с применением стандартных средств используемого языка программирования: процедур Read-Write для языка Pascal и стандартных потоков ввода-вывода cin-cout для языка C++. Этот механизм состоит в перенаправлении стандартных потоков ввода-вывода, которые связываются со специальными файлами: в файл,

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

На рис. 6 приведено окно задачника при первом успешном тестовом испытании одного из заданий группы ExamBegin. Следует обратить внимание на то, что в разделах исходных данных и результатов отображается содержимое текстовых файлов, однако имена этих файлов вводить не требуется, поскольку сам задачник обеспечивает связывание файлов со стандартными потоками ввода-вывода. Для правильного решения задачи необходимо не только вывести требуемые данные, но и отформатировать их надлежащим образом (заметим, что в группах заданий, не связанных с ЕГЭ, это не требу-

ется, поскольку средства вывода электронного задачника выполняют форматирование автоматиче ски).

6. ПРИМЕНЕНИЕ ФАЙЛОВ В ЗАДАНИЯХ, СВЯЗАННЫХ С ОБРАБОТКОЙ СЛОЖНЫХ

НАБОРОВ ДАННЫХ. СРЕДСТВА КОНСТРУКТОРА УЧЕБНЫХ ЗАДАНИЙ ДЛЯ РАБОТЫ С ФАЙЛОВЫМИ ДАННЫМИ

Предусмотренные в задачнике возможности для работы с файлами оказываются полезными при разработке групп заданий, посвященных технологиям обработки сложных наборов данных. В качестве примера можно привести электронный задачник по технологии LINQ платформы .NET Programming Taskbook for LINQ [9], являющийся расширением базового варианта задачника Programming Taskbook.

Задачник Programming Taskbook for LINQ включает три группы заданий: LinqBegin (60 задач на освоение базовых

Рис. 6. Первый успешный запуск программы с решением задачи ExamBegin29 (язык Pascal)

запросов LINQ), LinqObj (100 задач, посвященных интерфейсу LINQ to Objects и предназначенных для закрепления навыков применения запросов LINQ) и LinqXml (90 задач, посвященных интерфейсу LINQ to XML и объектной модели документа XML -XML DOM). В заданиях групп LinqObj и LinqXml в качестве исходных данных используются последовательности записей сложной структуры или документы XML достаточно большого размера, которые представляются в виде текстовых файлов. Это делает доступными при выполнении заданий все средства задачника, связанные с визуализацией файловых данных. На рис. 7 приведено окно задачника для одного из заданий группы LinqXml в режиме сокращенного отображения содержимого файлов.

Задачник Programming Taskbook for LINQ был реализован с применением конструктора учебных заданий PT4TaskMaker, входящего в состав программного комплекса для преподавателя программирования Teacher Pack [10]. Версия конструктора, соответствующая версии задачника 4.11, позволяет разрабатывать новые группы учебных заданий на языках Pascal, С++ и C#, причем новые группы оформляются в виде

динамических библиотек ^П-файлов), что дает возможность использовать их для любых языков и сред программирования, поддерживаемых задачником.

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

Programming Taskbook - Электронный задачник по программированию [С#1 ИЕЗ

ПРЕОБРАЗОВАНИЕ ЯЩ1-ДОКУМЕНТА 3:ДС| г.|г: Línc^ml2f>°"" Демо-вапуск: Иванов Петр Цвет:(РЭ£ Режим (F4)

НоБые данные (Space) Предыдущее задание'(В£) Следующее задание (Enter] Выясщ (Esc)

Дан XML-документ . Для всех элементов документа удалить все их атрибуты, кроме первого. Указание. В предикате метода Where, отбирающем все атрибу1 кроме первого, использовать метод PreviousAttribute класса ты элемента, XAttribute.

Исходные данные 1: "<?хп1 version= "<root dl="S4" " <а а2="-1">" <d Ь2="35" Имя XML-документа: "w3ótb.tst" :" 1 . 0" encoding = "windows-1251"?>" Ъ2="5">" Ь3="3 8">" V

Пример верного решения 1: "<?xial ver sion= " 1 . 0 " encoding="windows-1251"?>" "<root dl = "94">" " <a a2="-l">" " <d b2="3S">" " <aa di = "-11 ">карикатура<!--definition--x/aa>"

Рис. 7. Демонстрационный запуск задачи LinqXml26 (язык C#)

Рассмотренные в настоящей статье компоненты электронного задачника более подробно описаны на сайте http://ptaskbook.com. Раздел сайта, посвященный конструктору

PT4TaskMaker, содержит описание средств конструктора, связанных с использованием в заданиях файловых данных.

Литература

1. Абрамян М. Э. Применение электронного задачника при проведении практикума по динамическим структурам данных // Компьютерные инструменты в образовании, 2013. № 3. С. 45-56.

2. Абрамян М. Э. Реализация универсального электронного задачника по программированию // Информатика и образование, 2009. № 6. С. 118-120.

3. Timus Online Judge - «Архив задач с проверяющей системой», Уральский федеральный университет. [Электронный ресурс] URL: http: //acm. timus. ru (дата обращения: 01.010.2013).

4. Школа программиста, Красноярск. [Электронный ресурс] URL: http://acmp.ru (дата обращения: 01.10.2013).

5. Система программирования PascalABC.NET. [Электронный ресурс] URL: http://pascalabc.net (дата обращения: 01.10.2013).

6. Веб-среда программирования ProgrammingABC.NET WDE. [Электронный ресурс] URL: http:// pascalabc.net/WDE/ (дата обращения: 01.10.2013).

7. Абрамян М. Э., Беренкеева М. Ю. Электронный задачник по программированию для системы 1С:Предприятие // Материалы научно-методической конференции «Современные информационные технологии в образовании: Южный федеральный округ» (15-16 апреля 2010 г.). Ростов-на-Дону, 2010. С. 20-21.

8. Абрамян М. Э. Использование специализированного программного обеспечения при подготовке к ЕГЭ по информатике // Информатика и образование, 2012. № 6. С. 91-93.

9. Абрамян М. Э. Электронный задачник по технологии LINQ: реализация и использование // Информатизация образования и науки, 2014. № 2 (22). С. 23-35.

10. Абрамян М. Э. Использование специализированного программного обеспечения для преподавателя при организации и проведении лабораторных занятий по программированию // Информатика и образование, 2011. № 5. С. 78-80.

THE APPLICATION OF THE ELECTRONIC TASKBOOK IN THE STUDY OF FILE DATA PROCESSING

Abstract

We discuss some ways to improve efficiency of file data processing studies based on the application of the dedicated educational software. Then we describe tasks on file data processing which are included in the Programming Taskbook - the electronic book of educational training tasks. We also provide examples of such tasks and discuss some advanced features of file usage in implementation of training tasks.

Keywords: educational software, file data processing.

Абрамян Михаил Эдуардович, кандидат физико-математических наук, доцент кафедры алгебры и дискретной математики Южного федерального университета,

таЬг@таsfedu. ги

(с) Наши авторы, 2014. Our authors, 2014.

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