最終更新日:2023.03.09
公開日:2022.09.02
- プログラミング
プログラミングとは?何ができる?目的や仕組みをわかりやすく解説
2020年にプログラミング教育が必修化されたことで、「プログラミング」という言葉を聞く機会も増えたのではないでしょうか?
ただ、プログラミングという言葉はよく耳にしていても、「具体的に何ができるもの?」「なぜ大切なんだろう?」「子どもにも学べるのだろうか?」と疑問に持つ方も多いはず。
この記事では、プログラミングとはどういったもので、何ができるのか、子どもが学ぶ効果や、学ぶための方法などを紹介します。
プログラミングとは?
「プログラミング」という言葉自体は日常生活でもよく聞くのではないでしょうか?
しかし、具体的に説明しようとしてもなかなか難しいと思います。まずはプログラミングの目的や仕組みから順番に説明していきます。
プログラミングの目的
そもそもプログラミングとは「コンピュータを動かす為の指示を順番に書くこと」です。
そして、コンピュータを使って人間に役立つ製品やサービスなどを作ることが、プログラミングの目的といえるでしょう。
例えば、今見ているWebサイトや、スマホでいつも使っているアプリ、子どもが日頃遊んでいるゲームなどもプログラミングによって作られています。
また冷蔵庫などの身近な家電にも使われていて、「外の気温に合わせて冷蔵庫の温度を自動調節する」など私たちの生活を便利にしてくれています。
このように、プログラミングでコンピュータへ指示を与えることで、アプリやWebサイトなどの人間に役立つ製品やサービスの開発が可能になっています。
プログラミングの仕組み
アプリやWebサイトなどの製品やサービスを作れるプログラミングですが、どのような仕組みでコンピュータに指示を与えているのでしょうか。
まず、コンピュータに指示を与えるには、プログラミング言語を使用します。
というのも、コンピュータは人間の言葉を理解することができず、専用の言葉で指示する必要があるからです。
また、指示の与え方も人間に伝える時とは異なるルールがあります。
例えば走る、という動作をしてほしい場合は人間相手であれば「走って」と伝えれば済みます。しかしコンピューターに「走って」と伝えても、理解できません。
コンピューターに指示を実行してもらいたいときには、専用のプログラミング言語を使って走るという動作を一つずつ、順番に伝える必要があります。
具体的にいうと、「走って」を伝えるためには、「右足を前に出す」「右足が地面についたら左足を前に出す」「左足が地面についたら右足を前に出す」といった具合に、動作を一つずつ切り取って順番に指示していかなくてはいけません。
また、プログラミング言語は日本語ではなく、基本的に英数字と記号で書く必要があります。
このように、専用のプログラミング言語を使って、動作を順番に一つずつ指示していくという方法を組み合わせていくことで、複雑なアプリなどが作られています。
こう聞くとプログラミングは難しいと思うかもしれませんが、一つひとつは単純な指示なので、一度理解してしまえばプログラミングに取り組むこともできるようになるでしょう。
まずは仕組みを覚えることが大事です。
プログラミングにはどんなメリットがあるの?
ここではプログラミングをおこなうことで、どのようなメリットがあるのか紹介します。
プログラミングのメリットとして、大きなことは「人間にできないことができる」という点が挙げられます。
その中にも、
- 膨大な量のデータを処理できる
- 処理を自動化できる
というメリットがありますので、それぞれ見ていきましょう。
膨大な量のデータを処理できる
プログラミングによってコンピュータに計算の指示をすることで、膨大な量のデータを処理することができます。
例えばあるアンケートを取ったとして、10件や20件なら人間でも集計することができると思います。
しかし、それが1,000件や10,000と膨大な量になると、人間では集計するのが難しくなるでしょう。
しかし、プログラミングによって集計方法を指示しておけば、膨大な量のデータの集計をすることも可能です。
処理を自動化できる
コンピュータは一度プログラミングをすれば、そのあとは同じ作業をひたすら繰り返していくことが可能です。
人間だと疲れてしまうことや途中でミスが起きることがありますが、プログラミングによってコンピュータに指示しておけば、同じ作業を繰り返し間違いなく実行することができます。
例えばアンケートの集計も、一度プログラミングしておけば、後はその指示に従って自動的に進めていくことができます。
こういったように、プログラミングによって人間にはできないようなことも可能になります。
しかし、あくまでプログラミングによってコンピュータに指示を与えるのは人間です。仕組みを理解し、プログラミングを活用していくことが大事です。
プログラミングでできることは?
この章ではプログラミングでできるようになることや、それがなぜできるのかについて紹介していきます。
プログラミングでできることとして、代表的なものとして
- Webサイト制作
- スマホアプリ開発
- ゲーム開発
- AI開発
などが挙げられます。それぞれ見ていきましょう。
Webサイト制作
今見ているようなWebサイトもプログラミングによってつくられています。
Webサイト制作といっても、単にパソコンやスマートフォンの画面にWebサイトを表示させるだけでなく、
- アイコンをクリックしたら別のページに移動する
- 動画を再生する
- インターネットでさまざまなものを検索する
などのこちらがおこなった操作に応じて、いろいろな反応をおこなうことができるのもプログラミングによってです。
スマホアプリ開発
スマホのアプリも、プログラミングによって開発されています。
地図やカレンダー、SNSやゲームなどのスマートフォン上で動くさまざまなアプリが複雑に動いているのもプログラミングが活用されているためです。
ゲーム開発
家庭用ゲーム機やパソコンで遊ぶことができるゲームも、プログラミングによって開発されています。
コントローラーのAボタンを押したらキャラクターがジャンプする、特定の行動をするとイベントが発生する、などといったゲーム内の動作もすべてプログラミングによって成り立っています。
AI開発
AIとはArtificial Intelligence(=人工知能)の略で、ロボットなどが状況に応じて自分で判断して動いていくためのプログラミングのことです。
そういうとあまり縁がないと思う方もいると思いますが、例えばお掃除ロボットにもAIが用いられています。
センサーでゴミがあることを感知したら、そちらの方向に動いてごみを吸い取る、充電が切れそうになったら自ら充電器に接続する、などの動作もこのAIによって実行されています。
プログラミング言語の種類はどんなものがある?
コンピューターは人間の言葉をそのまま理解することができないため、コンピューターに理解できる専門の言葉を使う必要があります。
その言葉は「プログラミング言語」と呼ばれていて、複数の種類があります。この章ではプログラミング言語について紹介していきます。
プログラミング言語とは?
プログラミング言語は日本語や英語などの人間の言語と同じく多くの種類があり、現在では約300種類ともいわれています。
なぜそれほど種類があるかというと、それぞれのプログラミング言語の中でも得意な分野が違うことと、プログラミング言語ごとの難易度が違っているからです。
得意な分野でいえば、Webサイト制作が得意なプログラミング言語、ゲーム開発が得意なプログラミング言語といった具合に、それぞれの言語によって分けることができます。
また、難易度でいうと、キーボードの使えない子どもでも直感的に操作できる「ビジュアルプログラミング言語」があったり、比較的人間の言語に近いため覚えやすい言語があったりといった種類があります。
プログラミング言語の種類
プログラミング言語は300種類以上あるといわれていますが、ここでは代表的な言語を難易度順にいくつか紹介していきます。
HTML&CSS(エイティーエムエル&シーエスエス)
HTMLとCSSはWebサイト制作に使用される言語です。
正確にはプログラミング言語ではなく「マークアップ言語」と呼ばれています。
HTMLでWebサイトの基礎をつくり、CSSでデザインやレイアウトを整えていく、といった使い分けがされています。どちらも習得難易度が低く、初心者にも学びやすい言語です。
JavaScript(ジャバスクリプト)
JavaScriptはHTMLやCSSと併せてWebサイト制作に使われるプログラミング言語です。主にWebサイト上にアニメーションをつける役割をしています。
Webサイト作成以外にも、Webアプリの制作やブラウザゲーム制作なども可能です。シンプルな作りで比較的学びやすいプログラミング言語といわれています。
Python(パイソン)
PythonはWebアプリ制作やAI(人工知能)などで使われることが多いプログラミング言語です。
他にもビッグデータの解析などさまざまなことに使用されています。
Pythonもシンプルな作りで初心者にも学習しやすいといわれています。
Ruby(ルビー)
RubyはWebアプリ制作やブログ、SNSなどの開発に使用されているプログラミング言語です。
日本で開発されたプログラミング言語で、日本語の解説などの情報が充実しているという特徴があります。そのためもあり、比較的初心者にも学びやすい言語といわれています。
Swift(スウィフト)
SwiftはApple社が開発したプログラミング言語で、主にWebアプリやスマホアプリの制作に使用されています。
基本的には、MacやiPad、iPhone向けのサービスの開発に用いられることが多いです。難易度は中級者向けといわれています。
C♯(シーシャープ)
C#はスマホアプリやWebアプリ、ゲーム開発などに使用されるプログラミング言語です。
ゲーム開発ツールのUnity (ユニティ)に採用されていて、ゲーム制作に使われることが多くなっています。
C#も比較的学習しやすく、中級者向けの言語といわれています。
C言語(シーゲンゴ)
C言語は歴史のあるプログラミング言語で、ソフトウェアやシステム開発などに使用されていて、汎用性が高いといわれています。
C言語は独特の構文や文法を理解する必要があり、上級者向けの言語といわれています。
Java(ジャバ)
JavaはWebサイト制作やゲーム開発、システム開発など広く使用されているプログラミング言語です。
JavaScriptとは名称が似ていますが別の言語となっています。難易度も高く、上級者向けのプログラミング言語といわれています。
ビジュアルプログラミング言語
今紹介したのは、キーボードで英数字などのテキストを打ち込むことで指示を伝える「テキストプログラミング言語」でした。
ここではビジュアルプログラミング言語といって、子どもでも操作が簡単なプログラミング言語を紹介します。
ビジュアルプログラミング言語とは、マウス操作やタッチ操作で、ブロックなどを組み合わせてプログラミングを行う、視覚的にわかりやすいプログラミング言語のことです。
主に学習用に作られていて、子どもにも直感的に操作ができるため、楽しみながらプログラミング言語を学ぶことができます。
Scratch(スクラッチ)
Scratchは、マサチューセッツ工科大学(MIT)のメディアラボで開発された、子ども向けのビジュアルプログラミング言語です。
プログラミング学習に用いられることが多く、200か所以上の国と地域で利用されていて、日本語も含めた70以上の言語に対応しています。
日本でも文部科学省によってプログラミング学習用の教材として採用されています。
Scratchはパソコンやタブレットで利用することができ、ブロックを組み合わせるだけで子どもにも簡単な操作でゲームを作成することができるため、楽しみながらプログラミングを学習することができます。
ブロックには「10歩動く」「スペースキーを押す」などの指示が書かれていて、それを順番に組み合わせるとキャラクターを動かすなどのプログラミングが可能です。
視覚的にわかりやすいため、専門的な知識がない子どもでもすぐ取り掛かれるのが特徴となっています。
Scratchには動画でゲームのつくり方を紹介する「チュートリアル」や、他の人の作品が公開されていて、どのようにプログラミングされているか見ることができる機能などもあり、子どものモチベーションが続くようになっています。
また、Scratchコミュニティといって、安全な環境で他の人と交流できる機能もあり、子どもがネットリテラシーを学ぶこともできます。
こういった機能のすべてが無料で使えることも、Scratchが世界的に利用されている理由でもあります。
Scratchは8歳~16歳を対象としており、さらに簡略化して5歳~使用可能としたScratchJrもあります。
Viscuit(ビスケット)
Viscuitは日本で開発されたビジュアルプログラミング言語で、「コンピューターは粘土だ!!」というコンセプトのもと、簡単な操作で自分の描いた絵に動きを付けて、ゲームやアニメーションなどを作ることができます。
Viscuitは言葉を使わなくてもプログラミングをすることができ、対象年齢は4歳~とScratchよりも小さい子ども向けになっています。
こちらも文部科学省のプログラミング教材として採用されています。
Viscuitでは自分の描いた絵と、「メガネ」と呼ばれるアイコンを使うことで、絵を動かすなどのプログラミングをしていきます。
すべてマウス操作やタッチ操作でできるため、キーボードが使えなくても簡単にプログラミングの基礎を学ぶことが可能です。
Viscuitは無料となっており、パソコンやタブレットだけでなく、スマートフォンでも利用することができるため、始めるための手間がかからないことも利点として挙げられます。
Scratchと同様に遊び方を紹介したチュートリアルなどもあるため、始めやすく続けやすいといえるでしょう。
プログラミング教育について
プログラミング教育が2020年に必修化
プログラミングについて紹介しましたが、私たちの生活に身近なものというだけではなく、2020年に小学校でのプログラミング教育が必修化されました。
また、中学校や高校でもプログラミング教育が拡充されるようになり、2025年には大学入学共通テストの教科・科目に「情報」が追加されるなど、プログラミング教育はますます注目を集めています。
ここではプログラミング教育の目的と、子どもが学ぶことでどういった効果があるのかを見ていきます。
プログラミング教育の目的
プログラミング教育といっても、子どもが将来IT企業などコンピューターに関わる職に就くためのものではありません。
プログラミングを通して、論理的思考力などの社会に出てから役に立つスキルを身につけることを目的としています。
それは体育の授業もスポーツ選手を育成することが目的でないのと同様です。体育はスポーツを通して、体の動かし方や、仲間とのコミュニケーション、チームプレーなどと学校生活や社会に出てから必要となるスキルを身につけることができます。
プログラミング教育も同様に、プログラミングをすることで、子どもが将来社会で活躍するための力を養っていくことを目指しています。
文部科学省の資料にも、プログラミング教育によって「子どもが秘めている可能性を発掘し、将来社会で活躍できるきっかけとなることも期待できる」と書かれています。
そのため小学校のプログラミング教育では、授業の中でプログラミングが日常生活でどのように活用されているかといった知識を学ぶとともに、実際プログラミングをおこなってみて、論理的思考力などの将来、社会で生かせるスキルを身につけていきます。
プログラミングのはじめ方は?
プログラミングをこれからはじめようという場合は、何を用意するといいのかをこの章で紹介します。
プログラミング学習で用意するもの
- パソコンやタブレットなどの端末
- インターネット環境
プログラミング学習をはじめるには、まずはパソコンやタブレットなどの端末が必要になります。
パソコンの方が選べるソフトが多くありますが、現在ではタブレットでもプログラミング学習をはじめるには十分な選択肢があるといえます。
また、タブレットだとタッチ操作ではじめられるため、マウスやキーボードに慣れていない子どもにも操作しやすくなっています。
スマホでもプログラミングが学べるアプリなどはありますが、まだまだ種類が少なくなっています。といってもスマホでも簡単なプログラミングならできるため、とりあえず触れてみるという場合にはいいかもしれません。
プログラミングは独学でも大丈夫?
プログラミングは独学でも進めていくことはできます。
プログラミングが学べるサイトや、動画などがあるため、つかっているプログラミング学習用のソフトの名前と「学習」などで検索をするとたくさん出てきます。
他にもプログラミング学習用の無料ゲームもいくつもあります。先ほど紹介したScratchやViscuitなどもその一つです。
これらを子どもが自分で進めていくことで、自発的な行動や自信につながっていくでしょう。
しかし、つまずいたときにそこで止まってしまう可能性もありますので、保護者と一緒に進めていくことや、プログラミング教室の利用を検討するなど子どもに合わせて学習方法を選択していくことをおすすめします。
プログラミングの勉強で使える本や教材は?
プログラミングの勉強をする上での本や教材も数多く発売されています。
こちらもどれが優れているということではなく、子どもの興味に合わせて選んでいくといいでしょう。
例えばゲームに興味がある子どもには、ゲームを通じてプログラミングが学べるような本や教材を選んでいくといいでしょう。
ロボットに興味がある場合は、ロボットを使ったプログラミングができる本や教材が適しているといえます。
子どもが興味をもって、続けていくことができる環境を整えていくことが大事です。
プログラミング教室・ロボット教室とは?
子どもがプログラミングを学べる場として、プログラミング教室やロボット教室があります。それぞれどのようなことを行うのか、何を学べるのかなどを紹介します。
プログラミング教室とは?
プログラミング教室とは、パソコンやタブレットを使用してプログラミングを学んでいく習い事です。
一般的な塾のようにテキストに書き込む、という形ではなくパソコンなどの端末を操作して、画面の中で課題をこなしたり、ゲームを作ったりといった形で進めていくパターンが多くなっています。
子どもの年齢や個性に応じて、最初はビジュアルプログラミング言語から始めて、そのうちにテキストプログラミング言語を用いて3Dの複雑なゲームを作るなど、難易度を高めて学習していきます。
ロボット教室とは?
ロボット教室もプログラミング学習を行う教室ですが、先ほど紹介したレゴ®ブロックを組み合わせてつくった実際のロボットを動かしていくなど、触れる対象があることが特徴です。
ロボットをつくって、プログラミングで動かすということを通して、実物とコンピューター内でものが動く仕組みを楽しみながら学べるなどの利点があります。
ロボットだけでなくプラモデルや工作など、手を動かしてものをつくることが好きな子どもに向いているといえるでしょう。
また、画面の中のデータだけでは実感が持ちにくいという子どもにも、目で見て触れる対象があった方が興味を持ちやすいということもあります。
プログラミング教室とロボット教室の違い
プログラミング教室はゲームなど画面で完結するものが多く、やり直しがしやすいという特徴があります。
ロボット教室では触れる対象があるため、動作の仕組みが直感的にわかりやすく、自分で動かしているという実感も得やすいという特徴があります。
プログラミング教室とロボット教室のどちらがいいというわけではないので、子どもの年齢や個性に合わせて選んでいくといいでしょう。
LITALICOワンダーのプログラミング教室では、ゲーム制作でプログラミングを学ぶコースと、ロボット製作コースの、両方のコースを運営しています。
Scratchなどのビジュアルプログラミング言語から、レゴ® ブロックを使ったロボットプログラミングまで、子どもが楽しくプログラミングを学べる環境を用意しています。
LITALICOワンダーでは子ども一人ひとりの個性に合わせたカリキュラムを組んでいるため、子どもが「集団が苦手」「集中力が続かない」といった場合も最適な授業を提供しています。
オンライン・教室ともに、無料の体験授業をおこなっていますので、子どものプログラミング教育に興味のある方は、お気軽にお問い合わせください。
プログラミングのまとめ
プログラミング教育必修化によって注目を集めている「プログラミング」。
パソコンやゲーム、家電まで日常生活のいたるところでプログラミングは活用されています。
プログラミング教育では、ただプログラミングの技術を学ぶのではなく、子供の将来に役立つスキルを身につけることが大事になってきます。
最近ではプログラミングを学べる場所が増えてきました。今のうちから子どもの年齢や個性に合わせた方法でプログラミングに触れていくと、今後本格的に学ぶ上での助けとなるでしょう。
LITALICOワンダーではIT×ものづくり教室として、年長~高校生までを対象としたプログラミング教室を運営しています。
決まったカリキュラムはなく、子ども一人ひとりに合わせて最適な学びを提供しています。
体験授業は随時受付中なので、子どものプログラミング教育をお考えの方は、ぜひ一度体験にいらしてください。