Публикация «Развитие алгоритмического мышления посредством использования сред программирования КУМИР и Pascal ABC»
Развитие алгоритмического мышления посредством использования сред программирования КУМИР и Pascal ABC
Примерная образовательная программа по информатике в соответствии с федеральными образовательными стандартами второго поколения предполагает следующие предметные результаты:
Развитие алгоритмического мышления как необходимого условия профессиональной деятельности в современном обществе, предполагающего способность учащегося разбивать сложные задачи на более простые подзадачи; сравнивать новые задачи с задачами, решенными ранее; определять шаги для достижения результата и т.д.
Сформированность алгоритмической культуры, предполагающей понимание сущности алгоритма и его свойств; умение составить и записать алгоритм для конкретного исполнителя с помощью определенных средств и методов описания; знание основных алгоритмических структур - линейной, условной и циклической; умение воспринимать и исполнять разрабатываемые фрагменты алгоритма и т.д.
Владение умениями записи несложного алгоритма обработки данных на изучаемом языке программирования (одном из перечня: Школьный Алгоритмический Язык, Паскаль, Python, Java, C, C#, C++), отладки и выполнения полученной программы в используемой среде программирования.
При всей четкости постановки целей ( формулировки результатов) наблюдаются и некоторые противоречия:
Отсутствует общепризнанное определение понятия «алгоритмическое мышление». Разные авторы понимают его по разному . Алгоритмическое мышление можно понимать, как систему мыслительных приёмов направленных на решение задач. Алгоритмическое мышление – это совокупность мыслительных действий и приемов, нацеленных на решение задач, в результате которых создается алгоритм, являющийся специфическим продуктом человеческой деятельности. То есть требование развивать алгоритмическое мышление есть, а его четкого определения нет.
Линия алгоритмизации не поддерживается на должном уровне. Линия алгоритмизации является, вероятно, самой главной в программе по информатике, ведь именно задания этой линии выносятся на олимпиады. Однако, автор УМК , по которому я работаю, Босова Л.Л. признает тот факт, что эта линия не поддерживается на должном уровне в курсе информатики 7 -9 классов (Вебинар 27 ноября 2017). В 5 и 6 классах информатика и вовсе может не изучаться, а если и изучается, то линии программирования до последних изменений в программе не находилось места совсем. В среднем на изучение линии программирования отводится примерно 1/3 часть всего времени, но и этого явно недостаточно при 1 часе в неделю. Второго же часа, на который рассчитывал автор программы так и не появилось. Процесс перехода на обновленный ФГОС привнес в программу по информатике четвертую линию – линию цифровой грамотности. Несомненно, темпы развития цифровых технологий диктуют необходимость введения этой линии, но при этом число часов на изучение предмета не увеличилось, а значит и времени на изучение линии алгоритмизации станет ещё меньше.
Нет непрерывного курса изучения программирования. Это ещё одна проблема, которая препятствует развитию алгоритмического мышления на должном уровне. Программа по информатике 5-6 и 7-9 классах несколько раз претерпевала изменения, но или в 7, или 8 классах линия алгоритмизации не изучалась, то есть изучение линии прерывается на целый год, очевидно, что этот момент отражается негативно на формировании предметных результатов связанных с алгоритмизацией и программированием.
Есть и другие трудности, не связанные с программой:
В обществе сформировалось ошибочное мнение, что информатика и программирование интересны всем обучающимся.
Родители часто убеждены, ребёнок должен быть успешен в изучении информатики и программирования, так как проводит много времени за компьютером, планшетом, смартфоном.
Ученик сразу хочет получить результат, а в случае программирования это бывает редко.
Использование в обучении «неудачных» языков программирования.
Излишнее разнообразие языков программирования и исполнителей.
Наличие готовых решений к весьма хорошему задачнику Абрамяна в сети Интернет ( эта проблема, пожалуй, относится ко всем учебным предметам).
Чтобы разобраться, как появилось понятие «алгоритмическое мышление» обратимся так сказать к истокам возникновения учебного предмета – Информатика.
В момент появления информатики в советской школе понятия алгоритмического мышления не существовало. Основоположником отечественной информатики по праву считается Ершов А. П, который вовсе не оперировал данным понятием, а говорил о развитии операционного мышления. Его последователь Кушниренко А. Г. пользовался понятием «Алгоритмический стиль мышления». По Кушниренко: это способность читать чужой алгоритм и разрабатывать свои алгоритмы. Из всего разнообразия определений, на мой взгляд особо заслуживает внимание следующее:
Алгоритмическое мышление – это совокупность мыслительных действий и приемов, нацеленных на решение задач, в результате которых создается алгоритм, являющийся специфическим продуктом человеческой деятельности.
Теперь мы понимаем, что такое алгоритмическое мышление, которое необходимо формировать и развивать. Теперь нужно определиться с языками программирования. В этом вопросе я согласен с автором программы и УМК, который предлагает изучать КУМИР и Pascal. При выборе языков программирования порой приходится спорить как с коллегами, так и с «продвинутыми» учениками. И те и другие считаю эти языки и не модными, и старыми и даже мертвыми. Не любят их в основном за то, что на них настоящие программисты не пишут программ. Но тут нужно отдавать себе отчет в том, что язык программирования в школе не является целью изучения, а является средством формирования алгоритмической культуры и алгоритмического мышления.
Указанные выше языки на мой взгляд весьма удачны для изучения в школе, имеют простой синтаксис, отладчик программ, нетребовательны к ресурсам компьютера, кроме того КУМИР имеет набор исполнителей, что делает этот язык пригодным для изучения в 5-7 классах.
Последнее, с чем предстоит разобраться – как реализовать непрерывное изучение линии алгоритмизации. Этот момент самый сложный, поскольку требует смелости вмешаться и несколько изменить примерную рабочую программу. И если у Вас эта смелость есть, то я готов поделиться со своим вариантом реализации этой идеи.
Курс информатики 5 класса очень насыщен практическими работами, примерно половина занятий предполагает работу детей за компьютерами. Значит нужно отыскать среди уроков такие, в которых практические работы не предусмотрены, или эти работы можно безболезненно перенести или объединить.
Удобнее это сделать начиная с урока 26 . Практическую работу №16 «Выполняем вычисления с помощью программы калькулятор» не проводить, к концу 5 класса дети уже пользуются калькулятором, и большого вреда от этого не будет, или перенести данную работу в один из резервных уроков. Практические работы №17 «Создание движущихся изображений» и 18 «Создаем анимацию по собственному замыслу» объединить, поскольку по сути они дублируют друг друга. В итоге появляются пять уроков, в которых можно выполнить практические работы в системе программирования КУМИР с исполнителем «Черепаха».
Конечно, пять занятий это совсем мало, но на них дети познакомятся со средой программирования, исполнителем, его командами, линейным и циклическими алгоритмами, пусть пока в виде забавной игры. Но только это не игра, это первые шаги детей в программировании.
Для реализации этих практических работ потребуется система программирования КУМИР версии 1,9 или 2,1 и наборы заданий. Наборы заданий прилагаются в папках, название папки совпадает с названием практической работы. Задание представляет собой графический файл, на котором изображен конечный результат работы алгоритма для исполнителя. К каждому занятию разработано по 10 вариантов заданий. Этого количества должно хватить и для демонстрации решения учителем, и для работы детей даже по вариантам, и для того, чтобы загрузить работой детей, которые выполняют задания существенно быстрее сверстников. Шестая папка предназначена для обучающихся, которые уже знакомы со средой программирования и исполнителем. Всего представлено 60 файлов-заданий.
В шестом классе целесообразно сократить число изучаемых исполнителей до двух: «Черепаха» и «Чертежник». Простейшие исполнители «Кузнечик» и «Водолей» дают лишь представление о таких понятиях как исполнитель, алгоритм и линейный алгоритм, а с этими понятиями детей можно познакомить при работе с любым другим исполнителем. Кроме этого данные исполнители имеют свою, не применяемую нигде больше систему команд, что приводит к некоторой путанице у учащихся в командах.
Исходя из этого, предполагается следующий план изучения темы «Алгоритмизация и основы программирования»
Первое задание будет посвящено исполнителю «Черепаха», это позволит обучающимся вспомнить основы работы со средой программирования КУМИР. Дальнейшие занятия будут посвящены изучению системы команд исполнителя «Чертежник», цикла N раз, вспомогательных алгоритмов. Для изучения программирования по предложенному варианту разработано 6 папок заданий, по 10 в каждой. Этого количества вполне достаточно для реализации задуманного.
В седьмом классе изучение темы Алгоритмизация и программирование не предусмотрено, однако её изучение целесообразно ввести в курс, пусть даже небольшое количество часов. Здесь можно познакомить с ветвлением, циклом с предусловием и составным условием, т. е. Со всем тем, что нельзя было изучить с другими исполнителями.
План изучения темы следующий:
Изучить тему можно параллельно с изучением темы 2 «Компьютер как универсальное устройство для работы с информацией». Материал этой темы совсем не сложен, практические работы в ней не предусмотрены( для 1 часовой программы).
Для выполнения каждой практической работы разработаны задания: для составления линейного алгоритма 10, для изучения цикла N-раз – 10, для изучения цикла ПОКА – 17, для изучения ветвления ЕСЛИ -10, итого 47 заданий. Каждое из заданий «линейный» и « цикл N-раз» представляет собой обстановку, в которой отмечены закрашиваемые клетки и графический файл, соответствующий этой обстановке. Использование готовой обстановки позволяет экономить время на редактировании обстановки и приступить непосредственно к написанию алгоритма. Графический файл позволяет учителю вывести обстановку на доску и провести необходимые пояснения. Кроме того, по графическому файлу можно быстро ориентироваться в сложности заданий. Каждое из заданий «ПОКА» и «ЕСЛИ» содержит по две обстановки и по одному графическому файлу. Вторая обстановка нужна для проверки программы в другой ситуации. Этот вариант построения занятия позволит сформировать понятие «стена неизвестной длины» и т.п, что необходимо в дальнейшем для успешного решения задания ОГЭ 15.1
В итоге, к концу 7 класса будут изучены все основные алгоритмические структуры, которые возможно изучить при помощи исполнителей системы программирования КУМИР (кроме вспомогательного алгоритма с аргументами ).
До 2019 года в восьмом классе при изучении темы «Основы алгоритмизации» основной упор делался на язык программирования КУМир без использования исполнителей. Для изучения этого модуля был разработан мини-задачник из 90 задач. Однако в случае наличия сильного класса принималось решение с 8 класса переходить к языку Pascal. В девятом классе отводилось 2 часа в неделю, и линия алгоритмизации изучалась с использованием языка Pascal. Это позволяло к концу 9 класса изучить язык Pascal на достаточном уровне. Для изучения языка Pascal тоже был составлен небольшой задачник из 50 заданий. При наличии задачника Абрамяна, необходимость разработки собственных заданий была вызвана наличием всех заданий задачника Абрамяна в сети Интернет с разбором решений, и обучающиеся зачастую не утруждали себя написанием алгоритма, старались списать готовое решение.
С 2019 года в распределении содержания программы по информатике произошли изменения, все, что касалось КУМИРа без исполнителей было исключено, материал 9 класса был распределен между 8 и 9 классами, в 9 классе остался 1 час в неделю. Упомянутые выше задачники можно использовать и при таком распределении материала.
Если проанализировать качество знаний по темам линии алгоритмизации в отдельных классах то можно убедиться, что все вышеописанные решения положительно повлияли на успеваемость обучающихся.
Представлены диаграммы качества знаний обучающихся 6, 7 и 9 классов.
Таким образом, мною была предпринята попытка оптимизировать программу по информатике в 5 – 9 классах с целью создания благоприятных условий для формирования и развития алгоритмического мышления путём непрерывного изучения линии алгоритмизации в указанных классах. Анализ успеваемости подтверждает целесообразность подобных решений.
Литература и источники:
Вебинар Босовой Л.Л. «Работаем по ФГОС. Традиции и инновации преподавания информатики в основной и старшей школе»
Гейн А.Г. Методика изучения алгоритмизации с помощью учебных исполнителей Книга для учителя Екатеринбург, 2011
Ершов А. П. Компьютеризация школы и математическое образование // Информатика и образование. - 1992. - №5-6. - с.3-12
Звонкин А.К., Кулаков А.Г., Ландо С.К., Семенов А.Л., Шень А.Х. Алгоритмика – М.: Дрофа, 1997
Кушниренко А.Г. и др. Основы информатики и вычислительной техники. – М.: Просвещение, 1991.
Лапчик М.П., Семакин И.Г., Хеннер Е.К. Методика преподавания информатики. – М.: "Академия", 2007.