時代とともに変わるプログラミング的思考能力のスタンスについて

講演会資料

内容

①教科学習におけるプログラミング教育の在り方
②教科学習とプログラミング的思考のつながり
③日常でできるプログラミング的思考の育て方

これを受けて今回の講演会では、以下のことを話をさせていただきます。

①時代とともに変わるプログラミング的思考能力とは?
②教科学習におけるプログラミング的思考能力の在り方
③日常生活におけるプログラミング的思考能力の育て方

はじめに

学びの本質は変わらないかもしれないが、子どもたちと教員の置かれる社会は変わる

 元々、プログラミング的思考能力=論理的な思考能力というニュアンスとして分りやすく広まりつつありますが、論理的な思考能力は従来の学校の教科の授業で身につけることができていたのに、改めて新しく同じようなニュアンスのプログラミング教育という考えがが入ってきて、教育業界がざわざわしたのが今となっては懐かしい気がします。おそらくこれは、学校でダンスをやりますとか、英語をやりますとかの比にならないくらい、教育に携わる方々を震えさせたのではないかでしょうか?プログラミングという言葉が先行し「難しい」「知らない」ということが起き、プログラマー(プログラミングをする人)になるわけでもないのに勉強をするのか?などの話もあったと思います。今でははだいぶそのような議論は無くなってきたと思います。しかし、今回の話のテーマにも関係するのですが、そのような議論がされていた当時の状況と大きく変わっています。新型コロナウイルスです。すでに議論されていた時代から急激にアップデートされています。

 新型コロナウイルスによる新しい生活様式を作るために、オンライン学習やオンライン会議、リモートワークなどの新しい学習スタイル・働き方が浸透し始め、小学生も一人一台パソコンを持つようになり、家や学校にはネット環境の整備が急速に進みました。家にいても楽しめるような体験型のテクノロジーの発達や、観光にいった気分を味わえるようなテクノロジーも発達しています。また最近では、SDGsという一部の意識高い系の社会人のみ理解できていればよかったような内容をテレビで大きく打ち出したり、5G、AI、などの技術の発展、今話題になっているのがあのFacebookが社名変更でメタという企業名になり、メタバースに力を入れていくと宣言をしました。そういったこともあり、おそらく、「2020年プログラミング教育がスタートだ!どうしよう!」と意気込んでいたあの時と、今この瞬間では、プログラミング教育の定義のようなものは変わらないにしろ、その学びを子どもたちに提供する先生の心境、その学びを受ける子どもたちの心境は大きく変わっていると思います。先ほども話をしたように学びの本質は変わりませんが、プログラミングというIT用語を使う以上、時代によって言葉になっていない、言葉にできない大事なスタンスの部分は変わっていくと私は考えます。これからの未来を作る子どもたちに関わることだからこそです。もちろん、今の子どもたちが生きていく社会には自動運転なんて当たり前、空飛ぶバイクが当たり前、プログラミングというのが身近にありすぎる状態になることも頭に入れておかないといけません。

 そういった面も踏まえて、今回は、現在最新の技術を扱い、生み出し、元々学校の先生になりたかった私が、IT企業の代表取締役としてプログラミング的思考能力の変化していくスタンスについて話をします。

時代とともに変わるプログラミング的思考

作る気持ちは大切にしてもらいたい

 IT企業だからといって、エンジニアを育てる教育ではないことはもちろん承知の上です。しかし、プログラミングをする人=エンジニアという考えも古いことも承知していただきたいです。水泳ができる人=プロスイマーと言わないように、泳ぐことがある程度の人にできるくらい、ある程度の人がプログラミングができる社会になりつつあるのは意識していただきたいです。スマートフォンの普及や通信環境の安定化、人間の感情に訴えかけるようなITサービスの増加により、オンラインとオフラインの境界がほぼ無くなっています。Online Merges with Offline(OMO)とも呼ばれ、今の子どもたちにとっては、オフラインの環境はないというのは当たり前の社会です。一昔前までは通じていた、コミュニケーションは人と会ってしなさい!というのもこのようなご時世とテクノロジーの発展により子どもたちには通用しなくなっています。さらに、写真や動画を誰でも高画質で加工も簡単に投稿することができたり、誰でも小説家、声優、時には役者や芸人、音楽を作って配信ができるようなアーティストに誰でもなれる時代です。自分自身しかできない何かを生み出すことが価値とされている現代では、作る気持ちはとても大切で育むべき気持ちだと考えます。

プログラミングは一部の人のスキルではなくなってきている

 プログラミングをする人=エンジニアは古いと話をしましたが、このコロナ禍で、さらにこの考えは加速しました。それは、地域ごとに市民がコロナの課題を解決するアプリケーションの開発をする動きが多く出てきましたからです。弊社が開発するアプリを作る仕組みも全国約200箇所で活用され、テイクアウトできるお店をマップ上に表示するアプリをエンジニアではない方々が共に協力し合いながら作っている状況でした。ノーコードと言われる、いわゆるプログラミング言語を扱わなくてもアプリを開発できるというものです。学校でも扱っているスクラッチよりも、いわゆるプログラミングしていません。お店の情報を地図に表示してGoogleMapで案内してくれるアプリであれば10分でできる時代になっています。

 その際に必要なことは、やはりプログラミングする技術ではなく、「いかに課題を捉えることができ、行動に移すことができるか」です。

アジャイル

 アジャイルという言葉があります。これは最近創設されたデジタル庁でも活用されている考え方です。ちょうど先日、山梨県庁職員50名ほどを対象にしたこの考え方を学ぶ勉強会を行いました。来年の1月にも実施する予定です。内容は「地域の課題を発見し解決策をアプリで作る」というものです。もちろん参加者はアプリ開発の経験もなければ、プログラミングの経験もありません。わずか5時間程度の研修で、課題を解決するアプリを作っていました。観光情報を知らせるためのアプリや、スタンプラリーのアプリ、お店を紹介するアプリなどです。私たちも山梨県だけではなく、群馬県や色々な地域で行政職員さんを対象に行っています。行政職員さんをエンジニアにしようという狙いは微塵もありません。プログラミング的な考えは、もはや働く上で必要な考え方なのです。

 海外のサービスは、サービス内容がある程度完成されていない状態でも、デザインが整っていなくても、機能が足りていなくても、とにかくそのサービスをまず作って使って動かしてもらいます。つまり使って欲しい対象にどんどん使ってもらうことを行います。そこで、ユーザー(使っている人)が文句を言ったらその文句を元に作ったものをどんどん改善していきます。そして最終的にその文句が無くなっていったら多くのユーザーたちが獲得できているというのが主流です。その一方で日本人はとにかく完成するまで、最高のものができるまでひたすら磨き上げ、そしてできた素晴らしいクオリティのサービスはその精度にこだわりすぎて、誰が使うものかがはっきりせず、どこにニーズが有るかわからないままになって使い物にならないという風潮があります。最近では日本もそういった風潮を改善していくためにアジャイルという言葉が意識されてきており、これは、プログラミング教育にも関係してくると思っています。

時代にあったプログラミング的思考のスタンス

 こんなプログラミング的思考能力の説明を聞いたことがあると思います。
『「お味噌汁を作る」となったとき、完成に至るまでにはいくつかの工程を経なければいけませんが、 何気なく作っているお味噌汁であっても、必要となる材料を準備し、かつ最適な手順を踏まなければお味噌汁は完成しません。 この、「完成に至るまでの過程を考え行動すること」がプログラミング的思考です。』
ただ、これは、ここ数年先に進んだ今の時代には合いません。あくまでも例ですが、お味噌汁を作る過程にこだわりすぎ、考えすぎて実際に調理が遅れてしまうのものよくありません。また、このお味噌汁は誰が飲むのか。誰を幸せにするのかを考え相手がいることも忘れてはいけません。そして一番重要なのは、なぜ味噌汁を作るのかも考えるべきなのです。こういったものがあり、はじめて味噌汁は完成するので、上の言い方でいうとここまでして考え行動してもらいたいのです。そのため、最近よくあるこういった食べ物を作る事例には、スクーミー社らしく3つのことを付け足しています。

・自分が満足するものではなく、誰が食べるのかを考える
・完璧なものを時間をかけてではなく、まず試作品を失敗を恐れずたくさん作る
・そもそもなんで味噌汁作っているのかを考える

で、これをもう少しかっこよく言うと

・誰のためになるかを考え、ニーズをとらえる
・アジャイル的に、作りながら考える
・なぜやるのかの部分にこだわる

です。

つまりこれを踏まえてプログラミング的思考能力を考えると、
作るときに考える思考として

A)どんな困ったことを解決するのかを明確にする
B)誰のためなのかを考える
C)なぜそれを解決するのかを考え自分ごとにする
D)アイデアが固まっていなくても、失敗を恐れずまず動き、改善していく

これがこの先のプログラミング的思考能力のスタンスとして大事だと考えています。

教科学習におけるプログラミング的思考のつながり

プログラミングは自分以外に相手がいることを忘れてはいけない

 学校の授業におけるいろいろなテーマが農業や林業、環境問題などの社会に関連しているものなどが、これもまた時代に合わせて教科書が変わり学びのテーマになってきたのではと思います。最近はとくに「社会の課題解決をする」ということがどの教科にも入ってきているのではないかと思います。
計算をおぼえよう!漢字をおぼえよう!仕組みをおぼえよう!も重要ですが、それらの学びが、どのように社会で活用されているのか、社会をよくするためにどう活用することができるのかを考えることが大切なことであり、目的になってきていると思います。

例えば、
「何のために計算をするのか」
「例えば面積をなぜ求める必要があるのか」
という子どもたちの質問に対して、サッカーのフィールドが例えば縦70m横100mだとしたら、1m☓1mの芝をいくつ置けるかっていうと70☓100で7000。芝1つが1万円だとしたら全部で7千万円。こういう計算が瞬時にできる。さらに理屈さえわかってればプログラミングで縦と横から金額を自動計算してくれる仕組みを作れる。そこから更にAIを作れば芝の縦や横なんて考えなくても世界中のフィールドの中で一番適切なサイズで算出できる物を作れる。

とこれからは、やはり自然にテクノロジーを介してどのように社会に役に立てるかが重要になってくるのではないかと思います。正六角形をプログラミングで作ることも重要です。スキルの面でも重要ですが、これがどのように活かされているのかを提示し、子どもたちなりの答えを見つけられないと、これはただの作業になってしまいます。コンパスがパソコンに変わっただけ、順序を考えるだけでは、最初の話にもあったようにプログラミング的思考能力とは言わないと考えます。そして、このようなことを考える上で、プログラミング技術が進歩し、AIが発展したことに対して、AIで仕事が奪われるのではなく、AIで仕事を作ることができるという感覚を持ってもらいたいです。

自分ごとにする

 そういった教科のテーマの中で、「私が・私たちが社会に対して何ができるんだろうか?」と子どもたちが考える時間があり、それを達成して、できたことや自分の気持ちを伝えることができたことに感動して、だからこそ次にもっと良いものを、もっと効率よく、もっと格好良く作れる方法を学びたいという気持ちになり、連鎖していくと考えます。社会といっても世界中の子どもをとか、海外の学校に行けていない子どもたちをというものではありません。課題を自分ごとにすることが大切です。高齢化社会に関することであれば、自分の近所に住んでいる〇〇さんの困ったことを解決するという、たった1人の課題解決からが理想です。

作るというのはモノを作るというニュアンスの方が強くなってしまいますが、そのようなことはないです。サービスやプロダクトを作るのもそうですが、作文や自分の意見・アイデアを作るというものも作るという表現になると思っています。作ることでどうなるのかを考えた時に、自分のために作るというものももちろんありますが、ここでは「相手がいる」とします。作文も自分が読みますが、読んでくれる人がいます。やはり、作るという行為この相手がいるというのを考えないといけないません。自分が作った作文を相手が読みどう動くか(どう感じるか)までを考えて構成しないといけないと思います。

③日常生活におけるプログラミング的思考のつながり

時代にあった活用の仕方

 AIにより、膨大なデータで、データに見合ったものを予測し、作ることはコンピューターでできてしまいます。環境に与える影響も考えつつ、現代のようなダイバーシティの中で大量生産大量消費はもう流行りません。そういった昔の考えが通用しなくなってくるこれからの時代において、いかに価値のあるものを作ることができることが大切になってきます。そのためITの進化と同様のスピードでプログラミング的思考という言葉を捉えていかないと、授業としてやっていることはパソコンを使って行うから新しいことに見えるかもしれないけど考え方が古いという状況になってしまいます。

 これはプログラミング授業に限らず、GIGAスクール構想で与えられたパソコンの使い方も同様です。ですので、これまでの今までの考え方のまま、プログラミング思考をいろいろなネットや本に書かれているようなもので捉えてしまうと、時代に駆け抜けていく子どもたちにとっては、受け取り方次第で「合わない」ということもでてくると思います。そのため、常に新しいスタンスを持つためには、学校の授業だけではなく日常生活でより多くの視点を持つのかが重要になってきます。

日常にあふれるプログラミングの本質

 国語、算数で勉強したことが生活しているところに突然あらわれるとやはり嬉しいです。あ、こんなところで使われている!と考える場面はやはり楽しいです。ですので、プログラミング的思考能力も同じです。プログラミングされているものは身近にたくさんあるような社会になってきましたので、どのようなところにプログラミンングされているものがあるのかを探し、どのような仕組みになっているのか考えることもできると思います。しかし、プログラミングされているものだけを探そうでは、この先不十分です。世の中にある仕組みが作るという観点で考えて、「相手のことをどう考えてそれが作られているか」というところに目線を合わせることができるかどうかが大事になってきます。自動ドアが開く・閉まることや、自動で電気がつく・消える仕組みがどうなっているかを考えるだけではなく、誰が便利になっている仕組みなのか、なぜこれがあるのかを考えることが大切になってくると思います。この点では、ユニバーサルデザインや何気ない看板や標識、アプリも考えやすいと思います。
 
 この視点に合わせて課題を発見する視点も大切になってきます。困っていることを明確にする方法や、こんなものがあったら便利だという理想を考える方法とありますが、一番大切なのが、自分ごとになっているかどうかです。確かに、今世間を賑わしているSDGsをベースに考えることも大切なことですが、その課題が自分ごとになっていないと意味がありません。課題を自分ごとにすることが大切です。高齢化社会に関することであれば、自分の近所に住んでいる〇〇さんの困ったことを解決すると②で話をしましたが、たった1人の人物の課題解決からが理想です。なぜ自分が行うのかを考え、課題を自分ごとにすることが大切です。SGDsでこういっているからでは自分ごとにはなりません。後から、自分が考えた身近な課題はSDGsだとこうなるのか程度で十分です。

まとめると日常生活の中で、


①いろいろなサービスや仕組みに対して、構造を分析するだけではなく、そのモノが生まれた経緯として誰が利用するものなのか、なぜこれがあるのか、どんな課題を解決しているのかを考えること

②自分にしか考えることのできない自分ごとになっている課題を発見し、解決方法を考える中で、アイデア実現のためにすぐ行動に移すこと

これが、重要になってきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です