探究型プログラミング学習(探プロ)

プログラミングの考え方を学んで、未来を創る力を手に入れる

プログラミングの考え方を学んで未来を創る力を手に入れる

探究学習の中でプログラミングを学ぶという意味

探プロの形が出来上がったのはちょうど1年前です。

1年前の今ごろは修士論文を書いていて、探プロのコンセプトを整理するのに頭を悩ませていた時期でした。

 

単にプログラミングを学ぶのではなく、探究学習という形をとることは

探プロのコンセプトを考え始めたかなり早い段階から決めていました。

プログラミングと探究学習の相性の良さは間違いないと思っていたので。

 

それでも、1年前は探究学習とプログラミングを組み合わせる発想が世の中では一般的でなく、私自身もうまく説明しきれないもどかしさがありました。

 

それが今年の春に
小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ):文部科学省

が公表されて以来、一気に「プログラミング的思考」という言葉と共に認知が進んできたように思います。

 

いま、次期学習指導要領等の見直しが進められている中でプログラミングが注目されていることはご存知の通りですが

具体的なイメージというのはまだ見えてきません。

そうした中で、たとえば

生活・総合的な学習の時間ワーキンググループにおける審議の取りまとめ(総合)

の中では、総合的な学習の時間の見直し案として、こんなことが書かれています。

(情報活用能力の育成、プログラミング的思考や社会との関わりの視点)

○ 総則・評価特別部会において、教育課程全体を通じた情報活用能力の育成について検 討される中で、総合的な学習の時間においては、情報の集め方や調べ方、整理・分析の 仕方、まとめ方や表現の仕方などの、教科横断的に活用できる「学び方」を身に付ける ことや、学習の過程において情報手段の操作もできるようにすることが求められる。

 また、プログラミングに対して小学校段階において体験し、その意義を理解するとい うことが求められており、教育課程全体を通じて、各教科等の特質に応じた取組が期待 されている。プログラミング教育は、子供たちが将来どのような職業に就くとしても、 時代を超えて普遍的に求められる力としての「プログラミング的思考」などの育成を目 指すものであり、コーディング(プログラミング言語を用いた記述方法)を覚えること が目的ではない。「プログラミング的思考」とは、自分が意図する一連の活動を実現す るために、どのような動きの組み合わせが必要か、どのように改善していけばより意図 した活動に近づくのかということを論理的に考えていく力である。

 総合的な学習の時間においては、情報に関する課題について探究的に学ぶ中で、自分 の暮らしとプログラミングとの関係を考え、プログラミングを体験しながらそのよさに 気付く学びを取り入れていくことが考えられる。例えば、プログラミングを体験しなが ら、生活を便利にしている様々なアプリケーションソフトはもとより、目に見えない部 分で、様々な製品や社会のシステムなどがプログラミングにより働いていることを体験 的に理解するようにすることが考えられる。

 プログラミングを体験することが、総合的な学習の時間における学びの本質である探 究的な学習として適切に位置づけられるようにすることとともに、児童一人一人に探究 的な学びが実現し、一層充実するものとなるように十分配慮することが必要である。

 

抽象的な話だと分かりづらいかもしれませんが、例えばこれを探プロでやっている街づくりのプログラムで説明すると、こんな感じになります。


街には何があるだろう?(課題の設定)

ここでは特に、動くものに注目します。

 

そして、実際に街を探検して探してみます。(情報の収集)

たとえば、信号機や踏切、自動販売機、などがありますね。

 

それらの動く仕組みを読み解き、アルゴリズムを理解し(整理・分析)、伝える(まとめ・表現)。

 

これだけでも十分に探究学習になります。

でも、探プロはこれだけでは終わりません。

 

街の中にあるそれぞれは、どんな繋がりをもっているのだろう?(課題の設定)

 

すると、たとえば踏切(+信号機)と電車の関係、店にあるPOSレジと工場や倉庫の関係、などが見えてきます。(情報の収集)

 

そうやって、実は街は個と個の繋がりでできていて、全体で1つの社会(システム)を構成していること、その繋がりはアルゴリズムで説明できること、を学ぶことができます(整理・分析)。

 

こうした学習を、机上だけでやらずに、littleBitsや実際のプログラムなどを使って繋がりを可視化し(まとめ・表現)、それを体験できれば学習の理解はさらに深まります。

 

この学習を本当に実現することができたら、子どもたちが見えている世界は大きく変わるでしょうね。

大人ですら、モノとモノの繋がりを理解して、その全体を正しく捉えられている人は実は少ないのかもしれません。

 

こういったモノの見方、考え方ができるようになると、自分を中心とした視野の狭い捉え方ではなく

全体の中での自分の位置づけ、といった捉え方ができるようになるはずです。

 

と、ここまでが先の取りまとめの中で期待されていることなのですが

探プロはさらに先へ進みます。

 

社会(システム)がプログラミングによって実現されている、動いている

ということを理解したら、

その社会の仕組みを作るためには何が必要か?

ということを考えていきます。

 

そうなると、Aを動かしたあとにBを呼び出すために

何を決めておく必要があるのか?

正確で効率の良く実行するためには、どんな順番で呼び出せばよいか?

などに関心が向かうはずです。

 

こうした考え方こそが、プログラムを設計するときにとても重要な考え方で、探プロではこれをプログラミングの概念、と呼んでいます。

(整合性のとれたインタフェースや最適なアルゴリズム

 

そう、つまり私たちが日々過ごしている社会と、子どもたちにこれから学んでほしいと思っているプログラミングは、その仕組みや考え方が同じなんですね。

そこに早く気づいてほしい。

 

ゲームを作るのも、アプリを作るのもいいけど、もっと周りをみて

自分の生活している社会は実はゲームやアプリで作ったシステム(プログラム)と同じ考え方でできているということや

プログラミングの考え方は、ITの世界だけじゃなく、仕事にも生活にも役立つということを

一人でも多くの人に気がついてもらえたら、と思っています。

そのための探究学習、なんですよね。

 

探究学習としてプログラミングを学ぶ意味が、少しは伝えることができたでしょうか?

@tanpro-lab