プログラミング教室の講師をしていると、思うのが「PCや機材を揃えるのには非常にお金がかかる」ということです。一度揃えても、数年経ったら陳腐化するため定期的に更新していかなければなりません。BYOD(各自、自分の機器を持ってくること)だとOSやバージョンやハードがそれぞれ異なるので、アプリが同じ動作をするとは限りません。困りました。
そこで、電子機器を使わず紙を使う教材を考えました。カードゲームです。本稿でそれを紹介しますので、ご意見等あればコメントください。
今の子はポーカーを知っているでしょうか。ポーカー風のゲームです。3人でプレイします。4人以上で遊ぶなら、3チームに分けます。配る人は持ち回りとし、親やディーラーといった役割はありません。
カードを1人5枚ずつ配ります。残ったカードは山とします。
2回まで、不要なカードを捨てて、山から捨てた枚数を補充することができます。5枚全部取り換えてもいいです。役がもう完成していたら、取り換えなくてよいです。取り換える回数が最も少なかった人に、アドバンテージが入ります。
以下は、2つのステートメントを作り、関連している最高の役「フルハウス」が完成しました!
役を作り終わったら、手札をオープンし役を言います。より高いランクの役を作った人が勝ちです。1プレイの時間は短いので、5回を1セットとするなどし、勝った回数やランクの合計点数を競ってもよいです。言語仕様としては、pythonのサブセットのようなものです。どうしたら最終的に勝ちになるかは、プレイヤー同士話し合って決めます。
ランク0(最低) バグ
ステートメントを作れなかった場合、言語仕様に違反した場合にバグとなります。この例は変数aもbも定義していないので、print aもprint bもできずバグとなります。
ランク1 ワンペア
2枚のカードで1つのステートメントを作りました。
ランク2 ツーペア
4枚のカードで2つのステートメントを作りました。
ランク3 スリーカード
3枚のカードで1つのステートメントを作りました。
ランク4 フォーカード
4枚のカードで1つのステートメントを作りました。
または、4枚のカードで2つのステートメントを作り、関連し合っています。
ランク5 ストレート
5枚のカードで1つのステートメントを作りました。
これはストレートではなくフォーカードとなります。コメントはないものとして扱われるため。
ランク6(最高) フルハウス
5枚のカードで2つのステートメントを作り、関連し合っています。
フルハウスにならない例を以下に示します。これはスリーカードとワンペアになります。スリーカードとワンペアはフォーカードに劣りますが、スリーカードより上。
教育の現場では、プログラムの実行結果を言うようにするとより効果的です。
アドバンテージ
同点の場合、アドバンテージを持っている方が勝ちとなります。(それでも勝敗が決まらなかったら、じゃんけんなどで決めます)
用意している命令の種類と仕様を以下の表に示します。
演算子の説明などは、本稿では省略します。
Pythonをそこそこ知っている友人達(プログラミング教室の講師達)と試遊したところ、概ね好評でした。しかし、Pythonを知らない子供たちに仕様を説明して、はたして理解してもらえるでしょうか。カード一枚一枚の意味を説明書に書いても、読んでくれるかどうか。何回かまず遊んで、どうしたら役になるかを「なんとなく」でいいからつかんでもらうようにするしかないと思っています。
以上