プログラミング教育とは、子供たちに、コンピュータに意図した処理を行うよう指示することができるということを体験させながら、将来どのような職業に就くとしても、時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育むことであり、コーディングを覚えることが目的ではない。
–文部科学省 小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)http://www.mext.go.jp/b_menu/shingi/chousa/shotou/122/attach/1372525.htm
子どもへのプログラミング教育というと、「プログラミングのスキル(コーディングスキル)ではなくプログラミング的思考」という話がよく出てきます。
プログラミング的思考 は、ざっくりいうと、論理的思考の一部、みたいなもの、でいいかと思います。
それはすごく正しいと思っています。僕も、小さい子どもに、コーディングの細かいスキルを習得させることは重要ではなく、プログラミング的思考を伸ばすことの方が大切だと思います。
ただそうすると、アンプラグド(PCなどを使わない、紙などでのコンピューターサイエンスなどの学習)でもいいのでは?という疑問が出てきます。
コンピューターサイエンス、プログラミング的思考を伸ばすという目的では、そうかもしれません。もっといえば、別に将棋でも科学の実験でも、ツールはなんでもよい。
論理的に考えるとそのとおり、、なんですが、そのロジック展開に自分の中で違和感がありました。コンピューターと触れ合うことは必要ないのか、いやそんなことないのでは、、という違和感。それが最近、腑に落ちました。
それは、世界の広がりと感性 という軸でも考える事。
例えば外で子どもを遊ばせるときに、狭い公園より広い公園、もっといえば大自然の中で遊ばせられたらいいなと思いませんか?
音楽も、YouTubeやスマホ、CDで聞くだけじゃなくて、コンサートやライブを味わってほしくないですか?
スポーツも、プロのプレーを間近で見たくないですか?
何事も、もっと世界は広いんだよ、すごい体験いっぱいできるんだよ、って感じて欲しい。
コンピューターがあることで、できることが、世界がすごく広がるんですよね。プログラミングに限らず。
映画を作ったり、音楽を作ったり。写真を加工もできるし、キャラクターデザインなどもできる。ゲームも作れるし、世界中の人とネットでつながれる。
つまり、コンピューターを使うのと使わないのでは、世界の広がりがまったく違う。無限の広がりのなかで、知的好奇心を刺激し、感性を磨いてほしい。
これはアンプラグドでは達成できません。
プログラミングを正しく学べば、(プログラミングはコンピューターの可能性を広げているツールなので)分かりやすく、世界の広がりを感じられます。
ただ、別にプログラミングじゃなくてもいい。例えば動画編集のアプリだったり、作曲、編曲のツールだったり。3Dプリンターで遊ぶとかでもいい。
一方で、プログラミング学習で、子ども用の教材などで簡単にしすぎて可能性を狭め、「プログラミングってこんなものか」と、子どもが可能性を小さく感じて興味を失うことは避けないとダメ。プログラミング学習がまったくの逆効果になってしまう。
・プログラミング的思考を身につけること
・テクノロジーの無限の可能性を感じ、感性を磨くこと
この2つともが大事であり、かつこの2つは、相互依存せず独立している。
これを意識せず、なんとなく合わせて考えて、どっちつかずになって、両方共に効果が出ない(ときには悪影響を与える)、そんなことにならないようにしていくことが大切だと思います。
プログラミング学習は、うまくやれば、この2つともにとって、とてもいい教材の1つであることは確かです。
、、、ただ、もう1ついうと、これらの前に、ソフトスキル(非認知能力)もさらに大事だったりします。
諦めずに最後までやりぬける、失敗を恐れず行動できる、自発的に行動する、自己肯定感がある、などなど。