- blogs:
- cles::blog

プログラミングの基礎が学べるゲーム c-jump


c-jumpというプログラミングの基礎(というか、制御文の基礎)を学ぶことができるボードゲームがあるというので、なにか研究のヒントにならないかと取り寄せてみました。ルールについてはだいたい下記のような感じで、一言で言えばマス目と分岐がプログラム表現になっている双六です。
遊びながらプログラムの基礎を学べるボードゲーム『c-jump』 | WIRED VISION
このボードゲーム(写真)では、プレイヤーはスキーヤーになって山を滑り降りる早さを競うが、サイコロを振るたびに、コンピューターのプログラムコードに似た命令に従って動かなければならない。自分が進めるコースを判断するには、基本的な数学の知識を使う。ただし、進めるコースの条件はどれも、プログラミングに使われる表現で書かれている。たとえば「if (X==1)」という条件で緑色のコース、「while (X < 4)」でオレンジ色のコースに進む、といった具合だ。このXは、サイコロを振って出た目を表す。
研究室の僕ののチームのメンバーでちょっとやってみましたが「『/* START */』がちゃんとコメントになってますよ!芸が細かいですね!」と普通の人が絶対テンションが上がらない部分でテンションが高めでした。
このゲームはプログラミングの基本を学ぶというコンセプトなのに、通常プログラミングでは避けるべきとされているgoto文が入っているのを疑問に思っていたのですが、これについてはFAQに下記のような解説が入っていました。実際にプレイをしてみると分かりますが、goto文を踏んでしまうとゲーム中はかなり不利な扱いを受けるようになっています。そこからgoto文嫌いになってもらおうというというのは、なかなかシャレが効いていますね。
c-jump: computer programming board game
We decided to introduce the goto to c-jump players, since this is one of the fundamental concepts of the low-level programming. In the game, the goto statement changes position of your skier from better to worse, so you should avoid it, too !
ただ、これがプログラミングの理解につながるかと言われるとかなり微妙でしょうか。よく言われる再帰関数とか、ポインタとか、構造体で躓くというのはまだマシな方で、大半の実際に初心者が躓くところは、制御文というより、配列とか、関数呼出における仮引数と実引数とか、返り値の部分だったりするわけで、それに対するうまい教え方があるといいなぁと常々思っています。ひとつ具体的なアイディアは持っているので、今年の後半にはそのプロジェクトの立ち上げに入れると良いなぁと考えています。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3572
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110747)
3 . 年次の人間ドックへ(110352)
4 . 2023 年分の確定申告完了!(1つめ)(109905)
5 . 三菱鉛筆がラミーを買収(109803)