Групповые игры для обучения компьютерному программированию (функциональному или императивному)
-
19-09-2019 - |
Вопрос
(Краткое изложение смотрите в конце обновленный вопрос.)
Я хочу донести до групп людей (детей или взрослых), как компьютерная программа написано на языке высокого уровня работает, и какова связь этой программы с компьютером как потребительским устройством, каким они его знают (похожая на телевизор коробка, которая "делает" набор текста и "выходит в Интернет").
Я хочу сделать это без компьютеров.Не потому, что у меня их нет, а потому, что я хочу веселой физической активности, которая вовлекает людей так, как это делают актерское мастерство, танцы, музыка, спорт и захват флага.
Я прочитал Обучение начинающих программированию без компьютеров здесь, в stackoverflow;его ссылка на Информатика Отключена от сети подходит ближе всего, но большинство видов деятельности там либо слишком сложны, требуют слишком большого количества реквизита, либо сосредоточены на конкретных концепциях информатики.
Я также читал Игры, которые обучают основам программирования но почти ничто не соответствовало моему описанию в первом абзаце выше.
И просто для пущей убедительности я прочитал Следует ли обучать функциональному программированию перед императивным программированием? так что я открыт для занятий по обучению любому из этих направлений.
Имейте в виду эти требования, некоторые из которых являются субъективными:
- физический
- нет реквизита (или его очень мало)
- веселье
- задействует как можно больше чувств, насколько это возможно
- имитирует опыт написания программы и запуска ее на компьютере
- нигде на картинке нет компьютеров
- это игра (соревновательная или кооперативная)
Мне приходит в голову, что одним из источников материала могут быть те игры по сплочению команды, на которые вас посылают компании.Но они предназначены для сплочения команды, а не для обучения тому, что такое написание и запуск компьютерной программы.Но, может быть, вы уловили идею.Другой способ взглянуть на этот вопрос - предложить, какие поисковые запросы мне следует использовать, чтобы найти больше ответов - хотя обычно я могу выбирать хорошие поисковые запросы, неявное "или" из "компьютеры" и "игры" не найдет то, что я хочу, потому что эта комбинация зарезервирована для чего-то совершенно другого.
Обновить:
- Спасибо за ответы на данный момент!
- Теперь я пояснил, что меня интересует моделирование работы программы на языке высокого уровня, а не то, как работает машина (1 и 0) или конкретные концепции
- С этим разъяснением вы сможете конкретно сказать, учит ли ваше игровое предложение или найденная игра функциональному или императивному программированию
- С этим разъяснением, пожалуйста, также ответьте на часть об играх, чтобы научить взаимосвязи компьютерной программы с компьютером.Чему нужно научить, так это тому, что другие потребительские устройства, которые физически выглядят аналогично, не имеют "программ" - почему?
- Мы очень ценим ваши прямые ответы;если вы также можете найти более готовые к использованию источники за Информатика Отключена от сети это тоже будет здорово
- Смотрите мои комментарии к ответам на данный момент, все из которых сделаны в духе благодарности за то, что вы написали, и никоим образом не предназначены для критики.
Решение
По сути, компьютеры выполняют всего несколько очень простых действий:
- Они могут выполнять элементарную математику,
- Они могут перемещать данные из одного места в другое,
- Они могут зацикливаться, и
- Они могут принимать простые решения.
Мощь компьютеров заключается в том факте, что они могут выполнять эти простые действия миллионы раз в секунду.
На уровне физической игры, я полагаю, это практически все, чему вы можете научить.Помимо этого, я считаю, что требуется компьютерное моделирование и / или мультимедийные презентации (или, по крайней мере, белая доска).
Другие советы
1.Вид Человеческого Пузыря
Просто протестируйте человеческую сортировку пузырьков => спросите группу людей - я бы рекомендовал от min.от 4 до макс.infinite :-) - сортировать себя по принципу пузырьковой сортировки, основанной на алфавитном порядке их фамилии.
Пример : https://www.youtube.com/watch?v=8QD-R_MfDsQ
Подходит для детей и взрослых.
2.Человеческий Безумный Робот
С помощью физических людей, бумажных листов и написанных на них стрелок + символов воспроизведите принцип работы робота Frenzy в реальной жизни.Поищите "lightbot" в Google - я пока не могу разместить более двух ссылок.Я только что создал свою учетную запись, чтобы ответить здесь :-)
3.Primo
Для совсем маленьких детей (после 4 лет) мне очень нравится Primo, программируемая маленькая игрушка, которую вы приводите в движение по сетке => http://www.primotoys.com/
Вы могли бы продемонстрировать блокировку потоков, попросив две команды соревноваться за получение двух половинок ключа, который открывает дверь к какой-либо награде (сладости для детей и т.д.).Каждая команда берет по половине ключа, и тогда ни одна из них не может открыть дверь.Если они будут сотрудничать, то они оба получат награду.
Это может быть немного продвинуто - не уверен, что сейчас, перечитав это.
На уроке CS действительно было весело:Живая Машина Тьюринга.
Вам нужно:
Какое-то место для размещения формальных правил машины, вначале это чистый хаос :-D
Люди:
a.Куче людей, которые стоят в очереди и имитируют линейную память, вам просто нужен способ различать "единицы" и "нули".Мы делали это, стоя на переднем плане или на заднем плане, но я мог бы представить и другие способы...
b.Один человек для каждого состояния машины
c."Считывающая головка", которая перемещается влево или вправо по памяти.
Теперь вам просто нужны примеры программ, начните просто, например, с инвертирования шаблона.Затем переходите к более сложным программам, таким как increment / decrement.
Для вдохновения :пример того, как физические люди могут материализовать алгоритм сортировки пузырьков с помощью танца => https://www.youtube.com/watch?v=lyZQPjUT5B4