3(ТиМОИ). Алгоритмическая культура учащихся
В основе программирования для ЭВМ лежит понятие
алгоритмизации, как процесса разработки и описания алгоритма средствами
заданного языка. Обучение алгоритмизации – обучение умению составлять
алгоритмические предписания. Алгоритмизация – общий метод кибернетики. Процессы
управления в разных системах сводятся к реализации определённых алгоритмов. С
построением алгоритмов связано и создание самых простейших автоматических
устройств. Фундаментальные основы алгоритмизации
лежат в сугубо теоретической области современной математики – теории
алгоритмов, однако алгоритмизация в широком практическом смысле понимается как
набор определенных практических приемов, основанных на специфических навыках
рационального мышления об алгоритмах.
Представления об алгоритмических процессах и способах их описания формировались в сознании учащихся при изучении школьных дисциплин ещё до появления информатики и ВТ. Основная роль при этом выпадала математике. С распространением ЭВМ и программирования этот сектор математической культуры стал приобретать самостоятельное значение, требовалось только дополнить его за счет компонентов алгоритмизации. Образованная таким образом совокупность специфических понятий, умений и навыков, определяющая новый элемент общей культуры каждого современного человека и претендующая по этой причине на включение в общее школьное образование, получила название алгоритмической культуры учащихся.
Компоненты алгоритмической культуры:
1. Понятие алгоритма и его свойства.
Понятие алгоритма является центральным понятием алгоритмизации – основным компонентом алгоритмической культуры. Алгоритм – это понятное и точное предписание исполнителю выполнить определенную последовательность команд, направленную на решение конкретной задачи или достижение поставленной цели. Свойства алгоритма: понятность (алгоритм должен содержать только те команды, которые входят в систему команд конкретного исполнителя), массовость (алгоритм должен решать класс задач определенного типа), результативность (исполнение алгоритма должно завершиться за конечное число шагов), определенность (каждая команда должна однозначно определять действие исполнителя), дискретность (процесс решения задачи должен быть разбит на последовательность отдельных шагов).
2. Понятие языка описания алгоритмов.
Задача описания алгоритма всегда предполагает наличие некоторого языка, на котором должно быть выполнено описание. Выбор языка в каждом отдельном случае определяется областью применения алгоритма, т.е., по существу, свойствами объекта (человека, автомата, компьютера), выступающего в роли исполнителя.
3. Уровень формализации описания.
Понятие уровня формализации описания тесно связано с понятием языка. Язык подчиняется строгим ограничениям, которые обычно могут быть сведены в систему формальных правил, образующих синтаксис языка. Сам язык в подобных случаях становится, как говорят, формализованным.
4. Принцип дискретности (пошаговости) описания.
Построение алгоритма предполагает выделение чёткой целенаправленной последовательности допустимых элементарных действий, приводящих к требуемому результату.
Организованная совокупность этих действий образует определенную дискретную
структуру описания алгоритма, сообщающую ему ясность и четкость. В различных
языках такие отдельные этапы алгоритма представляются различными средствами
(предложения – на естественном языке, отдельные блоки – в языке схем, команды –
в объектном языке ЭВМ, операторы – в алгоритмическом языке высокого уровня).
5. Принцип блочности.
Умение расчленять сложную задачу на более простые компоненты. При окончательном построении алгоритма из блоков возможны два различных подхода:
А) детальное представление блока помещается в соответствующее место алгоритма, а сам блок, исчерпав свою роль общего приема поиска алгоритма, как бы «растворяется» в нем;
Б) содержание блоков не встраивается в алгоритм, а в его соответствующих местах помещаются ссылки – обращение к размещенным отдельно блокам; окончательным алгоритмом считается совокупность главного алгоритма и всех его отдельных блоков (вспомогательных алгоритмов).
6. Принцип ветвления.
Ситуации, в которых требуется принятие решения в зависимости от заданных начальных условий. Существенными компонентами алгоритмической грамотности здесь является осознание того, что:
А) описание должно предусматривать все возможные варианты исходных данных и для каждой их комбинации быть результативным;
Б) для конкретных значений исходных данных исполнение алгоритма всегда проходит только по одному из возможных путей, определяемому конкретными условиями.
7. Принцип цикличности.
Возможность неоднократного использования одних и тех же фрагментов описаний при различных значениях входных величин; умение выделять при построении алгоритмов повторяющуюся часть цикла.
8. Выполнение алгоритма.
Умение воспринимать и исполнять разрабатываемые фрагменты описания алгоритма.
9. Организация данных.
Как и в какой последовательности производить обработку; где и как фиксировать промежуточные и окончательные результаты работы алгоритма.
Методика обучения языку программирования в курсе информатики и ИТ
старшей школы (базовый уровень)
Достаточно хорошо известна методика изучения языков программирования с целью практического их освоения. Эта методика опирается на структуру самого объекта изучения – языка программирования (элементы языка – алфавит, синтаксис, оформление; организация действий над данными – ввод/вывод данных, работа с файлами, обработка данных (операции и выражения, операторы присваивания, ветвления, циклов, переходов, организация и использование подпрограмм); организация данных – типы и структуры данных).
Языки программирования делятся на две группы: машинно-ориентированные: Автокоды, Ассемблеры; языки программирования высокого уровня (ЯПВУ). В настоящее время практически все программисты пользуются языками высокого уровня. На любом языке программирования алгоритм решения задачи представляется через совокупность команд. Что такое команда на машинном языке, демонстрируется на примерах учебных компьютеров.
Изучение языков программирования высокого уровня в базовом курсе должно носить только ознакомительный характер. Наиболее целесообразно для начального знакомства с языками программирования использовать язык Паскаль. Основной принцип, заложенный в нем, - это поддержка структурной методики программирования. Этот же принцип лежит в основе учебного алгоритмического языка (АЯ). Поскольку в базовом курсе ставится только лишь цель первоначального знакомства с программированием, то строгого описания языка программирования не требуется. Основной используемый метод – демонстрация языка на примерах простых программ с краткими комментариями. Некоторые понятия достаточно воспринять ученикам на "интуитивном" уровне. Наглядность такого языка, как Паскаль, облегчает это восприятие. Кроме того, пониманию помогает аналогия между Паскалем и русскоязычным АЯ. Для выполнения учениками несложных самостоятельных заданий достаточно действовать методом «по образцу».
Учитель может задуматься над проблемой: как лучше связать изучение методов построения алгоритмов работы с величинами и языка программирования. Здесь возможны два варианта:
1) сначала рассматриваются всевозможные алгоритмы, для описания которых используются блок-схемы и АЯ, а затем – правила языка программирования, способы перевода построенных алгоритмов в программу на этом языке;
2) алгоритмизация и язык программирования осваиваются параллельно.
Теоретическое изучение алгоритмизации и программирования, оторванное от практики, малоэффективно. Желательно, чтобы ученики как можно раньше получили возможность проверять правильность своих алгоритмов, работая на компьютере. Метод последовательного изучения алгоритмизации и языка программирования приемлем лишь в "безмашинном" варианте.
Даже при использовании компьютера, на первом этапе рекомендуется не отказываться от ручной трассировки алгоритма. Этот прием помогает ученикам «почувствовать» процесс исполнения, увидеть свои ошибки, допущенные в алгоритме.
Обучение программированию должно проводиться на примерах типовых задач с постепенным усложнением структуры алгоритмов. По признаку алгоритмической структуры их можно классифицировать так:
§ линейные алгоритмы: вычисления по формулам, всевозможные пересылки значений переменных;
§ ветвящиеся алгоритмы: поиск наибольшего или наименьшего значений из нескольких данных; сортировка двух-трех значений; диалог с ветвлениями;
§ циклические алгоритмы: вычисление сумм и произведений числовых последовательностей, циклический ввод данных с последовательной обработкой.
Изучение языка программирования происходит в контексте решаемых задач, т.е. новые средства языка вводятся по мере необходимости для решения очередного типа задач. Программы, реализующие вспомогательные алгоритмы, называются подпрограммами. В Паскале есть два вида подпрограмм: подпрограммы-процедуры и подпрограммы-функции. При наличии дополнительного времени рекомендуется дать ученикам представление о подпрограммах
Методические
рекомендации no изучению систем программирования
В качестве исполнителя рассматривается компьютер, оснащенный определенной системой программирования (СП).
В каждой системе программирования можно выделить следующие компоненты: среда, режимы работы, система команд, данные. Под средой системы программирования, будем понимать обстановку на экране (системную оболочку), в которой работает пользователь СП. Для таких сред характерно наличие на экране двух компонент: окна редактора, на котором формируется текст программы, и меню команд переключения режимов работы системы.
Характерными режимами работы СП являются: 1) режим редактирования текста программы; 2) режим компиляции; 3) режим исполнения; 4) режим работы с файлами; 5) режим помощи; 6) режим отладки программы.
Режим редактирования обычно устанавливается автоматически.
Режим компиляции. Результатом компиляции является исполняемая программа, т. е. программа на языке машинных команд.
Режим исполнения. В компилирующих системах в этом режиме исполняется полученная после трансляции программа в машинных командах. Обычно исполнение программы начинается по команде RUN.
Режим работы с файлами. В файлах на внешних носителях система хранит тексты программ на исходном языке; программы, полученные в результате трансляции; исходные данные и конечные результаты. В файловом режиме выполняются традиционные операции: сохранить информацию в файле, прочитать информацию из файла , именовать файл и др.
Режим помощи позволяет программисту получить подсказку на экране, помогающую ему как в работе с системой, так и с языком программирования.
Режим отладки. В режиме отладки можно производить трассировку, пошаговое исполнение программы; можно следить за изменением определенных величин; Режим отладки предоставляет программисту удобные средства для поиска алгоритмических ошибок в программе.
Для СП данными являются файлы с текстами программ, с исходной и конечной информацией, связанной с решаемой задачей.