Чему не учат в большинстве школ; Программирование — самый важный навык будущего. »

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

Но вы не умеете кодировать. Если бы вы встали перед своими учениками и попытались научить их программированию «кто есть что такое», вы бы выглядели нелепо. Может быть, когда-нибудь, после летнего профессионального развития или пары курсов, вы сможете включить его в свой репертуар.

Не думайте так!

Я подошел к программированию с таким отношением… если я собираюсь учить студентов программировать, мне нужно кодировать самому. И я провел лето, работая над учебными пособиями по основам HTML и CSS, пока у меня наконец не появились навыки новичка для создания веб-страницы. Это была пустая трата моего времени.

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

Прежде всего, что такое кодирование?

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

Не паникуйте.

Кодирование просто означает использование логики, чтобы сообщить неодушевленному объекту, что делать, как правило, с помощью утверждений «если это произойдет, то произойдет то». Все ваше взаимодействие с компьютером управляется этим. Например, еслия дважды нажимаю на Internet Explorer (*содрогаюсь*), тооткрывается моя домашняя страница. Если я нажимаю клавишу «X» на клавиатуре, то появляется «X». И так далее.

Некоторые известные введения в концепцию программирования очень просты… Мне понравилось одно, которое сделал мой бывший коллега, в котором студенты должны были запрограммировать кого-то, чтобы он сделал бутерброд с арахисовым маслом и желе. «Если банка не открыта, отвинтите крышку». «Если хлеб покрыт арахисовым маслом, то остановитесь». Проблема кодирования заключается в необходимости быть точным. Одна неверная строчка кода, и вы проткнете глаз себе, а не желе.

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

Вам просто нужно знать, что там

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

Code.org ускоренное введение в CS

Стремительные игровые площадки

Кодекадемия

Академия Хана

"Царапать"

Я начинаю думать, что Swift Playgrounds — лучшая отправная точка для студентов, так как она использует игровую модель, иобучает студентов языку программирования, важной части головоломки, которую не дает code.org. делать. Но любой из них может послужить отличным введением, и ученики, которые найдут в себе увлеченность, смогут продолжить изучение в своем собственном темпе.

Создайте модуль

Мои ученики встречаются со мной в течение четырех 75-минутных блоков каждые семь дней. Поэтому я делаю каждый день 3 днем ​​«проверки кодирования», когда учащиеся должны перейти к следующему этапу своего кодирования, каким бы он ни был.

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

Каждый студент заполняет свой «табель учета рабочего времени»:

Затем они либо присылают мне скриншоты того, что они сделали в Google Classroom, либо, когда у меня есть больше времени, я обхожу комнату и смотрю, что они сделали. На таких веб-сайтах, как code.org, даже есть потрясающая система, в которой вы можете провести «класс» и проверить кодирование вашего ученика.

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

Повысьте интерес учащихся

(Это полезный навык. Это весело. Это полезно. Звучит круто.)

Во-первых, студентам нравится идея этого. «Кодирование» и «программирование» звучат как крутой технический мир хакеров, видеоигр и веселья. В сфере образования редко бывает, чтобы то, что звучит весело и интересно, также соответствовало полезным навыкам. Так подыграй!

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

И хотя внешняя мотивация не так полезна, как самомотивация… можно напомнить им, что у программистов неплохая зарплата. Вы можете выбросить историю успеха типа Марка Цукербурга — никакого колледжа, миллиарды долларов, тонны власти — тоже.

Полная прозрачность: я не умею программировать

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

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

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

Возможно, что-то более важное, чем кодирование.

Давайте учить больше тому, чего мы не знаем

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

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