Методика обучения основам программирования на уроках информатики X-XI классов

Вид материалаУрок

Содержание


Алгоритмы и программирование
Контрольная работа №2
Подобный материал:
Карагулов Д.К., Шаврова Н.А.

КГУ им.И.Арабаева


МЕТОДИКА ОБУЧЕНИЯ ОСНОВАМ ПРОГРАММИРОВАНИЯ НА УРОКАХ ИНФОРМАТИКИ X-XI КЛАССОВ


История создания языков программирования тесно связана с историей развития компьютеров. За прошедшие с сороковых годов десятилетия были созданы тысячи языков программирования высокого уровня. Самыми популярными языками программирования последней трети 20 века являлись Бейсик, Паскаль и Си. Кроме того к началу 21-века резкие развития аппаратного и программного обеспечения и оснащения им учебных заведений курс информатики претерпел существенные изменения. Основное внимание в большинстве школ стало уделяться освоению современных информационных технологий. Эти тенденции отражены и в новом «стандарте по информатике».

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

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

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

- обеспечение базовой грамотности (знакомство учащихся с элементами теоретической информатики);

- развитие специфических форм мышления – алгоритмического и системного мышления;

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

Базовый курс информатики предназначен для изучения предмета в VII-IX классах общеобразовательных учебных заведений, оснащенных кабинетами вычислительной техники. На основании базового курса по национальному (Республика Кыргызстан) учебному плану всего предполагается 170 учебных часов. Во многих общеобразовательных учреждениях изучение предмета курса информатики расширяется часами за счет школьных и региональных компонентов, за счет дополнительных услуг и программа обучения курса информатики разрабатывается учителями.

Мы предлагаем примерные план и основные понятия для изучения курса алгоритмизации в 10-11 классах.
АЛГОРИТМЫ И ПРОГРАММИРОВАНИЕ

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

Теоретическая часть.

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

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

Знакомство с одним из языков программирования. Структура программы. Идентификаторы и переменные. Типы данных. Основные структуры данных. Переменная: имя, тип, значение. Массив: имя, тип данных, размерность, адресация.

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

Практическая часть.

1. Построение блок-схемы алгоритма, записанного на естественном языке.

2. Построение и исполнение простых алгоритмов в системе команд заданного исполнителя (в том числе кыргызском языке).

3. Кодирование заданного в виде блок-схемы алгоритма на языке программирования, ввод и исполнение полученной программы.

Требование к уровню подготовки. После изучения материала данного раздела учащийся должен:

иметь представление о (об):

- свойствах исполнителя (система команд, среда, система проверяемых условий, элементарные действия);

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

знать:

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

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

- способы описания алгоритмов;

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

уметь:

- приводить примеры алгоритмов, перечислять свойства алгоритма;

- определять возможность применения исполнителя для решения конкретной задачи по системе его команд, построить и исполнить на компьютере алгоритм для учебного исполнителя;

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

Для понятия алгоритмического языка учащиеся X-XI классов должны знать основные понятия: величины, виды задач информатики, алгоритмический язык.

Теоретическая часть.

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

Введение в программирование. Основные понятия: язык программирования, программа, алфавит и конструкция, операторы языка программирования.

Теоретическая часть.

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

Практическая часть.

Кодирование алгоритма на языке программирования, ввод и исполнение готовой программы. Разработка готовых программ.

Требование к уровню подготовки. После изучения данного раздела учащийся должен:

Знать: - о том, что язык программирования является одним из средств описания алгоритмов;

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

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


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





Учебный материал

1

Лекция 1. Обучение программированию.

2

Лекция 2. Числовые типы данных. Оператор присваивания.

3

Лекция 3. Логические величины. Условные операторы.

Контрольная работа №1

4

Лекция 4. Операторы цикла. Суммирование числовых рядов. Задачи на системы счисления.

5

Лекция 5. Массивы в языке программирования

Контрольная работа №2


6

Лекция 6. Порядковые типы данных

7

Лекция 7. Текстовые файлы. Вычислительная сложность алгоритма. Алгоритмы сортировки и поиска

8

Лекция 8. Процедуры и функции. Передача параметров. Рекурсия.


В рамках выделенных часов, отведенных «Примерной программой» в базовом курсе информатики на алгоритмизацию и программирование, овладение даже основами программирования на современных алгоритмических языках представляется невозможным. Тем не менее, контингент школьников, у которых интерес именно к изучению, а не знакомству с программированием высок, несомненно, существует. В первую очередь это учащиеся физико-математических школ, гимназий, лицеев и гимназических классов общеобразовательных школ. У большинства из них есть как мотивация, так и способность к освоению программирования. Учебные планы подобных образовательных учреждений, в которых на основание информатики и информационных технологий отводится обычно не менее часа, начиная с пятого класса, не менее двух с восьмого и до четырех часов в 10 – 11 классах, так же играют положительную роль. Мотивация есть и у учителя ведь большинство современных олимпиад по информатике являются по своей сути олимпиадами по программированию, а по успехам учеников в олимпиадах зачастую судят о квалификации учителя, хотя в случае с информатикой это далеко не бесспорно. Кроме того, любовь к программированию многие учителя информатики принесли из своей профессиональной деятельности, и, конечно же, им хочется передать эту любовь и своим ученикам.

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

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

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

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

При работе с 10 – 11- классами используются в основном первый, формальный подход. При этом некоторыми неформальными умениями эти школьники чаще всего уже обладают. Одна из задач школьной информатики – научить именно формальному подходу, в частности, при применении различных определений. И формальное изучение языка программирования этому немало способствует. Но и без хороших примеров при обучении программированию школьников не обойтись. И чем младше ученики, тем больше примеров необходимо приводить при описании языка (иногда даже заменяя ими строгое определение). Другое дело, что, на наш взгляд, следует добиваться того, чтобы в результате обсуждения примера все его детали оказались понятны школьникам (обязательно нужно объяснить, как и почему это работает, в том числе опираясь на уже изученный формальный материал). В этом случае сильные ученики получат возможность понять все досконально и смогут использовать полученные знания в дальнейшем, а средние - приобретут конкретные навыки и оставят для себя возможность вернутся при необходимости к формальным определениям позже.

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

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

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

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

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