Обучение алгоритмизации.
Рекомендации учителю
2.
Как известно, одним из важнейших дидактических принципов в методике обучения, является принцип наглядности. За каждым изучаемым понятием в сознании ученика должен закрепиться какой-то визуальный образ. Успешность обучения алгоритмизации при использовании учебных исполнителей объясняется именно наличием таких образов. Но в случае числовых данных нужны специальные методы визуализации. Надо показать учащимся как меняются данные, в каком порядке выполняются команды. Успешность в программировании во многом зависит от того, удастся ли учителю создать в сознании учеников визуальный образ архитектуры компьютера исполнителя. Использование УК помогает решению этой задачи. Составляя вычислительный алгоритм на языках высокого уровня, ученики в своём понимании архитектуры, могут отойти от деталей адресации ячеек памяти, типов регистров процессора и тп. Но представление об общих принципах работы ЭВМ должно остаться.
Например, так должен представлять себе ученик, выполнение алгоритма сложение двух чисел.
Компьютер работает с информацией. Информация, обрабатываемая компьютерной программой, называется данными. Величина – это отдельный информационный объект, отдельная единица данных. Команды в компьютерной программе определяют действия выполняемые над величинами. По отношению к программе, данные делятся, на исходные, результаты, и промежуточные. Важнейшим понятием, которое должны усвоить ученики, является следующее: всякая величина занимает своё определённое место в памяти ЭВМ – ячейку памяти. В сознании учеников должен закрепиться образ ячейки памяти сохраняющей величину. У всякой величины имеется 3 основных характеристики: Имя, значение, тип. На уровне машинных команд, всякая величина идентифицируется адресом ячейки памяти, а её значение – двоичный код, в этой ячейке.
В алгоритмах и языках программирования величины делятся на константы и переменные. Константа – не изменяемая величина, и в алгоритме она представляется собственным значением. Переменные величины могут изменять свои значения в ходе выполнения программы представляются символическими именами. Ученики должны знать что и константа, и переменная занимают ячейку памяти, а значения этих величин определяется двоичным кодом в этой ячейке. Понятие величина является фундаментальным для программирования. В каждом языке программирования существует своя концепция типов данных, своя система типов, однако в любой языков входит минимальный набор основных типов данных: целый, вещественный, логический, символьный. С типом величины связанно 3 её свойства: множество допустимых значений, множество допустимых операций, форма внутреннего представления. Есть еще 1 вариант классификации данных: классификация по структуре. Данные делятся на простые и структурированные. Для простых величин справедливо утверждение: одна величина – одно значение. Для структурированных: одна величина – множество значений. К структурированным величинам относятся массивы, строки, множества…. В базовом курсе структурированные величины, как правило, не рассматриваются.
3.
Использование учителем школьного алгоритмического языка.
Основными понятиями программирования является понятие переменной и присваивания. Процесс решения вычислительной задачи это процесс последовательного изменения значений переменных. В итоге в определенных переменных получается искомый результат. Переменные получают определенные значения в результате присваивания. Из числа команд входящих в ски «присваивание» выполняют команды ввода и команды присваивания. Есть еще третий способ присваивания – передача значений через параметры под программы. Педагогический опыт показывает что в большинстве случаев непонимание некоторыми учениками программирования происходит от не понимания смысла присваивания. Команда присваивания имеет следующий вид: <переменная> := (выражение). Знак « := » надо читать как «присвоить». Это инструкция которая обозначает следующий порядок действий.
1. вычислить выражение.
2. присвоить полученное значение переменной.
Под вводом в программировании понимается процесс передачи данных с любого внешнего устройства в оперативную память. В рамках базового курса можно ограничиться узким пониманием ввода, как передачи данных с устройством ввода в ОЗУ. В таком случае ввод осуществляется компьютером совместно с человеком. По команде ввода работа процессора прерывается и происходит ожидание действий пользователя. Полезно использовать учебные исполнители, реализующие школьный алгоритмический язык.
Использование учителем ручного тестирования, когда в роли формального исполнителя выступает сам ученик. Представить динамическую информационную модель пошагового исполнения алгоритма можно двумя способами:
1. трассировкой алгоритма с помощью таблицы, строки которой соответствуют командам алгоритма. А столбцы содержат значение величин, хранящихся в памяти исполнителя, результаты проверки условий и ожидаемую учащимся информацию на экране компьютера. Заполним трассировочную таблицу, относящуюся к алгоритму большего из двух чисел в виде блок схемы.
2. трассировка алгоритма с помощью колонок, число которых будет соответствовать количеству повторения цикла. Это даст возможность избежать многократного исправления результатов пошагового выполнения тела цикла.
Обучение программированию должно проводиться на примерах типовых задач с постепенным усложнением структуры алгоритма и степени отчуждения алгоритма от учащихся. Можно выделить следующие уровни сложности используемых понятий.
Для алгоритма:
1. линейные алгоритмы: вычисления по формулам.
2. ветвящиеся алгоритмы: поиск наибольшего и наименьшего значения из нескольких данных, сортировка 2х-3х значений, диалог с ветвлением.
3. циклические алгоритмы: вычисление сумм и произведений числовых последовательностей, циклический ввод данных с последовательной обработкой.
Для исполнителя:
1. я сам
2. другой человек
3. компьютер
III. практическое изучение определенной системы программирования.
Освоение работы в современных системах программирования не вызывают больших затруднений у учащихся. Учащиеся к моменту изучения системы программирования уже знают, что архитектура любого исполнителя имеет следующие компоненты.
1. среда. Среда системы программирования – обстановка на экране (системная оболочка) в которой работает пользователь. Учитель должен показать и описать ученикам оболочку именно той системы программирования с которой класс будет работать. В процессе работы ученики освоят её практически. Современные системы не просто транслируют или выполняют программу, но и погружают учащихся в диалоговую среду. Это мощное методически оправданное действие учебной деятельности. Синтаксический анализ. Учитель должен познакомить (описать и продемонстрировать) с характерными режимами работы системы программирования.
1. Режим редактирования текста программ.
2. режим компиляции.
3. режим исполнения
4. режим работы с файлами.
5. режим отладки программ.
6. система команд. Учитель должен познакомить учащихся с системой комант в каждом из режимов.
Для системы программирования данными являются файлы с текстами программ связанной с решаемой задачей.
Отладка и тестирование программ.
Подбор тестов для проверки правильности разработки алгоритма, является важным этапом в подготовке к решению задач с использованием компьютера. Для этого на стадии разработки алгоритма следует определит проверяемые события и сопутствующие результаты выполнения программ. Использование системы тестов при проведении компьютерного эксперимента позволит учащимся осознанно и целенаправленно проводить тестирование и отладку программы. При составлении системы тестов необходимо предусмотреть проверку основных, частных случаев решения конкретной задачи и основных типов данных, в том числе недопустимых. Систему тестов желательно оформить в виде таблицы с указанием номера теста входных и выходных данных.
Например таблица для тестирования алгоритма вычисления периметра треугольника в котором предусматривается отследить введение некорректных данных.
№ теста | Провер. Ел. | данные | результаты | ||
а | в | с | |||
Равносторонний | |||||
Равнобедренный | |||||
Прямоугольный | |||||
Нодопустимые знач | -1 | Не существует | |||
Вырожденный | Не существует | ||||
Вырожденный | Не существует |
Наиболее эффективными методами обучения программированию это проблемный. Дифференцированное обучение.
Исследовательский метод.
Проэктный.
Для организации учебной деятельности можно предлоить учащимся следующие задания:
1. определить базовые структуры входящие в алгоритм и принципы их соединения.
2. найти контр пример указывающий на логическую или семантическую ошибку в алгоритме.
3. указать область правильной работы алгоритма.
4. найти соответствие между фрагментами блок схем псевдо кода и программ.
5. определить назначение фрагмента алгоритма.
6. найти результат для конкретных входных данных.
7. оформить часть алгоритма как вспомогательный.
8. заменить алгоритм, заменив некоторые алгоритмические конструкции. Например заменить цикл «пока» циклом «до».
9. решить задачу другим способом.
10. организовать в алгоритме проверку допустимых значений входных данных.