子供に本格的なプログラミングを学ばせたい。
情報収集をはじめてみたもののプログラミング言語の種類や意味がまったくわからずどう判断したらよいかわからない。
こんなお悩みをお抱えではないでしょうか。
自らが学んだこともないプログラミング言語について、情報を調べて内容を理解するのは難しいです。
そこで今回は、「小・中学生が学ぶ」という前提に基づいて、いくつかの代表的なプログラミング言語について解説してみたいと思います。
Scratch
小・中学生のプログラミング学習といえばScratch、といわれるぐらい有名なプログラミング言語です。
子ども向けのプログラミング学習ソフトと認識されている場合が多いのですが、実はれっきとした「プログラミング言語」としてWikiにも記載されています。
Scratch (スクラッチ) は、MITメディアラボが開発したプログラミング言語学習環境である。
Scratch (プログラミング言語) – Wikipedia
Scratchは、キャッチーなイラストやブロックを用いてプログラミングをする「ビジュアルプログラミング言語」とよばれるプログラミング言語です。
プログラミングというと多くの方は、黒い画面に白字でコードを書いていくイメージを想像されると思いますが、Scratchはマウス操作だけでプログラミングができるのが特徴です。
小・中学生向けのプログラミング学習にScratchが採用されることが多いのは、タイピングが不自由な子どもでもマウス操作で直感的にプログラムを組むことができるからです。
ただ、Scratchはプログラミング学習段階においては素晴らしいのですが、Scratchで作成した成果物を具体的に生活に役立てることが難しいのです。
Scratchで作成したものは、Scratch上でしか使えません。
そのため、実用に耐える成果物を作れるように、と思った場合は、本格的なコーディングを要するプログラミング言語を学習する必要があります。
HTML + CSS
HTML + CSSは、端的にいえばホームページを作る技術のことです。
ホームページという「見た目」を作りながら学べるのが特徴です。
Scratchのようなビジュアルプログラミング言語に比べると、タイピングしてソースコードを書く必要があるのでレベルはかなり上がります。
しかし記述ミスなどによるエラーに寛容で、ミスの多い子どものプログラミング学習とは相性が良い言語です。
HTML + CSSの問題点は、厳密には「プログラミング言語」ではないことです。
広義の意味ではプログラミング言語に分類されることが多いのですが、正確には「マークアップ言語」というものです。
前述のエラーに寛容な特性は、HTML + CSSがプログラミング言語でないことに起因します。
プログラミング言語ではないために、プログラミング学習のメリットとしてあげられる「論理的思考力」や「課題解決力」といった能力開発的な効果は、他言語に劣ってしまう側面があります。
プログラミング言語ではないものの、情報技術としてのHTML + CSSのニーズはたくさんあります。
最近ではホームページやWebサイトの他に、アプリ内でも使われることが多い言語です。
HTML + CSSは、以降に出てくる「JavaScript」、「Python、PHP、Ruby」などのプログラミング言語でも必要となる基礎的な技術です。
身に付けておいて損はない技術といえるのではないでしょうか。
JavaScript
JavaScriptは、HTML + CSSで作られた画面に「動き」などを付けていくためのプログラミング言語です。ホームページやWebシステム・Webサービスの作成でよく使われています。
みなさんもお使いの「Google」の便利なサービスのほぼすべてにJavaScriptが使われているなど、今日の私たちの生活に一番身近なプログラミング言語といって過言でないかもしれません。
JavaScriptは、あなたが今このページをご覧の「Webブラウザ」上で実行するプログラミング言語で、開発もテキストエディタだけで行えるという手軽さから、プログラミング学習でも人気の言語です。
前提としてHTML + CSSの習得が必要になりますが、他のプログラミング言語と比べると開発と実行が容易であり、「見た目の操作」というわかりやすさもあって子ども向けのプログラミング学習で採用されることもあります。
Python、PHP、Ruby
Python、PHP、Rubyは、「サーバー」とよばれるコンピュータ上で実行されるプログラミング言語です。主にWebサービスの開発で使われています。
これら3つの言語はほぼ同じことができますので、3つすべてではなくどれかひとつの言語ができれば他2つの言語を代用することができます。
小・中学生のプログラミング学習用として採用されることはあまりありません。
これらの言語は、言語単体で使うのではなく、データベースやHTML + CSSなどの他技術とセットで使われるものなので学習コストが高すぎるからです。
しかしあえてご紹介した理由は、前述した「Scratch」をPythonを使って動かすことができ、Scratchの「その先」の学習として採用されることがあるからです。
私たちが運営するプログラミング教室のカリキュラムでも採用しており、子ども達のプログラミング学習に一役買ってくれています。
Swift、Java
SwiftやJavaは最近身近になってきたスマホアプリを作るためのプログラミング言語です。
SwiftはiPhoneアプリを作るための言語で、JavaはAndroidアプリを作るための言語です。いずれの言語もスマホアプリ以外にも幅広く使えるプログラミング言語ですが、プログラミング学習として使われる場合はスマホアプリ作成として使われる場合が大半です。
SwiftやJavaは、言語単体で見た目から動作まで作れてしまうのがポイントです。
前述したWeb系の言語は、いくつかの言語を複合して使うことが前提となりますが、これらの言語は単体を学習すれば開発が行えます。
一見、学習しやすそうですが小・中学生向けのプログラミング学習でSwiftやJavaが本格的に使われることは珍しいです。
たまに小学生や中学生がスマホアプリを作ったと話題になることがありますが、実はスマホアプリはビジュアルを用いたソフトでマウス操作だけでもある程度作ることができます。
つまり、スマホアプリを作る=高度なプログラミングが必要、とは限りません。
しかしScratchほど簡単なものではありませんし、予め用意されたこと以外をやろうと思うとSwiftやJavaが必要になります。
SwiftやJava自体は小・中学生向けのプログラミング学習として積極的に採用される言語というわけではありませんが、スマホアプリ開発を学ぶ延長線上にある言語、という位置づけです。
まとめ
C言語やBasicなど、他にもプログラミング言語はたくさんありますが、今回は小・中学生向けの学習として採用される可能性のありそうなものだけをピックアップしてみました。
今回ご紹介したプログラミング言語は、Scratchを除いて「プログラミング学習をしつつ手に職をつけられる言語」です。
つまりプログラミング教室などでは、学習用としてだけではなく実用も視野に入れた言語で教えることが多いといえます。
どの言語を学ぶのか選ぶのは簡単ではありませんが、この記事が多少でも参考になりましたら幸いです。