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

失敗と修正を繰り返しながらゴールを目指す「プログラミング的思考」。身につければ、難しい問題に立ち向かうのに役立つかもしれません。
小学校では必修に!
「プログラミング」とは簡単に言うと、コンピューターに動くための命令をすることです。2020年度から小学校で必修になりました。
小学校で行われる授業では専門的なプログラミングの言語を使うのではなく、命令が書かれた「ブロック」を組み合わせることでキャラクターを動かすアプリなどが使われています。
プログラミングを入試科目のひとつにしている中学校もあります。
小学校で行われる授業では専門的なプログラミングの言語を使うのではなく、命令が書かれた「ブロック」を組み合わせることでキャラクターを動かすアプリなどが使われています。
プログラミングを入試科目のひとつにしている中学校もあります。

問題
打ち上げ花火のデザイナーとして、夏祭りの花火ショーをつくろう。
(聖徳学園中学校 2021年)
打ち上げ花火のデザイナーとして、夏祭りの花火ショーをつくろう。
(聖徳学園中学校 2021年)
夏祭りの花火ショーをパソコンの画面上で作らせるという問題です。用意されたパソコンで、決められた時間内に花火ショーのプログラミングをしなければなりません。
なぜ必要?プログラミング的思考
なぜ、いまプログラミングがここまで教育現場に求められているのか。
そのキーワードが「プログラミング的思考」です。
どういうものなのか、東京工業大学でプログラミング教育を研究している、栗山直子さんに聞きました。
そのキーワードが「プログラミング的思考」です。
どういうものなのか、東京工業大学でプログラミング教育を研究している、栗山直子さんに聞きました。

栗山さん
「日常生活に例えると、お茶を入れるときを思い浮かべてほしいんですが、お茶を入れるときの動作、どうしますか?」
「日常生活に例えると、お茶を入れるときを思い浮かべてほしいんですが、お茶を入れるときの動作、どうしますか?」

まず、急須に茶葉を入れますよね。そして、急須をポットの近くに置いて、ポットを押して、お湯が満杯になったら、ふたをして、ちょっと味が出るまで待って、最後、湯飲み茶わんにつぐ、でしょうか…
栗山さんによりますと、もし、ロボットにこのとおり命令をしたら、最初で失敗するそうです。
栗山さんによりますと、もし、ロボットにこのとおり命令をしたら、最初で失敗するそうです。

それは、茶葉をどれだけ入れるかを、指示していないから。
わからないままだとロボットは、急須に入れ続けてしまうんです。
わからないままだとロボットは、急須に入れ続けてしまうんです。
栗山さん
「論理的な思考を育てるには、当たり前で飛ばしてしまいがちなことも必要です」
「論理的な思考を育てるには、当たり前で飛ばしてしまいがちなことも必要です」
つまり、動作を分けて、さらにそれを順序立てて組み立てていく。
それが、プログラミング的思考になるということです。
それが、プログラミング的思考になるということです。
失敗して、修正して…
そして、プログラミング的思考で、もうひとつ大切なこと。
それは「トライ&エラー」だそうです。
どういうことなのか、小学校低学年向けのアプリで見ていきましょう。
それは「トライ&エラー」だそうです。
どういうことなのか、小学校低学年向けのアプリで見ていきましょう。

画面上の水槽で、魚が泳ぎ続けられるようにすることを目指します。
プログラミング的思考だと「左に行き、壁に当たったらひっくり返って右に行き、壁に当たったらひっくり返る、を繰り返す」といったところでしょうか…
プログラミングに挑戦しました。
プログラミング的思考だと「左に行き、壁に当たったらひっくり返って右に行き、壁に当たったらひっくり返る、を繰り返す」といったところでしょうか…
プログラミングに挑戦しました。

画面の左側に並んでいるのが、細かな命令が記された「ブロック」。
これを一つ一つ選び、下に向けてつなげていきます。
これを一つ一つ選び、下に向けてつなげていきます。

まず組んだのが、こちら。
魚を動かす合図にあたるのが、いちばん上の黄色のブロックです。
その下に、青のブロック。
「5歩動かす」と「もし端に着いたら、跳ね返る」をつなげてみました。
しかし、実行ボタンでスタートさせてみると、魚はぴくっと動いて、すぐに止まってしまいました。
魚を動かす合図にあたるのが、いちばん上の黄色のブロックです。
その下に、青のブロック。
「5歩動かす」と「もし端に着いたら、跳ね返る」をつなげてみました。
しかし、実行ボタンでスタートさせてみると、魚はぴくっと動いて、すぐに止まってしまいました。

止まったのは、動かす幅が小さすぎたから。
「もし端に着いたら、跳ね返る」があっても、そもそも魚は端に着かなかったので、そこで動作を終えてしまったのです。
「もし端に着いたら、跳ね返る」があっても、そもそも魚は端に着かなかったので、そこで動作を終えてしまったのです。

こんなブロックを見つけました。
オレンジ色の「ずっと」。
青のブロック2つを、中に入れました。
これで、動かす幅に関係なく、動作を繰り返すはずです。
スタートさせると…
オレンジ色の「ずっと」。
青のブロック2つを、中に入れました。
これで、動かす幅に関係なく、動作を繰り返すはずです。
スタートさせると…

魚は、端に着いたら跳ね返りましたが、上下もひっくり返ってしまいました。
これは、魚の回転の向きまでは指示していなかったために起きたエラーでした。
そこで、「回転方法を左右のみにする」というブロックを加えて、正解にたどりつきました。
これは、魚の回転の向きまでは指示していなかったために起きたエラーでした。
そこで、「回転方法を左右のみにする」というブロックを加えて、正解にたどりつきました。
プログラミング的思考で問題に立ち向かえ!

失敗と修正を繰り返しながらゴールを目指す。
こうしたプログラミング的思考が、解決が困難な大きな問題に立ち向かうのに役立つと、栗山さんは言います。
こうしたプログラミング的思考が、解決が困難な大きな問題に立ち向かうのに役立つと、栗山さんは言います。

栗山さん
「自分の人生をどう生きるかとか何でもいいんですが、すごく難しい問いだとしても、例えば環境問題をどうするかという課題だとしても、一つ一つステップを踏んで考えていこうと。建設的に、積極的に、諦めずに、粘り強く考えられるヒントになるのではないかと思います」
「自分の人生をどう生きるかとか何でもいいんですが、すごく難しい問いだとしても、例えば環境問題をどうするかという課題だとしても、一つ一つステップを踏んで考えていこうと。建設的に、積極的に、諦めずに、粘り強く考えられるヒントになるのではないかと思います」
栗山さんは、教育に「プログラミング」をとり入れる良さについて、こんなことも話していました。
それは、パソコン上で、試行錯誤の過程が目に見える形で残るということ。
間違えたとしても、「ここまではできたんだ」と振り返って、「今度はこれをやってみよう」といった創造性を育むことにもつながるそうです。
大人も、この「プログラミング的思考」なら、大きな壁に直面しても、諦めて引き返す前に突破口が見つかるかもしれませんね。
それは、パソコン上で、試行錯誤の過程が目に見える形で残るということ。
間違えたとしても、「ここまではできたんだ」と振り返って、「今度はこれをやってみよう」といった創造性を育むことにもつながるそうです。
大人も、この「プログラミング的思考」なら、大きな壁に直面しても、諦めて引き返す前に突破口が見つかるかもしれませんね。

「週刊まるわかりニュース」(土曜日午前9時放送)の「ミガケ、好奇心!」では、毎週、入学試験で出された時事問題などを題材にニュースを掘り下げます。
「なぜ?」、実は知りたい「そもそも」を、鎌倉キャスターと考えていきましょう!
コーナーのホームページでは、これまでのおさらいもできます。
下のリンクからぜひご覧ください!
「なぜ?」、実は知りたい「そもそも」を、鎌倉キャスターと考えていきましょう!
コーナーのホームページでは、これまでのおさらいもできます。
下のリンクからぜひご覧ください!