コンピューター プログラミング (関数型または命令型) を教えるためのグループ ゲーム
-
19-09-2019 - |
質問
(要約については末尾を参照してください) 更新しました 質問。)
コンピュータープログラムがどのように機能するのかを人々(子供でも大人でも)に伝えたい 高級言語で書かれた そして、そのプログラムと、彼らが知っている消費者向けデバイス (タイピングとインターネットを「行う」テレビのようなボックス) としてのコンピューターとの関係は何なのか。
パソコンを使わずにやりたい。それは私にそれらがないからではなく、演技、ダンス、音楽、スポーツ、キャプチャー・ザ・フラッグが楽しいのと同じように、人々を巻き込む楽しい身体活動をしたいからです。
読みました コンピューターを使わずに初心者向けプログラミングを教える ここはスタックオーバーフローです。への参照 コンピューターサイエンスのアンプラグド が最も近いものですが、そこでのアクティビティのほとんどは複雑すぎるか、必要な小道具が多すぎるか、特定のコンピューター サイエンスの概念に焦点を当てているかのいずれかです。
私も読みました プログラミングの基礎を学べるゲーム しかし、上の最初の段落での説明と一致するものはほとんどありませんでした。
そして、念のため、私は読みました 命令型プログラミングの前に関数型プログラミングを教えるべきでしょうか? ですから、私はそのどちらかを教える活動に喜んで応じます。
これらの要件には主観的なものもありますので、留意してください。
- 物理的な
- 小道具がない(またはほとんどない)
- 楽しい
- できるだけ多くの感覚を使う
- プログラムを作成してコンピュータ上で実行する体験をシミュレートします
- 写真のどこにもコンピューターがありません
- ゲームです(競争的または協力的)
資料の 1 つのソースは、企業から送られてくるチームビルディング ゲームかもしれないと思いました。しかし、それらはチームビルディングを目的として設計されており、コンピュータープログラムの作成と実行がどのようなものかを教えるものではありません。しかし、おそらくあなたはそのアイデアを理解するでしょう。この質問のもう 1 つの見方は、より多くの答えを見つけるためにどのような検索用語を使用すればよいかを提案することです。通常は適切な検索用語を選択できますが、「コンピュータ」と「ゲーム」の暗黙の「または」では、必要なものは見つかりません。なぜなら、その組み合わせはまったく別のもののために予約されているからです。
アップデート:
- これまでのご回答ありがとうございました!
- 私は、マシンがどのように動作するか (1 と 0) や特定の概念ではなく、高級言語プログラムの動作をシミュレートすることに興味があることを明らかにしました。
- これを明確にすると、ゲームの提案や見つかったゲームが関数型プログラミングについて教えているのか、それとも命令型プログラミングについて教えているのかを具体的に言うことができるようになります。
- その説明とともに、コンピュータプログラムとコンピュータの関係を教えるゲームに関する部分にも回答してください。教えられる必要があるのは、物理的に似ている他の消費者向けデバイスには「プログラム」がないということです。なぜでしょうか?
- 直接のご回答をお待ちしております。さらにすぐに使えるソースも見つけられれば コンピューターサイエンスのアンプラグド それも素晴らしいでしょう
- これまでの回答に対する私のコメントを参照してください。これらはすべて、あなたが書いたことに対する感謝の精神で作成されたものであり、決して批判的なものではありません。
解決
基本的に、コンピューターはいくつかの非常に単純なことしか実行しません。
- 彼らは基本的な計算ができるので、
- データをある場所から別の場所に移動できます。
- ループすることもできますし、
- 彼らは簡単な決定を下すことができます。
コンピューターの能力は、これらの単純な作業を 1 秒間に何百万回も実行できるという事実にあります。
フィジカルゲームのレベルでは、あなたが教えることができるのはこれくらいだと思います。それ以上に、コンピューターシミュレーションやマルチメディアプレゼンテーション(または少なくともホワイトボード)が必要だと思います。
他のヒント
1.ヒューマンバブルソート
ヒューマン バブル ソートをテストしてみてください => 複数の人々に質問してください - 私は最低 1 人からお勧めします。4~最大無限:-) - 姓のアルファベット順に基づいて、バブル ソートの原則に基づいて自分自身を並べ替えます。
例 : https://www.youtube.com/watch?v=8QD-R_MfDsQ
子供にも大人にも使えます。
2.人間狂乱ロボット
物理的な人物、紙、それに書かれた矢印と記号を使用して、狂乱ロボットの原理を現実に再現します。Google で「lightbot」を検索してください。まだ 2 つ以上のリンクを投稿できません。ここで回答するためにアカウントを作成したところです :-)
3.プリモ
非常に小さな子供たち (4 歳以降) には、グリッド上で動かすプログラム可能な小さなおもちゃ、Primo がとても好きです => http://www.primotoys.com/
あなたは、いくつかの報酬(など子供のためのお菓子)への扉を開ける鍵の両半分を取得するために、競合する2つのチームを持つことで、スレッドのロックを実証できました。各チームはそれぞれ半分のキーをつかみ、ドアを開けないこともできません。それらが協働する場合、それらの両方は、報酬を得る。
これは少し進んだかもしれない - 今持ってください、それを再読み込みません。
。CSクラスは本当に楽しかったです。生きたチューリングマシン。
必要なものは次のとおりです。
マシンの正式なルールを置く場所、最初は純粋なカオスです :-D
人間:
a.大勢の人が列に並んで線形記憶をシミュレートするとき、必要なのは「1」と「0」を区別する方法だけです。私たちは前景または背景に立ってこれを行いましたが、他の方法も想像できます...
b.マシンのあらゆる状態に 1 人の担当者が対応
c.メモリ上で左右に移動する「読み取りヘッド」。
ここで必要なのはサンプル プログラムだけです。たとえば、パターンを反転することから簡単に始めてください。次に、インクリメント/デクリメントなどのより複雑なプログラムに進みます。
インスピレーションの場合:物理的な人々は踊り=> HTTPS経由バブルソートアルゴリズムを具現化する方法の例:?//www.youtube.com/watch V = lyZQPjUT5B4する