小学生のプログラミング学習におけるコーディングの必要性

  • 2018.06.27

小学生がCやJavaのような本格的なプログラミング言語を学ぶ必要性はあるのか。
プログラミング教育に携わられている方にとって大きな関心事だと思います。

結論からいってしまうと、個人的には小学生のプログラミング学習においてコーディング(プログラミング言語を用いてプログラムを書くこと)は必要ない、というのが3年半におよぶプログラミング教室運営と教材開発の結論です。

今日は、この結論に至った理由について書いてみたいと思います。

コーディングしないとプログラミングじゃない!

私たちはプログラミング教室を運営するだけではなく、小・中学生向けのプログラミング学習教材の開発もしています。
今ごらんになっているホームページこそ、そのプログラミング学習教材のホームページです。

私たちが小・中学生向けのプログラミング学習教材の開発を初めたのが今から5,6年前。
まだ小学校のプログラミング教育必修化も決まっていない頃です。

当時、私は「コーディングしないとプログラミングじゃない!」と考えていました。
私自身、開発の第一線で働くプログラマーでもあったことからコーディングの必要性を訴えるのは必然だったと思います。

マウスしか使わないプログラミング?それは本当にプログラミングといえるの?
そんな思いを当時は抱いていました。

コーディングには他の素養が必要

まず私たちはたくさんの教材プロトタイプを作りました。
子どもがコーディングを学んで、本格的なプログラミングをしてもらうことを前提にした教材です。

作った教材をソロバン教室や英会話教室で試させてもらったところ、結果は微妙でした。

小学生はパソコンに触れることが好きなので、教材に興味は示してくれます。
しかし、子供にとってタイピングを前提とした教材というのはあまりに難易度が高すぎました。
コーディングがどんなものかを知る前に飽きてしまうのです。

おそらくこの記事をお読みになっているあなたは、タイピングに不自由されていない方ですよね。
でも思い出してください。あなたが初めてパソコンを買ったときのことを。まだ一本指でキーを打ち、記号の変換がわからずアタフタしていたあの頃のことを。
その頃のあなたに対して私が笑顔でこういうのです、

「さぁ、プログラミングをはじめましょう!」。

・・・狂気の沙汰以外のナニモノでもありませんよね。

プログラミングにおけるコーディングをするためには、プログラミングをするための「素養」が必要なのです。
それはタイピングだけではありません。アルファベットやローマ字もそうですし、文脈を理解する力なども必要です。

今となっては当然のことと思いますが、当時の私には小学生というものがまるでわかっていませんでした。

コーディングで教室をやめた子

コーディングについてはこんなエピソードもあります。

小学生にコーディングをさせることを諦めた私たちは、Scratchを使うための動画教材を作成しました。
この動画教材を使った教室運営はとてもうまくいきました。余談ですが、この動画教材こそ当ホームページ「Progra!」のことです。

子ども達はScratchを使ったゲームやアニメーション作りに没頭し、楽しみながらプログラミングを学んでいきました。

Scratchを使ったプログラミング教室は多いと思います。
違いは、小・中学生のプログラミング学習にはScratchで十分としてScratchで完結するか、あくまでScratchはプログラミングの入り口にすぎず、その先に本格的なプログラミング言語でのコーディングを見据えるか。
私たちの教室は後者でした(現在でもそうです)。

私たちの教室では、Scratchでのカリキュラムを終えた子は、「Python」というプログラミング言語を使ってScratchを動かすカリキュラムへ移行します。
これまでのScratchの経験や馴染んだキャラクターなどを用いつつ、本格的なプログラミング言語を使ってコーディングを学ぶことができるのです。

しかし一見スムーズにみえるこのステップアップでも、教室をやめてしまう子はいました。
理由は「せっかく楽しかったのに、Pyhtonになったら面白くない」とのこと。

ようやく私は気がつきました。

楽しいからプログラミングを学ぶ

私たち大人にとって「学習」や「教育」であるプログラミングは、子どもにとっては作る楽しさを爆発させた「遊び」なのです。
そしてまた「遊び」でなければならない、とも思えました。

結局のところコーディングであろうがマウス操作で完結しようが、そんなことは子どもにとってはどちらでも良いのです。
自分の発想力を活かした作品作りが「今」やりやすければそれでいいのです。
マウスだけで操作して作品作りができるScratchを、わざわざ不自由になるPythonでのコーディングに移行する理由が子どもにはありません。

大人がコーディングができるようになるのは、自分が作りたいモノのためにコーディングが必要だったからです。今日、子どもが作りたいものを作るためにはコーディングは必須条件ではないのです。
逆にいえば、自分が作りたいものに必須であれば、子どもはコーディングも難なくやってのけることでしょう。

私たちは大人の理屈で未来に役立つからと、今ある常識を子どもに押し付けてしまっていないでしょうか。
プログラミングとはコーディングするもの。確かにそれは間違いではありません。
しかし、現役のプログラマーだった方に「なぜプログラミングができるようになったのですか?」と尋ねれば、大半は「楽しかったから」という答えが返ってくるはずです。
義務でもなんでもない時代に自主的にプログラミングを学び続けることができた人間のモチベーションは、必ず楽しさにあったはずなのです。

ところが「学習」「教育」となると、私たちはなぜか自分が感じていたはずのプログラミングの「楽しさ」を子どもに教えようとはしません。むしろ我慢を強いてでも「未来に役立つこと」を教えようとするのです。
子どもは正直です。楽しくなければ学習は続きません。続かなければ未来もないのです。

義務感や使命感を原動力として動ける大人と違って、子どもの原動力は「楽しさ」です。
子どもの楽しさを阻害してしまう可能性のあるコーディングを、うまく教材や教室運営に取り入れることは至難の業です。

最後に

子どもにプログラミングを学んで欲しいと思うからこそ、私は小学生のプログラミング学習ではコーディングは不要だと考えます。
小学生のうちは小学生だからこその純粋な想像力や発想力を活かした作品作りをたくさんして欲しいと思います。

一番大事なのは、子どもの中に「プログラミングでモノ作りをしたい!」という衝動を生む動機を育むこと。

自分が楽しみながら作った作品が、他の誰かを楽しませる。それを見て嬉しくなってまた楽しみながら作品を作る。
この楽しさの好循環を体験し続ける先に、必然的にコーディングを行うステップがやってくるのではないでしょうか。私はそう考えています。

さぁ、プログラミング学習 を はじめましょう!※ ご質問・ご相談はお問い合わせフォームよりお気軽にご連絡ください。

お申し込み