プログラミング的思考とは

結論:「プログラミング的思考」をプログラミング的思考での解説は⇒こちら
2020年からの始まる「プログラミング的思考」において親御さんが知っておくべきだと考える内容が3点あります。
1.【第1段階】論理的思考の原点とは
実行⇒失敗⇒①何故か考える⇒実行⇒失敗⇒②何故か考える⇒実行⇒失敗⇒③何故か考える⇒実行⇒失敗⇒④何故か考える⇒ 実行⇒失敗⇒⑤何故か考える⇒実行⇒成功
このように「何故(WHY)」を5回程度繰り返して考える忍耐が論理的思考の訓練の原点です。
この「何故を繰り返す」訓練が一番大事だという事を教えることが今後のあらゆる局面で「生きる力」の根源になるという認識を共有して欲しいと考えます。
フランスの哲学者であり数学者のパスカルの名言「人間は考える葦」が論理的思考の原点ですので、正しく「プログラミング的思考」は「人間」の源と言い換えられます。
2.【第2段階】プログラミング的思考の原点
「繰り返し」の部分の発見

ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる
この文章を観察すると
- 「 ボタンを押す⇒1m上へ動く⇒止まる」迄が1組
- 5回繰り返されている
この2つに気が付くことが重要です。これが原点です。
「繰り返し」の部分 を数式で定義します。
数式での定義:プログラミング

つまり A= 「 ボタンを押す⇒1m上へ動く⇒止まる」 と定義すると、Aを5回繰り返せという命令を5Aと数式で定義する場合には、Aの部分がプログラミングで、5Aがプログラムとなります。
次に、他に「場合」を追加します。
下のような場合の追加の指示が必要としますと
ボタンを押す⇒1m右に動く⇒止まる⇒ ボタンを押す⇒1m右に動く⇒止まる⇒ ボタンを押す⇒2m下へ動く⇒止まる⇒ ボタンを押す⇒2m下へ動く⇒止まる⇒ ボタンを押す⇒2m下へ動く⇒止まる
この文章をよく観察します
- 「ボタンを押す⇒1m右に動く⇒止まる 」が2回
- 「ボタンを押す⇒2m下へ動く⇒止まる 」が3回
に分解できることを発見できるかがポイントになります。
この2つを定義、つまりプログラミングしますと
B= 「ボタンを押す⇒1m右に動く⇒止まる 」
C= 「ボタンを押す⇒2m下へ動く⇒止まる 」
となり、プログラムは「2Bをしてから3Cする」という事です。
【第3段階】まとめる
①5A
ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる⇒ ボタンを押す⇒1m上へ動く⇒止まる
②2Bしてから3C
ボタンを押す⇒1m右に動く⇒止まる⇒ ボタンを押す⇒1m右に動く⇒止まる⇒ ボタンを押す⇒2m下へ動く⇒止まる⇒ ボタンを押す⇒2m下へ動く⇒止まる⇒ ボタンを押す⇒2m下へ動く⇒止まる
①と②をまとめて書くと「5Aしてから2Bしてから3Cする」これば全体のプログラムであり、ABCは3種類の定義のプログラミングであり5A、2B、3Cは3種類の部分プログラムということになります。
プログラミング的思考の最重要点は4つ

- 「繰り返し部分」を発見
- 「繰り返し部分」で分解
- 「繰り返し部分」を組み合わせる
- 「繰り返し部分」をどの順番にするのか
プログラミング的思考の応用点は4つ

- 「繰り返し部分」の反対(左右上下)
- 「繰り返し部分」のプラス、マイナス
- 「繰り返し部分」の何倍(2倍、3倍・・・)
- 「繰り返し部分」の 何分の1(1/2、1/3・・)
プログラミング的思考でよくでてくる言葉の「抽象化」「分解」「一般化」「手順」という言葉に惑わされないことが重要です。
言葉の整理

抽象化
言葉の意味は「共通する性質を取り出し把握すること」ですが、プログラミング的思考においては「共通する具体的な内容」つまり「繰り返し」おこなわれる内容のことと理解すればOKです。
分解
プログラミング的思考にぴては「繰り返し」行われる部分を発見し「場合」分けすることを「分解」と理解すればOKです。
一般化
共通する繰り返し部分を「抽象化」し、場合にごとに「分解」した上で、その抽象化された「繰り返し」部分の順番の組み合わせを考えて再現できるようにする「手順」と理解すればOKです。
3.プログラミングを切り離してはいけない理由

プログラミング的思考は論理的思考の訓練になりますので社会に出る前に必ず必要な勉強です。
それは、何が(What)、どこで(Where)、いつ(When)、どのよう(How)に「繰り返し」が起こっているのかを「何故(WHY)」を繰り返すことで発見していく過程のなかで「考える力」が身に付けられるからと言えます。
しかしながらこれだけで終わっていたのでは全く不十分な時代となりました。既にお気づきの通り、AI時代、IOT時代にプログラミング的思考で訓練された「論理的思考」によりあらゆるサービスが自動化させていく時代に突入しています。
つまり2045年、今後25年先に予測されているシンギュラリティーの時までにプログラミングコードが書ける人材か否かで大きな差がでると予見できることから「プログラミング」は必須のスキルとなるはずです。目をそらしてはいけない現実があります。
結論:プログラミング的思考のフロー図
