2020年から、小学校でプログラミング教育が必須となる見込みですが、そこでは、論理的思考など、様々な能力の向上が期待されています。
「抽象化」って何?
その向上すると言われている能力の中に「抽象化する能力」というのがあります。
「抽象化」ってなんでしょうか?
プログラマなら、抽象化がわからない人はいないでしょう。それほど、日頃からよく使うものです。
自動販売機のプログラムを書くとします。
200円が投入されて、120円、コーンポタージュのボタンが押されたので、お釣りとして80円を返却口から出す。
という指示を、プログラミングします。
そこで、この指示通りにプログラミングするとどうなるでしょう?
300円を投入しても、お釣りは80円。
100円を投入しても、お釣りは80円。
150円の缶コーヒーを買っても、お釣りは80円。
これでは、自販機になりません。
抽象化とは、「具体的でない」形にする事です。
まず、指示の中から、200円、コーンポタージュ、120円、80円と言う具体的な要素を、抽象的なものに変えます。
200円=投入金額
コーンポタージュ=購入商品
120円=購入商品の価格
80円=お釣り
そうすると、まだ何も決まっていない状態になります。これが重要です。
投入金額、購入商品とその価格が、変わっても、正しいお釣りが計算できるようにします。簡単です。
お釣り=投入金額ー購入商品の価格
投入金額が変わっても、どんな商品のボタンが押されても、お釣りは正しく計算されます。
これが、抽象化です。
プログラムを抽象化せずに、全部具体的なまま書くと、投入金額ごと、商品価格ごとの組み合わせ分析のプログラムが必要になってしまいます。
ね。
効率の良い仕事は、抽象化で生まれる
自販機の例のみならず、目的は決まっているけれども、具体的な内容は都度異なる。という事はよくあります。
例えば、見積書の作成。宛名も件名も、もちろん金額も異なります。それを毎日、数十枚作成しなければならないとなったら、どうしますか?
テンプレート、作りますよね?
宛名や件名の欄が空白で、そこを埋めれば出来上がるものです。ここでは、まさに抽象化する能力が必要になります。
どの欄を空白にしておけばいいか、例えば備考は提出先の顧客の業界ごとに分ければ、毎回書かなくても良いとか、そんな情報の分類と整理をして、決めていきます。こうした仕事って、よくありますよね?
抽象化する能力は、事務系の仕事以外での有用性も認められており、特に子供たちには是非、身につけてほしい能力ですね。