Научная статья на тему 'Использование навыков программирования при решении прикладных задач в средней школе'

Использование навыков программирования при решении прикладных задач в средней школе Текст научной статьи по специальности «Математика»

CC BY
359
51
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Использование навыков программирования при решении прикладных задач в средней школе»

Использование навыков программирования при решении

прикладных задач в средней школе1

В. О. Дженжер, Оренбургский государственный педагогический университет, зав. кафедрой информатики, vdienier@vandex.ru: Л. В. Денисов, Оренбургский государственный педагогический

университет, доцент кафедры информатики, lv-denisova@ vandex.ru

Введение

Сегодня приходится с сожалением признать, что введение в среднюю школу курса информатики мало сказалось на способах преподавания других предметов. Одним из самых заметных итогов «информатизации» является широкое внедрение информационно -технологического компонента: текстовый процессор для написания докладов и рефератов (а впоследствии — курсовых и дипломных работ); Интернет-браузер для собирания информации (или просто для реализации известной технологии «Copy-Paste»); программа подготовки презентаций. Пожалуй, на этом можно завершить описание наиболее востребованных школой информационных и коммуникационных технологий. Из менее востребованных можно отметить мультимедийные ресурсы (в основном всевозможные программы на CD) по различным дисциплинам. Нам думается, что дидактическая ценность таких средств несколько преувеличена, но их наличие всё-таки является практически обязательным для «современного» учебно-методического комплекса.

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

Хочется присоединиться к многократно озвученной, но до сих пор не везде осознанной (и не всеми признанной) идее: компьютер можно и нужно применять гораздо более эффективно, причём как в школе, так и дома. И не только на уроках информатики. Однако не всегда понятно, как это можно сделать в данном конкретном случае. Наш основной тезис, на котором хотелось бы остановиться подробнее, состоит в том, что применение компьютеров зачастую позволяет снизить порог

i

Исследования выполнены при поддержке Рособразования в рамках реализации АВЦП «Развитие научного потенциала высшей школы» (2009-2010 годы) (№ 3.1.2/4125).

вхождения ученика в круг интересных математических и физических задач.

Задачи и задачи

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

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

На чём программировать

Существует огромное множество языков программирования. Некоторые из них изучаются в школах по всему миру. Новые языки появляются, когда возникают новые типы проблем, либо когда появляются новые ways of thinking (A. Kay), более наглядные или более эффективные.

Языки программирования для школьников выбираются в соответствии с целями, которые ставит перед собой педагог. Например, для развития алгоритмического мышления можно использовать систему КуМир. Если мы хотим обучать традиционному для России языку программирования — это, по всей вероятности, будет Pascal (Turbo, Free, ABC...). Если объектно-ориентированному — Delphi, C++, C#, Java. Возникает вопрос: на каком варианте нам следует остановиться, если мы хотим сосредоточиться на решении интересных задач по физике и математике?

Так случилось, что мы сейчас работаем с учениками 2-5 классов в МОУ «Гимназия № 3» г. Оренбурга. Базовый курс информатики у них ещё впереди, как и изучение «серьёзного» языка программирования.

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

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

• простой интерфейс, лёгкость написания и чтения программ;

• объектная ориентированность;

• простота работы с графикой, в том числе динамической;

• русскоязычный интерфейс;

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

Очевидно, что вышеперечисленные языки нам не подходят. Тем не менее, «претендентов» отыскалось достаточно, и мы начали их понемногу отсеивать. Squeak, являющийся реализацией Smalltalk, как оказалось, имеет довольно сложный интерфейс для младших школьников. Greenfoot, построенный на Java, слишком абстрактен. Logo (Логомиры) требуют написания текста программ вручную. Кроме того, как и ПервоЛого, это не бесплатный продукт. Сегодня его стоимость составляет 11-13 тыс. руб. на компьютерный класс, причём для установки на домашний компьютер ученик должен приобрести дополнительную лицензию (около 500 руб.). StarLogo TNG и NetLogo — англоязычны.

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

Первая задача

Так случилось, что первая задача была решена при помощи Scratch в достаточной степени случайно. Во время прогулки четверо наших подопечных задумались о том, что будет, если они встанут в вершинах квадрата и одновременно начнут движение в направлении соседа справа? Задача эта известная (нам, но не детям) и была многократно опубликована в разных вариациях, например, в [0, с. 274] и [0, с. 80]. Рассмотрим текст задачи по второму источнику.

Задача 1: Четыре ракеты. Четыре самонаводящиеся ракеты выпущены одновременно из вершин единичного квадрата AiA2A3A4. Ракета, выпущенная из Ai, летит всё время по направлению к ракете, выпущенной из A2. Ракета, выпущенная из A2 по направлению к ракете,

выпущенной из A3, и т. д. Скорости всех ракет равны. Каков путь каждой ракеты до столкновения?

По мнению авторов [0], задача предназначена для одиннадцатого класса. Действительно, обычный четвероклассник её не осилит: он не сможет подступиться. Ведь не понятно, как будут двигаться эти ракеты. Наши дети долго спорили. Один говорил, что они будут ходить по окружности и поэтому никогда не встретятся. Другой утверждал, что по спирали. Мнения разделились. Провели несколько экспериментов, которые, в конце концов, превращались в «куча-малу» и ещё больше всё запутали. После описанных событий один из участников вернулся домой с задачей в голове. Он запустил Scratch, и за пять минут набросал проект, в котором четыре точки движутся по описанным выше правилам. При движении точки оставляли за собой следы, так что можно было увидеть их траектории. Таймер, размещённый на экране, позволял оценить время движения.

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

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

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

В-третьих, проект даёт пищу для дальнейших размышлений. Скажем, после проведения «основного эксперимента» автор программы поменял начальное расположение ракет (точек) и увидел другие траектории. То же самое произошло, когда скорости объектов стали разными. К слову сказать, при таких условиях исходная задача становится гораздо более сложной, но при наличии проекта мы хотя бы имеем некоторое представление о характере движения объектов. Затем было изменено количество движущихся объектов: два (простейший случай), три, пять, девять... Таким образом были порождены новые задачи. Они не были решены? Да, но, как утверждал в своей книге [0] А. К. Звонкин, вопросы важнее ответов. Со временем ребёнок вернётся к этой задаче. А если нет, то, по словам того же А. К. Звонкина, ничего страшного — хорошо поиграли.

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

заранее приготовлены для проведения занятия. Например, в большинстве случаев ребята используют параллельные конструкции, а это часто приводит к проблемам синхронизации. Мы уже рассматривали подобные вопросы в [0].

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

Другие задачи

Идеально, если задачи появляются у самих ребят. Такие проблемы обычно решаются гораздо с большим интересом, нежели предложенные преподавателем. Но это большая редкость, особенно вначале. Поэтому мы обычно предлагаем заранее заготовленные темы для микропроектов. Приведём несколько примеров задач, которые, на наш взгляд, годятся для решения (или хотя бы осмысления) в младшей и в основной школе при поддержке языка программирования Scratch.

Задача 2: Средняя скорость. Автомобиль движется из пункта А в пункт В со скоростью vi, а в обратном направлении со скоростью v2. Показать, что средняя скорость при движении туда и обратно не равна среднему арифметическому скоростей vi и V2. Какому среднему на самом деле равна средняя скорость?

Задача 3: Встречный ветер. Самолёт летит из пункта А в пункт В со скоростью v, а затем движется в обратном направлении с той же скоростью. На пути из А в В самолёт летит по ветру, скорость которого и. На обратном пути самолёт летит уже против ветра, который дует с той же скоростью. Когда самолёт вернётся в пункт А быстрее: когда дует ветер или в безветренную погоду?

Задача 4: Циклоида. Колесо движется по дороге. К его ободу на расстоянии a от внешнего края прилепился листочек. Какую траекторию будет описывать листочек при движении колеса?

Задача 5: Ахиллес и черепаха. Реализовать известный парадокс Зенона и проверить, догонит ли Ахиллес черепаху.

Задача 6: Задача о козе [0, с. 64]. Коза привязана в точке на границе круглого поля с радиусом 10 метров. Какой длины должна быть верёвка, чтобы коза могла щипать траву ровно на половине площади поля?

Эти задачи довольно сложны для школьников 3-6 классов, а последняя из них вполне годится для студентов вуза. Тем не менее, с

использованием Scratch модели описанных процессов могут быть построены даже младшими школьниками и подростками.

Литература

1. Коваль С. От развлечения к знаниям. Математическая смесь. — Warszawa: Wydawnictwa naukowo-techniczne, 1972. — 539 с.

2. Канель-Белов А. Я., Ковальджи А. К. Как решают нестандартные задачи — М.: МЦНМО, 2008. — 96 c.

3. А. К. Звонкин. Малыши и математика. Домашний кружок для дошкольников — М.: МЦНМО, 2008 г. — 240 с.

4. Чен К., Джиблинг П., Ирвинг А. MATLAB в математических исследованиях: Пер. с англ. — М.: Мир, 2001. — 346 с.

5. Денисова Л. В., Дженжер В. О. Пропедевтика идей параллельного программирования в средней школе при помощи среды Scratch / Современные информационные технологии и ИТ-образование: III Межд. науч.-практ. конф., Москва, МГУ имени М. В. Ломоносова, 2008 г.: Сб. докладов: Учебно-методическое пособие / Под ред. В. А. Сухомлина. — М.: МАКС Пресс, 2008. — С 451-459.

i Надоели баннеры? Вы всегда можете отключить рекламу.