単元に組み込んだプログラミング教育の例
正三角形を描く(文科省版) | ||
1 | ||
2 | ●正三角形の定義は、正しく理解できているか。 正三角形:三辺の長さと三つの角が等しく、その内角はすべて60度である。 思考手順:180°から正三角形の1つの角を引くことで回す角度を求める。 |
|
3 | この左図の方法(プログラム)でも正三角形を描くことができますが、ここが「思考する」ポイントになります。 これでいいのか? 同じブロックが何度も登場していて、冗長的なプログラムになっているので、用意されているブロックで、もっとスマートにできないか? 考えてみます。 |
|
なぜ、冗長的ではダメなのか? このまま正三角形のみを1度だけ描画するのであれば、このままでも問題ありません。しかし、この正三角形を描く仕組みをパターン化して、他の図形を描いたり、何度も描いたりすることを考えた場合、値を変え、ブロックを増やし…となってしまいます。後で修正や拡張する可能性がある場合など、様々は要件を満たす必要があるなら、冗長的ではダメです。 「○歩動かす+○度回す」をワンセットとし、100件、1000件と増やしたとします。その後、100歩ではなく50歩に変更しなければならなくなった場合、同じ箇所を100、1000箇所をすべて修正する必要があります。プログラミング的思考では、仕組みを抽象化してパターン化します。また、修正を想定して冗長的にならないようにブロックを組んでいきます。 このように、ブロックを少なく組むことで、それだけ早く作成することができ、間違いを修正するのも発見が早くなります。それによって生まれる効果は、低学年なら「時間的価値」でいいかと思います。早く終わったら、その空いた時間で他のことができるという時間的価値が生まれます。高学年なら時間的価値に加え、「金銭的価値(コスト感覚)」を教えることで学習になるかと思います。 |
それではこちらを課題として、どのように修正すればいいか検討していきましょう。
▼続きはこちら
前掲のレジ精算のプログラムに対して、条件を追加したフローチャートを完成させましょう。 【課題】あなたは、スーパーで買い物をする。それをセルフではなく、 レジ係のいるレジで精算する。 【条件】ただし、割引対象の商品も […]
▼続きはこちら 前掲のレジ精算のプログラムに対して、条件を追加したフローチャートを完成させましょう。 【課題】あなたは、スーパーで買い物をする。それをセルフではなく、 レジ係のいるレジで精算する。 【条件】ただし、 […]
課題:あなたは各駅停車の電車に乗って、目的地A駅で降りる。 【指導1】前提条件として、『あなたと電車の動作をそれぞれ分けて描くこと。電車に乗ったところから スタートする。ただし、乗り換えはなく、A駅は終点ではない […]
課題:あなたは路線バスに乗って、目的地A停留所で降りる。 【指導1】前提条件として『あなたと路線バスの動作をそれぞれに分けて描くこと。路線バスに乗るところからスタートする。ただし、運賃は乗車時に支払い、乗り換えはなく、A […]
救命措置の流れ(AEDの使用と心肺蘇生) 次は、アンプラグド・プログラミングの題材にふさわしい「救命措置の流れ(AEDの使用と心肺蘇生)」です。順番が違った、やるべきことが抜けた、判断を間違えた場合、救える命も救えなくな […]
課題:あなたは横断歩道を“安全に”渡ります。 これまで、アンプラグド・プログラミングの課題の問題点を解消すべく、レーンやステップを組み合わせたフローチャートの描き方を述べてきましたが、次は、交差点の横断歩道を“安全”に渡 […]