プログラミング的思考編|北陸で大事な「考える技術」で同調圧力を突破する

2021.05.03

vol. 01

リカバリー力は失敗の数で養われる

インタビューアーの武井靖

ちょっと長い前書き

この特集を担当する〈HOKUROKU〉のウェブディレクター武井靖です。

 

文章など普段は書かないのですが、プログラマーという立場から今回の「考える技術」について取材・執筆を担当しました。

 

2021年(令和3年)は中学校で、プログラミング教育(プログラミング的思考の教育)が全面実施となります。

 

プログラミング教育がなぜ今必要なのでしょう。その背景には、世の中の急速な変化が挙げられるはずです。

 

多くの仕事にこれから変化が生まれ、終身雇用が業種によっては難しくなります。働き方・生き方に対して多様性が、北陸のような地方でも昔と比べて出てくるでしょう。

 

そんな社会においては、生きていくために自分で選択する(考える)力が今以上に必要になってくると言われています。この考える技術の1つにプログラミング的思考が挙げられています。

 

北陸の風景。写真:山本哲朗

プログラマーとして地方で活動する筆者としても、プログラミング的思考は北陸の人たちに大事だと思います。

 

地域おこし協力隊への参加をきっかけに都市部から引っ越してきた私の一意見ですが、北陸のような地方は共同体の同調圧力が強い気がするからです。

 

この圧力こそが伝統や歴史を守る面もあるはずですが、その圧力は時に「常識」とは違う行動をする挑戦者を歓迎しない方向に働くはずです。

 

変化の時代においては空気を読まずに自分の頭で考え、確信を持って行動し、何かを変えていける人の方が重宝されるはずです。

 

にもかかわらず、共同体の圧力が強い地域の場合、真逆の人の方が評価を受けるため、そうした人材が育ちにくい面もあると感じます。

 

だからこそ、北陸に暮らす人たちにも大事な「考える技術」。その1つがプログラミング的思考なのだと思います。

プログラミング的思考ってなんだ?

プログラミング「的思考」を考える際にまず、プログラミングとはそもそもなんなのか、知っておく必要があると思います。

 

プログラミングとは、プログラミング言語を使って何かを完成させる一連の作業です。では、プログラミングをする際にプログラマーは何をしているのでしょう。

 

思い切って話を単純化すると、プログラマーの頭の中では次のような作業が行われていると感じます。

  1. 調べる
  2. 目標を定める
  3. 必要な材料や道具をそろえる
  4. 誰がどうなってほしいかを考える
  5. 目標に到達するための手順を考える
  6. 実際にやってみる
  7. 経過を確認して検証・修正する
  8. 目標に到達する(完成する)
  9. さらなる効率化を目指す

この頭の中の流れを身近な例、例えば、野菜の栽培に落とし込んで考えてみましょう。新しい趣味として野菜を育てるとなったらまずは何を考えますか?

 

どんな野菜なら育てやすいのかを最初に調べると思います(ステップ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年生)のほとんどの子どもは、プログラミングに授業で初めて触れるはずです。先生たちだって経験は少ないでしょう。

 

その意味で、先生たちはどのように教え、数学的知識のない子どもたちはどのように学んでいるのか気になります。

 

仮に、知識のない子どもたちが、実際のプログラミング言語ではないものの、プログラミング的な思考法を学校の授業で学べるのだとしたら、プログラミングに関する知識を持たない大人が「考える技術」としてプログラミング的思考を学ぶ際の大きなヒントにもなるはずです。

 

そこで、富山県射水市にある中太閤山小学校へ出かけ、教育現場の様子を先生たちに聞いてきました。

 

同校には、5年生の算数・6年生の理科でプログラミング的思考を取り入れた先生が2人在籍していて、射水市のプログラミング的思考の授業において先駆的な役割を果たしている理科専科教員も授業を受け持っているとの話です。

 

次回からは、そんな先生たちに行ったインタビューを紹介します。

 

インタビュー後には、学校で聞いた話を基に、坂岡まさしさんというプログラミングの専門家(子育て中の保護者でもある)ともオンライン取材で意見交換しました。

 

プログラミング的思考を学びたい大人だけでなく、どのような学びをわが子が学校で深めているのか知りたい保護者の皆さんも、最後までぜひ読んでみてくださいね。

 

坂本編集長のコメント:求められる、評価される人間の姿も、時代の変化と共に大きく変わってくると、歴史小説を読めば分かります。

 

例えば、天下泰平の徳川幕府の安定期と、戦国時代や幕末の動乱期とでは、評価される、活躍できる人間像がそれぞれ変わってくるわけです。

 

同じように、変化が大きくなると予想されるこの先の時代、前例を覆してでも自分の頭でゴールを思い描き、そのゴールに向けて確かな筋道を立て、微調整を加えながらも揺るぎなく動ける人間になれれば、活躍のチャンスは増えるはずですし、少なくとも損はないはずです。

 

そのために役立つ技術の1つがプログラミング的思考。次回からは、学校でのインタビューがいよいよスタートします。取材に不慣れな武井をアシストすべく編集長の私も取材に同行しました。

 

自分が小学生だった時以来に会う「小学校の先生たち」は立派な人たちばかりでした。そんな素晴らしい先生たちのインタビューを引き続きどうぞ。)

この記事を書いた人

Avatar

関連する記事

オプエド

この記事に対して、前向きで建設的な責任あるご意見・コメントをお待ちしております。 書き込みには、無料の会員登録、およびプロフィールの入力が必要です。