ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ ОБУЧЕНИЯ РАЗРАБОТКЕ АЛГОРИТМОВ
(*****@***ru)
ГБОУ ВО МО «Академия социального управления», г. Москва
Аннотация
Рассматриваются формы представления алгоритмов в процессе разработки программ. Предлагается использовать представление алгоритма в форме псевдокода и автоматизированную систему разработки алгоритмов и программ для повышения эффективности обучения и разработки алгоритмов и программ.
Изучению алгоритмики и программирования в курсе информатики всегда уделялось большое внимание. Тем не менее, в процессе разработки алгоритмов программ учащимися возникает ряд проблем, не позволяющих достичь должной эффективности данной разработки.
Под эффективностью разработки алгоритмов мы будем понимать высокую скорость разработки, простоту понимания записи алгоритма, обеспечение автоматического контроля правильности структуры алгоритма, освобождение человека от нетворческой работы (передачу выполнения нетворческих действий компьютеру), что позволит сделать процесс разработки алгоритма таким же интересным и увлекательным, как и само программирование. Главной оценкой эффективности, по идее, должна быть удовлетворенность разработчика от выполненной работы, но неизвестно каким образом ее измерить.
Сейчас большинство разработчиков программ пытаются избегать этапа непосредственной разработки алгоритма, считая, что программа уже и есть алгоритм, записанный на алгоритмическом языке программирования. Это можно частично объяснить тем, что разработка алгоритмов в форме схем алгоритмов, особенно в соответствии с ГОСТом [1], требует значительных затрат времени и сил даже при наличии специальных шаблонов для изображения схем алгоритмов, специализированных или универсальных программ, используемых для разработки схем алгоритмов, таких как например система ДРАКОН [2], MS Visio, yEd [3] и других. Иногда вместо схем алгоритмов применяются диаграммы деятельности UML (универсального языка моделирования) [4].
Алгоритмы можно записывать в различных вариантах графической или словесной форм. Графическая форма позволяет более наглядно отображать относительно простой алгоритм, но если схема занимает более одной страницы, то наглядность сразу теряется из-за переходов линий на другую страницу. Словесная форма представления алгоритма, например, в форме псевдокодов [5], делает отображение алгоритма более удобным для разработки методом пошаговой детализации и принципов структурного программирования. Она проще для записи в электронном виде и легко (по сравнению с графической) переводится в текст программы.
Для записи алгоритма в форме псевдокода предлагается использовать фиксированную форму (ключевые слова и конструкции) для отображения трех базовых конструкций, с использованием которых можно построить любой алгоритм [6]. Начало каждого нового предложения предлагается отмечать определенной комбинацией символов, например символами звездочки и пробела после нее. Такая комбинация практически не встречается в текстах алгоритмов и программ, поэтому ее появление обозначает начало нового предложения псевдокода, и если на новой строке продолжается предложение, не уместившееся на предыдущей строке, это сразу будет понятно. При увеличении уровня вложенности предложений псевдокода (операторов языка программирования) количество комбинаций «звездочка-пробел» увеличивается, что позволяет отслеживать уровни вложенности при переходах между страницами и автоматически контролировать структуру алгоритма.
Отказ от отображения алгоритма с помощью графических конструкций позволяет менее трудоемко отображать его на машинных носителях, например, с помощью текстового процессора. При этом проще реализовать структурный подход разработки алгоритмов и программ, метод нисходящего проектирования и пошаговой детализации. Предложения алгоритма, первоначально записанные в самом общем виде, можно детализировать, создав новый документ, в котором и детализировать предложение алгоритма, первоначально записанное в общем виде. Этот процесс прекращается тогда, когда каждое предложение детализированного алгоритма можно будет свести к «элементарным» действиям, для которых представление в форме языка программирования можно будет просто реализовать (присвоение арифметических, логических, символьных выражений, операции ввода/вывода). После этого алгоритм «собирается» в обратном порядке и мы получаем алгоритм, состоящий из «простых» предложений, которые можно записать в синтаксисе языка программирования.
Перевод такого алгоритма в программу выполняется достаточно просто, достаточно знать синтаксис языка программирования.
Формализация конструкций псевдокода, легкость перевода его в текст программы породили идею, во-первых, автоматизации разработки алгоритма, а, во-вторых, автоматического перевода этого алгоритма в текст программы. Данная система была реализована на базе текстового процессора Word с использованием макрокоманд. Для вызова соответствующей макрокоманды создана настраиваемая вкладка для ленты Word 2010 (более ранние версии Word не предоставляют такой возможности). При щелчке на значке команды настраиваемой вкладки в текст алгоритма вставляется соответствующий команде шаблон псевдокода.
Перед вызовом макрокоманды необходимо установить курсор в позицию, следующую за самой правой комбинацией «звездочка-пробел», чтобы система могла определить уровень вложенности вставляемого предложения. При вставке некоторых конструкций возможно появление «пустых» строк, состоящих из комбинаций «звездочка-пробел» и символа «точка с запятой», используемого в языке паскаль для разделения операторов. Их можно удалить, используя специальную макрокоманду для удаления всех таких строк из алгоритма. Этого можно и не делать – «пустые» строки автоматически будут удалены при преобразовании алгоритма в программу.
После создания алгоритма запускается команда автоматического преобразования его в программу на алгоритмическом языке паскаль. Все жестко определенные конструкции будут автоматически переведены на паскаль. Если выражения и процедуры ввода/вывода записаны в соответствии с синтаксисом языка паскаль, то мы получим готовую программу. Возможно, потребуется исправить некоторые ошибки перевода алгоритма в программу.
Описанная методика разработки алгоритмов и система автоматизации такой разработки могут использоваться при изучении алгоритмики и программирования в курсе информатики как на базовом, так и на профильном уровне; для разработки заданий при подготовке учителя к занятиям.
Литература
ГОСТ 19.701–90 (ИСО 5807–85) Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. – Издательство стандартов № 000 ИПК Издательство стандартов № 000 Визуальный язык ДРАКОН \ http:/// yEd Graph Editor \ http://www. /products/yed Рамбо Дж., UML: специальный справочник. - СПб.: Питер, 2002. -656 с. Хьюз, Дж. К., Мичтом, Дж. И. Структурный подход к программированию / Дж. К. Хьюз, Дж. И. Мичтом. — М. : Мир, 1980. – 276 с. Кащей среды автоматизированной разработки алгоритмов и программ в курсе информатики // Информатика и образование №6, 2016 с. 48-52

