研究員の為田です。教育ICTが普及したこと、スマホなどの普及でアプリが身近になったこともあり、「プログラミング教育」にも非常に興味があります。今回は、そのプログラミングについてのレポートです。
「プログラミングを5歳から教えるイギリスの公教育」
イギリスの公教育で、5歳からプログラミングを教えるように、カリキュラム(national curriculum)が改訂されるそうです。ニュースソースはこちら。
http://wirelesswire.jp/london_wave/201409020227.html
そもそもイギリスの公立学校におけるコンピューターの授業というのはかつてはICTと呼ばれており、その多くは、ワードやエクセルの使い方を教えたり、ウェブサイトをいじったり、データベースをいじるという、「コンピューターの使い方を教える内容」が中心でした。しかし生徒からも産業界からも苦情が相次いでいたため改革することになったわけです。
今や生徒は家で学校で習う以上のことができるため、大学でコンピューターサイエンスを専攻する様な学生には物足りません。産業界からの苦情はかなり深刻です。サッチャー改革で非効率な鉄鋼や造船などの産業や製造業を徹底的に破壊し、金融やクリエイティブ産業(ゲームやデザイン)などの知識産業が中心の経済となりましたが、知識産業の血肉であるIT関連人材が不足しており、海外からやってくるエンジニアに頼って何とかやっているというのが実態です。
日本でも状況はイギリスと似たようなものな気がします。だとすると、明確に「プログラミングを初等教育から教えていく!」という方向に舵を切る、っていうのはそれはそれでありかな、と思います*1。
日本では最近、キッズ向けのプログラミングスクールやワークショップなどが、たくさん出てきています。とてもいいことだと思います。自分で企画して、作ってみて、そのフィードバックをもらって、もしかしたら世界中の人に認めてもらえるかもしれない。そんな経験が今まではできなかったわけで、大きな学びの機会になると思うからです。
プログラミングを教えられる先生はどれくらいいる?
では、学校教育の中にプログラミングを入れられるか。学校に入れるとなると、そう話は簡単ではないかな、と思います。
「プログラミングを教える」というのを、何を目標にするのかを具体的に見ていくと、どうやって教えるのか、を考えるきっかけになるかと思います。
最初のニュースでの、イギリスの場合は、national curriculumを見ると、Key Stage 1(5歳~7歳)のコンテンツは以下の通り。アルゴリズムって何?から始まり、デバッグしたり、学校外でのテクノロジーの利用とか、個人情報についてのこととか、たしかに大事!と思うことが多い。
- understand what algorithms are, how they are implemented as programs on digital devices, and that programs execute by following precise and unambiguous instructions
- create and debug simple programs
- use logical reasoning to predict the behaviour of simple programs
- use technology purposefully to create, organise, store, manipulate and retrieve digital content
- recognise common uses of information technology beyond school
- use technology safely and respectfully, keeping personal information private; identify where to go for help and support when they have concerns about content or contact on the internet or other online technologies
でも、これをどの学校でも、どの先生でも教えられるかというと大変だと思います。
そして、どちらかというと、プログラミングの教え方がわからない先生ほど、「お手本を見て、このとおりに書いてみましょう」みたいな授業をしてしまうんじゃないかな、と思います。そうすると、子どもたちはきっと、「わけがわからないまま」に、ただ写してしまうのではないかと思います。
ただ写すのがトレーニングになるかもしれない、という可能性もありますが、本来与えたかった学習目標はそうしたことなのか、というのが考えるポイントだと思います。
伝えたい学習目標と、伝えるための方法は、切り分ける
イギリスのnational curriculumに書かれている、「create and debug simple programs」というコンテンツ(=学習目標)は、コードを「ただ写す」ことではないでしょう。そうではなく、「何かを試してみて、できなかったらおかしなところがないかを探して、直して、チェックする」というデバッグ作業みたいなことをできるようにする、というのが学習目標であるはずです。
だとするならば、コードをただ写すようになってしまったら、誤字を探すというデバッグにしかならないので、おそらくこの学習目標は達成されないだろうと思います。
学習目標がはっきり先生方に認識されていれば、ここでコンピュータを使わない、という選択肢もありえると思います。例えば、クラスをグループに分けて、みんなで「アルゴリズム体操」をやってみる、というスタートも十分可能だと思います。
アルゴリズム体操 楽天ver - YouTube
ここまでできると、先生方はアクティビティを工夫していくと思うのです。
例えば、最初は実際に自分たちでやってみて、その後、自分たちでオリジナルの動きを考えてみて、パターンAとBの2パターンから、もう1パターンを加えてみて、3パターンに増やして、リズムに合わせて何度も試してみる、というふうに、先生がいろいろ工夫をしていくと思うんです。
こうしたアクティビティを始めた先生がいらっしゃったとして、これを「プログラミング教育」と呼べるかどうかは、学習目標が何なのかをしっかり明確になっていなくてはなりません。だから、先生方に、そのうえで、「どのような学習活動を行うのか=どう教えるのか」を考える必要があるのだと思います。
先生方が「工夫して、教えてみたい!」と思えるか
プログラミングだけでないですが、新しいことを導入するのであれば、教える先生方が、「これ、教えてみたいな!」「こうやって教えたらもっとわかりやすいかな?」と工夫をしたくなるようでないと、広がらないと思います。5校とか10校とかのレベルでなく、国のレベルでプログラミングを導入するなら、先生方に火をつけることが絶対に必要です。
どうやったら子どもたちの心に火をつける教え方のノウハウをお持ちの先生は多いわけで、先生方のノウハウを加えて、どんどん広げていく、という形になればいいな、と思います。
*1:海外での取り組みの参考はこちら。 海外のプログラミング・IT教育の取り組みまとめ | TechAcademyマガジン