Понятие “алгоритм”, свойства и виды алгоритмов
Воспитание детей с самого рождения, в частности воспитание школьников, включает усвоение ими разного рода правил и их строгое выполнение. Режим дня ребёнка представляет собой систему предписаний о выполнении детьми и воспитателем действий в определенной последовательности. Обучая детей счету, измерению длин, сложению и вычитанию чисел, уборке комнаты, посадке растений и т. д., мы сообщаем им необходимые правила о том, что и в какой последовательности нужно делать для выполнения задания. Организовывая разнообразные игры, мы знакомим детей с их правилами [33].
С малых лет человек усваивает и исполняет в каждодневной жизни большое число алгоритмов, часто даже не зная, что это такое. Большинство действий, совершаемых человеком, выполняется по определённым правилам. Их эффективность во многом зависит от того, насколько он представляет, что делать в каждый момент времени, в какой последовательности, каким должен быть итог его действий, то есть насколько он представляет алгоритмическую сущность своих действий. Без предварительного составления алгоритмов человеку будет сложно пользоваться в производстве и в быту различными автоматами, компьютерами. Таким образом, составление человеком алгоритмов выполняемых действий становится частью его культуры мышления и поведения [29].
Слово алгоритм происходит от имени известного математика IX в. аль-Хорезми, что означает “из Хорезма”, впервые сформулировавшего правила выполнения арифметических действий над многозначными числами. Через труды аль-Хорезми в Европу проникли способы действий с числами в десятичной системе счисления, которые стали называть алгоритмами согласно латинской транскрипции имени ученого. В течение столетий значение слова “алгоритм” постепенно обобщалось, и сегодня под алгоритмом понимают некоторый общий метод или способ, предписание, инструкцию, свод правил для решения за конечное число шагов любой задачи из определенного вида однотипных задач, для которого предназначен этот метод.
Интуитивно под алгоритмом понимают общепонятное и точное предписание о том, какие действия и в каком порядке необходимо выполнить для решения любой задачи из данного вида однотипных задач. Это определение, разумеется, не является математическим определением в строгом смысле, так как в нем встречается много терминов, смысл которых хотя и интуитивно может быть ясен, но точно не определен (“предписание”, “общепонятное”, “точное”, “действие”). Однако оно представляет собой разъяснение того, что обычно вкладывается в интуитивное понятие алгоритма.
Семакин даёт такое определение: “Алгоритм – это последовательность команд, управляющая работой какого – либо объекта” [8].
Макарова Н.В. определяет так: “Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов” [9].
Угринович Н.Д. трактует так: “Алгоритм – конечная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, в форме понятных исполнителю команд” [35].
Алгоритм – одно из фундаментальных понятий, которое используется в различных областях знания, но изучается оно в математике и в информатике. Его освоение начинается уже в начальной школе на уроках математики, где ученики овладевают алгоритмами арифметических действий, знакомятся с правилами вычитания числа из суммы, суммы из числа и др.
Алгоритм – программа действий для решения задач определённого типа. Свойства алгоритмов:
1. Свойство определённости. Каждая программа, задающая алгоритм, должна состоять из конечного числа шагов, а каждый шаг должен быть точно и однозначно определён.
2. Свойство дискретности. Шаги в алгоритме должны идти в определённой последовательности.
3. Свойство понятности. Каждый шаг программы, задающий алгоритм, должен состоять из выполнимых действий.
4. Свойство результативности. Программа, задающая алгоритм, должна быть направлена на получение определённого результата.
5. Свойство массовости. Программа, задающая алгоритм, должна быть применима к любой задаче рассматриваемого типа [29, с 153].
Таким образом, алгоритм дает возможность чисто механически решать любую конкретную задачу из некоторого класса однотипных задач и предполагает наличие определённых свойств:
• алгоритм состоит из отдельных шагов;
• каждый шаг выполняет обработку входных данных (аргументов), получая выходные данные (результаты);
• результат каждого однозначно определяется аргументами;
• количество шагов конечно;
• шаги алгоритма выполняются последовательно, в порядке написания (естественный порядок выполнения);
• существуют способы изменения естественного порядка выполнения (управление конструкции).
С понятием алгоритма тесно связано понятие “данные”. В алгоритмическом аспекте данные – это информация, несущая полезную смысловую нагрузку, представленная в формализованном виде, позволяющем собирать, передавать, вводить и обрабатывать эту информацию с помощью заданных алгоритмов [22, с. 110].
Алгоритмы в зависимости от цели, начальных условий задачи, путей ее решения, определения действий исполнителя подразделяются следующим образом:
• Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические. Механический алгоритм задает определенные действия, обозначая их в единственной и достоверной последовательности, обеспечивая тем самым однозначный требуемый или искомый результат, если выполняются те условия процесса, задачи, для которых разработан алгоритм.
• Линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом.
• Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
• Циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов [8].
На всех этапах подготовки к алгоритмизации задачи широко используется структурное представление алгоритма.
Структурная (блок-, граф-) схема алгоритма – графическое изображение алгоритма в виде схемы связанных между собой с помощью стрелок (линий перехода) блоков – графических символов, каждый из которых соответствует одному шагу алгоритма. Внутри блока дается описание соответствующего действия (Приложение А).
Графическое изображение алгоритма широко используется перед программированием задачи вследствие его наглядности, т.к. зрительное восприятие обычно облегчает процесс написания программы, ее корректировки при возможных ошибках, осмысливание процесса обработки информации.
Современный информационный мир диктует свои правила, он требует от человека мыслить абстрактными категориями. Без сомнения, мышление ребёнка необходимо развивать как можно раньше, чтобы во взрослой жизни ему было проще справляться с постоянным потоком информации, определять для себя самое важное. Развитие интеллектуального потенциала ребёнка включает в себя и работу над алгоритмическим мышлением.
Достаточно широко в научной и методической литературе, посвященной проблемам обучения информатике школьников, используется понятие “алгоритмический стиль мышления”, который представляет собой специфический стиль мышления, предполагающий умение создать алгоритм, для чего необходимо наличие мыслительных схем, которые способствуют видению проблемы в целом, ее решению крупными блоками с последующей детализацией и осознанным закреплением процесса получения конечного результата в языковых формах [1].
Несомненно, алгоритмическое мышление составляет важную часть интеллектуальной деятельности человека с применением современных информационных технологий. Система мышления, определяемая как алгоритмическое мышление, определяется (в своей системности, но не в элементном составе) необходимыми и достаточными компонентами, которые позволяют выделить ее в особый стиль мышления. Компоненты алгоритмического стиля мышления:
1. Анализ требуемого результата и выбор на этой основе исходных данных для решения проблемы.
2. Выделение операций, необходимых для решения.
3. Выбор исполнителя, способного осуществлять эти операции.
4. Упорядочение операций и построение модели процесса решения.
5. Реализация процесса решения и соотнесение результатов с тем, что следовало получить.
6. Коррекция исходных данных или системы операций в случае несовпадения полученного результата с предполагаемым.
К специфическим свойствам алгоритмического стиля мышления отнесем:
• дискретность (пошаговость исполнителя алгоритма, конкретизация действий, структурирование процесса выполнения операций);
• абстрактность (возможность абстрагирования от конкретных исходных данных и переход к решению задачи в общем виде);
• осознанная закрепленность в языковых формах (умение представить алгоритм при помощи некоторого формализованного языка).
Следует отметить, что понятие “алгоритмический стиль мышления” сложилось в тот период времени, когда преобладала парадигма структурного программирования. Оно базируется на применении алгоритмической декомпозиции при решении задач [30].
Итак, алгоритм сам по себе является программой действий для решения задач определённого типа, имеет конечное число шагов, за которые, в конечном счете, будет выполнена задача. Шаги должны быть понятными исполнителю. Алгоритм имеет такие свойства, как определённость, дискретность, понятность, результативность и массовость. По видам различают: механические, гибкие, вероятностный, эвристический, линейный, разветвляющийся и циклический алгоритмы.
Алгоритмический стиль мышления, который представляет собой специфический стиль мышления, предполагающий умение создать алгоритм, для чего необходимо наличие мыслительных схем, которые способствуют видению проблемы в целом, ее решению крупными блоками с последующей детализацией и осознанным закреплением процесса получения конечного результата в языковых формах.
Алгоритмическое мышление составляет важную часть интеллектуальной деятельности человека с применением современных информационных технологий.