プログラミング

プログラミングを楽しみながら、考える力を養う

ここ数年、子どもたちにプログラミングの素養をという話をあちらこちらで聞くようになりました。プログラミングを教える教室もだいぶ増え、学校での必修化も決まったようです。「読み書きそろばん同様、これからの社会を生き抜くための必須科目だ」という考え方もあります。しかし実際には、プログラミング教育は何に役立つのでしょうか?何に役立てるべきでしょうか?

プログラミング教育で得られるもの
文科省のWEBサイトや各種プログラミング教室のWEBサイトを見ると、以下のようなことが書かれています。

  • ものを作る楽しさと達成感を味わえた
  • 物事を順序だてて組み立てるような思考ができるようになった
  • コンピュータに対する拒絶感がなくなった
  • 自分にもできるという自信を持てるようになった
  • 論理的思考力がついた        etc

確かにどれもあるだろうなあと思います。
大きく考えると、得られるものは

  • ものづくり体験
  • 思考力育成

の二つになりそうです。
確かに、優秀なプログラマは、思考力があります。中でも以下に長けているように感じます。

  • 物事を細かく分解し、整理する力
  • 分解した物事をつなぎ合わせ、一つの動きとして組み立てていく力
  • 出来上がったものに対し、そこにある誤りや非効率(問題点)を探し、改善する力
  • 既存の知識を土台にし、新しい知識を学んでいく力

これらの力はまさに、これからの不確実な社会を生き抜くために、プログラミングを職業にしなくとも非常に大切な力になるのではないでしょうか。

しかし一方、最近の「直感的にできるプログラミングツール」だけを使っているプログラマの限界として感じてしまうのは、上記のような力がなかなか伸びないことです。直感的にプログラムが組めてしまうだけに、事前に細分化し、それをいかに組み立てるのかをあまり考えなくなっているのではないかと推測しています。ただ、どんな職業でも優秀な人は、上記したような思考力があるように思います。

プログラミング教育で求められるもの

当然ではありますが、全員がプログラマになるわけではありませんし、プログラミングの自動化も相当進んでいる昨今、プログラムが組めるだけでは仕事にはならなくなってくるでしょう。とすると、プログラミング教育では、何かを一から作り出すものづくりの楽しさを感じると同時に、思考する力を育てられるものでなければ意味がないことになります。

プログラミングは、あくまで思考力を高める一つのツールになっていきます。国語や数学で、理科で、学校ではさまざまなことを学ぶが、実社会で生きていくためにその知識は使わないケースも多い、というのと同じです。各科目でさまざまなことを考え、試行錯誤することで、子ども達は「思考する力」をつけていかなければなりません。

プログラミングも特別ではありません。社会に出てそれを使うかどうか、という視点ではなく、思考力を学ぶためのツールとして捉えるべきでしょう。そして、思考力を学ぶツールとして、現時点でプログラミングは非常に適しています。

もちろんこれは、プログラムを作るにあたり、上記したような論理的な思考力が求められるからです。しかしこれも、各科目同様、学ぶ内容を固定化し、必要な知識を伝達する方式での授業になれば、思考力を学べるものではなくなってしまいます。教える側も学ぶ側も試行錯誤しながら、考えながら何かを作り出していく作業。これが行えるから、思考力がつくのです。そういった意味で、プログラミングと作文は非常に近い部分があります。

  • 決まった一つの正解があるわけではない
  • どこまでやれば終わり、という決まったゴールもない
  • 同じテーマでも人それぞれ出来上がるアウトプットが異なる
  • 自分の中で考える部分も多いが、最後は他人に見える形でアウトプットする          etc

考学舎では、思考する力を育てるツールの一つとしてプログラミング教育をカリキュラムに取り込んでいます。