Мой способ знакомства учеников младших классов с Python

В наше время большинство детей знакомится с миром программирования через создание проектов на платформе scratch.mit.edu Создание проектов происходит путем соединения разноцветных блоков без ввода кода с клавиатуры (вводим только значения переменных).

Однако, дети взрослеют, им становится тесно в мире Scratch, и в этот момент им можно предложить несколько путей развития.

Некоторые, как мой сын Артём, вдоволь поработав в графическом редакторе Scratch выбирают кружок изобразительного искусства.

Другие ребята — фанаты 2D игр, продолжают делать более профессиональные игры на платформе Construct.

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

a2yntupbgjdlxglvjcnyyekiqyg.gif

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

Почему именно к Python?
Еще несколько лет назад с Питоном пытались конкурировать Pascal и Basic, но сейчас сайт hh.ru показывает что количество вакансий с упоминанием этих языков на порядки отстает от Python.

Россия, IT, Телеком
5 807 вакансий «Python»
262 вакансии «Pascal»
44 вакансий «VB.NET»

И под Pascal на hh.ru подразумевается Delphi, а не PascalABC, используемый в школах.
(На всякий случай вот фанатская подборка литературы по PascalABC для расширения кругозора pascalabc.net/rubantsevbooks)


Пару лет назад я решил познакомить своих учеников с Python и начал искать литературу по этой теме. Книг по Питону для детей оказалось совсем немного, и ни одна из них меня полностью не удовлетворила — пришлось снова, как и истории про Scratch habr.com/ru/post/234823, изобретать все самому.

Что же не так в этих книгах? Общая проблема — там много кода. И если для учеников старших классов это не критично, они за 20 минут смогут вколотить программу на 30–40 строк, то для учеников начальной школы это огромная проблема.

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

Небольшой обзор литературы с моим личным рейтингом.

Небольшой обзор литературы с моим личным рейтингом
3 место
Python for Kids archive.org/details/PythonForKids/mode/2up
Вот отзыв об этой книге от vectorplus из Канады.
Книга «Написана легким языком, с юмором, детям нравится. У неё есть недостаток, свойственный многим книгам по программированию. Как в известной шутке — как нарисовать сову. Овал — круг — сова. От простых понятий слишком резкий переход к достаточно сложным концепциям.» [Подробности в статье ](https://habr.com/ru/post/485424/)
Ну и список проектов: сначала проекты с черепашкой, которые подходят для начальной школы, а потом 20 страниц делаем игру теннис, и потом 60 страниц делаем игру про Стикмана (код игры на 6 страниц), а это уже для старшеклассников.

2 место
Python для детей Автор: Ханс-Георг Шуман
www.litres.ru/hans-georg-shuman/python-dlya-detey-48411263
Здесь больше коротких проектов, но в конце также мощная игра про насекомых на 40 страниц. Малыши осилят только первую часть книги.

1 место
Вордерман, Вудкок, Макаманус: Программирование для детей. Иллюстрированное руководство по языкам Scratch и Python www.labirint.ru/books/481230
В этой книге есть и про создание проектов на Scratch (всего 3 проекта) и про Python (4 проекта). Проектов немного, но они хорошо пошагово расписаны с мельчайшими подробностями, но несмотря на это книга не поможет в проведении занятий на кружке. Но это хороший самоучитель для детей 10–12 лет, которые занимаются самостоятельно.


Не обнаружив на просторах интернета подходящего учебника я придумал собственный способ знакомства детей с Python, и помогла мне в этом платформа trinket.io.

На этой платформе есть возможность работать онлайн со следующими языками программирования:

  • Блочный язык Blockly
  • HTML
  • GlowScript
  • R
  • Java
  • и конечно Python


причем в платной версии ($3 в месяц) можно использовать Pygame для создания игр!

hcukeswbabbgkpwkx4a_dykb5y4.png

А главным открытием для меня стало то, что блочный тринкет, в три клика превращается в код на Python! Первый клик — просмотр кода.

h_cwogrctclhto0miqpr30crgzg.gif

Ещё пара кликов — преобразование блочного тринкета в тринкет на Python.

1qwikiajgoqyhtgcprqsqlsks7a.gif

Готово!

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

f06l0rtedhazvtjedxukdebdqxs.gif

Также теперь ребенок может «копипастить» чтобы собрать более сложный проект, например как этот с рисованием картинки.

zz3a3w1l7f4cnffwciwgr6bjh8k.gif

Вот так и появился мой курс по Python для учеников начальной школы в котором они знакомятся с этим языком программирования. Сложные проекты не создаем, работаем в рамках 45 минутного урока. По-новому смотрим на циклы и условия, знакомые по программированию на Scratch, разбираемся с числовыми и текстовыми переменными, о которых раньше вообще не задумывались. Знакомимся со сложными типами данных, учимся работать со срезами и различными методами. Чтобы детям было интересно, кроме узоров с черепашкой создаем картинки из символов ACSII, рисуем смайлики Каомодзи и создаем картинки из символов юникода.

Котик со списком.

zrmcv3dh7icbnztxky8rb_ujq_8.png

Гусеница с двумя списками.

sj8vgquyl5uh4ogqy1odas7rvzq.png

Картинка из символов юникода со словарем.

wzguqk8pu0dffxax_agcjouexz4.png

Работа с объектами.

lbbnl3tkjdmvzpklno-1jyzkakw.png

Ну и конечно моя любимая игра «Путаница» — простая, но очень веселая!

h_xjw50fq_jfhgioocpjv10a5bs.png

Платформа trinket.io — отличный помощник в деле знакомства школьников младших классов с языком Python. Но не так давно я обнаружил еще одну шикарную платформу, которая позволяет программировать на Python в мире Minecraft. Это платформа progkids.com созданная отечественными разработчиками. Платформа платная, но недавно авторы платформы разместили на Facebook промокод FREESELFCOURSE который дает две недели доступа бесплатно.

Под эту платформу я тоже разработал кучу уроков codim.online/pythonvm которые позволяют освоить более сложные темы, такие как вложенные циклы и многомерные массивы.

from mc import world, blocks, player

for i in range(5):
	for j in range(5):
			for k in range(5):
				world.buildHome(5 + (j * 5), 0 + (k * 5), 0 + (i * 10), 5, 5, 5, blocks.WOOD)


lo8cqpbjuvr-7dalyhqeovje8uw.gif

Рисуем смайлики с помощью массивов.

from mc import *

heart = [ [[	0,   0, 152,   0,   0],
			[   0, 152, 152, 152,   0],
			[ 152, 152, 152, 152, 152],
			[ 152, 152, 152, 152, 152],
			[   0, 152,   0, 152,   0]] ]

scull = [[  [   0, 173, 173, 173,   0], 
			[   0, 173, 173, 173,   0],
			[ 173, 173, 173, 173, 173],
			[ 173,   0, 173,   0, 173],
			[   0, 173, 173, 173,   0]] ]
					
world.setBlocks(0, 3, 0, sad)
world.setBlocks(0, 3, 7, heart)
world.setBlocks(0, 3, 14, scull)
world.setBlocks(0, 3, -7, butterfly)


ifawbzoefj89oy44efcfkk3pev8.png

Платформа имеет кучу встроенных функций, облегчающих создание построек, позволяет спавнить существ, управлять дронами, строить города, ~~грабить корованы~~, копать метро, строить тоннели и бункеры, обкладывать все динамитом и… и делать еще много интересного!

uth04-gdxuk-vw0kfrpccaoaqmw.png

Также можно создавать анимированные постройки, например часы.

sdu4bkx_vuy78r9rkqydufpd8f4.gif

Покажите эти платформы детям, я уверен, они смогут сделать много интересных проектов на радость учителям и родителям.

И в честь дня весеннего равноденствия и наступления астрономического лета всем читателям в подарок первые 8 уроков курса знакомства с Python по промокоду PYTHON2020.

© Habrahabr.ru