小学校では2020年度からプログラミングが必修化されました。でも、そもそもプログラミングって何のこと? と聞かれると意外とわからないもの。前回はコンピューターについにお話ししましたが、今回はいよいよプログラミングについて見ていきましょう。
プログラムはコンピューターへの命令!
コンピューターは、指示された命令を正確に実行する機械ですが、命令がなければ何もしませんし、命令の通りにしか動きません。この命令が「プログラム」で、「プログラミング」というのはプログラムを作ることです。プログラムにはコンピューターに動きを指示する命令の手順が書かれていて、コンピューターが動くのに欠かせません。
コンピューターは、前回紹介した通り、CPU、メモリ、入力装置、出力装置などで構成されていますが、これらはどれも手で触れる部品や機器の姿をしていて、「ハードウェア」と呼ばれます。一方プログラムは、手で触って確かめられる姿はなく、「ソフトウェア」と呼ばれていて、ハードウェアの情報を長く記憶しておける場所に保存されています
コンピューターは、ハードウェアとソフトウェアの組み合わせ次第で、できることが決まるのです。
コンピューターを動かすいろいろなソフトウェア
パソコンやスマートフォンには、私たちが道具として使えるたくさんのアプリがあり、アプリを切り替えるだけで、メモ帳にもカメラにもメッセンジャーにも音楽プレイヤーにもなります。これらのアプリはどれもソフトウェアです。
アプリとは別に、パソコンやスマートフォンでは「オペレーティングシステム(OS/オーエス)」と呼ばれるソフトウェアが動いています。例えば、「Windows(ウィンドウズ)」や「macOS(マックオーエス)」はパソコンのオペレーティングシステムです。オペレーティングシステムは、アプリとハードウェアをつなぐ裏方の役割をしたり、基本的な機能を提供したりしています。
家電に入っている小さなコンピューターの場合は、その家電に必要な専用のプログラムが動いています。洗濯機はアプリを切り替えたら冷蔵庫になるようにはできていません。
ソフトウェアにもいろいろな役割があるのです。
プログラミングってどうやるの?
プログラムの役割はわかりましたが、ではプログラムってどうやって作るのでしょうか?
プログラムは、プログラミング言語という専用の言葉とルールで記述します。コンピューターは計算が仕事で、実は「0」と「1」の数字だけで考えているのですが、人は、「0」と「1」で考えるような言語を直接書いたり読んだりすることは普通できません。そこで、人が理解できて書きやすく、コンピューターも翻訳して理解できる特別な言語として生まれたのが、プログラミング言語です。
プログラミング言語にはいろいろな種類があって、それぞれ得意な分野があり、記述のルールが違いますが、プログラムを作るときの基礎になる考え方は同じです。
一般的なプログラミング言語はどれも英数字と記号で命令を記述します。プログラマーというとよく画面に向かってよくわからない文字列を打ち込んでいる姿を想像するかもしれませんが、まさにそのようなイメージです。
子ども向けのプログラミングツールがいろいろある!
ただし、子どもたちが小学校でプログラミングを学ぶときに、いきなりそんなプログラミング言語を使うと想像すると、いかにも大変そうですね。子どもたちに難しすぎない? 大丈夫なの? と不安になってしまいます。
でもそこはご安心ください。子どものプログラミング学習用には、画面上でプログラムの命令パーツをドラッグ&ドロップで組み合わせるような直感的なプログラミングツールがいくつも存在します。画面上で操作できる形になっているので「ビジュアルプログラミング」と呼びます。
例えば子ども向けのプログラミングでよく使われる「Scratch(スクラッチ)」の画面は次の図のようになっています。プログラミングに使う言葉は日本語化されているので英語も使いません。
学校で体験してもっとやりたくなったらステップアップしよう!
小学校や中学校くらいまではこうした子ども向けのツールを使うことが多く、入り口のハードルを下げてプログラミングを経験できるように学校ごとに工夫しています。
子ども向けのビジュアルプログラミング型のツールは、操作は簡単ですが、大人が使う一般的なプログラミング言語と同じような考え方でプログラムを作るように設計されています。だから、プログラミングの入門的な学習になるのです。
学校に限らず、民間のプログラミングスクールでも、まずはビジュアルプログラミングのツールでいろいろな作品を作ったり、学習用ロボットを動かしたりして、プログラミングの基礎的な考え方を身につけるコースから始めるのが一般的です。
ただし、例えばScratchで作ったプログラミング作品はScratch上でしかプレイできません。Scratchなどの子ども向けビジュアルプログラミング型のツールでは、スマートフォン用のアプリを作ったり、ゲーム機用のゲームを作ったりはできないのです。ですから自分が作りたいものがはっきりしたら、それを作れるプログラミング言語を学ぶ必要があります。もっと学びたい子どもたちは、文字で記述する一般的なプログラミング言語を使うコースに進み本格的に腕を磨いていきます。