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

Разработка теории и методики преподавания раздела "Алгоритмизация и программирование" в школьном курсе информатики. Методические проблемы изучения алгоритмов работы с величинами. Требования к знаниям учащихся по линии алгоритмизации и программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.07.2012
Размер файла 70,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Введение

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

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

Изучение алгоритмизации в школьной информатике может иметь два целевых аспекта: первый - развивающий аспект, под которым понимается развитие алгоритмического (еще говорят - операционного) мышления учащихся; второй - программистский аспект. Составление программы для ЭВМ начинается с построения алгоритма; важнейшим качеством профессионального программиста является развитое алгоритмическое мышление. Если в первом школьном учебнике информатики [15. с. 54] в изучении алгоритмизации превалировал второй, программистский, аспект, то в дальнейшем стала больше подчеркиваться развивающая роль данной темы.

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

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

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

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

1.1 Методика введения понятия алгоритма

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

В этом определении содержатся основные понятия, связанные с алгоритмом и его главные свойства. Взаимосвязь понятий отражена на рис. 1.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 1. Схема функционирования исполнителя алгоритмов

Центральным объектом в этой системе является ИСПОЛНИТЕЛЬ алгоритмов. Исполнитель - это тот объект (или субъект), для управления которым составляется алгоритм. Основной характеристикой исполнителя, с точки зрения управления, является система команд исполнителя (СКИ). Это конечное множество команд, которые понимает исполнитель, т.е. умеет их выполнять.

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

Другое свойство алгоритма - точность. Всякая команда должна быть сформулирована так, чтобы определить однозначное действие исполнителя. Например, кулинарный рецепт можно рассматривать как алгоритм для исполнителя-повара по приготовлению блюда. Но если одним из пунктов в нем будет написано: «Положить несколько ложек сахара», то это пример неточной команды. Сколько ложек, каких ложек (чайных, столовых)? Каждый повар может это понимать по-своему, и результаты будут разными. Пример точной команды: «Положить 2 столовые ложки сахара».

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

Еще одно свойство, которое отражено в определении алгоритма - конечность. Оно формулируется так: исполнение алгоритма и, следовательно, получение искомого результата должно завершиться за конечное число шагов. Здесь под шагом подразумевается выполнение отдельной команды. Это свойство является предупреждением ситуации, которую программисты называют зацикливанием. Бесконечно исполняемый алгоритм безрезультатен. Поэтому свойство конечности называют еще результативностью алгоритма.

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

«Свойство массовости выражается в том, что алгоритм единым образом применяется к любой конкретной формулировке задачи, для решения которой он разработан» [20, с. 36]. Другими словами, это можно назвать универсальностью алгоритма по отношению к исходным данным решаемой задачи. Заметим, что данное свойство не является необходимым свойством алгоритма, а скорее определяет качество алгоритма: универсальный алгоритм лучше неуниверсального (алгоритм решения частной задачи - тоже алгоритм!).

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

Обучение методам построения алгоритмов - один из наиболее отработанных разделов школьной информатики. Традиционно применяемым дидактическим средством в этом разделе являются учебные исполнители алгоритмов. Например, КУКАРАЧА из Роботландии, МУРАВЕЙ Г. Н. Гутмана, КЕНГУРЕНОК, реализованный фирмой КУДИЦ. Вообще говоря, подходит любой исполнитель, который удовлетворяет следующим условиям:

· это должен быть исполнитель, работающий «в обстановке;

· этот исполнитель должен имитировать процесс управления некоторым реальным объектом (роботом и пр.);

· в системе команд исполнителя должны быть все структурные команды управления (ветвления, циклы);

· исполнитель позволяет использовать вспомогательные алгоритмы (процедуры).

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

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

Рассмотрим в качестве примера описание архитектуры широко известного исполнителя КЕНГУРЕНОК (аналогом является исполнитель Чертежник к учебнику [12, с. 43]). Авторы программы КЕНГУРЕНОК назвали своего героя Ру (Roo) - по имени персонажа мультфильма. Мы также будем пользоваться этим именем.

1.2.1 Архитектура учебного исполнителя

1.2.1.1 Среда исполнителя

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

1.2.1.2 Режимы работы

Режим работы - это определенное состояние учебного исполнителя, в котором могут выполняться определенные действия. Необходимо в наглядной форме представить ученикам все возможные режимы работ используемого исполнителя. Для исполнителя «Кенгуренок» вся система режимов работы отражена на рис. 2.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 2. Система режимов работы исполнителя «Кенгуренок»

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

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

1.2.1.3 Режим программного управления

Режим программного управления следует трактовать как имитацию ситуации, когда объектом управляет компьютер. Роль человека - составление алгоритма, ввод программы и инициализация ее исполнения компьютером.

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

- установка исходного состояния: стирается рисунок с поля Кенгуренка, устанавливается исходное положение и направление Кенгуренка (этот режим работает и при «ручном» управлении);

- программирование: набор программы на программном поле;

- исполнение: работа Ру по заданной программе.

И, наконец, исполнение может проходить в трех режимах:

- в автоматическом режиме (на экране сразу появляется результат выполнения программы);

- в автоматическом пошаговом режиме (Кенгуренок демонстрирует выполнение каждой команды);

- в отладочном режиме (исполнение каждой команды запускается отдельно и подробно комментируется мультипликационными средствами).

1.2.1.4 Режим работы с файлами

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

1.2.1.5 Режим справки

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

1.2.1.6 Система команд исполнителя (СКИ)

Команды делятся на команды установки (изменения) режимов и команды управления Кенгуренком (команды программы). Все команды могут быть выбраны из меню. Меню команд первого типа имеет желтый цвет; меню команд второго типа - белый цвет. Будем называть их кратко: «желтое меню» и «белое меню». Переход от одного меню к другому производится нажатием клавиши [Tab]. Каждую команду можно вызвать нажатием определенной функциональной клавиши. «Желтое меню» является многоуровневым. Команды первого уровня «желтого меню» и соответствующие им функциональные клавиши, следующие:

[F1] - ПУСК - запуск на исполнение готовой программы в пошаговом автоматическом режиме;

[F2] - ОТЛАДКА - выполнение программы в отладочном режиме с остановкой после каждой команды;

[F3] - УСТАНОВКА - очистка поля и установка положения Ру с помощью клавиш перемещения курсора;

[F4] - РАЗНОЕ - содержит подменю с дополнительными командами работы с файлами;

[F5] - РЕЗУЛЬТАТ - мгновенное получение результата работы программы (автоматический режим исполнения).

В свою очередь команда РАЗНОЕ имеет два уровня подменю, состоящих из команд файлового типа. Это дерево меню изображено на рис. 3.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 3. Система файловых команд исполнителя «Кенгуренок»

В режим справки можно попасть, нажав одновременно клавиши [CTRL]+[H].

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

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

1) шаг - перемещение Ру на один шаг вперед с рисованием линии;

2) поворот - поворот Ру на 90° против часовой стрелки;

3) прыжок - перемещение Ру на один шаг вперед без рисования линии.

При переходе в режим программирования «белое меню» меняется. К нему, кроме перечисленных, добавляются следующие команды:

4) пока <условие> повторять <тело цикла> конец цикла - цикл с предусловием;

5) если <условие> то <серия 1> иначе <серия 2> конец ветвления - полное ветвление;

6) если <условие> то <серия > конец ветвления - неполное ветвление;

7) сделай <имя процедуры> - обращение к процедуре.

Данными при работе с этим исполнителем является обстановка на поле Кенгуренка. Она определяется имеющимся рисунком и состоянием самого Кенгуренка: его позицией на поле и направлением (куда смотрит). Обычно исходной обстановкой является отсутствие рисунка (чистое поле) и определенное состояние Ру. Такая обстановка устанавливается в режиме УСТАНОВКА. Результатом работы является рисунок.

Приведенное выше описание можно назвать описанием архитектуры исполнителя КЕНГУРЕНОК. По такой же схеме рекомендуется описывать архитектуру любого другого алгоритмического исполнителя.

1.2.2 Обучение алгоритмизации

Первыми заданиями по управлению Кенгуренком должны быть задачи на работу в режиме прямого управления с целью получить определенный рисунок. Этими рисунками могут быть фигуры, узоры, буквы, построенные из вертикальных и горизонтальных отрезков. Следует обратить внимание Учеников на необходимость первоначальной установки Ру на поле.

Продемонстрируйте ученикам реакцию Ру в случае, если его пытаются переместить за границу поля. С Кенгуренком происходит «авария». Следовательно, выход за край поля допускать нельзя.

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

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

- от простого к сложному, постепенное усложнение задач;

- новизна: каждая задача вносит какой-то новый элемент знаний (новая команда, новый прием программирования);

- наследование: следующая задача требует использования знаний, полученных при решении предыдущих задач.

В учебнике [6, с. 24] рассматривается последовательность задач, которая позволяет ученикам осваивать приемы алгоритмизации в таком порядке:

- составление линейных алгоритмов;

- описание и использование вспомогательных алгоритмов;

- составление циклических алгоритмов;

- использование ветвлений в алгоритмах;

- использование метода последовательной детализации при составлении сложных алгоритмов.

Алгоритмы решения задач, которые рассматриваются ниже, приведены в [6, с. 35]. Здесь же будут обсуждаться только дидактические и методические проблемы, связанные с решением каждой задачи.

Задача 1: составить алгоритм рисования буквы «Т» в центре поля рисунка. Длина горизонтального и вертикального отрезков - 4 шага. Кенгуренок находится в крайней левой точке горизонтального отрезка и смотрит на восток (направо).

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

Второе: алгоритм зависит не только от сформулированной цели (искомого результата), но и от исходного состояния исполнителя. Если бы исходное состояние было другим (например, Ру находится в нижней точке вертикального отрезка и направлен на север), то был бы другим и алгоритм, несмотря на то, что в результате получается один и тот же рисунок. Для алгоритмов работы «в обстановке» начальное состояние исполнителя является исходным данным задачи. Состояние Кенгуренка определяется местом его расположения на поле и ориентацией. Результатом же выполнения алгоритма становится не только рисунок (главная цель), но и конечное состояние исполнителя.

Задача 2: естественным образом выводит на идею вспомогательного алгоритма. Задание следующее: составить алгоритм рисования числа «1919». Учитель может поступить следующим образом: предложить ученикам написать алгоритм прежними средствами, т.е. используя только три основные команды: шаг, поворот, прыжок. Такое задание, очевидно, не вызовет энтузиазма учеников, поскольку принцип им уже понятен, а писать длинный линейный алгоритм довольно скучно. В этой ситуации вполне возможно самостоятельное «открытие» учениками идеи вспомогательного алгоритма. Обратив внимание на то, что в рисунке дважды присутствуют цифры «1» и «9», ученики могут прийти к идее отдельного описания алгоритмов рисования этих цифр, а затем использования их для получения четырехзначного числа «1919». После обсуждения этой идеи учитель вводит понятие вспомогательного алгоритма и объясняет, как производится его описание и использование. На языке Кенгуренка вспомогательный алгоритм называется процедурой.

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

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

Задача 3: составить алгоритм рисования горизонтальной линии, проведенной от края до края поля. Эта задача вносит в данную тему следующие новые элементы: управление с обратной связью; структурная команда цикла. Обратная связь между объектом управления (Кенгуренком) и управляющей системой заключается в том, что перед выполнением каждого шага проверяется условие «впереди не край?». Если оно истинно, т.е. ответ положительный, то делается шаг, в противном случае выполнение цикла прекращается.

Механизм обратной связи наглядно иллюстрируется в отладочном режиме исполнения программы. В этом режиме анимационными средствами на экране изображается мальчик Кристофер, который отдает команды управления Кенгуренку. В начале каждого цикла Кристофер спрашивает Ру: «Впереди не край?» и получает в ответ: «Да» или «Нет». Дальнейшие действия зависят от ответа.

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

В теории алгоритмов существует два типа циклов: цикл с предусловием и цикл с постусловием. Цикл с предусловием (другое его название - «цикл-пока») является основным видом циклической структуры и достаточен для построения любого циклического алгоритма. В языке исполнителя Кенгуренок имеется только команда «цикл-пока».

Задача 4: построить прямоугольную рамку по краю поля. Решение этой задачи требует объединения умений, полученных учениками при решении предыдущих задач. Циклическая программа рисования линии оформляется в виде процедуры ЛИНИЯ. А в основной программе происходит четырехкратное обращение к этой процедуре.

Задача 5: расчертить экран горизонтальными линиями. Эта задача является прямым продолжением предыдущей задачи. Усложнение заключается в том, что используются две процедуры: ЛИНИЯ и ВОЗВРАТ. Кроме того, основной алгоритм сам становится циклическим. Здесь снова нужно отметить то важное обстоятельство, что при использовании процедур в основной программе необходимо учитывать начальное и конечное состояние исполнителя при их выполнении.

Задача 6: нарисовать орнамент, состоящий из квадратов, расположенных по краю поля.

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

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

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

- при построении сложных алгоритмов следует применять метод последовательной детализации.

1.2.3 О способах описания алгоритмов

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

а б

Рис. 4. Блок-схемы: а - пример структурного изображения алгоритма; б пример неструктурного изображения алгоритма

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

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

алгоритмизация программирование школьный преподавание

1.3 Методические проблемы изучения алгоритмов работы с величинами

Есть две стороны в обучении алгоритмизации:

- обучение структурной методике построения алгоритмов;

- обучение методам работы с величинами.

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

1.3.1 ЭВМ - исполнитель алгоритмов

Обсуждение методических вопросов изучения темы "Алгоритмы работы с величинами» будем проводить в программистском аспекте. Составление любой программы для ЭВМ начинается с построения алгоритма. Как известно, всякий алгоритм (программа) составляется для конкретного исполнителя, в рамках его системы команд. О каком же исполнителе идет речь в теме «программирование для ЭВМ»? Ответ очевиден: исполнителем является компьютер. Точнее говоря, исполнителем является комплекс «ЭВМ + система программирования (СП)». Программист составляет программу на том языке, на который ориентирована СП. Иногда в литературе по программированию такой комплекс называют «виртуальной ЭВМ». Например, компьютер с работающей системой программирования на Бейсике называют «Бейсик-машина»; компьютер с работающей системой программирования на Паскале называют «Паскаль-машина» и т. п. Схематически это изображено на рис. 5.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 5. Взаимодействие программиста с компьютером

Входным языком такого исполнителя является язык программирования Паскаль.

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

Процесс программирования делится на три этапа:

1) составление алгоритма решения задачи;

2) составление программы на языке программирования;

3) отладка и тестирование программы.

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

1.3.2 Характеристики величин

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 6. Уровни данных относительно программы

Например, при решении квадратного уравнения: ах2 + bx + с = 0, исходными данными являются коэффициенты a, b, c; результатами - корни уравнения: ; промежуточным данным - дискриминант уравнения: .

Важнейшим понятием, которое должны усвоить ученики, является следующее: всякая величина занимает свое определенное место в памяти ЭВМ - ячейку памяти. В результате в сознании учеников должен закрепиться образ ячейки памяти, сохраняющей величину. Термин «ячейка памяти» рекомендуется употреблять и в Дальнейшем для обозначения места хранения величины.

У всякой величины имеются три основных характеристики: имя, значение и тип. На уровне машинных команд всякая величина идентифицируется адресом ячейки памяти, в которой она хранится, а ее значение - двоичный код в этой ячейке. В алгоритмах и языках программирования величины делятся на константы и переменные.

Константа - неизменная величина и в алгоритме она представляется собственным значением, например: 15, 34.7, 'k', true и пр. Переменные величины могут изменять свои значения в ходе выполнения программы и представляются символическими именами - идентификаторами, например: X, S2, cod 15 и пр. Однако ученики должны знать, что и константа, и переменная занимают ячейку памяти, а значение этих величин определяется двоичным кодом в этой ячейке.

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

В каждом языке программирования существует своя концепция типов данных, своя система типов.

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

С типом величины связаны три ее свойства; множество допустимых значений, множество допустимых операций, форма внутреннего представления (табл. 1).

Таблица 1 Свойства основных типов данных

Тип

Значения

Операции

Внутреннее представление

Целый

Целые положительные и отрицательные числа в некотором диапазоне. Примеры: 23, -12. 387

Арифметические операции с целыми числами: +, --, х. целое деление и остаток от деления. Операции отношений (<. >, = и др.)

Формат с фиксированной точкой

Вещественный

Любые (целые и дробные) числа в некотором диапазоне. Примеры: 2,5, -0,01, 45,0, 3.6 ^109

Арифметические операции: +, -, х, /. Операции отношений

Формат с плавающей точкой

Логический

True (истина), False (ложь)

Логические операции: И (and), ИЛИ (or), HE (not). Операции отношений

1 бит: 1 - true; 0 - false

Символьный

Любые символы компьютерного алфавита. Примеры: 'a', '5', '+', '$'

Операции отношений

Коды таблицы си мвольной коди ровки. 1 символ - 1байт

Типы констант определяются по контексту (т.е. по форме записи в тексте), а типы переменных устанавливаются в описании переменных.

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 7. Средства выполнения действий над величинами

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

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

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

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

Следует иметь в виду, что и в описаниях алгоритмов нужно ориентироваться только на тот набор операций и команд, который имеется у исполнителя. Проще говоря, не нужно употреблять операции или функции, которых нет в используемом языке программирования. Например, если составляется алгоритм для дальнейшего программирования на Бейсике, то в нем можно использовать операцию возведения в степень в виде: или х^5, потому что в языке программирования есть эта операция (пишется х^5). Если же программа будет записываться на Паскале, в котором отсутствует операция возведения в степень, то и в алгоритме не следует ее употреблять; нужно писать так: х*х*х*х*x. Возведение в большую целую степень, например в 20, 30-ю, следует производить циклическим умножением. Возведение в вещественную степень организуется через функции ехр и In

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

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

Команда присваивания имеет следующий вид:

<переменная> := <выражение>

Знак «:=» надо читать как «присвоить». Это инструкция, которая обозначает следующий порядок действий:

1) вычислить выражение;

2) присвоить полученное значение переменной.

Команда выполняется с права налево. Нельзя путать команду присваивания с математическим равенством! Особенно часто путаница возникает в тех случаях, когда в качестве знака присваивания используется знак «=» и учитель читает его как «равно». В некоторых языках программирования знак «=» используется как присваивание, например, в Бейсике и Си. В любом случае надо говорить «присвоить».

Ученикам, отождествляющим присваивание с равенством, совершенно непонятна такая команда: Х:= Х+ 1. Такого математического равенства не может быть! Смысл этой команды следует объяснять так: к значению переменной X прибавляется единица и результат присваивается этой же переменной X. Иначе говоря, данная команда увеличивает значение переменной X на единицу.

Глава II. Теория и методика преподавания раздела «Программирование» в школьном курсе информатики

2.1 Элементы программирования в базовом курсе информатики

Программирование - это раздел информатики, задача которого - разработка программного обеспечения ЭВМ. В узком смысле слово «программирование» обозначает процесс разработки программы на определенном языке программирования. Разработку средств системного ПО и систем программировании принято называть системным программированием; разработку прикладных программ называют прикладным программированием. По этому принципу делят программистов на системных и прикладных, в зависимости от типа создаваемых ими программ.

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

· процедурное программирование (Паскаль, Бейсик, фортран, Си, Ассемблеры);

· логическое программирование (Пролог);

· функциональное программирование (Лисп);

· объектно-ориентированное программирование (Смолток, Си++, Делфи).

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

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

Процесс изучения и практического освоения программирования можно разделить на три части:

· изучение методов построения вычислительных алгоритмов;

· изучение языка программирования;

· изучение и практическое освоение определенной системы программирования.

Эта структура отражена в приложении 1. Здесь и в дальнейшем термин «вычислительные алгоритмы» будем понимать в самом широком смысле - как алгоритмы работы с величинами любых типов, ориентированные на исполнителя - ЭВМ.

2.1.1 Методические рекомендации по изучению языков программирования

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

Языки программирования делятся на две группы:

· машинно-ориентированные: Автокоды, Ассемблеры;

· языки программирования высокого уровня (ЯПВУ).

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

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

Важнейшим оператором является оператор присваивания. В ЯПВУ оператор присваивания записывается практически так же, как в Алгоритмическом языке команда присваивания.

В ЯПВУ одним оператором представляются целые алгоритмические структуры: ветвление, цикл. Правда, такое есть не во всех языках (например, нет в стандартном Бейсике). Языки, в которых имеются структурные операторы, принято называть структурными языками. К их числу относятся Паскаль и Си.

Изучение языков программирования высокого уровня в базовом курсе должно носить только ознакомительный характер. Но использовать для этого какой-то учебный язык, учебную систему программирования, совсем не обязательно. Реальные ЯПВУ можно изучать с разной степенью подробности. Освоение же работы в современных системах программирования на таких языках не вызывает больших затруднений.

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

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

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

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

1) сначала рассматриваются всевозможные алгоритмы, для описания которых используются блок-схемы и АЯ, а затем - правила языка программирования, способы перевода уже построенных алгоритмов в программу на этом языке;

2) алгоритмизация и язык программирования осваиваются параллельно.

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

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

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

· линейные алгоритмы: вычисления по формулам, всевозможные пересылки значений переменных;

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

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

2.1.2 Методические рекомендации по изучению систем программирования

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

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

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

Определенная стандартизация оболочек систем программирования произошла с появлением турбо-систем фирмы Borland. Для таких сред характерно наличие на экране двух компонент: окна Редактора, на котором формируется текст программы, и меню команд переключения режимов работы системы.

Характерными режимами работы СП являются:

- режим редактирования текста программы;

- режим компиляции;

- режим исполнения;

- режим работы с файлами;

- режим помощи;

- режим отладки программы.

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

Режим компиляции существует у систем, обслуживающих компилируемые языки (Паскаль, СИ, Фортран и др.). Результатом компиляции является исполняемая программа, т.е. программа на языке машинных команд. В некоторых случаях получение исполняемой программы происходит в два этапа: собственно компиляции и редактирования связей. Хотя учитель должен понимать смысл этих процедур, но в базовом курсе, при объяснении ученикам, эти вопросы можно подробно не комментировать.

Режим исполнения. В компилирующих системах в этом режиме исполняется полученная после трансляции программа в машинных командах. Интерпретатор непосредственно сам исполняет программу на ЯПВУ. Так, например, работает Бейсик-система. Обычно в том и в другом случае исполнение программы начинается по команде RUN.

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

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

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

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

Для СП данными являются файлы с текстами программ, с исходной и конечной информацией, связанной с решаемой задачей.

2.2. Требования к знаниям и умениям учащихся по линии алгоритмизации и программирования

2.2.1 Требования к знаниям учащихся

Учащиеся должны знать:

· что такое алгоритм; какова роль алгоритма в системах управления;

· в чем состоят основные свойства алгоритма;

· способы записи алгоритмов: блок-схемы, учебный алгоритмический язык;

· основные алгоритмические конструкции: следование, ветвление, цикл; структуры алгоритмов;

· назначение вспомогательных алгоритмов; технологии построения сложных алгоритмов: метод последовательной детализации и сборочный (библиотечный) метод;

· основные свойства величин в алгоритмах обработки информации: что такое имя, тип, значение величины; смысл присваивания;

· назначение языков программирования;

· в чем различие между языками программирования высокого уровня и машинно-ориентированными языками;

· правила представления данных на одном из языков программирования высокого уровня (например, на Паскале);

· правила записи основных операторов: ввода, вывода, присваивания, цикла, ветвления;

· правила записи программы;

· что такое трансляция;

· назначение систем программирования;

· содержание этапов разработки программы: алгоритмизация - кодирование - отладка - тестирование.

2.2.2 Требования к умениям учащихся

· пользоваться языком блок-схем, понимать описания алгоритмов на учебном алгоритмическом языке;

· выполнять трассировку алгоритма для известного исполнителя;

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

· выделять подзадачи; определять и использовать вспомогательные алгоритмы;

· составлять несложные программы решения вычислительных задач с целыми числами;

· программировать простой диалог;

· работать в среде одной из систем программирования (например, Турбо Паскаль);

· осуществлять отладку и тестирование программы.

Заключение

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

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

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

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

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

Анализ возможностей Бейсик - системы показывает, что она успешно может применятся в учебном процессе.

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

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

Большая часть пользователей современных персональных компьютеров не программирует и не нуждается в этом. Сегодня созданы обширные программные средства компьютерных информационных технологий (КИТ), позволяющих работать с ЭВМ непрограммирующему пользователю. Поэтому минимальным уровнем компьютерной грамотности является овладение средствами компьютерных информационных технологий.

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

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


Подобные документы

  • Теоретические основы преподавания раздела информатики "Моделирование и формализация" в школе. Разработка системы задач по моделированию в различных средах (графический и текстовый редакторы, электронные таблицы, система программирования Visual Basic).

    курсовая работа [127,2 K], добавлен 26.09.2012

  • Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.

    дипломная работа [808,8 K], добавлен 13.12.2017

  • Место темы "Кодирование информации" в школьном курсе информатики. Рекомендации по изучению "Кодирования информации" в школьном курсе информатики. Дидактический материал для изучения темы "Кодирование информации" и внеклассное мероприятие по информатике.

    курсовая работа [2,3 M], добавлен 17.06.2012

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

    дипломная работа [3,7 M], добавлен 30.06.2014

  • Алгоритмизация и структурное программирование на языке С/С++. Создание справочника в памяти (ввод данных), вывод справочника на экран с использованием потоковых классов, сортировка методом Шелла. Циклы, описание применяемых специальных алгоритмов.

    курсовая работа [1,0 M], добавлен 26.02.2012

  • Создание работоспособного модуля по работе с мобильными картами АЗС. Разработка базы данных в среде программирования Турбо Паскаль для работы с текстами и файловыми структурами. Описание методов алгоритмизации процессов сортировки и редактирования.

    курсовая работа [1,9 M], добавлен 05.12.2011

  • Роль компьютера в обучении. Реализация принципа наглядности в обучающих программах. Технология создания обучающей программы. Типы компьютерных тестов. Структуры линейной модели знаний. Графический экран системы Лого Миры. Форма записи алгоритма.

    дипломная работа [3,8 M], добавлен 14.04.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.