Зачем мы учим школьников программированию?
Давайте разберём, какие образовательные результаты мы хотим получить и что говорят про это государственные стандарты.
Первый важный момент — алгоритмическое мышление: ученик должен понимать, что такое алгоритм, уметь его составить или проанализировать.
Второй момент — знание одного из языков программирования, умение реализовать свой алгоритм и анализировать чужие программы, использовать основные управляющие конструкции — линейные алгоритмы, условные и циклические, вспомогательные алгоритмы.
Что нас останавливает?
Какие могут быть основные препятствия? Это и страх перед новым, сложным материалом, непонимание, как к нему подступиться, и сложности по преодолению разрыва между школьным программированием и программированием «взрослым».
Поговорим сначала про первое. Многие считают, что для качественного преподавания программирования нужно быть специалистом в этой области. Мнение это не совсем правильно. Программирование содержит в себе множество разных направлений. Нет единой специализации, которая подразумевает знание всего и сразу. Так и с языками: каждый лучше подходит для своих задач.
В школьном программировании мы не уходим в какую-то специализацию — это удел профессионального образования. Наша задача — заложить базу: научить детей логическому, алгоритмическому мышлению, познакомить с базовыми структурами и понятиями языка программирования.
Как развить интерес к предмету?
Первый шаг, который мы советуем сделать, может показаться неожиданным. Найдите в себе те навыки, которыми уже обладаете. Мы все так или иначе применяем алгоритмическое мышление в своей жизни: нужно только посмотреть на это «глазами программиста».
Когда я иду в незнакомое место по маршруту навигатора, я анализирую и выполняю линейный алгоритм. Когда выбираю, какую еду заказать для компании, учитывая вкусы и аллергии всех друзей, я создаю и выполняю алгоритм с ветвлением. Когда мой врач выписывает лекарства, он формулирует и записывает циклический алгоритм (повторять в течение 30 дней...).
Попробуйте найти примеры из собственной жизни для создания, анализа и выполнения этих трёх типов алгоритма. Можете запомнить и рассказать о них — реальные примеры хорошо помогают ученикам понять абстракции.
Для развития алгоритмических навыков не надо сразу изучать язык программирования. Для развития алгоритмических навыков существуют разные среды программирования с исполнителем (например, КуМир, используемая в ОГЭ).
Какому языку программирования обучать в школе?
Суть программирования не меняется от языка к языку. Это умение придумать алгоритм, понимание основных терминов (ветвление, циклы, структуры данных). Во «взрослой» разработке выбор языка зависит от конкретной задачи. Поэтому в школе лучше начинать с изучения программ с исполнителем, без абстрактных структур данных, без абстрактных концепций.
Затем можно переходить на более абстрактную работу с данными.
К этому моменту знание языка программирования, конечно, необходимо преподавателю. Но это не значит, что нужно получать полную специализацию разработчика. Достаточно усвоить базу. Обратимся к ФГОСу, чтобы определить её. База — это основные структуры данных (числа, строки, логический тип, массивы) и работа с ними, ветвление, циклы и функции.
К счастью, программирование — наука строгая. Нет разных интерпретаций одних и тех же понятий. Нужно лишь самому внимательного пройти этот курс.
План подготовки виден. Но как выбрать язык программирования? Зачем переходить на другой?
Так как задачи в ОГЭ и ЕГЭ даются для выполнения на 5 разных языках, остаётся свобода выбора.
Выбор языка Python в программе Яндекс Учебника обусловлен несколькими причинами. Во-первых, в отличие от учебных языков, Python — востребованный язык в профессии (он преобладает в веб-разработке, в машинном обучении). Во-вторых, это язык «для программиста». У него очень низкий порог вхождения, поскольку он был создан так, чтобы на нём было удобно писать код. Поэтому Python легче начать изучать. Сдать экзамены для ученика тоже не составит проблемы – как один из самых популярных языков, Python представлен в ОГЭ и ЕГЭ по информатике.
Больше разборов задач по программированию в телеграм-канале Яндекс Учебника по Информатике.