【連載】プログラミング学習からつくる未来への教育 第3回 子供の思考が読み取れる

デジタルハリウッド大学 学長 杉山知之

プログラミング言語の面白いところは、ある問題を解決し、まったく同じ結果が得られていたとしても、その過程であるプログラムは、いかようにでも書けるというところだ。条件、繰り返し、ジャンプ、配列などなど、役割をさまざまに持つプログラムの要素を、どのような順番で組み合わせて問題解決に至るのかの過程こそが、プログラミングである。だが、そこに模範解答は無くてよいと、ぼくは思っている。

昔のコンピュータやパソコンを知っている人は、プログラムをいかに短く書くかに、多大な知力を使っていたのを思い出すかもしれない。同じ問題を解決するなら、美しい解法を見つけて、短い行数でプログラムを書ければ、計算時間が短くなるからだ。

ところが、現代のパソコンやスマートフォンに搭載されているコンピュータの計算能力は、恐ろしく高い。20年間で10万倍ぐらい性能が上がるのが、コンピュータの世界。今や我々は、スーパーコンピュータに囲まれて生きているといってもよい。この状況の中では、コードを極限まで論理的に煮詰め、短くすることには意味が無い。

算数や数学のテストで、答えだけでなく、計算過程を残しておくようにと指示する教師は多いはずだ。生徒がどのような方向で問題にアプローチして答えを導き出したかを、手に取るように理解できるし、当然ながら、どこで間違いが起きたかも理解できるからだ。

これとまったく同じことがプログラミングでもいえる。生徒のプログラミングを読み解くのは意外と大変だ。大人が普通では思いつかないようなアプローチで、プログラムしている場合がよくあるからだ。

プログラミングの授業に慣れ、教師が生徒のプログラムを読み解く能力が上がっていくと、生徒の頭の中を直接のぞいているような気になるはずだ。これは教師としては、ワクワクするような体験でもある。

しかし、さまざまなコードを書けてしまうプログラミングの成績評価では、どう評価すべきか、いろいろ悩みがでるだろう。

プログラムのコードには、その人の性格や人格まで現れてしまう。プログラムのコーディングを極めていくと、そこにはテクノロジーというより、アートだという世界まで現れてくる。

スーパープログラマーは、アーティストともいえるのだ。子供たちにも、プログラムがアートになるのを知ってもらいたい。