プログラミング教室や学校などで使われているScratch(スクラッチ)ですが、
多くの教材が「真似して作る」から始まり「真似して作る」で終わります。
「自分で考える」という大切な部分に取り組もうとすると「わかりません」「オリジナルを考えて作るのは苦手です」と言う子どもの割合が高いと感じました。
なぜだろう。
いつも考えています。
ここで「わかりません」「苦手です」という子はそもそも本当に「何がわかっていないのか」「なぜ苦手だと感じるのか」。
それよりももっと前の段階の「何か」が原因になっているのか。
深掘りしていくと意外と見えてきたります。
そういった子どもたちも全員、知らず知らずのうちに毎日ロジックとアルゴリズムに沿って生活しています。
考える基準を身近なテーマに変えてあげることで、自分の中でも無意識を意識的に俯瞰して見られるようになると、
「あ、なるほど」という瞬間が訪れたりするものです。
「なるほど」という瞬間は人それぞれですが、いろいろなテーマを取り上げて「オリジナルの授業で対応」していくことが教育者にとっても大切なことだと思っています。
つまり、そもそも教育者自身が「オリジナル」を作れるくらいに教育内容について自分の中に落とし込めているか。も大切だと言うことです。
理解できない子どもが悪いのではなく、意外と授業の進行自体に改善点があったり、声かけのタイミングや指導要項が適していなかったりするものです。
目次 非表示
ロジックとアルゴリズムを考える
(普段何気なく遊んでいるもののロジックを考える。その後、アルゴリズム化することで攻略の手順や遊びを細かく分解する)
ロジック
「ロジックは、物事を考える順番やルールのこと。例えば、お菓子を食べるとき、まずお皿を取り、次にお菓子を取って、最後に食べる。それがロジックです。つまり、『どうやって考えて行動するか』のルール。普段は何気なく行動できていることも脳みその中できちんと順序立てているんだね。うまくいかないものは、ロジックの順番を変えてみることで修正していけます。上手にやるためには頭の中で考えているだけの状態から一度紙に書き出して外に出してしまうことです。ここでつまづく場合は、うまく出てきている人が書き出したものを真似して書いてみるといいです。その後はもう一度頭の中でイメージしてみて、うまく動けるかどうかをシミュレーションしましょう。」
アルゴリズム
「アルゴリズムは、ロジックを使って、『どの順番で、どんな方法で』やるかを決めることだよ。例えば、お菓子を食べるロジックを考えた時に、お皿を取る。という行動をもっと細かく分解してみると「食器棚にいき、今から食べようとしているお菓子に適したお皿を探す。ケーキならケーキのお皿。ポテトチップスならポテトチップス。お菓子がこぼれないようなお皿を選ぶ必要がある。ということです。スクラッチでいうと、みんながいつもブロックを組み合わせて「もし◯◯なら」みたいなことを考えることだね。スクラッチはアルゴリズム中心で作ってしまいがちですが、その前のロジックがわかっていないと、バラバラな順番でゴールを目指すことになる。お皿をとってからお菓子を取るのか、お菓子をとってからお皿を取るのか。お菓子をとって食べてからお皿を選んでいたらおかしいよね。ここも大事なのはいきなりアルゴリズムから作らずに、面倒でも一回紙に書き出してみることだよ。」
まとめ
「ロジックは考え方のルールで、アルゴリズムはそのルールを使って行動する順番や方法のこと。ロジックが道を決めるなら、アルゴリズムはその道を歩く方法を教えてくれるんだよ。」
この後、おにごっこやかくれんぼ、ドッジボールのロジックを考えて、その後、アルゴリズムを考える。というトレーニングをしてみましょう。
例)おにごっこのロジック
- 人数を集める。
- じゃんけんをする。
- 負けた人が鬼をやる。
- 全員捕まったら鬼の勝ち。1人でも逃げ切ったら逃げる側の勝ち。
- おにごっこのアルゴリズム
逃げる側(ランナー)のアルゴリズム
- ランダムウォーク: 逃げる側はランダムに移動する。これはシンプルで予測不可能な動きをするため、鬼に追いつかれる可能性を減らす。
- 最適経路探索: もし障害物があるエリアで鬼が追ってくる場合、逃げる側は最適経路を計算してその経路に沿って移動する。障害物を活かして逃げるアルゴリズムを使うことで、障害物を避けながら最短ルートを選ぶことができます。
鬼のアルゴリズム
- 最短距離追跡: 鬼は逃げる側に向かって最短距離を計算して追跡する。例えば、マンハッタン距離(格子状の地図上での直線的な距離)を使って近づく方向で逃げる側を追い詰める。
- 方向的に優先する: 鬼は逃げる側がどちらの方向に逃げるかを予測し、その方向を先回りする。逃げる側が予測しにくい動きが求められます。障害物を活かして逃げる可能性を考慮して障害物から遠ざけるように追い詰める工夫をする。
両者の相互作用
- 戦略的追跡: 鬼が複数人いる場合、逃げる側を追い詰めるために、周囲を囲い込んでいく戦略を取ることができます。例えば、追い詰める範囲を狭くして、ランナーが逃げ場を失うように誘導します。
- 逃げる側のカウンター戦略: ランナーは鬼が追い詰める範囲を理解し、囲い込まれないようにするための逆算行動をする。誰かを犠牲にして逃げる行為も考えられるが、逃げる側の人数が減ることを考慮し、捕まった人を助けることができるルールがあるならその都度、犠牲にしてでも1人を逃すことが得策かどうかを考える。
まとめ
横文字を使った説明は内容よりもキーワードに意識が入ってしまい、説明を理解しづらくなる場合があるので適宜別の言葉に置き換えて説明していくことも大切だと思います!
題材はなんでも良くて、「手を洗う」「歯を磨く」など普段から自分の中でほぼ無意識レベルまで落とし込んでいる行動を改めて考えてみることで仕組みが理解しやすくなります。
とはいえ、これらも「できない」と感じる子もいるかもしれません。
そうい子にはまたさらに別の角度で切り込んでみるか、もっと前の段階に遡っていけばいいのです。
そもそも生徒と教育者との間のコミュニケーションをもっと取ることで人間関係を作ってあることが大切です。
お互いが名前で呼び合えない中では「緊張」を土台にした授業になってしまいます。
スマイルコードでは「楽しい」を土台にした授業を展開できるように常に改善しています。