Python for Kids: A Playful Introduction To Programming. Опыт обучения


Маленький тощий человечек бежит, прыгает по платформам. Игрок может задавать направление и совершать прыжок, но не виляет на скорость - она постоянна. Нужно иметь определенную сноровку, чтобы достичь верхнего края экрана, где находится дверь и победить в этой тренировочной мини игре, которая называется «Mr. Stick Man Races for the Exit» .

Создание этой игры - завершающая часть учебника по программированию для детей, который называется "Python for Kids". "Mr. Stick Man" - достаточно серьезный проект. Создание игры заняло немало времени, включая отладку (исправление ошибок). Но было приятно наблюдать достигнутый результат. Учебник пройден!

Почему именно Python? Сперва я хотел выбрать С++, но все-таки он сложноват, и у меня не было достаточного времени, чтобы придумать адаптивную версию для детей 9-10 лет. После нескольких тестов на "плюсах" было решено выбрать интерпретируемый Python, благо есть учебник для детей от Jason R. Briggs, с массой положительных отзывов. Хотя есть версия на русском языке, советую взять оригинал. Причины - современный IT специалист должен спокойно читать на английском технические тексты. Английский "Питона для детей" очень легко читается - так что заодно дети и язык подтянут.

Учебник снабжен забавными иллюстрациями и написан с долей юмора. Подача материала по десятибалльной школе - 8,5. Синтаксис и семантика излагаются внятно. От простого к сложному. Особо отмечу грамотный подход к изложению ООП (объектно-ориентированного программирования). Классы и объекты рассматриваются на примере животного мира, просто и толково.

В конце каждой главы - "Программинг пазлы", задачки для программирования. Некоторые задачки я придумывал сам.

После того как в книге были даны основы - автор предложил разработать два игровых проекта. Первый - теннис (если кто помнит игру "Arkanoid" поймет о чем я). Второй - платформер "Mr. Stick Man Races for the Exit".

Игры - грамотный ход. во-первых, создавать и тестировать игровые программы детям конечно интересней, чем какие-то скучные тесты, наподобие задачек из школьных учебников. Во-вторых был освоен GIMP -свободно распространяемый растровый графический редактор и объяснены азы работы с графикой.

"Мистер Стикман" дался труднее всего и были моменты, когда ребенок "плавал". Вот тут я немного покритикую автора. Минус этого проекта - написание больших фрагментов кода без какой-либо отладки. Тестировать надо постоянно, а не после того как вы написали несколько классов и описали их взаимодействие. Все-таки удержать в голове столько кода без отладки и взрослому программисту не просто. Тем не менее, все трудности были преодолены и человечек забегал и запрыгал.

Что дальше? Думаю надо закрепить пройденный материал - например развить "Мистера Стикмана" во что-то бОльшее. Добавить какие-то ловушки, пушки, и даже NPC. Параллельно с этим развивать знакомство со стандартной библиотекой Python.

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

Будет ли потом из этого толк? Да, уверен. Ум нужно тренировать с детства. А детский мозг достаточно пластичен и готов к обучению. Это первое.

Второе. В век "диджитализации" IT - будет продолжаться оставаться востребованной профессией по всему миру, которая позволит заработать на кусок хлеба с маслом.

Ну и в качестве постскриптума предлагаю ознакомиться с "Дзеном Питона" - философией программирования Питона (текст выдаётся интерпретатором Python по команде import this):

Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32 Type "copyright", "credits" or "license()" for more information. >>> import this The Zen of Python, by Tim Peters

Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those! >>>

Перевод:

  • Красивое лучше, чем уродливое.

  • Явное лучше, чем неявное.

  • Простое лучше, чем сложное.

  • Сложное лучше, чем запутанное.

  • Плоское лучше, чем вложенное.

  • Разреженное лучше, чем плотное.

  • Читаемость имеет значение.

  • Особые случаи не настолько особые, чтобы нарушать правила.

  • При этом практичность важнее безупречности.

  • Ошибки никогда не должны замалчиваться.

  • Если они не замалчиваются явно.

  • Встретив двусмысленность, отбрось искушение угадать.

  • Должен существовать один и, желательно, только один очевидный способ сделать это.

  • Хотя он поначалу может быть и не очевиден, если вы не голландец1.

  • Сейчас лучше, чем никогда.

  • Хотя никогда зачастую лучше, чем прямо сейчас.

  • Если реализацию сложно объяснить — идея плоха.

  • Если реализацию легко объяснить — идея, возможно, хороша.

  • Пространства имён — отличная штука! Будем делать их больше!

Знание - сила!


© 2017 - 2019 «Проект Вознесение». 

  • Vkontakte Social Icon
  • Facebook Social Icon
  • YouTube Social  Icon