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

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

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

  • Переменные и константы.
  • Управляющие структуры: if, else-if, while, for, do-while.
  • Функции.

У них не было знаний об использовании структур данных, таких как массивы.

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

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

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

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

Когда эта часть была завершена, мы подготовили репозиторий Git, чтобы все студенты профессионального обучения имели одинаковую информацию (проблемы и решения).

Ломая лед

В день семинара присутствовало 26 молодых людей в возрасте от 17 до 23 лет, разделенных на две группы. Поэтому нам оставалось разделить их на пары и сломать лед между ними.

Итак, хотя это ненормально в таком возрасте в испанской старшей школе, мы сыграли в небольшую игру:

  • Они образовали два ряда, где каждая группа стояла лицом к лицу.
  • Я сказал им, что они должны узнать имя, возраст и хобби человека, стоящего перед ними. Кроме того, они должны были обратить внимание на детали одежды.
  • Каждые 15 секунд ученики в одном из рядов сдвигались влево, поэтому человек перед ними менялся. Затем они повторили вопросы.

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

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

Что мы узнали из этого упражнения?

  • Человек не может запомнить многие переменные (некоторые исследования показывают, что 7 - это среднее число).
  • Мы только что создали алгоритм, по сути, это была управляющая структура: циклы.
  • Все расслабились, и лед определенно тронулся, у нас больше не было двух групп незнакомцев, они уже играли вместе и познакомились.

Теперь мы собираемся описать задачи, которые мы предложили на семинаре.

Проблема 1 - Калькулятор

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

Эта задача состояла из формы с двумя входными значениями (номер 1 и номер 2) и кнопки, при нажатии которой отображались результаты всех следующих операций: сложение, вычитание, умножение, деление, остаток, двойное значение первого число и, наконец, удвоить второе число.

HTML-документ в этой задаче показан ниже:

Ниже представлен файл JavaScript, предоставленный студентам, в котором есть комментарии с текстом TODO, в которые они должны внести изменения.

Проблема 2 - Угадай число

Вторая проблема немного сложнее. Цель состоит в том, чтобы создать алгоритм, в котором случайным образом генерируется число от 1 до 7. Затем игрок может вводить числа, чтобы попытаться угадать их. Есть 3 попытки угадать число, в противном случае игра проиграна. В любом случае игроку должно быть показано сообщение.

HTML-документ в этой задаче показан ниже:

Учащимся предоставляется следующий файл JavaScript:

Задача 3 - веревочная игра

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

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

Кроме того, код написан таким образом, что они прекрасно понимают, как взять под контроль нажатую клавишу в веб-браузере.

Учащимся предоставляется следующий файл JavaScript:

Задача 4 - Футбольный матч

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

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

Учащимся предоставляется следующий файл JavaScript:

В конце семинара мы взяли небольшой образец опыта студентов о семинаре, и это краткое изложение:

El taller me ha parecido una gran idea para poder meternos en el mundo de la informática y conocer a gente del campo. ¡Las personas que lo han preparado son geniales y las actividades muy divertidas! Espero más talleres así de interactivos. ( Семинар казался отличной идеей, чтобы иметь возможность окунуться в мир вычислений и познакомиться с людьми с мест. Люди, которые его подготовили, великолепны, а занятия очень интересны! Я с нетерпением жду новых интерактивных семинаров . )

Este taller ha estado muy interesante. Además es útil para ver otros lenguajes de programación y conocer gente y sus different puntos de vista y forma de solucionar issues. ( Этот семинар был очень интересным. Также полезно увидеть другие языки программирования и познакомиться с людьми и их разными точками зрения и способами решения проблем. )

Me ha parecido un выше muy interesante. Nos han enseñado cosas que no habíamos visto antes y han tenido mucha paciencia para guiarnos en nuestras dudas. En resumen, гениальный. ( Я нашел семинар очень интересным. Они научили нас тому, чего мы раньше не видели, и проявили много терпения, чтобы помочь нам в наших сомнениях. Короче говоря, отлично .)

El taller ha sido genial, он aprendido bastante y Juan me ha caído súper bien. ( Семинар прошел отлично, я многому научился, и мне очень понравился Хуан. )

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

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

Таким образом, взаимное обучение более позитивно, чем классический метод с основным докладчиком и несколькими помощниками.

Проблемы были решены студентами ПТУ, и их можно найти в публичном хранилище.

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

Первоначально опубликовано на https://carloscaballero.io 26 апреля 2019 г.