アンプラグド・プログラミング課題を実施する上で、「3つの問題点」に注意しなければなりません。
例題(自販機)では、視点を分けて明確にしないと自販機側の処理なのか、購入者側の処理を描けばいいのかが、分からなくなります。フローを1つにすると、どちらの処理なのか他の人が見た時も混乱します。
このケースの「視点」とは、「人間の動作」と「コンピュータの動作」を明確に分けるということです。また、プログラミングの対象となるのは「コンピュータの動作」だけですが、人間の動作もコンピュータに任せようという発想になれば、そのようにフローチャート(設計図)を修正するということになります。
特に、フローをどこから始めてどこまで描くのか、児童によってバラバラになる可能性が高いです。アンプラグド課題実施上で重要なのは「前提条件」と「開始位置」を明確に提示しておくことです。
また、大規模なものや複雑なものは、学年別の能力に合わせて範囲を限定して出題してもいいかと思います。グループごとに違う範囲に分けてフローチャーを作成した場合、最後に全グループの図をつなぎ合わせて、どこか間違いがないか、つながらない箇所はないか、全員で全ルートを検証するというのも思考力や判断力が育まれるでしょう。「小さく始めて、大きく育てる」のが基本です。
処理の分割単位によっては、いくらでも細かく描くこともできるので、これも児童によってバラバラでキリがない状態になることが多いでしょう。細かくすればする程、重要な処理が埋もれてしまう可能性が高くなり、逆に、粒度が荒すぎると、前後の関係性が不明瞭になってしまいます。この問題も前提条件やヒントとして明記しておくことを推奨します。
※人によって、Aは「購入するのだから当然、選ぶよね、ランプも見るよね、ボタンも押すよね」となり、粒度が細かすぎると主要なものが見えにくくなります。逆にBでは、「ジュースを購入」だけとした場合、細分化することでビジネスのヒントや収益向上のヒントが隠されているかもしれないのに、それに気付かないままになってしまいます。ということです。
特にグループワークの際は、どの視点で議論しているのか、最初に明確にしておかないと、混乱して問題解決にたどり着けなくなります。もちろん、物事を俯瞰して全体像を把握することも大切です。
範囲が広すぎたり、粒度が細かすぎると、対象の仕組みや全体の流れを把握しづらくなります。現在の状態を元に、新しい条件や機能を追加する際、粒度の細かい処理がかえって思考の邪魔になることもあります。
絶対に必要な処理は何かをまず明確にすることが大事です。その上で、それをベースとして、追加したり、変更したりすることで、より利便性などが向上することは何かを、考えさせるのも有効だと思います。
経営の世界では昔から「鳥の目、虫の目、魚の目」という言葉があります。要するに「ものごとを俯瞰して全体像を捉えられる視点(鳥の目)と、マクロな部分を捉える視点(虫の目)、世の流れを掴むための視点(魚の目)」をもつことが大切だということです。
前述のように、アンプラグド・プログラミングの題材選びには注意が必要です。単なる“手順”を表すような題材ばかりでは、思考力というより構成力を育成することに近くなります。
その手順が違っていても全体として、それほど影響がないかもしれません。題材に向いているのは、処理が一部抜けているまたは、順序が違う場合に、ゴールできないか、途中で破綻するものが題材としては良いでしょう
(「順番が違う、処理が抜けている、分岐が逆」のような論理破綻、アルゴリズム破綻)。
思考力育成に向いていない例として、食事マナーや作法、神社の参拝方法などがあります。参拝手順の一部順序が逆になっていたり、抜けていたりしても、神様はお怒りになりません。
ただ、「新しいことを学ぶ」という意味では、フローチャートを利用して学習するのは良いかもしれません。例えば工場見学など、行く前にその工場にある機械の仕組みや生産工程などを「推測フローチャート(仮説)」として作成させ、実地検証(見学、説明、インタビュー)で、各々が描いた推測フローチャートが、どれくらい正確に推測できていたか検証するのも良いかもしれません。
「ただ行って見て帰って来る」だけではなく、「事前調査・仮説立案・実地検証」という、アカデミックな学びを実践することができます。
■出題のパターン
① 間違い探し(処理内容に間違いがある、処理が足りない、処理順が逆になっている。など)
② 虫食い問題(テーマとスタートとゴールを提示し、途中の抜けている処理などを考えさせる)
③ 過不足問題(一連の処理の中で、不足している処理は何か、余分な処理は何かを考える)
④ もしも問題(あるフローに対して、もしも、この処理や判定がなかったらどうなるかを考えさせる)
⑤ テーマ問題(テーマと前提条件のみを提示し、グループまたは個人で最後まですべて完成させる)
▼続きはこちら
プログラミング教育必修化 今回の学習指導要領改訂(2020年度から小学校で完全実施)による、小学校での教育の大きな変更点は 「外国語を、小学校5・6年生から教科とする」「道徳を教科とする」「プログラミング教育を導入する」 […]
情報活用能力とは 学習活動において、必要に応じてコンピュータ等の情報手段を適切に用いて、情報を得たり、整理・比較したり、発信・伝達したり、保存・共有したり、といったことができる力です。 こうした情報活用能力を育むためには […]
プログラムとは何か プログラムとは、コンピュータ(パソコンやスマートフォンなど)にして欲しいことを、プログラム言語を使って「命令」という形で作成した機能をいいます。 その機能の集合体、完成したものがアプリケーション(アプ […]
プログラミング的思考力育成方法 プログラミング的思考能力は以下の6つになります。 ものごとを一旦分解してから整理する能力(分解、分類、共通化) ものごとを単純化して重要な部分を捉える能力(抽象化、メタ認知) やるべきこと […]