- PVSM.RU - https://www.pvsm.ru -
В наше время большинство детей знакомится с миром программирования через создание проектов на платформе scratch.mit.edu Создание проектов происходит путем соединения разноцветных блоков без ввода кода с клавиатуры (вводим только значения переменных).
Однако, дети взрослеют, им становится тесно в мире Scratch, и в этот момент им можно предложить несколько путей развития.
Некоторые, как мой сын Артём, вдоволь поработав в графическом редакторе Scratch выбирают кружок изобразительного искусства.
Другие ребята — фанаты 2D игр, продолжают делать более профессиональные игры на платформе Construct. [1]
Ну а фанатам программирования можно посоветовать Python, ведь это один из самых простых языков для изучения. Но как же быть, ведь ученики начальных классов совершенно не знакомы с клавиатурой?
Вот пример простейшего проекта на Scratch в котором ребенок вводит с клавиатуры только 2 числа.
Во "взрослых" языках программирования приходится вводить гораздо больше текста с клавиатуры, но есть способ упростить детям жизнь при переходе от Scratch к Python.
Еще несколько лет назад с Питоном пытались конкурировать Pascal и Basic, но сейчас сайт hh.ru [2] показывает что количество вакансий с упоминанием этих языков на порядки отстает от Python.
Россия, IT, Телеком
5 807 вакансий «Python»
262 вакансии «Pascal»
44 вакансий «VB.NET»
И под Pascal на hh.ru подразумевается Delphi, а не PascalABC, используемый в школах.
(На всякий случай вот фанатская подборка литературы по PascalABC для расширения кругозора http://pascalabc.net/rubantsevbooks [3] )
Пару лет назад я решил познакомить своих учеников с Python и начал искать литературу по этой теме. Книг по Питону для детей оказалось совсем немного, и ни одна из них меня полностью не удовлетворила — пришлось снова, как и истории про Scratch https://habr.com/ru/post/234823/ [4], изобретать все самому.
Что же не так в этих книгах? Общая проблема — там много кода. И если для учеников старших классов это не критично, они за 20 минут смогут вколотить программу на 30-40 строк, то для учеников начальной школы это огромная проблема.
Также, сами проекты, которые предлагаются в книгах, по моему мнению, не очень подходят для младших классов.
Небольшой обзор литературы с моим личным рейтингом.
3 место
Python for Kids https://archive.org/details/PythonForKids/mode/2up [5]
Вот отзыв об этой книге от vectorplus [6] из Канады.
Книга “Написана легким языком, с юмором, детям нравится. У неё есть недостаток, свойственный многим книгам по программированию. Как в известной шутке — как нарисовать сову. Овал — круг — сова. От простых понятий слишком резкий переход к достаточно сложным концепциям.” Подробности в статье https://habr.com/ru/post/485424/ [7]
Ну и список проектов: сначала проекты с черепашкой, которые подходят для начальной школы, а потом 20 страниц делаем игру теннис, и потом 60 страниц делаем игру про Стикмана (код игры на 6 страниц), а это уже для старшеклассников.
2 место
Python для детей Автор: Ханс-Георг Шуман
https://www.litres.ru/hans-georg-shuman/python-dlya-detey-48411263/ [8]
Здесь больше коротких проектов, но в конце также мощная игра про насекомых на 40 страниц. Малыши осилят только первую часть книги.
1 место
Вордерман, Вудкок, Макаманус: Программирование для детей. Иллюстрированное руководство по языкам Scratch и Python https://www.labirint.ru/books/481230/ [9]
В этой книге есть и про создание проектов на Scratch (всего 3 проекта) и про Python (4 проекта). Проектов немного, но они хорошо пошагово расписаны с мельчайшими подробностями, но несмотря на это книга не поможет в проведении занятий на кружке. Но это хороший самоучитель для детей 10-12 лет, которые занимаются самостоятельно.
Не обнаружив на просторах интернета подходящего учебника я придумал собственный способ знакомства детей с Python, и помогла мне в этом платформа trinket.io [10]
На этой платформе есть возможность работать онлайн со следующими языками программирования:
причем в платной версии ($3 в месяц) можно использовать Pygame для создания игр!
А главным открытием для меня стало то, что блочный тринкет, в три клика превращается в код на Python! Первый клик — просмотр кода.
Ещё пара кликов — преобразование блочного тринкета в тринкет на Python.
Готово!
Ученик получает программу на Python, которую создал без долгого мучительного поиска символов на клавиатуре. Теперь учитель может провести аналогии с блочным языком, рассказать о синтаксисе и дать задание изменить координаты, чтобы квадратик превратился в прямоугольник.
Также теперь ребенок может "копипастить" чтобы собрать более сложный проект, например как этот с рисованием картинки.
Вот так и появился мой курс по Python [11] для учеников начальной школы в котором они знакомятся с этим языком программирования. Сложные проекты не создаем, работаем в рамках 45 минутного урока. По-новому смотрим на циклы и условия, знакомые по программированию на Scratch, разбираемся с числовыми и текстовыми переменными, о которых раньше вообще не задумывались. Знакомимся со сложными типами данных, учимся работать со срезами и различными методами. Чтобы детям было интересно, кроме узоров с черепашкой создаем картинки из символов ACSII, рисуем смайлики Каомодзи и создаем картинки из символов юникода.
Котик со списком.
Гусеница с двумя списками.
Картинка из символов юникода со словарем.
Работа с объектами.
Ну и конечно моя любимая игра "Путаница" — простая, но очень веселая!
Платформа trinket.io — отличный помощник в деле знакомства школьников младших классов с языком Python. Но не так давно я обнаружил еще одну шикарную платформу, которая позволяет программировать на Python в мире Minecraft. Это платформа https://progkids.com/ [12] созданная отечественными разработчиками. Платформа платная, но недавно авторы платформы разместили на Facebook промокод FREESELFCOURSE который дает две недели доступа бесплатно.
Под эту платформу я тоже разработал кучу уроков https://codim.online/pythonvm [13] которые позволяют освоить более сложные темы, такие как вложенные циклы и многомерные массивы.
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)
Рисуем смайлики с помощью массивов.
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)
Платформа имеет кучу встроенных функций, облегчающих создание построек, позволяет спавнить существ, управлять дронами, строить города, грабить корованы, копать метро, строить тоннели и бункеры, обкладывать все динамитом и… и делать еще много интересного!
Также можно создавать анимированные постройки, например часы.
Покажите эти платформы детям, я уверен, они смогут сделать много интересных проектов на радость учителям и родителям.
И в честь дня весеннего равноденствия и наступления астрономического лета всем читателям в подарок первые 8 уроков курса знакомства с Python по промокоду PYTHON2020.
Автор: scratch_book
Источник [14]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/350365
Ссылки в тексте:
[1] Construct.: https://www.construct.net/
[2] hh.ru: https://hh.ru/
[3] http://pascalabc.net/rubantsevbooks: http://pascalabc.net/rubantsevbooks
[4] https://habr.com/ru/post/234823/: https://habr.com/ru/post/234823/
[5] https://archive.org/details/PythonForKids/mode/2up: https://archive.org/details/PythonForKids/mode/2up
[6] vectorplus: https://habr.com/ru/users/vectorplus/
[7] https://habr.com/ru/post/485424/: https://habr.com/ru/post/485424/
[8] https://www.litres.ru/hans-georg-shuman/python-dlya-detey-48411263/: https://www.litres.ru/hans-georg-shuman/python-dlya-detey-48411263/
[9] https://www.labirint.ru/books/481230/: https://www.labirint.ru/books/481230/
[10] trinket.io: https://trinket.io/
[11] курс по Python: https://codim.online/python
[12] https://progkids.com/: https://progkids.com/
[13] https://codim.online/pythonvm: https://codim.online/pythonvm
[14] Источник: https://habr.com/ru/post/493420/?utm_source=habrahabr&utm_medium=rss&utm_campaign=493420
Нажмите здесь для печати.