きしだのはてな このページをアンテナに追加 RSSフィード

2016-01-06(水) 小学低学年へのプログラミング教育には効果がないと考えたほうがいい

小学校低学年へのプログラミング教育には効果がないと考えたほうがいい 04:51 小学校低学年へのプログラミング教育には効果がないと考えたほうがいいを含むブックマーク

子どもへのプログラミング教育は早ければ早いほどいいというものではない。

最近子どもへのプログラミング教育が話題になることが多いけど、恐らく小学3年生までの子どもへの効果はほとんどなく、小学4年生でもほとんどの子どもには難しいと思う。

人間の知能の発達には段階があって、必要な段階に達していないうちにそれが必要な教育を行っても効果は望めない。


まず、なんでこのエントリを書いたかというと、プログラミングには適した発達段階があるということを知らないと、その発達段階に達する前にプログラミング教育を行って、もちろんプログラミングは出来なくて、その子には適性がないという判断をしてしまうとうことが起きてしまうんじゃないかと思ったからだ。

まだ適した段階まで来てないだけなのにプログラミング教育をして失敗して「この子にはプログラミングができなかった/興味をもたなかった」という実績を作ってしまうことによって、将来の可能性をつぶしてしまう、もしくはそれがなかったときよりも遅れてしまうということが起きてしまうんじゃないかと。

小学校3年生や4年生にプログラミング教育をやって、あまり興味を持たなかったりうまくできなかったときは「まだプログラミングには早かった」と考えることが当たり前になったほうがいいと思う。


実際、ぼくは小学4年から5年にあがる春休みにパソコンがうちに来たのだけど、最初のうちは雑誌に載ってるゲームのソースリストをそのまま打ち込むだけで、条件分岐やループのあるプログラムを理解できるようになったのは5年生の秋くらいだったと思う。

いろいろな人の話を見聞きしても、小学生のときにプログラムを書いたというのは早くて9歳、だいたい10歳くらいなので、そんなものなんだろう。


そもそも小学生からプログラミングの勉強をする必要があるのかという話はあるけど、プログラマにならないにしても、ループを伴う論理構造の思考力を鍛える機会というのはプログラミング以外になかなかなくて、プログラミングで論理的な思考力を早くから鍛えておくと例えサッカー選手になるにしても有利だと思う。


ところで、こういった発達段階という話題が出るときには、ピアジェという人の説がだいたいベースになっている。ここの説明が簡潔で見やすい。

ピアジェの発達理論 | 保育士 独学で資格取得!

感覚運動期、前操作期、具体的操作期、形式的操作期という4つの段階がある中で、プログラミングができるようになるには、具体的操作期から形式的操作期に移行する必要があるようだ。形式的操作期になると抽象的な考え方ができるようになるという。この移行の時期が、書かれているところによって違うけど9歳から12歳くらい。

つまり、小学生の間はプログラムが組めなくてもまあ仕方ない、中学生になったらだいたいできるだろうという感じなのだと思う。

(ただし、すべての子どもがピアジェのいう通りの発達段階をたどるわけではない、ということは留意しておく必要がありそうです 追記:1/7 15:12)


こういった話は、総務省の「プログラミング人材育成の在り方に関する調査研究報告書」という去年の文書にまとめられている。

http://www.soumu.go.jp/main_content/000361430.pdf


41ページに、次のような記述がある。

IF-THEN型の論理構成は9歳10歳まで理解できない。また、論理的思考は、11歳以降でなければ理解するのは難しい。

フローチャートの学習は小学校5年生以上になってからでないと難しい。よほど優秀な場合は小学校4年生でもできる場合もあるが、小学校3年生以下にはまず不可能である。


もちろん、小学校低学年にプログラミングを教えてはいけないということではなくて、機会があればやってみていいと思う。そのときもし出来なかったとしても、それは向いてないとか素質がないとかいう固定の性質ではなくて、まだ準備が整っていないという経過的な性質なのだと考えたほうがいいということ。

で、実はこれは、大人にプログラミングを教えるときでもそうで、未経験の人がプログラミングを勉強するとき、こういった発達段階を短期間に上っていくような理解のしかたをしているように見える。つまり、最初は操作になれつつプログラムと動作が対応づいていることを知ることが大事で、そのあとで条件分岐やループといった論理構成がわかり、プログラムの設計のような抽象的な構造がわかってくる、という感じ。

要するに、年齢関係なく、なにかを教えるときは教えられる人がどういう段階にあるのか把握して、その段階に応じたことを教えつつ上の段階に移行させていくというのが大事だと思う。


もし小学校低学年にプログラミングを教えるという場合は、何かを2回書いたら何かが2つ動くとか2回動くとか書いたものと動きが直接対応しているものから始めて、条件分岐やループのないものにしたほうがよさそう。

そうやって、コンピュータの操作自体に慣れるとか、書いたものと動きが対応していることを知るとか、プログラミング教育の準備という段階にしておいたほうが低学年のうちはよさげ。

あとは5年生くらいになったら、様子をみながら条件分岐とかループとかのあるものをやっていくのがいいと思う。

そうやって、ひとりでも多くの子どもたちを、プログラミングの道に引き込みましょう。


追記(2016/1/7 13:29)

子どもへの教育にはコンピュータ使わないのがいいのでは、みたいな話があったので、こういう本もありますよ、と紹介。

日本語サイトもありました。書籍に載ってるものだけでなく新しい章も載ってます。(追記2016/1/8 10:33)

コンピュータサイエンスアンプラグド


ピアジェに学ぶ認知発達の科学

ピアジェに学ぶ認知発達の科学

えぇ…えぇ… 2016/01/07 11:08 才能がないと決めつけるのを避けるのと
低学年でのプログラミング教育を単一的に避けるのを推奨してしまうのは別の話だと思います。
私は8歳からBASICで遊んでいましたがIF 〜 THEN 〜 は理解してましたし
SELECT CASEも使ってました。(今は専らC++ですが)
本人が望むならさせるべきで、単にやらせることを強制するのも、やらせない、教えてあげないのを強制するのも親の傲慢だというだけでは(プログラミングに限らず)。

NAPORINNAPORIN 2016/01/07 12:50 http://q.hatena.ne.jp/1451643427 で同意見だったので投稿しておきます。もちろんやりたい子までを止める話はしていないとおもいますよ。

nowokaynowokay 2016/01/07 13:16 「えぇ」さん、
「もちろん、小学校低学年にプログラミングを教えてはいけないということではなくて、機会があればやってみていいと思う。そのときもし出来なかったとしても、それは向いてないとか素質がないとかいう固定の性質ではなくて、まだ準備が整っていないという経過的な性質なのだと考えたほうがいいということ。」という一文では答えになってなかったでしょうか?

xxxxxx 2016/01/07 15:06 年齢別の認識力を考えるのはマクロ視点では重要ですが、こればっかりはホント個人差があるので。そして本稿にあるようなお話しは理解できるのですが、これを「やらないことへの言い訳」に使う人がどうしても出てきてしまうのがちょっとイヤなんです。

nowokaynowokay 2016/01/07 15:17 なるほど。

yukobayukoba 2016/01/07 15:48 僕は小学3年生の夏にプログラミングを始めた人ですが、
小学生も母国語において文法を学習しなくても文法的に正しい文章をしゃべるように、
論理的思考が成熟しないとプログラミングができないかどうかは僕は少々疑問です。

中学生になって、全くそれはできなくなってしまったのですが、
僕は小学3年生では「理解できなくても丸々飲み込む」ができて、
中学生以上が使うような抽象的思考力がなくても、学習できるような気がします。
ただし小学5年生の段階でC言語の「ポインタのポインタ」が理解できませんでした。
(ポインタは大人でも理解できなくて専門の本が何冊も出ていますが)

ただし、僕は僕のケースしか知らなく、特に1〜2歳の差は個人差が激しいと思うので、
一般論としては良く分からないです。ごめんなさい。

nowokaynowokay 2016/01/07 17:31 適正→適性

marumaru 2016/01/07 21:20 IF THENのプログラム分はかなり早い段階で理解できていても、blogの文章は読み取りきれないというのはなかなかおもしろいサンプル。

乳牛乳牛 2016/01/08 09:37 >要するに、年齢関係なく、なにかを教えるときは教えられる人がどういう段階にあるのか把握して、その段階に応じたことを教えつつ上の段階に移行させていくというのが大事だと思う。

ここですね。
いきなりモナド教え込もうとして、できなくて「ああー、うちの子才能ないー」みたいな早合点をせずに、順を追って暖かく見守りましょう。

脱線しますが子供にものを教えるときに短期成果ばかり期待する必要はなくて、何年か後にいろんな知識が化学反応を起こして化けるための種まきだと思ったほうがいいです。

mteramtera 2016/01/08 14:58 プログラミング教育そのものを否定するタイトルなので、そこで引っかかる人がいそうです。
やり方を間違わなければ効果はあるということをきちんと記述されてるので、ちょっともったいなく感じました。
ただ、本来は家庭内でやるべきことですが、それができていない現状として「経験をして興味を持つかどうかの検証」をする場として提供されるのであれば、たとえ無意味となる人が多いとしても実は良いことではないかとは思ったりします。
それを、教える側が理解していれば良いのでしょうね。

ceintureceinture 2016/01/08 21:23 僕は幼稚園児だった83年にBASICを始めましたが、偶然ただの漫画と思って、すがやみつる氏著「こんにちはマイコン」を買っ(てもらっ)たのがきっかけでした。IF THENはもとよりGOSUBなどの構造化も詳しく教えられており、幼稚園から小学校低学年にかけても非常にわかりやすくバイブルのような存在でした。ちなみに約10年前に復刊されて現在でも入手可能です。

nowokaynowokay 2016/01/08 23:57 タイトルは、「効果が出ないと」に変えたほうがいいかなと思いましたけど、もう広まってたし、おおむね「タイトルは誤解を生むけど内容はよい」みたいに理解してもらえてるようなので、このままにしています。
あと、「理解できなくても興味を持てれば」のような話があるのですけど、現象としては「なんか興味がないようだった」という風にあらわれます。そこで「この子は興味をもたなかった」ということになるのも残念です。実際にはもうすこし適した年齢になると興味を持ち出すかもしれないので。

tokitoki 2016/01/09 19:01 上で書かれている方は要するにタイトル詐欺だと言いたいのでしょう。
私もそう思いました。
そのせいでせっかく書かれている内容も要点がぼけてしまっているように感じます。
小学校低学年にプログラムの授業を入れるのはやめた方がいい、という話ならば分かるかもしれません。

ちなみに論理的思考力が(あまり?)無くてもプログラミングはできます。
小さい頃はMMLで音楽鳴らしたりCIRCLE文やLINE文でお絵かきして遊びました。
コンピュータで何か作って遊ぶところから始めると良いかも?

kabakaba 2016/01/10 09:07 コンピュータのいいなりになるのではなく、自分でコンピュータにしたいことを指示して新しいことを作りだせるというコンセプトがなんとなくわかれば、小学校低学年ではいいかなと思います。ゲームも自分で考えて作れるんだよみたいな。

トラックバック - http://d.hatena.ne.jp/nowokay/20160106