小学校でプログラミング必須化の動きが文部科学省でありました。2020年に実施する予定としています。必須化の背景には、IT技術者が年々不足の一途をたどってゆくという調査結果により、将来の技術者不足を危惧しているからです。中学校や高校ではすでに導入している学校もあるようですが、今回は小学生という早期から、プログラミングを学ばせることが、今までとは違っています。
プログラミングといっても、週に1回か、2週に1回なのか、定かではありませんが、授業時間は限られていて、プログラミング言語を1から学ばせるには、時間的に不可能なので、子供用に作られたScratchなどのプログラミングソフトを使ったり、モータやセンサーを制御するプログラミングが向いているように感じます。プログラミングを実体験して、プログラミングの世界を知ってもらうのですが、自分でプログラミングして作った成果物が、何の変哲もなく、面白みも感じられないものではなく、作って良かった、楽しかったといった味わいがあるものがよさそうです。
パソコン、ゲーム機、スマホに、小学生でも慣れ親しんでいる時代。ゲームを作りたい、スマホアプリを作りたいホームページを作りたいなど、小学生から、さまざまな要求がある思う。今流行りの、ドローンやVRグラスを使いたいという人もいるでしょう。これらはすべて、プログラミングを学ぶことによって、実現することができます。ただ、いきなりできるかというと、そうではなく、出来るようになるまで繰り返し学び、実現可能なレベルまで、相当な時間が必要になるのです。
以下の表にあるのは、技術者が使っている言語ですが、小学生の中で「もっと学びたい」と思う人は、実用的な、以下の言語を、どんどん学ばせてあげたいものです。
作りたいもの | 言語 |
---|---|
Windowsアプリを作るには? | C# |
アンドロイドアプリを作るには? | Java |
ホームページを作るには? | HTML, CSS, JavaScript, PHP |
ロボット(ハード)などを動かしたい | Python, C, C++ (ラズベリーパイ,Arduino) |
iPhoneアプリを作るには? | Swift |
プログラミングを学んでよいことはなんでしょうか。はっきりいうと、小学校の授業だけで、コンピュータの実用的なアプリを作れるようになるには、あまりにも無理があります。小学生を対象にした、プログラミングスクールでは、子供用プログラミングソフトを使い、簡単なプログラミングで動き、音、映像を操作するものを使って、プログラミングを体験させています。これらの学び方で得られるものは、論理的な思考力を養ったり、プログラミングの基本や楽しさを、味わえることだと思います。
小学校の授業で学習してもらうプログラミングは、コンピュータはこうやって動いている、プログラミングは楽しいといった体験を通して、興味を持ってもらい、次のステップへの入口となるような段階だと考えています。 ただし、プログラミングは木工や、電子工作などと違って少し特殊で、プログラミングのさわりと言っても、論理的思考をすることになじめない人がいるのは、経験上当然なので、先生の対応の仕方しだいでは、大嫌いな教科になってしまうことも考えられます。(プログラミングは、独特な思考をしなければならず、大人でも嫌がる人は大勢いました)
スクラッチはマサチューセッツ工科大学のメディアラボが開発したソフトで、コードを書かなくてもプログラミング可能な、ビジュアルプログラミング環境です。 小学生でもとっつきやすいのが特徴なのと、教師側のメリットとしては、自分で用意しなくても、すぐれた教材を生徒に提供できることです。
ソフトウェア | 説明 |
---|---|
スクラッチ(Scratch) | MITが開発した、小学生用プログラミングソフト。ブラウザ上で操作して使う。人気のあるソフトです。 |
ビスケット(Viscuit) | 小学校低学年向けのソフト。絵に動きを付けてゆく。 |
これらのソフトは、ドラッグアンドドロップ操作などで、プログラミングをできるようにしたソフトです。プログラミングコードは覆い隠されて見えませんが、一般的には、プログラミングするとはコードを書くなのです。そのため、これらの子供用ソフトを使うのはよいのですが、このことを速いうちに教えてあげたいものです。
今から、20数年ぐらい前のことですが、当時はC言語という言語が全盛の時代で、コンピュータアプリケーションの多くは、C言語で書かれていました。いまこのC言語はどうなっているかというと、高速に動作が必要なゲームやハードウェア制御など一部にしか、利用されていません。なぜかというと、もっと使い易い言語が登場して、皆そちらのほうを使うようになったからです。
しかし、古い言語を捨てて、新しい言語を学ぶとき、昔の学習が無駄であったかというとそうではありません。プログラミングには、どの言語を使おうとも、根底には論理的な思考がベースになっていて、このプログラミング脳なる思考力が鍛えられていれば、新しい言語を学んでも役に立つのです。
子供のころに、自転車の乗り方を覚えたように、時間はかかっても一度覚えれば、忘れることはありません。時間をかけて学んでいけば、この多少理屈っぽい、論理的思考力を、誰でも身につけることが可能なのです。