Как научить программирование подростков

1656523453 kak nauchit programmirovanie podrostkov

Автор: Шон Чой

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

Я обнаружил, что существует много ресурсов, помогающих студентам К-6 научиться кодировать. Некоторые примеры включают Scratch и Hour of Code в Code.org, которые достаточно полезны для тех, кто новичок познакомится с программированием.

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

Однако учить программированию подростков старше 6-го класса – это совсем другой зверь. Эта статья показывает, что сегодня более 95% подростков имеют доступ к смартфонам. Итак, визуальный отклик от Scratch или Code.org больше не поражает их. На самом деле я обнаружил, что подростки действительно считают их достаточно обычными и детскими.

Подростки хотят что-то строить или делать РЕАЛЬНЫЙ которые они могут показать. Например, создать и запустить настоящее приложение для iPhone или собственный веб-сайт или сломать какую-либо систему. Но как вы можете заставить человека, только что закончившего набор упражнений Scratch, создать приложение для iPhone, и при этом постоянно привлекать его к его завершению?

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

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

Я узнал, что подростки впитывают новые технологии как сухие губки. В то время как взрослые могут быть полностью удовлетворены тем, что они технически устарели, подростки делают ставку на то, чтобы быть крутым и следовать последним тенденциям. Я обнаружил, что подростки, как правило, используют самые крутые и новые программы еще до того, как попали в заголовки TechCrunch или CNBC.

На самом деле именно мои студенты познакомили меня с кучей игр .io и HQ Trivia. Поэтому важно, чтобы они учились Прохладнои то, чем они могут поделиться со своими друзьями.

Первое, что они спросили, когда я начал курс программирования, было: «Можем ли мы сломать вещи?» Как веб-сайты и приложения для iPhone?».

Поэтому я сказал им, что мы должны сначала изучить HTML и CSS, чтобы научиться взломать веб-сайт и показал им это:

<!DOCTYPE HTML>
<html>  
<head><title>Hello World!</title></head>  
<body><h1>Hello World!</h1></body>
</html>

Я объяснил, что означает каждый из этих тегов и как они будут отображаться на странице. Я загрузил страницу с этим hello.html и все их ожидания увидеть крутую веб-страницу пошли насмарку. Им сразу стало скучно.

Однако я продолжил занятия, чтобы научить их больше HTML, CSS и базовому JavaScript. Я чувствовал, что обучая их больше HTML, CSS и JavaScript, а также изучая методы создания некоторых примеров веб-сайтов, они будут чувствовать себя более заинтересованными. Однако я ошибся.

Даже после серии создания простых веб-сайтов и развертывания их на Firebase они продолжали говорить, что хотят сделать что-то большее. РЕАЛЬНЫЙ и то, что они могли бы показать своим друзьям.

Я понял, что есть много способов сделать что-то реальное, и это вовсе не создание программного обеспечения с милым графическим интерфейсом, обучение их новым структурам данных, или получение материала из Harvard CS50 и показ их.

Я решил, что было бы лучше использовать аппаратное обеспечение и заставить студентов физически почувствовать то, что они закодировали. Моими двумя выборами были Raspberry Pi и Arduino.

Raspberry Pi – это миниатюрный компьютер, работающий под управлением собственной версии Linux и способный работать на большинстве языков программирования. Можно приобрести различные периферийные устройства, которыми можно управлять с помощью собственного программного обеспечения.

Arduino более занят. Это аппаратная платформа с открытым исходным кодом, и многие компании создают разные комплекты, такие как Smart Autonomous Car и Quadruped Robot.

смарт-автомобиль
Умный автомобиль, который мы создали с помощью Arduino

Используя Raspberry Pi, мы построили метеостанцию, которая определяет температуру и давление воздуха в окружающем регионе и посылает их в облачную базу данных. Затем учащиеся могли просмотреть данные о погоде с помощью онлайн-инструмента для создания графиков. Мы также запрограммировали простые вспомогательные функции, такие как изменение единиц температуры и нахождение минимальной/максимальной/средней температуры для размещения в базе данных. Эти упражнения помогли студентам изучить простые структуры данных и алгоритмы, такие как массивы, словари и сортировки.

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

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

Мы также сделали несколько упражнений для изучения основ хакерства! Подобно LeetCode, направленному на то, чтобы помочь участникам научиться решать проблемы на собеседовании, существует много инструментов, созданных, чтобы помочь студентам изучить основы хакерства. Например, HackThis — это хороший веб-сайт, который дает вам ряд задач, которые можно просмотреть и решить в своем браузере. Это требует от вас использования многих существующих инструментов браузера, таких как инструменты разработчика Chrome, чтобы найти недостатки, которыми можно воспользоваться, чтобы получить доступ к системе.

Студентам очень понравилось это упражнение, потому что, решая эти упражнения, они чувствовали себя шпионами в «Миссии невыполнима». После завершения задания они фактически перешли на настоящие веб-сайты (я убедился, что они не делали что-нибудь противозаконное…) и попытались найти лазейки, которые они могли бы использовать.

Как только они будут более подготовлены и изучат основные концепции Linux, я планирую научить их более продвинутым концепциям взлома с помощью Kali Linux, что, по моему мнению, будет еще увлекательнее.

столкновение кода
Clash of Code, чтобы начать день

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

Лучшей платформой, стимулирующей студентов, была CodingGame. Они решают каждое упражнение по программированию и повышают уровень процесса. В упражнениях также есть некоторые приятные визуальные компоненты, что позволяет учащимся быть вовлеченными в упражнения.

Мы также начнем день проведения сеанса Clash of Code, который является быстрой 5-минутной задачей программирования в прямом эфире между другими онлайн-пользователями, и студенты иногда выигрывали против других игроков, которые имели более высокие уровни, чем они! Это подтолкнуло их начать еще один день обучения программированию.

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

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

Спасибо, что читаете!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *