リカバリー力は失敗の数で養われる
インタビューアーの武井靖
ちょっと長い前書き
この特集を担当する〈HOKUROKU〉のウェブディレクター・武井靖です。
普段は文章など書かないのですが、プログラマーという立場から今回の「考える技術」について取材・執筆を担当しました。
2021年(令和3年)は中学校でプログラミング教育(プログラミング的思考の教育)が全面実施となります。
なぜ今プログラミング教育が必要なのでしょう。その背景には世の中の急速な変化が挙げられるはずです。
これからは多くの仕事に変化が生まれ、終身雇用が業種によっては難しくなります。昔に比べて働き方・生き方に多様性が、北陸のような地方でも出てくると予想されます。
そんな社会においては生きていくために自分で選択する=考える力が今以上に必要になってくると言われています。この考える技術の1つにプログラミング的思考が挙げられています。
北陸の風景。写真:山本哲朗
プログラマーとして地方で活動する筆者としても、プログラミング的思考は北陸の人たちにこそ大事だと思います。
都市部から地域おこし協力隊への参加をきっかけに引っ越してきた私の一意見ですが、北陸のような地方は共同体の同調圧力が強い気もするからです。
この圧力こそが伝統や歴史を守る面もあるはずですが、一方でその圧力は時に「常識」とは違う行動をする挑戦者を歓迎しない方向に働くはずです。
変化の時代においては空気を読まずに自分の頭で考え、確信を持って行動し、何かを変えていける人の方が重宝されるはずです。
にもかかわらず共同体の圧力が強い地域の場合、真逆の人の方が評価を受けるため、その手の人が育ちにくい面もあるように見えます。
だからこそ北陸に暮らす大人にも大事なはずの「考える技術」。その1つがプログラミング的思考なのだと思います。
プログラミング的思考ってなんだ?
プログラミング的思考の前に、そもそもプログラミングとはなんなのでしょうか。言い換えればプログラミング言語を使って何かを完成させる一連の作業でプログラマーは何をしているのでしょうか。
思い切って話を単純化すると次のような流れになるはずです。
- 調べる
- 目標を定める
- 必要な材料や道具をそろえる
- 誰がどうなってほしいかを考える
- 目標に到達するための手順を考える
- 実際にやってみる
- 経過を確認して検証・修正する
- 目標に到達する(完成する)
- さらなる効率化を目指す
例えば、野菜の栽培を考えてみましょう。新しい趣味として野菜を育てるとなったらまずは何を考えますか?
どんな野菜なら育てやすいのかを最初に調べると思います(ステップ1:調べる)。その上で育てやすい野菜を選ぶのではないでしょうか。
ステップ1:調べる・・・どんな野菜なら育てやすいか?
仮に小松菜の収穫をゴール(ステップ2:目標を定める)に選んだとすれば、
ステップ2.目標を定める・・・小松菜を収穫する
今度はゴールを達成するための再調査と道具の用意が始まります。
あらためて調べてみると小松菜はプランターでも栽培できると知りました。
最初はレンタル農園も考えていましたが、プランター栽培を決断します。
ベランダでプランター栽培すると決まれば、今度はプランター栽培に必要な情報の収集に加えて、種・プランター・土・肥料などの必需品をホームセンターで買いそろえる必要も出てきます(ステップ3:必要な材料や道具をそろえる)。
ステップ3:必要な材料や道具をそろえる・・・種・プランター・土・肥料を買う
この段階であらためて誰のために・どのように小松菜をつくるのか整理する必要もあります(ステップ4:誰がどうなってほしいかを考える)。
例えば野菜不足を解消して健康になりたい自分のために、あくまでも自分で食べる分だけを栽培するのであれば、買いそろえる材料の量も決まってきますし、農薬や化学肥料を使わないでつくろうという発想にもなるかもしれません。
ステップ4:誰がどうなってほしいかを考える・・・自分自身の健康のために安全な小松菜を食べたい
ここまで来れば育てる手順も考えられます(ステップ5:ゴールに到着する手順を考える)。
小松菜は朝晩に水やりが必要だと事前の調査で分かっています。朝晩に「スマホ」でアラームが鳴るようセットして、水やりを忘れない工夫をしました。
さらに3~4日で発芽した際には育ちの悪い芽を間引く必要もあるので、事前に「発芽時に育ちの悪い芽があるか→Yes(間引く)、No(様子を見る)」といった作業の流れを図(フローチャート)にしておき、そのとおりに動きます(6.実際にやってみる)。
ステップ5:ゴールに到着する手順を考える・・・毎日の水やりを忘れないようにアラームセットする、発芽後の間引きの段取りをしておく
ステップ6:実際にやってみる・・・毎日水やりする、育ちの悪い芽があれば間引く
2週間が経った時点で状況を確認します。想定と違って育ち具合が十分ではなければ肥料を追加します(ステップ7:経過を確認して検証・修正する)。
ステップ7:経過を確認して検証・修正する・・・肥料を追加する
1カ月が経ち、無事に収穫できました(ステップ8.目標に到達する)。
ステップ8:目標に到達する・・・小松菜を収穫する
味はおいしいです。しかし思った以上に虫に食われてしまったので、翌年の栽培では改善点として防虫ネットを掛けようと考えます(ステップ9:さらなる効率化を目指す)。
ステップ9:さらなる効率化を目指す・・・次の年は防虫ネットを掛ける
以上のように順序立てて論理的・構造的に組み上げていく考え方がプログラミング的思考です。
フローチャートの図
上に掲載したようなフローチャートと言われる手順の道筋を図解した表をステップ5では作成します。
見た目も特徴的なので、この表づくりの技術=プログラミング的思考と勘違いしている人も居るかもしれません。
しかし、フローチャートづくりはプログラミングの業務のほんの一部です。
翌年以降の栽培・収穫を迎えるまでの一連のまとまった思考プロセス全体をプログラミング思考と呼ぶのですね。
トライアル・アンド・エラーがスピーディーに際限なく体験できる
ただ、現実に野菜を栽培するとなれば結果が出るまでに時間を要します。
教訓を生かし、トライとエラーを続けていけば誰でも一人前の家庭菜園家になれるわけですが、なにしろ時間が掛かりすぎます。
しかし、今回の本題であるプログラミングの世界は一方で、この時間短縮において優れています。
何かのプログラミングを作成し、実際に動かしてみて動かないとなれば、その場で何が間違っていたのかを突き止め、考え直してもう一度プログラムを組み、実際に再チャレンジしてみればいいだけの話です。
結果が出るまでに翌年の収穫シーズンまで待たなくて済みますし、プログラミング上の失敗はあくまでもプログラミング上の話なので痛くもなければ血も流れません。小松菜を枯らす心配すらないのです。
取材に訪れた富山県射水市にある中太閤山小学校
ただ「プログラミングを作成し」だとか「もう一度プログラミングを組み」と気軽に言いましたが、プログラム言語を実際に仕事で扱うとなれば中学・高校以上で習う数学能力が必要です。
デジタルネイティブ世代とはいえ、プログラミングを習う5・6年生の(場合によっては4年生の)ほとんどの子どもは初めて授業でプログラミングに触れるはずです。先生たちだって経験は少ないでしょう。
それでも先生たちはどのように教え、数学的知識のない子どもたちは、どのように学んでいるのでしょうか。
この点は、プログラミングに関する知識を持たない大人が「考える技術」としてプログラミング的思考を学ぶ際の大きなヒントにもなるはずです。
そこで〈HOKUROKU〉は富山県射水市にある射水市立中太閤山小学校へ出掛け、先生たちに教育現場の様子を聞いてきました。
同校には5年生の算数・6年生の理科でプログラミング的思考を取り入れた先生が2人在籍していて、プログラミング的思考の授業において射水市で先駆的な役割を果たしている理科専科教員も授業を受け持っているとの話です。
次回からはそんな先生たちに行ったインタビューを紹介します。
インタビュー後には学校で聞いた話を基に、坂岡まさしさんというプログラミングの専門家(子育て中の保護者でもある)ともオンライン取材で意見交換しました。
単にプログラミング的思考を学びたい大人だけでなく、わが子が学校でどのような学びを深めているのか知りたい保護者の皆さんも、ぜひ最後まで読んでみてくださいね。
(編集長のコメント:変化の時代は求められる・評価される人間の姿が平時とは大きく変わってくると、歴史小説を読めば分かります。
戦国の世は遠い天下泰平の徳川幕府の安定期と幕末の動乱期では当然評価される・活躍できる人間像が変わってくるわけです。
同じように変化が大きくなると予想されるこの先の時代、前例を覆してでも自分の頭でゴールを思い描き、そのゴールに向けて確かな筋道を立て、微調整を加えながら揺るぎなく動ける人間になれれば活躍のチャンスは増えるはずですし、少なくとも損はないはずです。
そのために役立つ考える技術の1つがプログラミング的思考。次回からはいよいよ学校でのインタビューがスタートします。取材に不慣れな武井をアシストすべく編集長の私も取材に同行しました。
子どもの時以来に会う小学校の先生たちは立派な人たちばかりでした。そんな素晴らしい先生たちのインタビューを引き続きどうぞ。)
オプエド
この記事に対して、前向きで建設的な責任あるご意見・コメントをお待ちしております。 書き込みには、無料の会員登録、およびプロフィールの入力が必要です。
オプエドするにはログインが必要です。