Функциональная грамотность на уроках информатики при изучении программирования: от чтения кода к пониманию смыслов
Автор: Ганиева Алсу Гаязовна
Организация: МБОУ «СОШ №9»
Населенный пункт: Удмуртская Республика, г. Можга
Аннотация
В статье представлена методическая практика, направленная на повышение эффективности обучения школьников основам программирования через внедрение функционального чтения текстов программ. Автор приводит примеры специализированных заданий, способствующих развитию функциональной грамотности на уроках информатики, а также критерии оценки её сформированности у учащихся. Задания охватывают четыре ключевых вида деятельности, основанные на таксономии Блума: общее понимание текста программы, поиск и извлечение информации, обобщение и интерпретацию, а также рефлексию и оценку.
Ключевые слова: функциональное чтение, программный код, функциональная грамотность, программирование, критическое мышление, таксономия Блума, анализ программ, методика обучения информатике, задания по программированию, оценка сформированности грамотности.
1. Введение
Функциональная грамотность выходит за рамки простого умения читать и писать, она подразумевает способность применять полученные знания в реальных ситуациях, критически оценивать информацию и принимать обоснованные решения. Согласно Федеральной рабочей программе основного общего образования по информатике, одной из ключевых целей обучения является развитие функциональной грамотности учащихся в области информационных технологий. Важность навыков функционального чтения в развитии компетенций учеников отмечают И. Логвина и Л. Рождественская при изучении инструментов формирующего оценивания в деятельности учителя-предметника [6]. Исследователи А.А. Ковцун и А.Н. Кохичко определяют функциональную грамотность как совокупность знаний и умений, которые обеспечивают полноценное функционирование человека в современном обществе [3]. Включение в материалы по функциональному чтению нетипичных заданий, задания из разных областей знаний, с наличием некой реальной жизненной ситуацией, позволяет получать навыки решения жизненных задач, готовить детей к профессиональной деятельности. Это дает умение решать жизненные задачи в различных сферах деятельности на основе прикладных знаний, которые необходимы всем в быстроменяющемся обществе. Этот вывод находит отражение в работах многих авторов, например, С.Г. Вершловский и М.Д. Матюшкина - авторы исследования уровня функциональной грамотности выпускников школ [2] приходят к мнению, что «Функциональная грамотность выступает успешным условием адаптации молодых людей к окружающей среде», а В.В. Николина отмечает, что отечественная система образования ориентирована на формирование функциональной грамотности во многих аспектах [9, с.9-10] и неотъемлемой частью образовательного процесса выступают учебно-познавательные задачи.
Программирование традиционно считается одним из сложных разделов школьного курса информатики, играет ключевую роль в современном образовании, способствуя развитию логического мышления, креативности и навыков решения проблем у школьников. Изучение программирования не ограничивается подготовкой к будущей карьере в IT, оно формирует универсальные компетенции, востребованные в любой сфере деятельности. М.П. Лапчик и С.В. Кулева подчеркивают в своей статье «Современные подходы к развитию функциональной грамотности обучающихся на уроках информатики» [4], что функциональная грамотность — это ключевой навык для успешной адаптации обучающихся в цифровой среде, позволяющий эффективно использовать информацию в реальных жизненных ситуациях.
Однако традиционные подходы к преподаванию информатики часто не обеспечивают полноценного развития функциональной грамотности при изучении программирования. Учащиеся не всегда осознают смысл написанного кода, назначение определенных команд и переменных, способы их применения для решения новых задач. Это приводит к возникновению пробелов в знаниях и, как следствие, к потере интереса к программированию и предмету в целом.
В профессиональной сфере разработка программного обеспечения часто ведется в команде, где код передается от одного разработчика к другому. Это требует умения не только грамотно составлять код, но и читать и понимать чужой код. Специалисты по разработке программного обеспечения Н. Ловетт и М. ван Дейк считают, что чтение кода - это фундаментальный навык, которому недостаточно уделяется внимания в школьном образовании. В статье, описывающей 12 принципов эффективной педагогики в преподавании информатики, основанных на доказательных подходах, есть принцип, направленный на укрепление понимания структуры и функций программ через регулярные активности (debugging – поиск и исправление ошибок в коде для анализа логики программы, tracing – пошаговое отслеживание выполнение кода, предсказание вывода и изменение состояния). В связи с этим возникает необходимость в разработке и внедрении новых методических подходов, направленных на эффективное формирование функциональной грамотности при изучении тем, связанных с программированием.
2. Описание методической разработки
Функциональное чтение представляет собой способность эффективно воспринимать, анализировать и интерпретировать письменную информацию для достижения практических целей и решений повседневных задач. Этот процесс тесно связан с таксономией образовательных целей, предложенной Б. Блумом, поскольку требует активизации различных уровней когнитивной активности.
В своей классической работе "Taxonomy of Educational Objectives" Блум выделил шесть иерархических уровней когнитивной деятельности: знание, понимание, применение, анализ, синтез и оценка. Позднее исследователи пересмотрели эту таксономию, уточнив формулировки, но основной принцип остался неизменным - от нижних, более простых уровней (запоминание, понимание) к верхним, более сложным уровням (анализ, синтез, оценка).
Методическая практика базируется на адаптации таксономии Блума к обучению программирования. Разработки по функциональному чтению состоят из блоков, которые сформированы на основе уровней таксономии Блума. Эти уровни можно разделить на три блока, что упрощает планирование заданий и оценку усвоения материала, позволяя последовательно двигаться от базового понимания к сложному творческому мышлению:
Блок1: Общее понимание текста, поиск и извлечение информации - соответствует уровням "знание" и "понимание". Формируется основа, обеспечивающую понимание материала.
Блок 2: Преобразование и применение информации - соответствует уровням "применение" и "анализ". Способствует развитию навыков работы с информацией более глубоко и творчески.
Блок 3: Синтез и оценка - соответствует уровням "синтез" и "оценка". Направлен на формирование критического мышления и способности к интеграции знаний.
Основная идея предлагаемой технологии заключается в разработке методических приемов – специальных заданий к готовой программе на языке программирования, предназначенной для решения конкретной задачи.
При формировании материала для ученика необходимо учитывать возрастные особенности детей и уровни усвоения программы: соответствие объема, сложности, в соответствии с Рабочей образовательной программой основного общего образования.
В разработку важно включать нетипичные задания, задания из разных областей знаний. Это позволяет привносить межпредметный компонент и делает обучение более многогранным и интересным. Исследования подтверждают, что интеграция знаний из разных областей способствует комплексному развитию ключевых навыков учащихся [5].
Ученику предлагается для анализа текст программы, решающей определенную задачу, с использованием изученных команд языка программирования и алгоритмических конструкций. Формулировка задачи может быть, как явно заданной, так и подразумеваемой. Текст программы выделяется жирным шрифтом. Код программы может быть, как корректным, так и содержать ошибки, быть эффективным или неэффективным, представлять рациональное или нерациональное решение задачи. В программе могут отсутствовать явные отсылки к формулировке задачи в виде ввода и вывода текста. Строки программы могут быть пронумерованы для удобства анализа. Имена переменных могут быть как осмысленными, отражающими суть задачи, так и неявными. После текста программы следуют задания, соответствующие каждому блоку. Программы могут быть предложены к каждому блоку заданий.
Блок 1. Общее понимание текста. Поиск и извлечение информации
Данный блок направлен на раскрытие содержания текста программы, узнавание и расшифровку отдельных команд, осмысление, интерпретацию, выявление соответствий и установление значений. Ученик работает с кодом как с текстом.
Примеры заданий: назвать команды ввода информации, подсчитать количество команд вывода информации, сформулировать на русском языке определенную строку программы или алгоритмическую конструкцию, добавить комментарии к каждой строке программы, перечислить константы и переменные, определить типы данных.
Блок 2. Применение и анализ
Этот блок предполагает извлечение смысла, объяснение найденных фактов на основе имеющихся знаний, упорядочивание, классификацию, сравнение, сопоставление, группировку, анализ и обобщение, соотнесение с личным опытом, использование знаний и навыков в новой ситуации, выполнение практических задач.
Примеры заданий: объяснить назначение определенной команды в конкретном месте программы, переписать команду иначе, сгруппировать команды по функциональному признаку, упростить код, определить результат выполнения программы для заданных входных данных, оформить в виде таблицы значения переменных в процессе выполнения программы, составить трассировку, сравнить исходный текст программы с измененным и обосновать свой выбор с точки зрения эффективности использования памяти, скорости выполнения, рациональности решения, предложить альтернативный способ решения задачи, найти способ предотвращения зацикливания, решить аналогичную задачу.
Блок 3. Синтез и оценка
Этот блок предполагает размышление над текстом и контекстом программы, установление взаимосвязей, выдвижение гипотез, формулирование предположений и суждений, моделирование и обобщение, применение полученных знаний на практике в различных сферах деятельности, создание нового, критическое оценивание идей и решений.
Примеры заданий: высказать критическое суждение о предложенном решении, определить оптимальное решение, измени программу, если появились новые условия, предложить более осмысленные имена переменным, сформулировать реальную задачу, для решения которой может быть использован предложенный алгоритм, написать программу для решения новой задачи, опираясь на алгоритм, представленный в анализируемом тексте.
3. Пример разработки по функциональному чтению программ на языке программирования Python
Разработка на функциональное чтение «Программирование линейных алгоритмов на языке Python»
Изучите программу и ответьте на вопросы.
Дана программа:
a = int(input())
b = int(input())
x = a % b;
print('ответ -', x)
Блок 1
- Подсчитайте количество команд ввода.
- Какого типа данные вводятся?
- Перечислите текстовые константы.
- Имеются ли числовые константы?
- Запишите команды присваивания.
- Сколько переменных вводится?
- Значения каких переменных выводятся на экран
- Выполните программу при a=3, b=5. Запишите что будет выведено на экран.
- Можно ли переменные описать другим типом?
- Добавьте комментарии к каждой строке программы.
Блок 2
- В приведенной программе можно ли было обойтись меньшим количеством переменных в программе или без них? Если да, то перепишите программу с использованием меньшего количества переменных.
- Что произойдет, если второе число ввести равным 0.
- Что нужно изменить в приведенное программе, чтобы найти целую часть при делении 2-х чисел, введенных с клавиатуры?
- Напишите программу решения задачи: Дано трехзначное число. Получите двузначное число, из первой и третьей цифр исходного числа, не меняя последовательность. Например, дано число 390, на выводе будет 30.
Блок 3
- Сформулируйте словесное условие задачи, которую решает исходная программа.
- Сформулируйте содержательную задачу из жизни, математическая модель которой описана алгоритмом в исходной программе. Напишите программу, используя операторы ввода и вывода с текстовыми константами, понятными именами переменных.
Дополнительно разработаны несколько примеров разработок по функциональному чтению текстов программ на языке Python в 8-9 классах. Для демонстрации практического применения методики функционального чтения программного кода создан конспект урока в 8 классе, опирающийся на функциональное чтение кода на Python по теме «Разработка программ, содержащих оператор ветвления».
4. Ценности методической практики для распространения
Данная технология может быть эффективно использована на любом этапе изучения программирования. Разработки по функциональному чтению могут быть подготовлены как к конкретной теме, так и к разделу в целом, с целью повторения, проверки знаний или обобщения материала, в начале урока для актуализации знаний или в конце урока для закрепления. Работа может быть организована как в индивидуальной, так и в групповой форме.
Задания, связанные с анализом готовых программ, встречаются в ОГЭ по информатике. В соответствии с кодификатором элементов содержания и требований к уровню подготовки обучающихся на экзаменах, проверяются знания и умения, связанные с анализом и интерпретацией программного кода. Поэтому использование разработок по функциональному чтению способствует повышению качества подготовки к экзаменам. Более того, задания из ОГЭ могут быть включены в блок «Применение и анализ» разработки по функциональному чтению.
Применение разработок по функциональному чтению позволит педагогу повысить уровень понимания учащимися текста программ, развить аналитическое мышление и научить их эффективно обучаться на основе чужого опыта программирования.
Можно выделить три уровня сформированности функциональной грамотности, основываясь на блоках разработки:
Базовый уровень (оценка 3 «удовлетворительно»):
Учащийся успешно выполняет задания блока «Общее понимание текста. Поиск и извлечение информации», т.е. узнает команды языка программирования, различает их и знает их назначение, но действует по шаблону и не может самостоятельно решать аналогичные задачи.
Повышенный уровень (оценка 4 «хорошо»):
Учащийся понимает, для чего используются команды в определенном месте программы, понимает логику последовательности команд, может выполнить программу в ручном режиме, понимает использование памяти и может исправить ошибки или выбрать более оптимальное решение. Способен решать аналогичные задачи. Таким образом учащийся справляется с заданиями на «3» и с блоком «Применение и анализ».
Высокий уровень (оценка 5 «отлично»):
Учащийся демонстрирует навыки, соответствующие первому и второму блокам разработки, а также может оценить эффективность предложенного решения, сформулировать задачу по коду программы, предложить новую формулировку, опираясь на свой жизненный опыт, решить новую задачу, используя знания по теме, что соответствует блоку «Синтез и оценка».
Для оценки сформированности функциональной грамотности при работе с программным кодом разработаны: таблица критериев оценивания учителем и самооценивания учеником.
5. Межпредметность и искусственный интеллект в помощь учителю
Идеи для разработок по функциональному чтению программ можно заимствовать у учителей различных предметов. Это позволит привнести в учебный материал межпредметный компонент и сделать обучение более многогранным и интересным. Например, можно использовать задачи и примеры из других дисциплин, адаптировав их для анализа программного кода [7, 8]. Авторы учебно-методического пособия «Формирование и оценка функциональной грамотности учащихся» И.Ю. Алексашина, О.А. Абдулаева, Ю.П. Киселев предлагают модель комплексных заданий для моделирования реальных жизненных ситуаций и критерии их разработки с учетом возрастных особенностей [1, стр. 105]. Как отмечается в учебно-методическом пособии для педагогов «Формирование функциональной грамотности школьников в контексте преподавания учебных предметов» [9]: «Дидактический и методический инструментарий должен обеспечивать развитие компонентов функциональной грамотности — читательской, математической, естественно-научной и финансовой — у современных подростков». Это подтверждает мысль о том, что интеграция знаний из разных областей способствует комплексному развитию ключевых навыков учащихся.
Искусственный интеллект становится надёжным помощником учителя информатики в подготовке дидактических материалов, включая разработку заданий на функциональное чтение программного кода. Преподаватель может использовать генеративные нейросети (YandexGPT, GigaChat, ChatGPT и др.) для генерации вариативных заданий, персонализации обучения и адаптации контента под конкретные потребности учеников. Для генерации сбалансированного и методически выверенного набора заданий рекомендуется использовать чётко структурированный промпт. Примеры промптов (запросов к ИИ):
«Ты — опытный учитель информатики. Составь список заданий по функциональному чтению текста программы на языке Python для ____ материала в ___ классе по теме _____. Задания должны варьироваться от простого к сложному. Распределить задания необходимо по уровням таксономии Блума: не менее __ на уровне запоминания и понимания, не менее __ на уровне применения и анализа, не менее __ на уровне синтеза и оценки. Общее количество заданий — не более 15. Учти, что работа с текстом на уроке не должна занимать более 20 минут. Программный фрагмент: ____. Выведи список заданий по уровням таксономии Блума».
«Ты — методист по информатике. Напиши 3 варианта короткой программы на Python (5-7 строк) по теме "Цикл while", содержащих типичные ошибки новичков (например, бесконечный цикл или ошибка off-by-one). Составь список заданий к каждой программе для учеников ___ класса. Распределить задания необходимо по уровням таксономии Блума: не менее __ на уровне запоминания и понимания, не менее __ на уровне применения и анализа, не менее __ на уровне синтеза и оценки».
На практике ответы генеративного ИИ требуют обязательной педагогической доработки: учитель корректирует уровень сложности, уточняет формулировки заданий и добавляет методические комментарии. Это позволяет превратить автоматически сгенерированный материал в полноценный дидактический ресурс, ориентированный на развитие функциональной грамотности учащихся.
6. Заключение
Внедрение практики функционального чтения программного кода позволяет преодолеть разрыв между теоретическим знанием синтаксиса и практическим умением программировать. Учащиеся учатся не просто «кодировать», но и понимать смыслы, заложенные в алгоритмах, что напрямую работает на развитие их функциональной грамотности. Материалы данной методической практики могут быть легко адаптированы для подготовки к ОГЭ.
Список источников
- Алексашина И.Ю., Абдулаева О.А., Киселев Ю.П. Формирование и оценка функциональной грамотности учащихся: учебно-методическое. СПб.: КАРО, 2019. 160 с. (Петербургский вектор введения ФГОС ООО)
- Вершловский С.Г., Матюшкина М.Д. Функциональная грамотность выпускников школ. Социс. 2007. № 5. С. 140-144.
- Ковцун А.А., Кохичко А.Н. Научные подходы к понятию «Функциональная грамотность» в педагогической теории и практике. Наука и школа. 2022. №6.
- Лапчик М.П., Кулев С.В. Современные подходы к развитию функциональной грамотности обучающихся на уроках информатики. Образование и наука. 2022. Т. 24. № 10.
- Лихарева О.А., Плетнева Д.Ю. Междисциплинарное обучение в школе: теория и практика. Научно-методический электронный журнал «Концепт». 2021. № 5 (май).
- Логвина И., Рождественская Л. Инструменты формирующего оценивания в деятельности учителя-предметника. Пособие для учителя. Нарва, 2012. 87 с.
- Методические рекомендации по формированию функциональной грамотности обучающихся 5-9 классов с использованием открытого банка заданий на цифровой платформе по шести направлениям функциональной грамотности в учебном процессе и для проведения внутришкольного мониторинга формирования функциональной грамотности обучающихся / под ред. Г.С. Ковалевой. М.: ФГБНУ «Институт стратегии развития образования РАО», 2022. 360 с.
- Мурзагалиева А.Е., Утегенова Б.М. Учебные цели согласно таксономии Блума. Сборник заданий и упражнений. Астана: АОО «Назарбаев Интеллектуальные школы» Центр педагогического мастерства, 2015. 54 с.
- Николина В.В. Развитие функциональной грамотности обучающихся в образовательном процессе. Нижегородское образование. 2021. № 1. С. 4-13.


