プログラミング教育
人工知能によるビッグデーター解析や車の自動運転などのインフラ整備が進む中で、プログラミング教育の重要性が指摘される中、小学校でもプログラミング教育が始まりました。
プログラミングってなに
このページでは、プログラムやプログラミングについて具体例を交えて簡単に説明しプログラミング教育の意味を考えていきます。
プログラムやプログラミングは、コンピューターの専門用語に考えられがちですが、日常の様々な場所で使われています。
プログラミングとはプログラムをつくること
すごく簡単にいうと、プログラミングとはプログラムをつくることをいいます。
では、プログラムとはいったいなんのことでしょうか?
少し考えるとプログラムという言葉は、運動会のプログラムや発表会のプログラムなど日常でもいろいろなところに使われていることに気が付きます。
このプログラムの多くは、プログラム参加者がどのように行動すればよいかを表現するために、Who(だれが)When(いつ)、Where(どこで)、How(どのような条件で)What(なにを)するかが簡潔にまとめられた形式になっています。
以下に運動会のプログラムを例にしてプログラムの持つ意味を説明していきます。
運動会のプログラム
たとえば、下の表はある小学校での運動会(午前中)のプログラムです。
| 運動会のプログラム | |||
| 時刻 | 学年 | 種目 | 場所 |
| 8時30分 | 全学年 | 開会式 | 運動場 |
| 9時00分 | 全学年 | 準備体操 | 運動場 |
| 9時30分 | 1年生 | 赤白玉入れ | 運動場 |
| 10時00分 | 5年生 | 100m走 | 運動場 |
| 10時30分 | 3・4年生 | 組体操 | 運動場 |
| 11時00分 | 2年生 | 50m走 | 運動場 |
| 11時30分 | 6年生 | クラス対抗リレー | 運動場 |
| 12時00分 | 全学年と保護者 | 昼食(午前中の全競技が終わっている場合) | 第一体育館 第二体育館 |
この運動会のプログラムには、いつ・だれが・どこで・どのようなときに何をするかが書かれています。
このプログラムをみて、生徒や保護者、先生はこのプログラム通り迷わずに運動会を進めていくことができます。
では、この運動会のプログラムはいったい誰が作ったのでしょうか?
ふつうは、運動会を担当する先生やPTAが中心となり、当日の天候や参加人数、競技時間、移動時間を考えながら作っていきます。

このプログラムを作る作業のことをコンピューター用語でプログラミングと言います。
コンピュータープログラミングも同じです
上の例では、運動会はある小学校で行われていますが、この運動会がコンピューター上で行われていることを想像してみてください。
運動会をコンピューター上でうまく動かすには、コンピューターが分かる言葉で運動会プログラムを作る(プログラミングする)必要があります。
結局、プログラムやプログラミングの意味は、ある小学校での運動会を対象にするか、コンピューター上での運動会を対象とするかの違いがあるだけで考え方は同じです。
つまり、コンピュータープログラミングはコンピューターが分かるような言葉でコンピューターへの指示が掛かれたプログラムを作ることです。
このコンピューターが理解できる言葉のことを、プログラミング言語と言います。

プログラミング言語の種類と用途
プログラミング言語たくさんの種類があり、コンピューターの種類や利用分野によって適した言語が使われています。
例えば、エアコンなどの電化製品などに組み込まれているコンピューターでは、C言語やアセンブラ言語と呼ばれる機械制御に適したプログラミング言語が使われています。
また、人工知能の開発にはPython(パイソン)と呼ばれる言語、WEBサービスにはJAVA(ジャバ)と呼ばれる言語が使われています。
このほかにも利用分野に適したコンピューター言語が多くあります。詳細は、文末の【主なプログラミング言語と適用分野】を参照してください。
教育分野でのプログラミング言語
教育分野でのプログラミング言語のひとつにビジュアルプログラミングという画面上で様々な役目をもつブロックを組み合わせてプログラミングを行うスクラッチ(Scratch)があります。

日本の小中学校でも、スクラッチ(Scratch)はプログラミング教育の一環として多くの学校で利用されています。
平成30年度 次世代の教育情報化推進事業
(小学校プログラミング教育推進のための指導事例の創出等に関する調査研究)
小学校プログラミング教育に関する指導案集
出典:文部科学省ホームページ (https://www.mext.go.jp/)
このスクラッチは、小中学生(8〜16歳)向けの教育用プログラム言語環境として、世界中の誰もが無料で使うことができます。
補助として利用されている教材もスクラッチ(Scratch)と同様なビジュアルプログラミングでのプログラミングが中心となっています。
このスクラッチ(下図)をつかうことで、子供たちは発想・考え(アルゴリズム)をゲームやサウンド、アニメーションとしてインターネットブラウザ上で自由に表現することが出来ます。

画面中央にドラッグして組み合わせることで、画面右のサッカー選手の動きや背景を簡単に変えることが出来ます。
Scratch(スクラッチ)は、MIT (マサチューセッツ工科大学)メディアラボのライフロング キンダーガーテングループにより管理されています。https://scratch.mit.edu/
重要なのは発想
この言葉の使い方がわかれば、コンピューターに何をさせるかは自由な発想で無限に広がります。
コンピューターというキャンパスに、プログラミングという手段で自由な発想に基づいた絵を描くというイメージです。
プログラムの論理的な思考を理解しておけば、たとえコンピューターが異なったりプログラムの利用分野が違っても自分の考えを表現できるようになります。
プログラミング教育の重要な点は、この自由な発想と論理的な思考をを身に着けていくことにあります。
主なコンピューター言語と利用分野【参考】
自由な発想と発想を実現するための論理的な思考を行うという本質的な学習を行っておくことで、実社会の様々な分野で利用されているコンピューター言語を利用してのサービス開発や利用者としてのサービスの理解がスムーズにできるようになります。
| コンピューター言語と利用分野 | ||
| コンピューター言語 | 利用分野 | 備考 |
| HTML,CSS,JavaScript Java,Ruby,Perl,PHP,Python | インターネットWEB系
| クライアント系 サーバー系 |
Objective-C,Swift,C++ | スマホアプリ系 | IOS系 Android系 |
| Python,R,JavaScript | 人工知能(AI),データ解析系 | |
| Assembla,C, | 組み込み系 | |
| SQL | データーベース制御系 | リレーショナルデーターベース向け |
| C++,Go, Solodity | ブロックチェーン系 スマートコントラクト系 | 仮想通貨 |
| Scrach | 言語教育 | ビジュアルプログラミング |
