Hour of Code 古典的な迷路の解説資料

Hour of Codeについて [アワーオブコード]

  • 公式サイト https://hourofcode.com/jp
  • Hour of Codeは、アメリカで2013年から始まった、子どもたちにコンピュータサイエンス教育を普及させようという運動です。
  • コンピュータサイエンスの基礎を学べる1時間のチュートリアルが準備されています。
  • 誰もがイベントやワークショップで子どもたちに教えたり、子どもたちが自習したりできるようになっています。
Hour of Code 古典的な迷路

オンライン教材「古典的な迷路」について

  • 教材URL https://studio.code.org/hoc/1
  • オンライン教材「古典的な迷路」は、ブロックを組み立ててプログラムを作り、キャラクターをブタさんの場所まで移動させる教材です。
  • Hour of Code の教材のなかでもっとも難易度が低く、小学校の低学年でも理解できる内容です。しかしながら構造化プログラミングの構成要素である、順次(プログラムに記された順に処理を実行していくこと)・反復(繰り返し)・分岐(条件判断)が盛り込まれています。プログラムを組むことによりどのようなことができるのか、言い換えるならば、コンピューターに処理させることによりどのような利便性が得られるのかを体験できます。
  • 古典的な迷路には全20ステージあり、ひとつずつ応用を加えながら進めていきます。全ステージを終えるころには、「これがプログラミングなんだぁ」とぼんやり感じ取ることができることでしょう。

Hour of Code 各ステージの解説

Hour of Code、古典的な迷路の各ステージについて解説します。

ステージ1:まずは操作説明をしよう

ステージ1はブロックを1つ積み足すだけ、2つの「まえにすすむ」ブロックだけの最も簡単なステージです。ここは古典的な迷路のルールや操作説明を行うステージとして利用すると良いでしょう。構造化プログラミングの構成要素である、「順次(プログラムに記された順に処理を実行していくこと)」が行われていることをしっかり伝えることが大切です。

ステージ 2:自分でやってみよう

ステージ2はステージ1とほぼ同じ、「順次」だけのシンプルなものです。ステージ1の説明を踏まえて、自分で操作できるか?動かせるか?いろいろ触ってもらうと良いでしょう。

ステージ 3:まがる命令を使いましょう

ステージ3も「順次」を理解するステージですが、曲がる命令が必要になります。「順次」が無意識のうちに理解できているか、子どもたちの理解力によって少し差が出てくるところでもあります。とくに低学年ではここで引っ掛かる場合もありますので、しっかり見極めが必要です。

※もしもここで「あれ?あまり理解できてないぞ!」となった場合、それは必ずしも論理的に思考する力がないという訳ではありません。ステージ1、2で十分に集中して取り組めていなかっただけだったり、小学校低学年では1年の違いで理解力が大きく伸びますので、あまり深刻に考えずに、また1年後に取り組んでみると良いと思います。

ステージ 4:まがる命令を使いこなしましょう

ステージ4はステージ3の命令を少し増やしただけで、「順次」が理解できていれば全く問題になりません。自分の力でしっかりクリアできることを見守ってあげましょう。

ステージ 5:ひっかけ問題にだまされないように

ステージ5は「順次」の仕上げです。スタート地点でアングリーバードが右(TNTの方向)を向いていることに注意して、「まがる」と「すすむ」を使いこなせることができれば「順次」は完璧です。

※ちなみにTNTとは、トリニトロトルエンを用いた火薬の一種で、衝撃や熱に対して鈍感で金属を腐食させないなどの特性を持つため、爆薬として広く用いられています。その昔は火薬といえばニトログリセリンを主体とするダイナマイトでしたが、近頃の子どもたちは火薬といえばダイナマイトとは言わず、TNTと言います。さらにマニアックな子どもたちは、火薬といえばトリメチレントリニトロアミンを主体としたC-4、いわゆるプラスチック爆薬を思い浮かべる子もいます。


ステージ 6:繰り返しに挑戦

ステージ6からは「反復(繰り返し)」を体験します。ここはあえて「順次」で「まえにすすむ」を5つ積み、そのあとに「繰り返し」ブロックを教えてあげるのも効果的です。ここで重要なことは、ブロックを100個、1000個、1万個積み上げなきゃいけない迷路でも、2つのブロックで簡単に実現できることです。これがプログラムのいいところであり、コンピューターが得意とする仕事なのです。

ステージ 7:繰り返しと順次の組み合わせ

ステージ7はステージ6の繰り返しに「順次」の要素が組み合わさったステージです。子どもたちはまったく意識せずに自然とブロックを組み合わせていくことでしょう。

ステージ 8:繰り返しでプログラムを小さく

ステージ8は繰り返しをうまく使うことでプログラムが小さくまとまります。もちろん「順次」だけで組み上げることもできるのですが、ステージ6で触れた、プログラムのいいところであり、コンピューターが得意とする仕事ですね。

ステージ 9:繰り返しでできることが広がります

ステージ9は「繰り返し」で実現できることがぐっと広がる重要なステージです。繰り返しブロックの中にいくつかのブロックを入れ、ひと塊の命令を繰り返します。これこそが実用的な(プロのプログラマーだって同じことをやってる)プログラムのかたちなのです。


ステージ 10:回数を指定しない繰り返し

ステージ10からは回数を指定しない繰り返しです。繰り返しの回数が「条件を満たすまで」という内容に変わり、ここではブタさんの場所に行くまで繰り返すことになります。子どもたちはあっさりクリアしてしまうことでしょう。しかしここには、「人間がコンピューターに繰り返しの回数を教えてあげなくても、コンピューターが自分で判断して繰り返す」という大切な要素が含まれています。ここまでのプログラムと比べると大きな進歩がありますね。

ステージ 11:回数を指定しなくてもクリアできたね

ステージ11はステージ9の置き替えです。ステージ9では繰り返し回数を指定しましたが、ここでは回数を指定しなくてもクリアできるようになりました。このことがどういうことなのか、どんな可能性が広がるのか、子どもたちと話してみるのも良いと思います。

ステージ 12:繰り返しの法則を見つけよう

ステージ12は繰り返しの練習です。どんな法則が隠れているのか見つけだすことがポイントですね。もしも法則が思い浮かばない場合は、一度 「順次」でプログラムを組んでみて、そこから同じ命令の繰り返しを見つけだすのも良いでしょう。

ステージ 13:食べられないように繰り返そう

ステージ13はステージ12と同じく繰り返しの練習です。しっかり落ち着いて考えないと花に食べられてしまったり、繰り返しの法則が思い浮かばなくて混乱してしまうかも知れません。このあたりで論理的に落ち着いて答えを導きだす鍛錬ができますね。


ステージ 14:分岐(条件判断)を使おう

ステージ14からは「分岐(条件判断)」を組み合わせたプログラムになります。残りあと1ブロックまでのプログラムが灰色のブロックで組まれていますので、ステージをクリアすることは簡単だと思います。しかしここで繰り返しと分岐をしっかり理解しておかないと、このあとのステージをクリアすることが難しくなりますので、子どもたちと一緒にプログラムがどのように実行されているのか理解しておきましょう。

ステージ 15:分岐で組んでみよう

ステージ15はステージ14と同じ考え方でクリアできます。今回は灰色のブロックがありませんので、ゼロから自分の力で組むことができるか挑戦してみましょう。わからない場合は1つ目のブロック(繰り返し)、2つ目のブロック(まえにすすむ)を置いてあげるのも有効です。あるいはステージ14に戻り、ブロックの組み合わせをしっかり記憶してからステージ15を挑戦するのも良いと思います。

ステージ 16:さらに分岐を理解しよう

ステージ16も繰り返しと分岐の訓練です。同じ考え方でクリアできますので、自分の力で挑戦してみましょう。ここでもヒントが必要な場合は、最初のブロック(繰り返し)を置いてあげたり、前のステージに戻ってブロックの組み合わせを覚えるのも有効ですよ。

ステージ 17:さらに分岐を理解しよう

ステージ17も同じく繰り返しと分岐の訓練です。ここでは分岐の条件を変更する必要がありますので、子どもたちと対話をしながら操作方法を教えてあげると良いでしょう。


ステージ 18:迷路の特徴にあわせた工夫

ステージ18からは迷路の特徴にあわせたプログラムの工夫が必要になってきます。ステージ17までの「繰り返し + まえにすすむ + 分岐」では、ゴールに辿りつけない道に迷いこんでしまいます。そこでひと工夫。条件のかたちが「もし~なら○○、ちがうときは××」に変わりますので、これを使ってクリアできるか挑戦してみましょう。

ステージ 19:自分の力で工夫してみよう

ステージ19はステージ18と同じ方法でクリアできます。自分の力でブロックを組み合わせることができるか挑戦してみましょう。

ステージ 20:これが構造化プログラミングです

ステージ20は最終ステージ。「順次」「繰り返し」「分岐」がすべて盛り込まれていて、さらに命令のかたまりが階層的に組み合わさっています。まさに構造化プログラミングの本質。1本道なら、どんなに複雑な迷路でもコンピューターが勝手に判断してゴールに辿りついてくれます。
ここで、最初の頃のステージを思い出してみましょう。「何個すすめ、何回繰り返せ」といったように、コンピューターに迷路のかたちを人間が教えてあげていましたね。でも最終ステージでは人間が迷路のかたちを知らなくても、コンピューターがあらかじめプログラムされた条件に従って状況を判断しながらゴールまで辿りつきます。まさにこれこそがコンピューターのいいところで、プログラミングなのです。


古典的な迷路の「みぎひだりまがるヒント」

古典的な迷路では、「みぎにまがる」「ひだりにまがる」ブロックを使ってキャラクターを回転させなければいけません。まだ左右がはっきり分からない子どもや、キャラクターが下方向を向いていると左右が逆になるので大人でも分かりにくいところがありますので、下の画像を紙に印刷して、回転させながら考えるととても分かりやすくなります。名刺カードに印刷するととても便利ですので、ぜひご活用ください。

古典的な迷路の「まがる」のヒントになる画像