プログラミング教育で論理的思考が本当に身につくの?
プログラミング教育により「論理的思考力」が養われることは、広く知られている。
プログラミングを始めたばかりの頃は、自分の作りたいゲームのアイディアが頭の中にあっても、そのアイディアを思い通りにプログラミングできない。しばらくすると自分のアイディアを細分化して考えられるようになり、例えば、「プレイヤーをマウスで操作する」「敵キャラが追いかけてくる」などの単体の機能は、すぐにプログラミングできるようになる。
しかし、細分化された機能を統合してゲームとして成立させるプログラミングは少しハードルが高くなる。論理的で正しいシーケンスが必要となるからだ。例えば、敵キャラにぶつかるとプレイヤーのライフが1だけ減るようにしたいとき、ぶつかったときのプレイヤーや敵キャラのプログラムのシーケンス(処理順序)が間違っていると、ライフが減り続けたり、ライフが減らないなどのバグが発生してしまう。
このようなバグをなくそうと試行錯誤を繰り返し、思い通りのゲームを完成させようとする過程で「問題解決力」や「論理的思考力」が身につくのだ。
ただ、プログラミングにより培った「論理的思考力」を、社会生活でも活用するようになるのだろうか。私自身を振り返ってみると、もちろんデジタルコンテンツを作るときには役立っているが、残念ながら物事を論理的に考えるようになったとは断言できない。
私は「論理的思考力」以外にも、プログラミング教育により得られる効果はあると考えている。それは、ゲームなどのソフトウェア(無形物)を作ったという経験だ。もしも将来、デジタル系のコンテンツやソフトウェアなどのアイディアが生まれたとき、ソフトウェアを作った経験がなければ、そのアイディアを形にしようとする人は稀だろう。例えは大きくなるが、Google、Amazon、Facebookなどの新しいデジタルコンテンツを生み出した会社の創設者は、幼少期からプログラミングに熱中している。自分の考えたゲームなどをプログラミングで形にしたという経験や自信は、将来、デジタル系のコンテンツやシステムなどを開発しようしたとき、背中を押してくれるだろう。ソフトウェアを使いこなすのは当たり前で、創る力が必要とされる時代が来ている。
しかし、私はプログラミング教育による効果を過度に期待しているわけではない。ゲームやアニメーションなどを作りたいという子供たちに、それを作るための知識や技術を与えることに注力しているだけだ。子供たちの探究心を満たすことが重要だと思っている。