こんにちは、とらのすけです。
前回の記事で、「Google Blockly Games」のパズル問題
について簡単な解説をしました。
今回は、前回に引き続き、迷路問題の解説をしてみたいと思います。
迷路問題では、プログラミングで重要な
以下の2つの概念を学ぶことが出来ます。
・繰り返し
・条件分岐
また、プログラミング的思考力で大切な
「求める結果から、プロセスを逆算して処理を組み立てる」
という考え方や
「試行錯誤をしながら、結果を出すためにはどうしたらいいか?
の手順を考えて、実行して、検証をする」
という「「見たことのない、経験したことのない問題」
に対しての対応力を養うことが出来ます。
慣れないと難しいかもしれませんが
一度理解してしまえば、大したことはありませんので
焦らず、ひとつづつ理解するようにしてみてください。
まずは、Google Blockly Gamesにアクセスして
以下の画面を表示してください。
迷路と書かれたアイコンをクリック
すると、以下の画面が出てきます。
この画面は、下の図のように
①問題/実行エリア
②ブロックエリア
③プログラミングエリア
の3つの領域から構成されています。
一つずつ見ていきましょう
①問題/実行エリア
ここには、問題が表示されます。
人間の形をした人形、Google Mapでおなじみのピンのマーク
が表示されていて、黄色で道がつくられています。
ピンのマークはゴールをあらわしていて、
この人形をゴールまで動かすようにする
プログラムをつくるのが迷路の問題となります。
また、下のほうにある「プログラムを実行」
ボタンを押すことで作ったプログラムを
実行することが出来ます。
②ブロックエリア
ブロックエリアには、問題を解く(プログラムをつくる)
のに使うことのできるプログラミングのブロックが
並んでいます。
②プログラミングエリア
ここにブロックを並べることで
人形を動かすプログラムを作ります。
右下にゴミ箱マークがありますが
これは、プログラムを作っている途中で
間違えておいてしまった/いらなくなったブロック
を消すために使用します。
いらなくなったブロックをつまんで
ゴミ箱の上に移動すると消すことが出来ます。
また、画面の右上にある人形マークを押すと
以下のように、宇宙服を着た人とパンダが
出てきます。
試しに宇宙服を着た人選んでみると
問題/実行エリアの背景が変わります。
お子さんの好みに合わせて変えてみてください。
とらのすけは宇宙服のテイストが好きなので
以降は宇宙服を選んだ状態で解説をします。
さあ、それではやってみましょう。
まずは、「プログラムを実行」を押してみてください。
どうなりましたか?
そうですね、下のように、人形が右向かって
一つ動いて止まってしまったと思います。
これは、プログラミングエリアに
置かれているブロック「まっすぐ進む」が実行
された結果となります。
では、ゴールまで進むようにするにはどうしたらいいでしょうか?
「まっすぐ進む」一つで、真ん中まで進んだということは…
そうです、もう一つ「まっすぐ進む」を置いて
あと一歩進むようにすればいいんです。
では、実際にやってみましょう。
ブロックエリアに置かれている「まっすぐ進む」をつまんで
プログラミングエリアに置いてみてください。
あれ、何かメッセージが出てきていますね。
説明を読んでもあまり意味が分からないかと思います。
どうしたらいいかというと、説明の絵にあるように
ブロック同士を近づけて、くっつけてあげないといけません。
下の「まっすぐ進む」ブロックをつまんで、上の「まっすぐ進む」
ブロックに近づけてあげてください。
こんな風に、くっつけば大丈夫です。
この状態で再び実行してみましょう。
「プログラムを実行」ボタンが「リセット」
になっている場合は、「リセット」を押すと
人形の位置が最初の位置に戻って「プログラムを実行」
に変わります
どうでしたか?
うまくゴールにたどり着けたと思います。
ゴールにたどり着くと、こんなメッセージが
出てくると思います。
このレベルでは~というメッセージの意味が分からなくても
今は、気にしないでください。
「OK」ボタンを押すと、次の問題が出てきます。
次の問題も、一緒に考えてみましょう。
先ほどの問題と同じように、人形をゴールまで
動かすように、ブロックを組み立てます。
今回は、ゴールまでの道が曲がっていますが
距離としては、3歩分の距離があります。
なので、「まっすぐ進む」を3つ並べれば
ゴールまでたどり着くように思えます。
ブロックエリアからドラッグドロップして
こんな感じに組み上げて、実行してみましょう。
結果はどうでしたでしょうか?
哀れな宇宙飛行士は道を踏み外してしまい、
宇宙空間に放り出されてしまいました…
なぜこんなことになってしまったでしょうか?
ちょっと考えてみましょう。
実は、この「まっすぐ進む」というブロックは、
「(道に沿って)まっすぐ進む」
という命令ではなく
「(道があろうがなかろうが)まっすぐ進む」
という命令なんです。
なので、1つ目の命令の「まっすぐ進む」が
実行された時点で、以下の絵のように
まっすぐ進む道がないところに来ています。
この状態で2つ目の「まっすぐ進む」が
実行されると、道を踏み外してしまうのです。
さてではどうすればゴールまでたどり着けるでしょうか?
ちょっと考えてみてください。
ヒントは、ブロックエリアにある
「左を向く」と「右を向く」というブロックです。
そうですね、まっすぐ進む道がなくなったところで
向きを変えてあげればいいんです。
この場合、一つ目の「まっすぐ進む」が終わったら
「左を向く(人形が今進んでいる方向に対しての向きです)」
そのあと、また一歩「まっすぐ進む」。
そして「右を向く」をして、また一歩「まっすぐ進む」
の順番で動けばゴールに着けそうです。
ではこの
「まっすぐ進む」
「左を向く」
「まっすぐ進む」
「右を向く」
「まっすぐ進む」
の順でブロックを組んでみてください。
ブロックエリアからブロックをつまんで動かして
くっつけてみてください。
こんな風に組めたでしょうか?
出来上がったら実行してみてください。
無事ゴールにたどり着くことが出来ましたね。
次の問題はこんな問題です。
一見すると1問目と同じで、「まっすぐ進む」を
何個か使えばゴールにたどり着けそうです。
ただし、この問題ではメッセージに出ているように
ブロックを2個だけしか使うことはできません。
ゴールまでは、5歩あるので
「まっすぐ進む」を5個使わないとゴールまでは
たどり着けません。
どうしたらよいでしょうか?
こんな時に使うのが、繰り返し処理です。
人間とは違い、コンピュータは同じことを
繰り返すのがとても得意です。
プログラムにも、この繰り返して行うという
命令があります。
今回の問題で、ブロックエリアを見ると
こんなブロックがあります。
このブロックには、「まで繰り返す(ゴールマーク)」と
「実行」と書かれています。
これは「ゴール」にたどり着くまで
「実行」の処理を繰り返して行う
という意味になります。
それでは、このブロックを、プログラムエリア
に移動して、「実行」の横に「まっすぐ進む」を
はめてみてください。
こんな風になるはずです。
これで、「まっすぐ進む」を「ゴールまで繰り返す」
というプログラムが出来ました。
それでは、実行してみましょう。
無事ゴールにたどり着くことが出来ましたね。
レベル4、レベル5の問題はこれまでの内容を組み合わせると
できるので、自分でやってみてください。
さて次は、条件分岐が学べる6問目の解説です。
さて、どうしたらいいでしょうか?
まずは自分で考えてみて、実際に実行して
ゴールにたどり着けるか試してみてください。
プログラミング学習では
「自分でゴールまでたどり着くためにはどうしたらいいか?を考え
プログラムを作り、実際に動かしてみて結果を確かめる。」
という一連の試行錯誤の過程がとても大切です。
一発で正解にたどり着く必要は、全くありません。
むしろ、お子さんが最初から正解を聞いてきたら要注意です。
考えることではなく、正解することに注意が向いてしまっていることになります。
試行錯誤をしながら、結果を出すためにはどうしたらいいか?
の手順を考えて、実行して、検証をする
の繰り返しが、プログラミング的思考力を向上させ、
ひいては「見たことのない、経験したことのない問題」
に対しての対応力を鍛えていくことになります。
いかがですか?ご自分でゴールまでたどり着けたでしょうか?
では、問題の解説をしたいと思います。
この問題のミソは、ゴールまでの道順をたどってみて
・人形は左にしか曲がらない。
・左に曲がれるところに来たら必ず左に曲がる。
・左に曲がれないところでは、まっすぐ進み続ける
というところにあります。
まず、まっすぐ進み続けるというのは、前回の解説と同様に
で作ることが出来ます。
ただし今回は、左に曲がれるなら左に曲がる
という処理を入れる必要があるので
条件分岐のブロック
を使います。
このブロックは書かれているように、
「もし左に進めるなら」、「実行」にある
命令を実行するというものです。
このブロックを使って、こんな感じに
してやれば、よさそうです。
さあ、実行してみましょう。
うまくいきましたね。
実は他に並べ方でもゴールにたどり着くことが出来ます。
例えばこんな並べ方です。
実際、プログラミングに正解はありません。
求めている結果が出て、そこに至る理屈が
成立していれば、OKなんです。
※ただし、実業務でのプログラムだと、計算の効率とか
ほかの人が見た時のわかりやすさとかが必要になりますが
それは、もっと先の話です。
このあたりが、学校のテストの問題とは
違うところだと思います。
これで、今回の解説は終わりにします。
残りの問題は自分で取り組んでみてください。
いかがでしたでしょうか?
難しかったですか?簡単でしたでしょうか?
子供に取り組ませるときは、
・向きを変える
・繰り返す
・条件分岐
などの新しい考え方が出てきたら
説明をしてから、やらせてあげてるといいと思います。
繰り返しになりますが
お子さんが最初から正解を聞いてきたら要注意です。
試行錯誤をしながら、自分で考えることを大事にしてください。
Google Blockly Gamesの「迷路」ゲーム
の解説をしました。
いかがでしたでしょうか?
思ったより簡単だった方、難しかった方
様々だと思いますが、
「ブロックをつなげて動くものをつくる」
ということの雰囲気は理解できたかとおもいます。
問題の解説でも説明しましたが、この迷路の問題では
プログラミング的思考力で大切な
「求める結果から、そこにたどり着くプロセス(手順)を逆算して、処理を組み立てる」
という考え方を学ぶことが出来ます。
また、「迷路」でプロセスを使った
・繰り返す
・条件分岐
という処理は、言語によって形は変わりますが
どんなプログラミング言語でも使用する考え方です。
残りの問題にも取り組んでみて、しっかりと
理解をするようにしてください。
それではまた。
前回の記事で、「Google Blockly Games」のパズル問題
について簡単な解説をしました。
今回は、前回に引き続き、迷路問題の解説をしてみたいと思います。
迷路問題では、プログラミングで重要な
以下の2つの概念を学ぶことが出来ます。
・繰り返し
・条件分岐
また、プログラミング的思考力で大切な
「求める結果から、プロセスを逆算して処理を組み立てる」
という考え方や
「試行錯誤をしながら、結果を出すためにはどうしたらいいか?
の手順を考えて、実行して、検証をする」
という「「見たことのない、経験したことのない問題」
に対しての対応力を養うことが出来ます。
慣れないと難しいかもしれませんが
一度理解してしまえば、大したことはありませんので
焦らず、ひとつづつ理解するようにしてみてください。
「Google Blockly Games」の「迷路」問題
まずは、Google Blockly Gamesにアクセスして以下の画面を表示してください。
迷路と書かれたアイコンをクリック
すると、以下の画面が出てきます。
画面構成の説明
この画面は、下の図のように①問題/実行エリア
②ブロックエリア
③プログラミングエリア
の3つの領域から構成されています。
一つずつ見ていきましょう
①問題/実行エリア
ここには、問題が表示されます。
人間の形をした人形、Google Mapでおなじみのピンのマーク
が表示されていて、黄色で道がつくられています。
ピンのマークはゴールをあらわしていて、
この人形をゴールまで動かすようにする
プログラムをつくるのが迷路の問題となります。
また、下のほうにある「プログラムを実行」
ボタンを押すことで作ったプログラムを
実行することが出来ます。
②ブロックエリア
ブロックエリアには、問題を解く(プログラムをつくる)
のに使うことのできるプログラミングのブロックが
並んでいます。
②プログラミングエリア
ここにブロックを並べることで
人形を動かすプログラムを作ります。
右下にゴミ箱マークがありますが
これは、プログラムを作っている途中で
間違えておいてしまった/いらなくなったブロック
を消すために使用します。
いらなくなったブロックをつまんで
ゴミ箱の上に移動すると消すことが出来ます。
また、画面の右上にある人形マークを押すと
以下のように、宇宙服を着た人とパンダが
出てきます。
試しに宇宙服を着た人選んでみると
問題/実行エリアの背景が変わります。
お子さんの好みに合わせて変えてみてください。
とらのすけは宇宙服のテイストが好きなので
以降は宇宙服を選んだ状態で解説をします。
やってみよう
さあ、それではやってみましょう。まずは、「プログラムを実行」を押してみてください。
どうなりましたか?
そうですね、下のように、人形が右向かって
一つ動いて止まってしまったと思います。
これは、プログラミングエリアに
置かれているブロック「まっすぐ進む」が実行
された結果となります。
では、ゴールまで進むようにするにはどうしたらいいでしょうか?
「まっすぐ進む」一つで、真ん中まで進んだということは…
そうです、もう一つ「まっすぐ進む」を置いて
あと一歩進むようにすればいいんです。
では、実際にやってみましょう。
ブロックエリアに置かれている「まっすぐ進む」をつまんで
プログラミングエリアに置いてみてください。
あれ、何かメッセージが出てきていますね。
説明を読んでもあまり意味が分からないかと思います。
どうしたらいいかというと、説明の絵にあるように
ブロック同士を近づけて、くっつけてあげないといけません。
下の「まっすぐ進む」ブロックをつまんで、上の「まっすぐ進む」
ブロックに近づけてあげてください。
こんな風に、くっつけば大丈夫です。
この状態で再び実行してみましょう。
「プログラムを実行」ボタンが「リセット」
になっている場合は、「リセット」を押すと
人形の位置が最初の位置に戻って「プログラムを実行」
に変わります
どうでしたか?
うまくゴールにたどり着けたと思います。
ゴールにたどり着くと、こんなメッセージが
出てくると思います。
このレベルでは~というメッセージの意味が分からなくても
今は、気にしないでください。
「OK」ボタンを押すと、次の問題が出てきます。
向きを変えるの学習(2問目)
次の問題も、一緒に考えてみましょう。先ほどの問題と同じように、人形をゴールまで
動かすように、ブロックを組み立てます。
今回は、ゴールまでの道が曲がっていますが
距離としては、3歩分の距離があります。
なので、「まっすぐ進む」を3つ並べれば
ゴールまでたどり着くように思えます。
ブロックエリアからドラッグドロップして
こんな感じに組み上げて、実行してみましょう。
結果はどうでしたでしょうか?
哀れな宇宙飛行士は道を踏み外してしまい、
宇宙空間に放り出されてしまいました…
なぜこんなことになってしまったでしょうか?
ちょっと考えてみましょう。
実は、この「まっすぐ進む」というブロックは、
「(道に沿って)まっすぐ進む」
という命令ではなく
「(道があろうがなかろうが)まっすぐ進む」
という命令なんです。
なので、1つ目の命令の「まっすぐ進む」が
実行された時点で、以下の絵のように
まっすぐ進む道がないところに来ています。
この状態で2つ目の「まっすぐ進む」が
実行されると、道を踏み外してしまうのです。
さてではどうすればゴールまでたどり着けるでしょうか?
ちょっと考えてみてください。
ヒントは、ブロックエリアにある
「左を向く」と「右を向く」というブロックです。
そうですね、まっすぐ進む道がなくなったところで
向きを変えてあげればいいんです。
この場合、一つ目の「まっすぐ進む」が終わったら
「左を向く(人形が今進んでいる方向に対しての向きです)」
そのあと、また一歩「まっすぐ進む」。
そして「右を向く」をして、また一歩「まっすぐ進む」
の順番で動けばゴールに着けそうです。
ではこの
「まっすぐ進む」
「左を向く」
「まっすぐ進む」
「右を向く」
「まっすぐ進む」
の順でブロックを組んでみてください。
ブロックエリアからブロックをつまんで動かして
くっつけてみてください。
こんな風に組めたでしょうか?
出来上がったら実行してみてください。
無事ゴールにたどり着くことが出来ましたね。
繰り返しの学習(3問目)
次の問題はこんな問題です。一見すると1問目と同じで、「まっすぐ進む」を
何個か使えばゴールにたどり着けそうです。
ただし、この問題ではメッセージに出ているように
ブロックを2個だけしか使うことはできません。
ゴールまでは、5歩あるので
「まっすぐ進む」を5個使わないとゴールまでは
たどり着けません。
どうしたらよいでしょうか?
こんな時に使うのが、繰り返し処理です。
人間とは違い、コンピュータは同じことを
繰り返すのがとても得意です。
プログラムにも、この繰り返して行うという
命令があります。
今回の問題で、ブロックエリアを見ると
こんなブロックがあります。
このブロックには、「まで繰り返す(ゴールマーク)」と
「実行」と書かれています。
これは「ゴール」にたどり着くまで
「実行」の処理を繰り返して行う
という意味になります。
それでは、このブロックを、プログラムエリア
に移動して、「実行」の横に「まっすぐ進む」を
はめてみてください。
こんな風になるはずです。
これで、「まっすぐ進む」を「ゴールまで繰り返す」
というプログラムが出来ました。
それでは、実行してみましょう。
無事ゴールにたどり着くことが出来ましたね。
レベル4、レベル5の問題はこれまでの内容を組み合わせると
できるので、自分でやってみてください。
条件分岐の学習(6問目)
さて次は、条件分岐が学べる6問目の解説です。さて、どうしたらいいでしょうか?
まずは自分で考えてみて、実際に実行して
ゴールにたどり着けるか試してみてください。
プログラミング学習では
「自分でゴールまでたどり着くためにはどうしたらいいか?を考え
プログラムを作り、実際に動かしてみて結果を確かめる。」
という一連の試行錯誤の過程がとても大切です。
一発で正解にたどり着く必要は、全くありません。
むしろ、お子さんが最初から正解を聞いてきたら要注意です。
考えることではなく、正解することに注意が向いてしまっていることになります。
試行錯誤をしながら、結果を出すためにはどうしたらいいか?
の手順を考えて、実行して、検証をする
の繰り返しが、プログラミング的思考力を向上させ、
ひいては「見たことのない、経験したことのない問題」
に対しての対応力を鍛えていくことになります。
いかがですか?ご自分でゴールまでたどり着けたでしょうか?
では、問題の解説をしたいと思います。
この問題のミソは、ゴールまでの道順をたどってみて
・人形は左にしか曲がらない。
・左に曲がれるところに来たら必ず左に曲がる。
・左に曲がれないところでは、まっすぐ進み続ける
というところにあります。
まず、まっすぐ進み続けるというのは、前回の解説と同様に
で作ることが出来ます。
ただし今回は、左に曲がれるなら左に曲がる
という処理を入れる必要があるので
条件分岐のブロック
を使います。
このブロックは書かれているように、
「もし左に進めるなら」、「実行」にある
命令を実行するというものです。
このブロックを使って、こんな感じに
してやれば、よさそうです。
さあ、実行してみましょう。
うまくいきましたね。
実は他に並べ方でもゴールにたどり着くことが出来ます。
例えばこんな並べ方です。
実際、プログラミングに正解はありません。
求めている結果が出て、そこに至る理屈が
成立していれば、OKなんです。
※ただし、実業務でのプログラムだと、計算の効率とか
ほかの人が見た時のわかりやすさとかが必要になりますが
それは、もっと先の話です。
このあたりが、学校のテストの問題とは
違うところだと思います。
これで、今回の解説は終わりにします。
残りの問題は自分で取り組んでみてください。
いかがでしたでしょうか?
難しかったですか?簡単でしたでしょうか?
子供に取り組ませるときは、
・向きを変える
・繰り返す
・条件分岐
などの新しい考え方が出てきたら
説明をしてから、やらせてあげてるといいと思います。
繰り返しになりますが
お子さんが最初から正解を聞いてきたら要注意です。
試行錯誤をしながら、自分で考えることを大事にしてください。
まとめ
Google Blockly Gamesの「迷路」ゲームの解説をしました。
いかがでしたでしょうか?
思ったより簡単だった方、難しかった方
様々だと思いますが、
「ブロックをつなげて動くものをつくる」
ということの雰囲気は理解できたかとおもいます。
問題の解説でも説明しましたが、この迷路の問題では
プログラミング的思考力で大切な
「求める結果から、そこにたどり着くプロセス(手順)を逆算して、処理を組み立てる」
という考え方を学ぶことが出来ます。
また、「迷路」でプロセスを使った
・繰り返す
・条件分岐
という処理は、言語によって形は変わりますが
どんなプログラミング言語でも使用する考え方です。
残りの問題にも取り組んでみて、しっかりと
理解をするようにしてください。
それではまた。
コメント