ゲームでアルゴリズムを学ぶ

生徒の一部は、プログラミングの基本となる論理的思考(アルゴリズム)をゲーム感覚で習得する、課題解決型ゲーム「アルゴロジック」を経験済みだという。それでも最初からコーディングを行うのは難しいため、スマートフォン向けゲーム「Angry Birds(アングリーバーズ)」をプレイ。もちろん同じゲームではない。プログラミングの基礎であるアルゴリズムを学ぶため、「前方に移動」「左に曲がる」「右に回転」といったアクションを事前に組み立てて、目的の結果を導き出すというものだ。

生徒たちがプレイした「Angry Birds」のHour of Code版。たとえばステージ6ではfor文が現れるが、力業で動かすこともできる

ステージをクリアすると実際のコード(JavaScript)を確認できる。こちらはfor文を使って繰り返すのがひとまずの解答だ

ライフテックのメンバーや日本マイクロソフトの社員、戸板校の先生などがプログラミングを手助けしつつ、生徒のコーディングが始まった。基本的な操作は、アクションをコード部分にドラッグ&ドロップし、最後に実行ボタンを押すだけとシンプル。生徒たちは皆マウスを手に握りしめ、真剣にディスプレイを見つめていた。

アルゴリズムの組み立てが苦手な生徒には、ライフイズテックのスタッフや日本マイクロソフトの社員が説明を行った

今回の講座を学びのチャンスととらえる生徒が多かったという

割当時間は30分程度だったが、会場からは10分ほどで次々とステージをクリアする生徒が続出。当初は目標を10ステージとしていたが、全20ステージをクリアする生徒も現れるほどだった。

はじめはキャラクター移動だけのブロックを使っていれば済むものの、ステージを進めると繰り返し(for)や条件分岐(if)が登場し、アルゴリズムの基礎が自然と身につく形になっている。興味を持たれた方は、Code.orgのWebサイトを訪れて見て、生徒たちが体験したゲームをプレイしてほしい。

プログラミングに成功すると、生徒たちから歓声が上がる。だが、陽気な声を上げた直後にそのままディスプレイを真剣に見つめている姿は、「解く楽しみ」を感じているようだった。そもそもプログラミングには、最初のお題目(要求分析)をもとに頭の中でパズルを組み立て(ソフトウェア設計)、実際にコードを記述する(コーディング)、その結果が正しく動作するか確認(テスト)という流れがある。

今回の講座では、ドラッグ&ドロップ操作およびブロック選択がコーディング部分に相当する。力業でキャラクターをコントロールする生徒もいれば、条件分岐などを用いてアルゴリズムを正しく導く生徒もいた。

讃井氏は「基礎的なプログラムは今回のように簡単な仕組みで動作する」と生徒に語り、さらに「友達と語り合いながら楽しんだように、実際のコーディングも楽しんでほしい」と講座を締めくくっていた。

実際にプログラミングを体験した中学3年の高橋蕗さんと高校2年の岩﨑綾乃さんは、2人ともプログラミングの概要自体は理解しているという。岩﨑さんは大学に進学してもプログラミングにチャレンジしたいと語るものの、実際にスマートフォン向けアプリの開発経験を持つ友人を引き合いに出して、「世界が相手となると、(小さい頃からプログラムを勉強している子どもが多いため)経験面で厳しそう」と語っている。高橋さんも「自分が怖がらずにチャレンジすれば、誰でもプログラムできるの」と自信を見せつつも、世界を相手にするという話題になると「その自信を持てなさそう」と10代の素顔を見せた。

質問に答えてくれた中学3年の高橋蕗さん(左)と高校2年の岩﨑綾乃さん(右)