Сегодня мы только что закончили ASU Python Camp. За последние 2 недели у нас было около 30 студентов, изучавших основы программирования и информатики с использованием языка программирования Python. Мы использовали Spyder IDE и Python 3 (в основном из соображений согласованности). Это был первый раз, когда я был частью лагеря программистов, не говоря уже о создании большого количества контента (вместе с другими помощниками лагеря). Тем не менее, это был невероятно полезный опыт. Некоторые из тем, которые мы преподавали в лагере, включают:

  • API, такие как загрузка видео с Youtube, потоковая передача твитов в Twitter и отправка электронных/текстовых сообщений.
  • GUI, который был сделан с помощью библиотеки Python turtle, а также pyglet.
  • Внедрение математических формул и их применение, например, при моделировании орбит планет.
  • Решение реальных проблем, таких как проверка кредитной карты (с использованием алгоритма Луна).
  • «Фиксация» данных. Здесь студенты получили файл со всеми произведениями Шекспира, и мы попросили их удалить «скучные» слова, такие как союзы, предлоги и тому подобное. В этот момент мы попросили их попытаться увидеть интересные вещи в том, что написал Шекспир.
  • Комбинация многих или всех вышеперечисленных.

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

Вот некоторые из ярких презентаций:

  • Начальные этапы игры Pacman: что было сделано, так это создание спрайтов Pacman и призраков со стенами (цветными) и разумное обнаружение столкновений для Pacman против призраков, спрайтов против стен и шариков и Pacman (что увеличивало счет, когда Pacman «съели» их, а впоследствии исчезли). Я впечатлен тем, как усердно работали трое студентов в этом проекте, и у них даже были карандаш и бумага, чтобы спланировать свои идеи перед их кодированием. По пути они столкнулись с несколькими проблемами, но их проект и презентация были очень успешными.
  • «Картограф созвездий» — эта программа принимала ввод команд и рисовала созвездие по выбору пользователя вместе с крестиками там, где должны быть звезды. Эта программа хороша тем, что сам синтаксический анализатор состоит всего из примерно 50 строк кода, и они смогли понять, как сохранить код независимым от данных. Кроме того, они разработали X, чтобы рисовать независимо от текущего положения и ориентации черепахи.
  • Начало всем известной «змеиной» игры. В этом проекте использовалась библиотека черепах, и были созданы черепахи (круги), которые «следовали» за ведущей черепахой. Это потрясающий проект из-за того, насколько хорошо работает обнаружение близости: голове нужно только «коснуться» целевого круга, а не точно, чтобы добавить его к текущей змее.
  • Программа чата сервер + клиент. Мне очень нравится этот проект, потому что мы ничему их не учили сетевому программированию, и они сами исследовали библиотеку Python asyncio. Именно это делает обучение студентов таким мотиватором для меня, чтобы они научились быть независимыми исследователями.

Даже за те проекты, которые не попали в мои «фавориты», я гордился каждым из них. Это были тяжелые 2 недели для них (и для меня в том числе!), но они того стоили.

Все лабораторные работы для летнего лагеря этого года можно скачать по этой ссылке: http://www.public.asu.edu/~redoughe/PythonCamp/2015/labs.zip.

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

Если у вас есть вопросы/комментарии/проблемы по поводу лагеря, пожалуйста, отправьте мне электронное письмо по адресу: [email protected].

Остерегайтесь лагеря Python в 2016 году!