「なぜそうなるのか?」「なぜ必要なのか?」というような問い掛け(児童が思考を深めるための発話の工夫)が重要になります。
例えば、レジ精算の処理フローでは、割引は購入した商品次第で、割引された商品がない場合もあります。しかしなぜ、「割引アルゴリズム」は必要なのか。スーパーの全商品が割引対象になることがなければ、もちろん必要ありません。
しかし、スーパー側が、今後は特定の商品を割り引くこともあると想定している場合や、全商品のうち、たった1つでも「割引」対象商品があれば、「割引アルゴリズム」は必要になります。
もしその時に、割引アルゴリズムがなければ、割引された商品があってもそのままの金額で合計を求めてしまいます。今は割引がなくても、後から割引することも想定しているのであれば、レジのプログラム上、それを想定してあらかじめ作っておくことが理想的です。
「反復処理」も同じです。購入する商品が1点だけの人もいれば、複数点商品を購入する人もいるため、「複数点商品を購入する人」に合わせてプログラムを作成する必要があります。これがなければ、1点ごとに精算しなければなりません。
応用として他に「処理や条件」がないか考えてみる(考えさせる)。垂直思考として、その他にもいろいろ条件がないか。また、地元スーパーによって違う部分もあるので、グループワークで児童達に考えさせてもいいと思います。
【追加条件】
上記の完成したレジ精算のプログラムに対して、これで終わるのではなく、以下のような条件を追加し、思考力を育むことが重要です。
①[追加条件]レジ袋有料化に伴い、必要な場合は 2円支払う
②[追加条件]駐車券がある場合で、かつ、合計が2,000円以上なら駐車料金を無料にする
③[追加処理]支払い処理を追加し、「現金」「クレジットカード」「電子マネー」の3つを考慮する
というように、「スーパーのレジ精算」という題材だけでもこれだけの思考力を育成するネタがあります。皆さんも児童に指導する際は参考にしてみてください。
アンプラグド・プログラミング演習では、確かに正解を求めることも大事ですが、むしろそこまでのプロセス(過程)の方が重要です。プログラミング的思考にもあるように、ものごとを分解してただ元に戻すということではなく、どのくらいの単位で分解して、整理(グルーピング)する際に主要な処理(絶対に必要な処理)は何か(単純化)を意識すること、
また、ものごとの仕組みに注目すると、処理がどのような順番で実行されているのか、なぜその順番なのかを想像してみることも大切です。たとえ分からなくても想像してみること、考えて考えて考え抜くこと。そしてさらに突き詰めていくこと。
現状の仕組みが分かったら、新しく処理を追加してみる、条件を追加してみる、お互いにアイデアを出し合い「創造力」を育みます。また、すべてのルートを通して間違いがないかを検証してみる、お互いに検証してみることで「判断力」を育みます。
応用や発展に進むには、基礎をしっかり理解していることが条件となります。分かったつもりになっている児童はいないか、自分の言葉で説明してもらうなどの理解度把握はとても重要です。
▼続きはこちら
プログラミング教育必修化 今回の学習指導要領改訂(2020年度から小学校で完全実施)による、小学校での教育の大きな変更点は 「外国語を、小学校5・6年生から教科とする」「道徳を教科とする」「プログラミング教育を導入する」 […]
情報活用能力とは 学習活動において、必要に応じてコンピュータ等の情報手段を適切に用いて、情報を得たり、整理・比較したり、発信・伝達したり、保存・共有したり、といったことができる力です。 こうした情報活用能力を育むためには […]
プログラムとは何か プログラムとは、コンピュータ(パソコンやスマートフォンなど)にして欲しいことを、プログラム言語を使って「命令」という形で作成した機能をいいます。 その機能の集合体、完成したものがアプリケーション(アプ […]
プログラミング的思考力育成方法 プログラミング的思考能力は以下の6つになります。 ものごとを一旦分解してから整理する能力(分解、分類、共通化) ものごとを単純化して重要な部分を捉える能力(抽象化、メタ認知) やるべきこと […]