В настоящее время в курсе информатики наиболее трудным для понимания и изучения является линия программирования и алгоритмизации. Учащиеся не могут сразу понять практической значимости изучения программирования, так как методика преподавания программирования часто сводится к изучению особенностей использования основных конструкций конкретного языка программирования. Специальная литература по программированию раскрывает в основном конструкции языка и особенности их применения, исходя из логики и правил построения самого языка.
Время, отведенное учебным планом на курс, ограничено. В связи с этим максимальный объем информации можно в него вместить только при условии, если строго изложить формальные конструкции языка и решить минимум задач, необходимый для первоначального закрепления теоретического материала.
Поэтому традиционно объяснение нового материала сводится к введению новых операторов программирования или встроенных функций. Учащимся предлагается алгоритмическая конструкция в виде блок-схемы, затем вводится оператор, с помощью которого можно реализовать данную конструкцию на языке программирования, указываются его ключевые слова, параметры, правила и особенности применения. Далее предлагается ряд задач, при решении которых можно использовать данный оператор, причем под решением задачи чаще всего понимается составление программы и ее отладка. Схема логичная, привычная и методически грамотная с точки зрения принципов научности, понятности, наглядности. Но в ней отсутствует очень важный аспект: изначальная заинтересованность обучаемых в изучении темы.
Целью обучения программированию ставлю не формальное изучение конструкций языка, а умение применять полученные сведения для решения практических, жизненных задач, поэтому, во время обучения учащихся программированию всегда использую задачный подход, основными компонентами которого являются вопросы, связанные с моделированием и формализацией. Ввод каждого нового оператора или функции происходит при решении специально подобранной задачи, когда возникает необходимость записать на формальном языке определенное, состоящее из формальных шагов действие, требуемое по ходу решения.
Отсюда – основная цель, которую ставлю перед собой: построить изложение материала таким образом, чтобы учащиеся осознали, что написание правильной программы не является самоцелью. При решении задачи наиболее важно выдвинуть и обосновать идею ее решения (правильно поставить задачу), уметь сконструировать эту идею, а затем уже формализовывать ее средствами языка программирования.
Поэтому при отборе задач руководствуюсь следующими правилами:
- задача, на примере которой проводится объяснение нового материала, выбирается содержательная, практически значимая, интересная;
- при решении задачи вводится не более одного-двух новых операторов языка или стандартных функций;
- задача формулируется не четко. Ее условия доопределяются в процессе диалога с учениками (формирование исходных данных, результатов);
- задача, на примере которой проводится закрепление изученного материала, должна предусматривать использование изученного оператора в “модифицированном” виде, отражающем другие аспекты его применения.
Например, целью объяснения нового материала является введение нового оператора языка, который описывает алгоритмическую конструкцию “Ветвление”. Предлагаю следующую задачу: “Услуги телефонной сети оплачиваются по следующему правилу: разговоры объемом до 100 мин. в месяц оплачиваются в размере В рублей, а разговоры сверх установленной нормы оплачиваются из расчета С рублей в минуту. Составить алгоритм вычисления платы за пользование телефоном для введенного времени разговоров в месяц”.
Первый этап работы – это создание описательной информационной модели. При создании такой модели выделяются существенные параметры для решения задачи, и таким образом мы доопределяем условие задачи. Уточнение происходит в процессе диалога, в результате которого учащиеся отвечают на следующие вопросы:
1. Что дано в задаче? Назовите аргументы.
а) 100 мин. – постоянная величина, обозначающая границу перехода от одного варианта оплаты к другому.
б) Стоимость оплаты этой нормы – В. Это переменная, ее нужно будет определить в начале алгоритма.
в) Стоимость оплаты минуты разговора сверх нормы – С. Тоже переменная величина, определяется в начале алгоритма.
г) Еще должно быть дано время разговора за месяц для оплаты. Обозначим его через V.
2. Что является результатом в этой задаче?
а) Сумма оплаты V мин. разговора. Обозначим ее через S.
Следующий этап работы – это создание математической модели, т.е. описательная информационная модель с помощью математических формул, уравнений или неравенств превращается в математическую. Предлагаю учащимся самим выбрать метод решения задачи, т.е. вспомнить известные им математические формулы и с их помощью составить модель решения задачи.
Необходимо найти S. Составляем выражения для нахождения этой величины.
если V <= 100, то S=В;
если V > 100, то S = В + С* (V–100).
Далее, внимание учащихся концентрирую на том, что в отличие от линейных алгоритмов, где действия выполняются строго последовательно друг за другом, у нас появилось условие, в зависимости от выполнения или невыполнения которого формируется результат решения задачи.
На следующем этапе работы математическую модель необходимо превратить в компьютерную – построить алгоритм решения задачи и закодировать алгоритм на языке программирования. При построении алгоритма ввожу понятие “ветвление” и новый оператор перехода по условию.
<Рисунок 1>
IF <условие> THEN (действие 1) ELSE (действие 2)
Для закрепления изученного материала использую задачу, в которой используются два вида алгоритмической структуры “Ветвление” – структура полного ветвления и структура неполного ветвления: “К финалу конкурса лучшего по профессии “Специалист электронного офиса” были допущены трое – Федоров, Петров, Сидоров. Соревнования проходили в три тура. В первом туре Федоров набрал F1 баллов, во втором – F2, в третьем F3, Петров – соответственно P1, P2, P3, Сидоров – S1, S2, S3. Сколько баллов набрал победитель?
Решение.
1. Что дано в задаче? Назовите аргументы.
а) Количество баллов, набранных Федоровым: F1, F2, F3.
б) Количество баллов, набранных Петровым: P1, P2, P3.
в) Количество баллов, набранных Сидоровым: S1, S2, S3.
Какого типа будут значения этих чисел? (Целые.)
2. Что является результатом в этой задаче? Количество баллов, набранное победителем. Обозначим его через МАХ.
3. Нужны какие-нибудь промежуточные величины? Обозначим их соответственно F, Р, S – это суммы баллов, набранные каждым участником. Запишем выражения для нахождения этих величин.
F = F1 + F2 + F3
P = P1 + P2 + P3
S = S1 + S2 + S3
Определим сначала большее среди первых двух значений – F, P – и запишем его в переменную МАХ. Затем найдем большее среди найденного значения и третьей величины S. Для того, чтобы это сделать в алгоритм необходимо ввести два последовательных ветвления – полное, с которым мы уже знакомы и неполное ветвление, в котором действия выполняются только в том случае, когда победителем является третий участник – Сидоров:
IF <условие> THEN (действие 1)
<Рисунок 2>
Итак, на уроке мы разобрали две различные задачи, в которых использовалась алгоритмическая конструкция “Ветвление”, познакомились, как формализуется описательная постановка задачи на языке программирования, познакомились как с помощью операторов полного и неполного ветвления осуществляется выбор большего значения переменной из трех.
В следующей таблице привожу основные этапы решения задач при использовании задачного подхода в обучении программированию.
Таблица 1
Этапы решения задачи |
Ожидаемый результат |
Дидактическая цель этапа |
Знакомство с текстом задачи и его обсуждение | Выявление проблемы задачи | Выделение аспектов, существенных для ответа на вопрос задачи |
Выдвижение подходов к решению задачи | Выбор метода решения задачи | Формулирование идеи решения на языке “данные – операции над данными” |
Информационное моделирование условий задачи | Построение информационной или математической модели задачи | Формирование умений и закрепление навыков информационного моделирования |
Выделение основных этапов решения задачи | Построение формализованного алгоритма | Формирование умений и закрепление навыков структуризации алгоритма |
Определение, какие данные (переменные, константы) потребуются для реализации каждого из этапов | Введение и описание для каждого из этапов основных и вспомогательных переменных | Формирование умений и закрепление навыков структурирования данных |
Определение, с помощью каких средств языка программирования можно реализовать незнакомый этап решения | Формализация наиболее непонятного этапа, запись его в виде фрагмента программы | Знакомство с новым оператором или функцией. Формализация этапа решения по правилам вводимого оператора |
Составление программы отдельных фрагментов | Получение всех фрагментов, из которых будет состоять программа | Установление и проверка правильности взаимосвязей отдельных частей целого |
Ввод и отладка программы | Получение правильно работающей программы | Закрепление навыков по правилам среды программирования |
Обсуждение возможности модификации программы при решении подобных задач | Выводы об адекватности программы смыслу и цели решения исходной задачи | Формирования умения анализировать и оценивать результаты деятельности |
При изучении программного обеспечения и информационно-коммуникационных технологий задачный подход имеет также существенные положительные стороны. В данном случае он состоит в применении последовательности взаимосвязанных задач, в которых результаты выполнения предыдущих заданий являются исходными данными для выполнения последующих. Таким образом, увязывается последовательность применения технических возможностей изучаемых программных продуктов, их “конвейер”.
Например, предлагаю следующий “конвейер задач”.
Средствами MS Word разрабатывается таблица итогов вступительных экзаменов в высшее учебное заведение. В качестве исходных данных используется сводная ведомость, сформированная на основе предоставленных абитуриентом документов и результатов вступительных испытаний. Далее привожу фрагмент таблицы, после обработки инструментами MS Word.
Таблица 2
Результаты вступительных экзаменов |
||||||||
Количество мест в бюджетных группах |
||||||||
Экономика |
Информационные технологии |
Техника |
||||||
6 |
6 |
10 |
||||||
№ п/п |
Фамилия ИО |
Дата рождения |
Пол |
Место жительства |
Стаж работы |
Количество баллов |
Вид испытаний |
Направление обучения |
1 |
Алексеев А.Д | 03.02.1991 | муж | др.регион | 0 |
13 |
э |
ИТ |
2 |
Андреева Т.А | 27.09.1992 | жен | СПб. | 1 |
14 |
о |
экономика |
3 |
Воронин Е.В. | 22.06.1992 | муж | Ленобласть | 0 |
11 |
э |
техника |
Затем, средствами MS Excel производится статистическая обработка итогов вступительных экзаменов. При выполнения этой задачи учащиеся активно используют инструментарий MS Excel: мастер функций, автозаполнение ячеек таблицы, визуализацию полученных результатов с помощью мастера диаграмм и т.д. При выполнении работы решаются следующие задачи:
- определение состава абитуриентов по стажу работы;
- определение среднего балла;
- определение регионального состава абитуриентов;
- определение состава абитуриентов по виду вступительных экзаменов.
Анализ результатов статистической обработки данных производится с помощью инструмент ария системы управления базами данных MS Access:
- сформировать фильтры для определения поступающих по направлениям обучения;
- сформировать запрос с полями “фамилия”, “направление”, “дата рождения”, “вид испытаний” для всех абитуриентов, поступающих на:
1) информационные технологии;
2) экономический факультет;
3) технический факультет;
- произвести сортировку по возрастанию записей по ключу “количество баллов”;
- сформировать сложный запрос для всех женщин-абитуриенток экономического факультета из Санкт-Петербурга.
Такие комплексы задач повышают интерес учащихся и обеспечивают лучшее понимание места и смысла применяемых приемов преобразования информации и получаемых результатов. Подбор заданий таким образом методически и практически подкрепляет тезис о том, что одна и та же информация может использоваться различными компьютерными программами в зависимости от специфики решаемой задачи.
В связи с этим больше внимания уделяется возможностям обмена данными между различными программными приложениями. Еще один важный методический прием состоит в решении одной и той же задачи в различных приложениях, с использованием того же или схожею набора исходных данных и сравнении полученных результатов. Например, тот же анализ результатов статистической обработки данных может производиться и с помощью инструментов MS Excel. Это способствует пониманию и правильной интерпретации полученных результатов.