Бесплатные ознакомительные занятия в группе

Как мы учим детей программированию

Привет! Я Дарья, главный методист в школе программирования для детей в Code it!. Сегодня я коротко поделюсь тем, как мы разрабатываем методички по обучению детей программированию (и не только).

мальчик учится программировать в группе

Наша основная головная боль

На сегодняшний день мы предлагаем 7 долгосрочных IT-курсов для детей, которые посвящены определенной категории — программирование, разработка игр и дизайн (CG). Именно эти направления наиболее интересны подросткам — это делает процесс обучения не похожим на классическое образование: ребенок сам выбирает, чему ему обучаться. Каждый курс посвящен изучению языка / программы для решения задач детей: понимание IT-технологий, участие в олимпиадах и конкурсах, развитие творческого потенциала, развитие логики и математики и др. (у каждого ребенка и его родителя своя цель).

Главной проблемой было и остается отсутствие специализированных программ обучения детей IT-технологиям. Есть учебная литература по информатике и робототехнике, есть задачники по программированию и алгоритмике, но практически отсутствуют материалы по обучению детей ООП, геймдизайну и языкам программирования, несмотря на колоссальный интерес.
Организовать обучение здесь и сейчас — как это может быть с английским языком благодаря изобилию учебных материалов — невозможно. Создавать упражнения нужно самостоятельно, тестировать и постоянно обновлять.
Однако видеть реакцию ребят, когда им удалось что-то создать — “Оно работает!” — бесценно!

Как выглядит этот процесс

Расскажем, как мы проектируем занятия на примере обучения языку Python детей со средним возрастом 12 лет.

Итак, цель урока — отработать классы, функции, словари и управление данными на практике. Начать новый проек

1. Строим план урока

Так как занятия построены по проектной методике, определенный модуль занятий мы посвящаем определенному проекту (после прохождения теории).

Итак, урок №8, дети уже прошли теорию по спискам, словарям, условиям, циклам, функциям и классам в Python. Мы начинаем новый проект — программа по управлению виртуальным зоопарком. Это первая итерация. Планируем, что на уроке дети напишут простую программу, а дальше, с прохождением новых тем, программу будут улучшать, добавлять функционал, создавать интерфейс и др.

2. Разрабатываем логику и контент урока

На этом этапе мы придумываем задачи, над которыми детям предстоит работать. Предварительно есть две задачи.

Задача №1. Угадай животное по описанию

Описание задачи: Напишите программу, которая задает описания животных, а пользователь угадывает животных. Например, описание его внешности, места обитания, особенностей поведения и т.д. Создайте словарь animals, содержащий животных и их описания. При выборе случайного животного программа показывает подсказку о нем.

После ознакомления с задачей 1-3 минуты дети анализируют задачу и предлагают свои решения. После этого вместе с преподавателем они проговаривают алгоритм решения задачи. Например:

— создаем переменные для хранения информации;
— приветствуем пользователя и сообщаем о назначении программы;
— задаем вопрос пользователю;
— анализируем ответ пользователя и выдаем результат.

По мере выполнения задания оговариваем важные моменты, например:

1. Грамотный синтаксис;
2. Табуляция;
3. Логика решения задачи.

Так дети понимают алгоритм действий и шаг за шагом решают задачу.

По истечении времени, данного на решение задачи, проверяем у детей, на каком этапе остановились дети, отмечаем наиболее частые ошибки и демонстрируем алгоритм написания кода.

Угадай животное_1 итерация

К задаче идет дополнительное задание повышенной сложности, которое скорее всего пойдет в качестве домашнего задания и самостоятельного поиска решения:

Программа должна работать пока пользователь не угадал всех животных. Нужно прописать, чтобы отгаданное животное удалялось из словаря animals, чтобы пользователь мог угадать следующее животное. Если все животные угаданы, программа поздравляет с победой.

Даем ребенку возможность самому решить задачу, а на следующем уроке обсуждаем решение / демонстрируем правильное решение:

Угадай животное_2 итерация

Задача №2: Виртуальный зоопарк

Описание задачи: Ты — смотритель виртуального зоопарка. На попечении у тебя есть лев. Тебе нужно создать класс в Python c использованием функций для управления здоровьем льва. Функция должна принимать имя животного и изменение его здоровья. Для этого создай класс Animal, который будет представлять животных в зоопарке, и добавь методы для взаимодействия с ним: кормить, играть и др.

Теперь нужен код программы, который в перспективе дети будут использовать в качестве референса. Планируем показать его детям уже после вариантов решений, которые предложат дети.

Задача Виртуальный зоопарк. 1 итерация

Итак, код создает класс Animal с методами feed(), play() и move(), которые позволяют управлять здоровьем, игрой и местоположением льва в зоопарке. Создается экземпляр класса Animal для льва (можно создать для других животных). Это позволит расширить функциональность программы, можно будет добавить и другие действия, которые можно совершить со львом.

В перспективе ребята работают над усложнением этих программ. Так, в программу “Виртуальный зоопарк” ребята добавляют новых животных, виды взаимодействия и состояния. Добавляют графический интерфейс с использованием библиотеки Tkinter для взаимодействия с зоопарком, где пользователь может видеть состояние животных и управлять настройками.

Задача Виртуальный зоопарк

3. Оценка реакции и обратная связь

На следующем уроке преподаватель должен удостовериться, поняли ли дети материал, а не просто скопировали код из Интернета. Для этого изначальный код должен быть гибким, и была возможность вводить новые переменные.

Для этого можно дать детям задание ввести новые переменные, не меняя структуру кода. Например, в игре “Угадай животное” внутри цикла можно ввести новый ответ программы, если пользователь был близок к ответу или почти угадал. А в задаче “Виртуальный зоопарк” — нового животного.

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