Научная статья на тему 'Новые возможности задачника Programming Taskbook, связанные с подготовкой к ЕГЭ по информатике'

Новые возможности задачника Programming Taskbook, связанные с подготовкой к ЕГЭ по информатике Текст научной статьи по специальности «Компьютерные и информационные науки»

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

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

В работе описываются трудности, возникающие при изучении задач ЕГЭ на разработку программ, и один из подходов к их решению, связанный с применением электронного задачника Programming Taskbook.

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

Текст научной работы на тему «Новые возможности задачника Programming Taskbook, связанные с подготовкой к ЕГЭ по информатике»

Новые возможности задачника Programming Taskbook, связанные с подготовкой к ЕГЭ по информатике

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

mabr@math. sfedu. ru

В работе описываются трудности, возникающие при изучении задач ЕГЭ на разработку программ, и один из подходов к их решению, связанный с применением электронного задачника Programming Taskbook.

1. Задачи ЕГЭ на разработку программ и связанные с ними проблемы

Значительную часть задач, входящих в ЕГЭ по информатике и ИКТ, составляют задачи, связанные с программированием. Среди них особое место занимают задачи на разработку программ. Это наиболее сложные задачи ЕГЭ; не случайно они входят в группу С (и именно за них начисляется наибольшее количество баллов) — см. [1]. Овладеть техникой решения подобных задач невозможно без практических занятий на компьютере, в ходе которых программы, разработанные учащимися, компилируются и запускаются на выполнение. Только на таких занятиях учащиеся могут получить полноценную «обратную связь» с компьютером, без которой любые написанные ими программы останутся обычным текстом, изобилующим синтаксическими и алгоритмическими ошибками. Лишь наличие опыта разработки программ на компьютере дает некоторую гарантию того, что программа, разработанная «на бумаге» в ходе ЕГЭ, не будет содержать подобных ошибок.

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

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

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

Автор настоящей работы в течение 10 лет разрабатывает электронный задачник по программированию Programming Taskbook [2-4], удовлетворяющий приведенным требованиям. Данный программный комплекс содержит более тысячи учебных заданий по различным разделам базового курса программирования, однако до недавнего времени в него не входили задания, специально предназначенные для подготовки к ЕГЭ по информатике.

Осенью 2011 г. была выпущена версия 4.10 задачника с двумя новыми группами заданий, связанными с ЕГЭ. Группа «ExamBegin» содержит задания на освоение базовых алгоритмов, группа «ExamTaskC» содержит типовые задания повышенного уровня сложности. Каждая группа состоит из 100 учебных заданий; 20 заданий каждой группы доступны для выполнения в свободно распространяемом мини-варианте задачника. Задания групп «Exam» можно выполнять на языках Pascal и С++, используя различные программные среды, поддерживаемые задачником, в том числе Free Pascal Lazarus и PascalABC.NET для языка Pascal и Microsoft Visual Studio .NET 2005, 2008, 2010 для языка C++. Кроме того, все задания доступны для выполнения в веб-среде разработки PascalABC.NET WDE (http://pascalabc.net/wde/).

2. Состав групп «ExamBegin» и «ExamTaskC»

Темы задач группы «ExamBegin» и их порядок соответствует списку типовых алгоритмов, приведенному в кодификаторе ЕГЭ по информатике и ИКТ [5]. Задачи разбиты на следующие подгруппы:

• Условные операторы и циклы — 17 задач

• Формирование массивов — 12 задач

• Анализ одномерных массивов — 15 задач

• Минимумы и максимумы — 14 задач

• Анализ двумерных массивов — 10 задач

• Преобразование массивов — 16 задач

• Обработка текстовых данных — 16 задач

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

Подгруппы 2-6 связаны с обработкой массивов. Подгруппа 2 содержит задачи на заполнение одномерных и двумерных массивов по заданным правилам (пример задания из этой подгруппы приведен далее в

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

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

В группу «ЕхатТакС» включены задачи повышенного уровня сложности, подобные задачам С4 ЕГЭ по информатике [1]. Основная часть задач посвящена обработке сложных наборов данных (записей) с элементами-полями различных типов. В подобных задачах требуется правильно выбрать способ хранения данных и организовать их эффективную обработку; при этом обычно требуется применить несколько базовых алгоритмов, например, алгоритм суммирования или нахождения минимума/максимума и алгоритм поиска нужного элемента или сортировки набора данных по требуемому ключу. Задачи разбиты на серии; каждая серия имеет общую предметную область и характеризуется рядом особенностей наборов данных и алгоритмов их обработки. Имеется 6 серий:

1. «Клиенты фитнес-центра» (наборы содержат только числовые данные) — 24 задачи;

2. «Абитуриенты» (в наборах имеются строковые поля, которые не требуется обрабатывать) — 12 задач;

3. «Задолжники по коммунальным платежам» (наборы содержат строковые и числовые вещественные поля) — 12 задач;

4. «АЗС» (наборы содержат числовые и строковые поля из фиксированного множества значений) — 12 задач;

5. «Баллы ЕГЭ» (наборы имеют группу однотипных полей) — 12 задач;

6. «Оценки по предметам» (особо сложные задания, в которых требуется выполнять группировку по нескольким полям) — 10 задач.

Примеры задач из серий «Абитуриенты» и «АЗС» приведены в п. 4.

Хотя все задачи группы «ExamTaskC» имеют повышенную сложность, их «относительный» уровень различается: он повышается от серии к серии; кроме того, начальные задачи в каждой серии сравнительно проще, а заключительные — сложнее. В каждой серии имеются однотипные задачи, которые можно использовать при проверке усвоения материала или при составлении вариантов индивидуальных заданий.

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

3. Особенности выполнения заданий групп «Exam»

Особенность групп «Exam» состоит в том, что при их выполнении не требуется использовать специальные средства ввода-вывода, входящие в задачник. Для того чтобы максимально приблизить вид программы, выполняющей задание, к виду, требуемому на экзамене, в задачнике реализован специальный механизм, позволяющий оформлять ввод-вывод данных с применением стандартных средств используемого языка программирования: процедур Read/Readln-Write/Writeln для языка Pascal и стандартных потоков ввода-вывода cin-cout для языка C++.

Данный механизм состоит в следующем. Исходные наборы данных формируются задачником в виде текстового файла, который автоматически связывается со стандартным потоком ввода; кроме того, задачник обеспечивает перенаправление стандартного потока вывода в другой текстовый файл, содержимое которого затем сравнивается с контрольным набором результирующих данных. «Подмена» потоков ввода-вывода выполняется при инициализирующих действиях модуля PT4Exam, который должен подключаться к любой программе, выполняющей задание из группы «ExamBegin» или «ExamTaskC».

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

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

позволяет приблизить его к реальному процессу отладки программы, не использующему «подсказки» задачника.

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

Следует отметить, что перечисленные особенности могут быть реализованы и для других групп заданий. Для создания новых групп заданий (и перекомпоновки имеющихся заданий) предназначен конструктор учебных заданий PT4TaskMaker, входящий в состав программного комплекса для преподавателя программирования Teacher Pack [4]. Начиная с версии 4.10, с его помощью можно разрабатывать группы заданий, имеющие те же особенности, что и базовые группы «Ex-amBegin» и «ExamTaskC». Процесс разработки таких групп подробно описан на сайте задачника http://ptaskbook.com/ в разделе «Teacher Pack».

4. Примеры учебных заданий

Приведем формулировки нескольких заданий из групп «Exam».

ExamBegin28. На вход в первой строке подаются два целых положительных числа M и N, во второй строке — вещественное число D, а в третьей строке — набор из M вещественных чисел. Сформировать и вывести двумерный вещественный массив размера M х N, у которого первый столбец совпадает с исходным набором чисел, а элементы каждого следующего столбца равны сумме соответствующего элемента предыдущего столбца и числа D (в результате каждая строка массива будет содержать элементы арифметической прогрессии). Каждую строку элементов массива выводить на новой экранной строке, для каждого числа отводить 7 экранных позиций. Можно считать, что M и N не превосходят 10.

Для ознакомления с заданием достаточно запустить в одной из программных сред, поддерживаемых задачником (для языка Pascal это Turbo Delphi, Free Pascal Lazarus и PascalABC.NET), следующую простую программу-заготовку :

uses PT4Exam;

begin

Task('ExamBegin2 8');

end.

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

Programming Taskbook - Электронный задачник no программированию [P

ФОРМИРОВАНИЕ МАССИВОВ Задание: ExamBegiri28°

ib Петр

JLl*J

Дата, время: 16/0914:41

1: На вход в первой строке подаются два целых положительных числа м и N

во второй строке — вещественное число Б, а в третьей строке — набор из М вещественных чисел. Сформировать и вывести двумерный вещественный массив _1Ы размера М х И, у которого первый столбец совпадает с исходным набором чисел, а элементы каждого следующего столбца равны сумме соответствующего элемента

.■Jil

1: 9 9'

-8.40'

25.42 83 62 46 85 25.10 76 .02 24 53 41. 52 61.01 10 .37'

1: 25 42 17 02 8 .62 0. 22 -8 18 -16 .58 -24 38 -33. 38 -41 78'

83. 62 75 22 66 .82 58. 42 50 02 41 .62 33 22 24. 82 16 42'

46. 85 38 45 30 -05: 21. 65 13 25 4 85 -3 55 -11. 95 -20 35'

25. 10 16 70 8 .30 -0 10 -8 50 -16 90 -25 30 -33. 70 -42 10'

78. 02 69 62 61 .22 52. 82 44 42 36 .02 27 62 19 22 10 82'

' *~\Пример верного решения XПолученные результаты (

[Qil+Tab) Выход (Esc)

Рис. 1. Окно задачника для задания ExamBegin28

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

uses PT4Exam; var

m, n, i, j:

integer; d: real;

a: array [1..10, 1.. begin

Task('ExamBegin2 8'); Readln(m, n, d); for i := 1 to m do

Read (a[i, 1]); for j := 2 to n do for i := 1 to m do a[i,

10] of real;

j] := a[i, 1 to m do

j

:= 1

to n do

j]:7:2)

- 1] + d;

for i := begin for j

Write(a[i, Writeln; end; end.

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

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

Следующие два задания взяты из группы «ExamTaskC».

ExamTaskC25. На вход подаются сведения об абитуриентах. В первой строке указывается количество абитуриентов Ы, каждая из последующих N строк имеет формат <Номер школы> <Год поступления> <Фамилия>. Номер школы содержит не более двух цифр, годы лежат в диапазоне от 1990 до 2010. Для каждого года, присутствующего в исходных данных, вывести общее число абитуриентов, поступивших в этом году (вначале выводить год, затем число абитуриентов). Сведения о каждом годе выводить на новой строке и упорядочивать по возрастанию номера года.

ExamTaskC53. На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС). В первой строке содержится значение М одной из марок бензина, во второй строке указывается целое число Ы, а каждая из последующих N строк имеет формат <Марка бензина> <Улица> <Компания> <Цена 1 литра (в копейках)>. Имеется не более 20 различных компаний и не более 30 различных улиц; названия компаний и улиц не содержат пробелов. В качестве марки бензина указываются числа 92, 95 или 98. Цена задается целым числом в диапазоне от 2000 до 3000. Каждая компания имеет не более одной АЗС на каждой улице; цены на разных АЗС одной и той же компании могут различаться. Для каждой улицы, на которой имеются АЗС с бензином марки М, определить максимальную цену бензина этой марки (вначале выводить максимальную цену, затем название улицы). Сведения о каждой улице выводить на новой строке и упорядочивать по возрастанию максимальной цены, а для одинаковой цены — по названиям улиц в алфавитном порядке. Если ни одной АЗС с бензином марки М не найдено, то вывести текст «Нет».

Вид окна задачника при запуске программы-заготовки для задания ExamTaskC53 приведен на рис. 2.

ЕГЗ ПО ИНФОРМАТИКЕ: ЗАДАЧИ ПОВЫШЕННОЙ СЛОЖНОСТИ Задание: ЕхатТазкСйЗ' Выполняет: Иванов Петр Дата, время: 16/09 15:43

На вход подаются сведения о ценах на бензин на автозаправочных станциях (АЗС), В первой строке содержится значение М одной из марок бензина, во второй строке указывается целое число И, а каждая из последующих N строк имеет формат <Марка бензина> <Улица> <Компания> сцена 1 литра {в копейках)> Имеется не более 20 различных компаний и не более 30 различных улиц;

1: '92' '59' '92 ул.Авиаторов Нефть-плюс 2030т '98 ул.Репина Оптиыа 2600' '92 ул.Авиаторов Ойл-вест 2240'

1: '2150 ул.Репина' '2150 ул.Фабричная' '2210 ул.Достоевского' '2210 ул.Крепостная' '2210 ул.Почтовая'

< + >' "Дпример верного решения /Полученные результаты / [СЫ+ТаЬ)

Ознакомительный запуск. |

Рис. 2. Окно задачника для задания ExamTaskC53

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

Дополнительная информация о задачнике Programming Taskbook содержится на его сайте http://ptaskbook.com/. Литература

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

1. Демонстрационный вариант контрольных измерительных материалов единого государственного экзамена 2012 года по информатике и ИКТ. Проект. URL: http://www1.ege.edu.ru (дата обращения: 20.10.2011).

2. Абрамян М. Э. Электронный задачник Programming Taskbook: опыт разработки и применения / II Международная научно-практическая конференция «Современные информационные технологии и ИТ-образование». Сборник докладов. — М.: МАКС Пресс, 2006. — С. 194-199.

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

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

5. Кодификатор элементов содержания и требований к уровню подготовки выпускников общеобразовательных учреждений для проведения в 2012 году единого государственного экзамена по информатике и ИКТ. Проект. URL: http://www1 .ege.edu.ru (дата обращения: 20.10.2011).

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