見出し画像

プログラミング的思考としくみ視点

前回はしくみ視点の使い方を、火山のメカニズムを例に見てみました。今回はしくみ視点とプログラミング的思考の関係をみてみましょう。ところどころ、プログラミングの専門用語が出てきますが、プログラムの知識をお持ちでなくても大丈夫です。

フローチャートのしくみ

フローチャートとはプロセスの流れを表現する図解法です。プログラムを書くうえで設計図のような役割をします。例えば、「天気を確認して、降水確率20%以上の場合のみ傘をもって出かける」という行動をフローチャートであらわすと次のようになります。

次に、このフローチャートをしくみ視点で見てみましょう。

抽象化

朝起きてから出かけるまでには着替えをしたり、朝食を食べたり、いろいろな行動をしています。その中から課題の「天気関係の主要情報にフォーカスする」のが抽象化です。さらに、黄色い天気予報の丸の中にいろいろな情報があるのが分かります。

構造化

構造化では、「どういう場合に傘を持っていくか」を構造的に整理しています。降水確率20%以上の場合のみ傘を持っていくようにしています。

論理化

論理化はステップごとに処理の流れを考えています。

完成

最初のフローチャートが完成しました。

複雑なしくみにも対応

フローチャートはプログラムの世界の初歩的な考え方ですが、しくみ視点は初歩的なものだけでなくオブジェクト指向といった応用的なものを理解するのにも使えます。逆に言えば、良いプログラマーは高度な抽象化、構造化、論理化能力をもっているものです。プログラマーのコア3能力が、抽象化、構造化、論理化のしくみ視点なのです。

例えば、オブジェクト指向で「車、バイク、自転車の乗り物クラス」を考える過程をしくみ視点でみていくと以下のようになります。詳細な説明は省きますが、抽象化→構造化→論理化と進むにしたがって詳細情報が整理されていくことがポイントです。

プログラミング的思考としくみ視点

しくみ視点は、プログラムそのものには極力触れず、プログラムの世界のエッセンスに触れされるために生まれました。ここで以前にご紹介したプログラミング思考の定義を、もう一度見てみましょう。

自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、1つ1つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力
小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ):文部科学省]
自分が意図する一連の活動を実現するためには

まず抽象化で「自分の意図する課題」にフォーカスして「一連の活動」を簡略化していく必要があります。

どのような動きの組み合わせが必要であり、1つ1つの動きに対応した記号を、どのように組み合わせたらいいのか

「組み合わせを考える」とは構造化していくことです。

記号の組合せをどのように改善していけば、より意図した活動に近づくのか、

「意図した活動に近づける」には、ステップごとに考えて論理化する必要があります。

つまり、プログラミング的思考とは「しくみ視点」で世の中を見れるようになることなのです。また、プログラムの世界だけではなく、前回の火山の例のようにSTEM教育全般を理解するのに役立つのもポイントです。ひろく理系的な世界を理解するのに役立つモノの見方、それがしくみ視点です。

まとめ

1. しくみ視点を使うとプログラムの世界のエッセンスがわかりやすい。
2. プログラミング的思考を身につけるとは、しくみ視点で世の中を見れるようになること。
3. しくみ視点は理系的な世界全般の理解にも役立つ。

次回からは、実際に子供と一緒に遊んで学んだ実践例を中心にお送りする予定です。

この記事が気に入ったらサポートをしてみませんか?