皆さんこんにちは、【連載】というハードルを設けてしまって後悔しているBoです。
本日は前回に引き続き、「ボのん」にプログラミング教育をしたのでご紹介します。
課題の発表前に少しお勉強(2日目)
ただ漠然とプログラミング教育と言っても、何を教えて良いのか悩みました。
自分が学生や就職後にプログラミングの教育を受けた時に教えられたのは、「順次・分岐・反復」の3つでプログラムは構成されていると事でした。
これはScratchだろうが、C言語だろうが、なんだろうが、基本なので、「ボのん」でも分かるように説明してみます。
順次
記述された順番に命令を実行していく事です。
Scratchでは
の事になります。
- 10歩動かす
- 15度右に回す
- こんにちは!と言う
1~3を順番に実行していきます。
なので、5歩しか動いていないのに、次の15度右に回すという命令は実行されません。
分岐
ある条件でプログラムの実行経路を変える事です。
上の場合だと、分かれ道で、この宇宙人の性別が「男」なら右の道、「女」なら左の道へ進みます。性別が分岐の条件ということですね。
Scratchでは
の事になります。
- スプライト(※後で説明します)をX方向に10動かす。
- X座標が50より大きかったら、「50を超えたよ!」と言う。
- X座標が50より小さかったら、「50には程遠い。。」と言う。
反復
1つの命令、又は複数の一連の命令を繰り返し実行する事です。
Scratchでは
の事になります。
ずっと反復(以後ループとします。)するものと、指定した回数繰り返すものがあります。
左上のループは、スプライトを15度左回りにする命令を永遠に繰り返します。
左下のループは、スプライトを15度左回りさせた後に、10歩移動する一連の命令を永遠に繰り返します。
右のループは、スプライトを15度左回りにする命令を10回行います。
10回のループが終了すると、ループの下の命令を実行します。
課題を発表
完全に沈黙状態の「ボのん」ですが、課題を発表しました。
これです!
題して、「ねこ太郎に食われそうなると、逃げるりんご」です。
これをどうやって作るかを学んでいこうと思います。
スプライトを理解してもらう
この課題をクリアするには、Scratchの事をもう少し知る必要があります。
先にシラッと出てきました、「スプライト」を説明します。
あのシュワッとするヤツじゃないよ
「スプライト」は、ここでは、「ねこ太郎」や「りんご」の事を指します。
我々の業界ではオブジェクトとか言いますね。
「スプライト」はScratchで用意されているものや、自分で作って利用する事ができます。
この「スプライト」をステージに配置して、プログラムを割り当てることで、「スプライト」が動きます。
なので、ステージに複数の「スプライト」を配置して、各々にプログラムを割り当てる事で、各々のスプライトが独自の動作や、又は他の「スプライト」と関係を持ちながら動作させる事ができます。
ボのん完全フリーズ
「スプライト」の説明を何度もした後に、
と質問したところ
完全にフリーズしました。
ねこ太郎を回す事を教えてヒントにする
完全黙秘を続ける「ボのん」に、ねこ太郎を回すヒントをあげました。
上の処理を、ねこ太郎のスプライトに割り振る方法を教えました。
手順は、
- ねこ太郎のスプライトを選択する。
- 上の処理を配置する。
これを理解してから、他のスプライトに関しても同様の質問を繰り返して、最終的に、全てのスプライトを同時にクルッとする事が出来ました。
これを理解させるのには、かなりの時間がかかりました。
ボのん 少し覚醒
なんとなく、分かったのか、
と自主的なことを言ってきました。
そこで、さっきのループの登場になります。
いきなりの正解は期待できなかったので、
を説明して、
と質問しました。
すると、なんと!「ボのん」は簡単!簡単!と言いながら、
を完成させました。
2日目の学習を終えた感想
分かりそうで、分からない。。。という、微妙な感じでした。
概念の理解に慣れてくれば、爆発的に分かる様になるかもしれませんが、
1日目に比べて、テンションが落ちてきているので、今後どうなるか正直分かりません。
子供の好奇心を引き出す、学習方法を考えるは大変かもしれませんね。