最近小学生のプログラミング学習について、いろんな方が投稿されているので、現時点での私の考えを書いておきます。ひょっとしたら今後考えが変わるかもしれませんが、備忘録の意味も込めて書きます。
年齢と学習する言語
低学年 → ブロック型(スクラッチ)
高学年(一般の子) → ブロック型(スクラッチ)
高学年(適性あり) → 言語型(C系, php, javascript等)
~~~
天 才 → ?
小学校からプログラミングをしていた私
私は小学校の6年生の時にMSXというPCを買ってもらい、プログラミングをやっていました。そこから高校卒業まで約6年かぐらいプログラミングにハマっていました。言語は、BASIC+少しだけアセンブリ言語(マシン語)を使って、簡単なゲームを作っていました。
当時は、インターネットが無かったので、私のようなプログラミングにハマった子供はPC雑誌を通して情報を得ていました。当時のPC雑誌には、子供~大人が作ったプログラムが掲載されており、自作のプログラムが採用されるのは一種のステータスでした。
私も何度か投稿しましたが、一度も採用されませんでした。その雑誌で常連になっている人たちは、小学校6年生~高校生がメインでした。彼らは国際数学オリンピックで日本代表に選ばれているような優秀な子供たちでした。
ちなみに、私の周りでは、小学校、中学校、高校いずれも同じ学年にプログラミングをしている友達は一人もいませんでした。私は天才レベルではないですが、プログラミングの適性はある方だと思います。
言語型プログラミングは数学の証明問題に似ている
私は、よほど適性がある子(国際オリンピック出場レベル)でもない限り、低学年から一般的なプログラミング言語は学習するのは難しすぎると感じています。
変数や関数、文法や手続き規則など抽象的な概念は、数学で言う証明問題に似ていて、低学年からやるにはあまりにも高度です。
数学で証明問題が出てくるのは、中学校2年生ぐらいだったと思います。一般的な子供がプログラミングの概念を理解できるのはちょうどそのくらいだと思います。
ブロック型プログラミングは、レゴに似ている
ただ、MITが開発したブロック型のscratchは、プログラムの難しい部分を無くして、低学年からでも学習可能だと思います。
レゴのように、とりあえず組み合わせることで、「何か」できます。それがうまくいかなければ、簡単に取り外して、別の部品を取り付けることができます。エラーが起こることもありません。
直感的に部品を組み合わせることができ、そこから少しずつプログラミングのルールを学んでいけると思います。低学年であれば、ブロック型でプログラミングの世界に慣れしたしんでいくのが良いと思います。
Comments are closed.