Алгоритмы и алгоритмизация в школьном курсе информатики

Содержание.

Введение………………………………………………………………..................3

Глава I. Алгоритмы и алгоритмизация в школьном курсе

               информатики.

    1. Определение алгоритма…………………………………………..…..5
    2. Свойства алгоритмов………………………………………………....6
    3. Виды алгоритмов и их реализация…………………………………..9
    4. Методы изображения алгоритмов………………………………….13
    5. Роль алгоритмов, программирования и решения задач      

                 в школьном курсе информатики…………………………………....19

    1. Роль решения задач в базовом курсе информатики,

как основного способа развития алгоритмического                                                                                                    мышления…………………………………………………….............24

1.7. Развитие алгоритмического мышления…………………………….26

Глава II. Структурированный конспект занятий по темам

                 раздела «Алгоритмы и алгоритмические структуры» 

                 в школьном курсе информатике

    1. Базовый структурированный конспект тем раздела     «Алгоритмы и алгоритмические структуры»………………….....30
    2. Главная цель курса информатики в школе развитие                             алгоритмического мышления…………………………………...…..46
    3. Развитие алгоритмического мышления на уроках информатики в школе…………………………………...………………………….....52
    4. Диагностика и анализ влияния изучения тем раздела       «Алгоритмы и алгоритмические структуры» на развитие алгоритмического мышления…………………………………….....55

Заключение….………………………………………………………………......61

Список литературы………………………………………………………..…...63

 

Введение

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

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

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

В связи с выбранной  темой исследования нами был определен объект исследования: учебный процесс на уроках информатики в школе.

Предметом  нашего рассмотрения мы выбрали: методические условия эффективности изучения темы: «Алгоритмы и алгоритмические структуры» в учебном процессе школьного курса информатики.

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

Для реализации целей  исследования необходимо решить следующие задачи:

  • Сформулировать представление о понятии  алгоритма, алгоритмической структуры и алгоритмического мышления;
  • Изучить происхождение данных понятий, их классификацию, способы представления алгоритмических структур;
  • Выявить методические особенности изучения темы: «Алгоритмы и алгоритмические структуры», как необходимый компанент в учебном процессе для соблюдения целостности учебного материала на уроках информатики в школе и развития алгоритмического мышления.

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

 

 

 

 

 

 

 

 

 

Глава I. Алгоритмы и алгоритмизация в школьном курсе информатики.

1.1. Определение алгоритма

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

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

Само понятие алгоритм появилось намного раньше употребляемого ныне термина, оно складывалось и  применялось в науке с древнейших времен. Широко известен в математике так называемый алгоритм Евклида. (Общего делителя двух или несколько натуральных чисел). Наибольшим общим делителем данных числе называется самой большой из общих делителей, т. е. самое большое число, на которое делится каждое из данных чисел.) В дальнейшем алгоритмом стали называть точное предписание, определяющее последовательность действий, обеспечивающую получение требуемого результата из исходных данных. Алгоритм может быть предназначен для выполнения его человеком или автоматическим устройством. Создание алгоритма, пусть даже самого простого, - процесс творческий. Он доступен исключительно живым существам, а долгое время считалось, что только человеку. Другое дело - реализация уже имеющегося алгоритма. Ее можно поручить субъекту или объекту, который не обязан вникать в существо дела, а возможно, и не способен его понять. Такой субъект или объект принято называть формальным исполнителем 2. Примером формального исполнителя может служить стиральная машина-автомат, которая неукоснительно исполняет предписанные ей действия, даже если вы забыли положить в нее порошок. Человек тоже может выступать в роли формального исполнителя, но в первую очередь формальными исполнителями являются различные автоматические устройства, и компьютер в том числе. Каждый алгоритм создается в расчете на вполне конкретного исполнителя. Те действия, которые может совершать исполнитель, называются его допустимыми действиями. Совокупность допустимых действий образует систему команд исполнителя. Алгоритм должен содержать только те действия, которые допустимы для данного исполнителя.

1.2. Свойства алгоритмов

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

Такими свойствами являются:

ƒДискретность (прерывность, раздельность) - алгоритм должен представлять процесс решения задачи как последовательное выполнение простых (или ранее определенных) шагов. Каждое действие, предусмотренное алгоритмом, исполняется только после того, как закончилось исполнение предыдущего.

ƒОпределенность - каждое правило алгоритма должно быть четким, однозначным и не оставлять места для произвола. Благодаря этому свойству выполнение алгоритма носит механический характер и не требует никаких дополнительных указаний или сведений о решаемой задаче.

ƒРезультативность - алгоритм должен приводить к решению задачи за конечное число шагов.

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

ƒОднозначность – единственность толкования правил выполнения действий и порядка их выполнения.

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

ƒПравильность – выполнение алгоритма дает правильные результаты решения поставленных задач.

ƒТочность – выполнив одну, команду исполнитель должен точно знать, какую команду выполнять следующей.

ƒПонятность – все команды должны входить в систему команд исполнителя.

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

Само выражение «свойства  алгоритма» не совсем корректно. Свойствами обладают объективно существующие реальности. Можно говорить, например, о свойствах какого-либо вещества. Алгоритм – искусственная конструкция, которую мы сооружаем для достижения своих целей. Чтобы алгоритм выполнил свое предназначение, его необходимо строить по определенным правилам. Поэтому нужно говорить все же не о свойствах алгоритма, а о правилах построения алгоритма, или о требованиях, предъявляемых к алгоритму.

Первое правило –  при построении алгоритма, прежде всего, необходимо задать множество объектов, с которыми будет работать алгоритм. Формализованное (закодированное) представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных, которые называются входными, и в результате своей работы выдает данные, которые называются выходными. Таким образом, алгоритм преобразует входные данные в выходные.

Это правило позволяет  сразу отделить алгоритмы от “методов”  и “способов”. Пока мы не имеем формализованных  входных данных, мы не можем построить  алгоритм.

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

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

Третье правило –  дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд). Множество шагов, из которых составлен алгоритм, конечно.

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

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

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

1.3. Виды алгоритмов и их реализация

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

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

  • Механические алгоритмы, или иначе детерминированные, жесткие (например, алгоритм работы машины, двигателя и т.п.);
  • Гибкие алгоритмы, например стохастические, т.е. вероятностные и эвристические.

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

  • Вероятностный (стохастический) алгоритм дает программу решения задачи несколькими путями или способами, приводящими к вероятному достижению результата 5.
  • Эвристический алгоритм  (от греческого слова “эврика”) – это такой алгоритм, в котором достижение конечного результата программы действий однозначно не предопределено, так же как не обозначена вся последовательность действий, не выявлены все действия исполнителя. К эвристическим алгоритмам относят, например, инструкции и предписания. В этих алгоритмах используются универсальные логические процедуры и способы принятия решений, основанные на аналогиях, ассоциациях и прошлом опыте решения схожих задач 6.
  • Линейный алгоритм – набор команд (указаний), выполняемых последовательно во времени друг за другом.
  • Разветвляющийся алгоритм – алгоритм, содержащий хотя бы одно условие, в результате проверки которого ЭВМ обеспечивает переход на один из двух возможных шагов.
  • Циклический алгоритм – алгоритм, предусматривающий многократное повторение одного и того же действия (одних и тех же операций) над новыми исходными данными. К циклическим алгоритмам сводится большинство методов вычислений, перебора вариантов.

Цикл программы –  последовательность команд (серия, тело цикла), которая может выполняться  многократно (для новых исходных данных) до удовлетворения некоторого условия.

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

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

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

алг «Домик»

нач

Стена с дверью

крыша

кон

алг «Стена с дверью»

нач

стена с окном

дверь

кон

      


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

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

При использовании вспомогательных  алгоритмов необходимо учитывать способ передачи этим алгоритмам исходных данных и получение от них результатов решения. Для этого в заголовке вспомогательных алгоритмов необходимо указать аргументы и результаты.

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

 

Общая форма записи вспомогательных  алгоритмов:

алг «<название подзадачи>»

арг <список аргументов>

рез <список результатов>

нач

<план действий>

кон

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

1.4. Методы изображения алгоритмов

На практике наиболее распространены следующие формы  представления алгоритмов:

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

Словесное описание алгоритма

Данный способ получил  значительно меньшее распространение  из-за его многословности и отсутствия наглядности.

Словесный способ не имеет широкого распространения по следующим причинам:

  1. такие описания строго не формализуемы;
  2. страдают многословностью записей;
  3. допускают неоднозначность толкования отдельных предписаний.

Блок-схема  алгоритма

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

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

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

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

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

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

Специальные геометрические фигуры в блок-схеме:

Начало / конец.

Вычисление команд.

Условия.

Ввод / вывод данных.


 

Программное представление алгоритма

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

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

Следовательно, язык для  записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой для компьютера 11.

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

алг <«название»>

нач

.. <действие 1>

..<действие 2>

..<действие 3>

кон

Другие структуры записываются по особому алгоритму.

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

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

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

если <условие> то

<действия>

кесли


 

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

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

Выбираемые действия:

если <условие> то

<действие 1>

иначе

<действие 2>

кесли


 

Правила выполнения: действие 1 выполняется тогда и только тогда, когда соблюдается условие. Действие 2 выполняется, только если условие  не соблюдается.

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

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

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

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

Описание циклов в  алгоритмах строится по следующим правилам: повторяемые действия заключаются  между словами цикл и конец  цикла (сокращенно кцикл).

В цикле со счетчиком  указываются начальные и конечные значения счетчика повторений.

Цикл со счетчиком:

от k = 1 до n

цикл

<действие>

кцикл


 

Правила выполнения цикла  со счетчиком: До начала цикла счетчик  получает начальное значение k = 1. Далее выполняются <действие>, а затем проверяется, достиг ли счетчик конечного значения. Если счетчик еще не достиг конечного значения, то он увеличивается на единицу и <действие> выполняется еще раз. Если же счетчик уже достиг конечного значения, то выполнение цикла завершается.

Выполнение пока-цикла:

пока <условие> цикл

<действие>

кцикл


 

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

1.5. Роль алгоритмов, программирования и решения задач  в школьном курсе информатики.

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

Алгоритмы и алгоритмизация в школьном курсе информатики