икерова юдмила иколаевна
доцент кафедрыинформатики и методики преподавания математики Воронежского государственного педагогического

университета
Начало алгоритмизации

Конспект лекций по методике преподавания информатики, читаемых Микеровой Л.Н.

Информация готовится к публикации

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

Понятие алгоритма


    Прежде чем дать определение алгоритма, необходимо сказать ученикам о месте алгоритмов в жизни людей. Привести примеры алгоритмов, не называя их алгоритмами, например,что все люди с детства привыкли следовать тем или иным правилам, выполнять разнообразные инструкции и указания. Затем необходимо привести такие примеры, на которых ученики смогут понять, что же такое алгоритм, а затем дать непосредственно определение алгоритма. Хотя до сих пор, как известно, точного определения алгоритма нет.
    Если данную тему изучают в 6-8 классах (хотя старшеклассники любят сказки не меньше младших), то примеры алгоритмов желательно было бы привести из жизни, истории или литературы, например, правила перехода через дорогу, инструкции по работе с магнитофоном, микроволновой печью, стиральной машиной, указания родителей и учителей и т.д.
Для учеников физико-математических классов примерами алгоритмов могут служить уже знакомые им математические алгоритмы, такие как правила сложения дробных чисел, решения квадратных уравнений и т. д. Надо подчеркнуть, что обычно любые инструкции и правила представляют собой проследовательность действий, которые необходимо выполнить в определённом порядке и дать определение алгоритма.
Алгоритм - это точное предписание, определяющее последовательность действий, обеспечивающее получение требуемого результата из исходных данных.
Важно заметить, что в любом классе, независимо от возраста и специализации, желательно в начале изучения тем все примеры приводить из жизни. Это связано как с отношением многих учеников к математике, так и с восприятием информации вообще. В дальнейшем мы рассмотрим вопросы, связанные с восприятием информации. После того, как было дано определение алгоритма, следует закрепить его на конкретных примерах, желательно, также взятых из жизни. Важно в самом начале не усложнять понимание алгоритмизации строгими правилами записи алгоритма. Достаточно будет писать алгоритмы в привычном для учеников виде.
Например, алгоритм заварки чая может выглядеть следующим образом:
Проверка наличия заварки, воды, ёмкости для кипячения чая, ёмкости для заваривания чая, мерную ложечку, нагревательный прибор.
Налить в ёмкость для кипячения воды, воды объёмом 3/4 ёмкости.
C помощью нагревательного прибора довести воду до кипения.
В ёмкость для заваривания чая мерной ложкой насыпать заварку в необходимых пропорциях (2 ч. л. на стакан воды)
Залить кипяток в ёмкость для заваривания чая в выбранных пропорциях.

Параллельно с введением понятия алгоритма можно привести учащимся краткую историческую справку возникновения этого понятия
Слово алгоритм произошло от algorithm - латинского написания слова аль - Хорезми, под которым в средневековой Европе знали величайшего математика из Хорезма (город в современном Узбекистане) Мухамеда бен Мусу, жившего в 783-850 гг. в своей книге "Об индийском счете" он изложил правила записи натуральных чисел с помощью арабских цифр и правила действия над ними "столбиком", знакомые теперь каждому школьнику. В XII веке эта книга была переведена на латынь и получила широкое распространение в Европе.

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

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


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

Однако вашему родственнику, приехавшему в первый раз из другого города, придётся подробно объяснить, как пройти в булочную. Для него алгоритм будет состоять из совсем иных действий и запишется намного длиннее. Не исключено, что вам придётся предусмотреть отсутствие хлеба в ближайшей булочной и указать в алгоритме, что делать в этом случае. Те действия, которые может совершить исполнитель, называются его допустимыми действиями. Важно отметить, что алгоритм должен содержать только те действия, которые допустимы для исполнителя, которому предназначается данный алгоритм, а затем привести пример. Человек (без скафандра) не способен выполнить алгоритм:

Войти в реку.
Пройти по дну до противоположного берега.
Выйти на противоположный берег, если на протяжении хотя бы 500 метров глубина реки больше 3 метров.

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

I. Дискретность
Важно заострить внимание учеников на том, что при введении понятия "алгоритм" было употреблено слово " называют", это введение нельзя считать строгим определением - не вполне ясно, что такое точное предписание или, скажем, последовательность действий, обеспечивающая получение требуемого результата. Поэтому обычно формируют несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других конструкций. Одним из таких свойств является дискретность. Слово дискретность следует ученикам объяснить подробнее, т.к. они возможно с ним ещё не встречались. Под дискретностью понимается то, что алгоритм состоит из описания последовательности шагов обработки, организованный таким образом, что в начальный момент задаётся исходная ситуация, а после каждого следующего шага ситуация преобразуется на основе данных, полученные в предшествующие шаги обработки. Дискретность алгоритма означает, что он исполняется по шагам: каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.
Но здесь важно заметить, что увлекаться детелизацией алгоритма, разбиением его на все более и более мелкие шаги не стоит. В этом случае можно привести пример из области так нелюбимой многими учениками математики. Пусть нам необходимо вычислить значение выражения, где встречается возведение в степень какого-либо числа. Для исполнителя, знакомого с этой операцией (например 10-классник) никаких комментариев к такой команде не будет, и она является отденьной директивой алгоритма. Пусть исполнитель (пятиклассник) не умеет возводить в степень числа. В этом случае мы должны эту команду разбить на более мелкие и выразить степень через умножение. А если наш исполнитель не умеет умножать (первоклассник)? Тогда возведение в степень необходимо расписать через сложение. Теперь представьте ситуацию, что последний алгоритм (через сложение) выполняет первый исполнитель (десятиклассник). Алгоритм, конечно, будет выполнен, но с какими затратами!

II. Определённость
Другое свойство принято называть определённостью. Оно означает, что на каждом шаге однозначно определено преобразование объектов среды исполнителя, полученных на предшествующих шагах алгоритма. К примеру, в одном из кулинарных рецептов сказано:
Слегка потрясите, чтобы смесь стала комковатой. Подогрейте коньяк в маленькой кастрюльке и влейте её в смесь.
Перед учениками можно поставить вопрос: сможет ли формальный исполнитель выполнить данный алгоритм? Ведь формальному исполнителю здесь неясно, требуется ли трясти смесь, пока она вся не станет комом, и какой всё-таки величины кастрюля. Большая или маленькая? И до какой температуры надо подогреть коньяк. Так что такой алгоритм любому исполнителю выполнить довольно трудно, практически невозможно. Нужно сказать, что в алгоритме не должны присутствовать не определённые слова: немного, чуть-чуть, слегка и т. д. В качестве примеров неопределенных понятий можно привести «солить по-вкусу», «довести до готовности».

III. Результативность
Третье свойство, которое надо дать ученикам - результативность алгоритма. Это свойство подразумевает, что каждый шаг (и алгоритм в целом) после своего завершения даёт среду, в которой все имеющиеся объекты однозначно определены. Если это по каким-либо причинам невозможно, то алгоритм должен сообщать, что решение задачи не существует. Здесь к месту будет поговорка «Отсутствие результата – тоже результат». Для облегчения восприятия этого свойства ученикам можно привести подобный пример: в инструкции по применению лекарства от кашля сказано:
Если врач не прописал, то принимать 3-4 раза в день по 15-20 капель, лучше всего в горячей сладкой воде.
Здесь не определено, например, когда должен заканчиваться алгоритм - когда кашель пройдет или когда лекарство закончиться! Свойство результативности обычно подразумевает конечность алгоритма, т. е. завершение его работы за конечное число шагов (при этом количество шагов может быть заранее не известным и различным для разных исходных данных).
Еще одним классическим примером может служить алгоритм решения квадратного уравнения. В том случае, когда дискриминант принимает отрицательное значение, важно получить сообщение об отсутствии действительных корней, что и будет результатом работы алгоритма.


IV.Понятность
Надо сказать, что алгоритм должен быть понятен не только автору, но и исполнителю. Если мы предложим исполнителю, например утюгу постирать одежду, то он никогда этого не сделает, потому, что не поймет, т. к. такой программы в нём не заложено. Или, например, если мы предложим какому-нибудь мальчику испечь торт, то как правило у него ни чего не получится, потому что они этого делать не умеют. Но если мы составим подробный алгоритм работы, разобьем его на элементарные шаги, такие, что он без труда поймёт и сможет выполнить каждый шаг, то он сможет успешно испечь любой торт. Каждый шаг алгоритма обязательно представляет собой какое-либо допустимое действие исполнителя. Это свойство алгоритма называют понятностью. Надо сказать, что алгоритм должен быть понятен не только автору, но и исполнителю.

V. Массовость

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

 
  E-Mail as...

Copyright© 2003-2005

Микерова Л.Н.
Питинов А.В.