Публикации сообщества

Екатерина Додонова • 7 октября 2018

Изучение программирования с Python в школе. Как мы дошли до жизни такой (наконец-то!)

Сегодня на тему обучения программированию на  языке Python написано очень и очень много. Известный факт, что, например, в США большинство ВУЗов при изучении программирования первым языком выбирают Python. Однако и в школах он становится все популярнее и популярнее. И тем не менее, далеко не все согласны с тем, что это хороший выбор для того, чтобы начать знакомство с миром программирования. А некоторые учителя просто сомневаются: стоит ли? И насколько больших усилий потребует такая трансформация учебного процесса? Вот для таких людей и хочется немного поделится своим опытом. 

Какими были наши  аргументы, когда мы решили перевести преподавание программирования в курсе информатики в 7 классе  на язык Python?

  1. Простой синтаксис и низкий порог входа. Эксперимент с введением Python начался с одной группы 11 класса, в котором начали вести курс по подготовке к ЕГЭ по информатике. Особенность группы учащихся состояла в том, что до 10 класса они обучались в разных школах, а в десятом у них фактически не было программирования. Поэтому и уровень погружения в тему и языки программирования с которыми были знакомы ученики были очень разными. Так что для подготовке к ЕГЭ пришлось как-то унифицировать знания у ребят в группе и тут нам пригодился Python. Как оказалось, переходить к решению задач разной сложности ученики смогли значительно раньше, чем при изучении другого языка, фактически уже на 2-3 уроке они могли решать задачи базового уровня из ЕГЭ, время и внимание не тратилось на освоение сложного синтаксиса.
  2. Мощный рабочий инструмент, который позволяет выполнять реальные практико ориентированные проекты. Python отлично подходит не только для решения школьных задачек из курса информатики, но и для выполнения проектов по самым разным тематикам: хотите заниматься обработкой  данных и визуализацией, разобраться в машинном обучении, заниматься веб-разработкой,  писать скрипты для автоматизации различных процессов или для  3D-моделей? Все это (и не только) отлично можно делать с помощью Python.
  3. Один из самых популярных языков в промышленном программировании на сегодняшний день. Например, один из крупнейших сайтов в мире, посвященных программированию, Stack Overflow, называет его «самым быстрорастущим языком программирования». 
  4. Наличие языка Python в КИМах по информатике на ОГЭ и ЕГЭ :) Как бы ни был прекрасен язык программирования, мы живем в реальном мире, где выпускникам приходится сдавать единый стандартизированный экзамен. И если они изучают, например, такие языки программирования, как Java или JavaScript, это означает, что для сдачи ЕГЭ учащимся потребуется освоить синтаксис и правила написания программ на одном из “допущенных” до ЕГЭ языков программирования. С прошлого года Python среди них есть.
  5. Большое количество обучающих материалов высокого качества в сети.  Еще несколько лет назад, Python вышел на первое место для обучения программированию в ВУЗах США. Это довольно наглядно иллюстрирует тенденцию в мировой практике обучения программированию. На сегодняшний день отличные материалы по обучению программированию на Python есть не только на английском, но и на русском языке: можно назвать и интерактивный тренажер Питонтьютор с исчерпывающей справкой об основах языка, и курсы Программирование на Python, Python: основы и применение на платформе Stepik, и материалы Фоксфорда, и многое другое.

Какие доводы приводятся против использования языка в школе? 

Возникает, логичный вопрос, если все так замечательно, почему мы все до сих пор не перешли дружно на изучения Python с нашими учениками? Помимо простого противления всему новому и инертности самой образовательной системы, есть и разные доводы против этого языка.
В первую очередь питону ставят в вину чрезмерную высокоуровневость: нестрогую типизацию, списки вместо простых массивов, большое количество алгоритмов, реализованный в стандартных методах языка... “Ученики сейчас привыкнут, что все можно, а как мы им потом про все эти ограничения рассказывать будем?”, “Вырастим ленивых программистов, которые даже сортировку сами ни разу в жизни не написали”. Но это в большей мере проблема методики преподавания программирования, а не языка Python: задача учителя как раз и состоит в том, чтобы донести до учащихся мысль, что они должны понимать как работает какой-либо метод, прежде чем его использовать.  А для “слабых” учащихся, которые не мотивированы на серьезное  изучение программирования, такой язык дает шанс не превратить процесс обучения программирования в пытку, но наоборот, дать им в руки инструмент, с которым они смогут в будущем работать, а не пытаться забыть эти уроки как страшный сон.  
Второй аргумент, который мне пришлось услышать, звучит так: программы, написанные на Python медленные по сравнению с другими языками (читай: с C++) и для участия в олимпиаде (ВОШ по информатике) не подходят.  Не вдаваясь сейчас в подробности хочу только отметить, что решения жюри всероссийской олимпиады по информатике при разборе первого и второго этапов предлагаются именно на Python. Что позволяет предположить, что по крайней мере начать свой опыт в олимпиадном движении с языка Python - вполне приемлемо.

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

Изображение в заголовке: pexels.com

Кол-во комментариев: (21)

Елена Дегтярева
Спасибо за пост и доводы в пользу Питона. Планирую дочь знакомить с данным языком. Ей 10, наверное, рано. Нашла книгу по программированию на Питоне для детей. Но пока не начали. Осваивать придется обеим, так как я не учитель информатики.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Елена Букина
    Здравствуйте Екатерина. По какому учебнику вы работаете в 7 классе? Как вы встраиваете тему программирование на Питоне в рабочую программу?
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Ответ на этот вопрос зависит от того, что вас интересует: формальная сторона вопроса или учебные материалы, которыми фактически мы пользуемся на уроках. Если говорить по факту, то основным учебником по этой теме мы используем портал pythontutor.ru . С формальной стороной все хуже: поскольку мы в силу обстоятельств должны были писать программу по учебнику Босовой (в школе есть только эти учебники). Но количество часов на каждую тему мы изменили в программе практически до неузнаваемости, таким образом, чтобы максимальный объем пришелся на тему "Алгоритмы и программирование". Но надо понимать специфику школы: у нас, например, почти весь раздел "Информационные технологии" (текстовые и графические редакторы, мультимедиа и т.п.) в углубленной форме изучают на предмете "Технология". Так что в курсе информатики мы на это часы сводим к минимуму.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Борис Ярмахов
    Катя, привет, рад тебя видеть на этом портале! Ты затронула очень важную тему - Питон - это язык программирования будущего! ) Сам осваиваю его сейчас по Питонтьютор - очень интересно!
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Я сама просто в восторге от питонтьютор :) Настолько доходчиво и в то же время детально и грамотно все описано, да ещё и с интерактивными вставками: просто мечта учителя программирования :)
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Ольга Тузова
    Екатерина, большое спасибо за пост. Я пробовала поработать с продвинутыми 6-классниками и с блочного программирования микроконтроллера BBC micro:bit перейти на Python, что существенно расширяет возможности микроконтроллера. Но получилось плохо. Для 6-классников, видимо, рано. Ваш опыт работы с 7-классниками будет очень интересен. Пишите, пожалуйста. В список полезных ресурсов могу добавить хорошую книжку для младших "Hello World. Занимательное программирование. Python" авторов Уоррен Сэнд и Картер Сэнд ("взрослый дядька-программист" и его сын). Ещё хочу добавить, что в масштабной всероссийской олимпиаде НТИ можно использовать при программировании только Python.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Ольга, спасибо :) Про книжку слышала краем уха, но сама не видела ее, надо будет обратить внимание. По итогам первого месяца работы с семиклассниками, по моим ощущениям результат неплохой, начали мы довольно бодро. У нас они тоже перешли с блочного Scratch, который у них в 5-6 классе был, на Python. Как мне кажется, опыт создание проектов в Scratch им первое время довольно сильно помогает.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Ольга Тузова Я планировала работать в PyCharm, мне эта среда очень понравилась. Но судя по всему, для 7х классов она сложная. Так что сейчас они либо решают задачи прямо на сайте pythontutor, либо пишут в онлайн средах. Мне понравились две таких среды (они обе заточены именно на обучение языку): repl.it и trinket.io Собственно, я думаю следующий мойпост будет как раз о среде repl.it : в ней куча возможностей, с которыми я сейчас понемногу разбираюсь :))
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Мира Савченкова
    Тоже очень хотелось бы ввести язык в школьный курс (готовится к выходу учебник К. Полякова с phyton), полностью согласна с концепцией автора статьи, спасибо за литературу. А с учебниками для меня больной вопрос. Содержание, возможно, не подходит для продвинутых школьников, "безнадежно устарело" для этого возраста. Было хорошо, информатика изучалась со второго класса, к пятому дети осваивались в технологиях, можно было заниматься теоретическими основами и программированием. Сейчас с семиклассником word осваивать просто не совсем интересное занятие (дети рассчитывают на большее приходя на урок), еще год-два и уровень школьника будет трудно поднять до конкурентного в программировании (понятно , что никогда не поздно начинать, кто-то и в 60 стал художником мирового уровня)...
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Согласна с вами, а что касается учебника: мы изначально ориентировались как раз на учебник Полякова (из всего, что сейчас есть по информатике это лучшее), но в этом году он еще не вошел в список рекомендованных министерством учебников для 7-9 класса. Увы :(
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Спирин
    не явная типизация, низкий порог входа, интерпретатор... форматирование через отступы, лично я считаю, что все это очень плохо. Вы не представляете насколько трудно в огромной массе "программистов" уже сейчас найти действительно грамотного специалиста. А питон еще сильнее снижает порог входа и это плохо.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Мне кажется, стоит исходить в первую очередь из целей, которые мы ставим перед собой. Я не спорю, что человек, который кое-как освоил единственный язык программирования Python и не имеет представления даже о нормальном стиле программирования, не может являться квалифицированным специалистом. Но это вопрос не к языку программирования, а к методике преподавания предмета. Довольно подробно на этот вопрос отвечал Денис Кириенко: https://dkirienko.livejournal.com/167787.html Претензия к Python, как к языку с низким порогом входа, на мой взгляд, вообще не имеет смысла. Обвинять инструмент в том, что с ним легко обращаться, по меньшей мере, довольно странно. Самое главное, что в 7 классе на уроках информатики у меня другая цель: познакомить учеников с азами программирования и не вызвать при этом отвращение к предмету. И для этих целей Python подходит отлично.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Александр Бондаренко
    Форматирование (точнее структурирование) через отступы - это благо, к-рого нет во многих других языках. Я постоянно вижу тексты программ (учебные, олимпиадные, рабочие), написанные без какого-либо структурирования - ЗАДОЛБАЛО. Даже сам автор через пару-тройку дней уже с трудом вспоминает что же он хотел сказать (особенно учитывая неумение/нежелание комментировать текст и давать переменным осмысленные имена).

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

    выбирать из массы. А не надо выбирать из всей массы. Можно ведь начать выбирать из публикующихся на GitHub/GitLab. Ведь если чел смог начать вести свой проект на такой (или аналогичной) площадке, то это уже показатель адекватности навыков для начала работы с таковым челом (кстати - вот ещё тема для изучения на "Информатике" - "Методы и инструменты для групповой работы")

  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Tatyana Goryacheva
    Супер материал, спасибо. Тоже в 10 классе начали в прошлом году с Python. Детям нравится, они сами многими вещами интересуются, даже заядлые "гуманитарии" 60% питонтьютера осилили. Раньше были на Pascal'e. процент работающих в классе детей был низким. Сейчас наоборот.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Михаил Семионенков
    Класс! А проекты на МикроПитоне для микробит или Ардуино планируются? Или это не вписывается в курс ниформатики?
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии
  • Екатерина Додонова
    Пока у нас таких планов нет, хотя тема, конечно, интересная и стоит того, чтобы ей заниматься. Просто мы только начинаем. И к сожалению, этот материал трудно вписать в курс информатики, надо выделять какие-то дополнительные часы.
  • Войдите или зарегистрируйтесь, чтобы оставлять комментарии