小学校でプログラミングを教えることが必修になります。
今までプログラムしたことがない小学校の先生がプログラムを教えるのは相当難しいでしょう。そこで
小学校ではコーディングは教えなくて良い
となっているようです。つまり、BASICやJavascriptなどのプログラム言語を教える必要はなく、考え方を教えるのが目的で、それなら、小学校の先生でも教えられるとしています。例えば料理の手順もプログラミングです。これなら教えられるでしょう、というわけです。
コンピュータを使わずにプログラミングを教える方法
これを「アンプラグド」と呼んでいます。例えば誰かがコンピュータの役割をします。人間の言葉で手順を伝え、コンピュータ役の人間が言葉を聞いてその通りに動作すると、コンピュータがなくてもプログラミングの考え方が教えられるわけです。
人間の言葉を使うので、プログラム言語を覚える必要がなく、実施は簡単です。
この理屈は一理ありますが、どうもしっくりきません。
右向け右、半歩前に進め、といってその通りに動く、というのは、昔からやっており、何も新しくないからです。
プログラミングのすごさとは何か
私はマイコンができた頃からプログラムを始め、今もプログラムを作っていますが、子供たちに何を伝えてほしいかというと、
- プログラミングは、複製と修正が簡単で、それを繰り返せば、すごいことができる
ではないかと思っています。これをなぜ第一にあげるかというと、
- 生物は身体を複製するために遺伝子を持っている。その修正を繰り返し、環境に適応する個体を生み出してきた。
- 複製と修正は実は難しい。これが簡単にできるものは、プログラミング(ソフトウェア)しかない。
複製と修正が簡単という特長によって、世の中が大きく変化しました。
ソフトウェアの進歩のスピードが人間の想像を超えるのは、複製のコストゼロ、修正が簡単という特長があるためです。
複製と修正が簡単で、それを繰り返せば、すごいことができる
こういう魔法のようなものが世の中に存在し、社会を変えていくのだ、ということを小学生に上手に伝えるのが、小学校のプログラミング学習の目的ではないでしょうか。
アンプラグドでプログラミングを教えると、これが全く伝わりません。どうなるかというと、
コンピュータ役の子供に手順を正確に伝えるのは大変な手間です。なかなか上手に伝わらず、思った結果が得られません。その作業を行うのに大変な時間がかかります。人間がやれば簡単にできることが、コンピュータでやると全然できない。コンピュータはなんてバカなんだ。という経験が残るでしょう。
「コンピュータはあなたたちの想像しているより相当ばかなのです」まあその通りなのですが、そんなことを伝えるために、プログラミング教育をやるは、それこそ馬鹿なのではと思ってしまいます。
なぜ、こうなるかというと、アンプラグドでやるからです。複製(同じことを繰り返す)が瞬時にできるのはコンピュータしかありません。それを人間がやるから手間がかかるので、全くすごさが感じられないのです。
私が言いたいのは、
コンピュータでやらないとプログラミングのすごさは伝わらない
ということです。
- コンピュータで何かを入力する
- 修正する
- これを繰り返すと、最初はできそうになかったものができる
という体験が重要と思います。修正の繰り返しがプログラミング作業です。これは小さな修正の繰り返しなので、実はそう難しいことではない。これを積み重ねていくことで、大きな目標に到達する。これを体験させることが重要と思います。
その方法として、Scratchやビスケットや、IchigoJam がありますが、それ以外にもたくさんあるでしょう。もし、コーディングが難しければ、コーディングをしなくても同じ体験ができるアプリを探す、もしくは、作るべきではないでしょうか。
9VAeきゅうべえは、その目的で使えるように開発しています。
コーディングを教えるのが目的でなくて良いが、コンピュータでやるべきだ
と思います。