こんにちは。

 

小中学校でプログラミング教育が始まります。

 

そこで出てくるキーワードが「プログラミング的思考」。

 

文部科学省の説明文を読んでいると、けむに巻かれたようななんとも言えない感じになりました。

「プログラムを書ける人をたくさん作りたい」というのが国の本音かな・・・。

 

でも、それをあからさまに言うと反感を買うので、なんとなくやんわりと、「プログラミング的思考」という言葉に置き換えて学校の授業として勉強させようとしているのではないか・・・と・・・。

 

ではプログラミング的思考とはなにか!?

 

私なりの解釈を以下に記載していきたいと思います。

 

プログラミング的思考は分解と再構成

プログラムを書くときに考えていること。
「分解」と「再構成」です。
 
プログラムを作るときですが、ゼロからコーディングすることはほとんどありません。
大抵の場合、先人たちが作ったサブプログラムがあり、それらをパズルのように組み替えて一つの大きなプログラムを作ります。
 
WEB画面のようにお客様によってデザインが変わる場合があります。
そのときはお客様に合わせて「カスタマイズ」を行います。
 
プログラムの動作は、一つ一つを見てみると、とてもシンプルです。
  • 画像を表示する
  • 線を点滅させる
  • 入力ボックスを表示する
  • 次の画面に遷移する
などなど、個々のコードを積み重ねることでページを表示させたり、マウスクリックの動作を行うようになっています。
 
日常生活に当てはめるとどのように考えることができるか、例を挙げてみます。
 
「コーヒーを淹れる」 をプログラミング的思考で考えてみる
 
コーヒーを淹れる場合を考えてみましょう。
構成要素を挙げてみます。
  • カップを並べる
  • インスタントコーヒーの瓶を出す
  • コーヒー瓶の蓋を開ける
  • ティースプーンを出す
  • ティースプーンでコーヒーの粉をカップに入れる
  • 瓶の蓋を閉める
  • カップにお湯を注ぐ
  • ティースプーンでかき混ぜる
動作をざっくり書きだすとこんな感じになるかと思います。
プログラムを作る場合は、このように動作をできるだけシンプルに分けることから始まります。
 
次に、「順番はこれで良い}のかを考えます。
 
「①カップを出した」直後に「②ティースプーンを出した」ほうが、保管場所が近いから効率が良い
とか
「③瓶の蓋を開けた」後でないと「④コーヒー粉をカップに入れることができない」
など、「絶対にこの順番でないといけない手順」などを洗い出していきます。
 
こうして、構成要素を洗い出し、順番を適正に並べ替える。
というのが、私の考える「プログラミング的思考」です。
大きくは外れていないと・・・思っています。
 
こういった「分解して考える」という考え方って、きっとみなさん、普段から行っていると思います。
料理を作るとき、お子さんにお手伝いしてもらうときなど、作業を分けて、優先順位をつけて行動しているはずです。
 
ちょっとだけ視点を変えてみると、実は意外とすんなりできていると思います。
小学校で、中学校で、プログラミング教育が始まります。
が、そんなに難しく考える必要はありません。
「あっ!こうやって分解して考えればいいんだな」
と、気軽に考えてみてください。