2023年11月24日 8:22 pm

 例えば、
 —冬にお風呂に入る準備をするとします。
 —バスタブには冷めた湯が水になって残っているとします。
 —ここに湯を足して適温にしようとします。

 実生活では追い炊きしたり、残り湯は捨てて入れなおしたりするかもしれませんが、ここではあえて例題として考えてください。
 条件として、
 —ただ湯を入れたら、暖かくなる前に溢れてしまいます。

 作業手順
 1. お湯を足す
 2. いっぱいになったらお湯をくみ出して捨てる
 3. 手順1、手順2を繰り返す
 4. 適温になったらやめる

 このような感じに手順を考えることがプログラミング的思考の一部です。
{①分解 ②組み合わせ ③一般化 ④抽象化 ⑤シミュレーション}に照らして考えると1,2,5を使って考えている感じです。しかし、プログラミング的思考は効率を重視します。この例では、何度も手順2の作業をする必要があります。
 そこで、<湯を足す・くみ出す>の順序を入れ替えて組み直し、

 新しい作業手順
 1. 初めにある程度冷たい水をくみ出す。
 2. お湯を足す
 3. 途中で予想して、あふれる予想なら先にくみ出す。
 4. 適温になったらやめる。

 このようにすることで、くみ出して捨てる作業は軽減されます。
 これはコップの飲み物が冷めた時に、熱いものを継ぎ足すときにも起きる作業です。
 子どもの頃、冷めた緑茶に継ぎ足したら、溢れそうになったら少し飲んで、また継ぎ足した記憶があります。この時は効率が悪いので、ぬるいお茶をたくさん飲んでお腹一杯になったような気がします。
 こうしてお風呂も、お茶も同じと考えることが一般化です。
 お茶の場合は電子レンジで温めた方が良いという意見は、ちょっと脇に置いておきますね。

 プログラミング的思考は、IT技術だけではなく日常にも応用できる思考方法です。
 その基礎を身につけるのは、早いほど良さそうです。

Categorised in:

Comments are closed here.