プログラミングって何?
これからは義務教育として学校でプログラミングを教わるようになるといった話をよく聞きますね。
でも、いったいプログラミングはどんなことに役立つのか、ぼんやりとイメージはあるけれど、よくわからないという方がいるのではないでしょうか。
本サイトはものづくりの楽しさを伝えることを目的にしていますので、ものづくりに絡めてプログラミングの役割を説明したいと思います。
この記事を読むと、プログラミングによってもたらされる恩恵についてイメージしてもらえるようになると思います。
ちなみに私はプログラミングのプロではありませんが、小学生のころからたしなんでいて、プログラミング歴だけはウン十年あり、長いほうだと思います。笑
ハードとソフト
プログラミングとはプログラムを作ることなのですが、プログラムとは何でしょうか?
ワードやエクセルのような、お仕事で使うようなものやスーパーマリオやマインクラフトのようなゲームを思い浮かべる方もいるかもしれません。
この認識は正しいです。
そして他にも色々あります。
ハードとソフトという言葉を何となく聞いたことがあるのではないかと思います。
ハード(ハードウェア)の例はパソコンやスマホ、ゲーム機の本体など目に見える物体で、通常、電子機器のことを指します。
ソフト(ソフトウェア、アプリと呼ばれることもあります)はハードの中に存在する記憶装置にデータとして保存された、目には見えない情報で、ハードに何をさせるか書き表したものになります。
プログラムとは、このソフトのことと捉えれば良いです。
注:ソフトとプログラムの違いについて述べているサイトもありますが、これから学ぶ人はこの理解で良いと思います。
例えば、ニンテンドーのゲーム機がハード、マリオカートやどうぶつの森などがソフトということになります。
ソフトも目に見えるじゃないか!とツッコミが入りそうですが、ゲームカードの記憶領域にゲームの情報が書き込まれていて情報自体は目に見えない、とお考えください。
プログラムは自動化のためのもの
プログラムは一体何の役に立っているかについて説明します。
プログラムは決められた手順でハードを動かすことによって、人間に役立つ仕事をしてくれています。
ん???って感じですよね・・・
ゲームを例に説明します。
スーパーマリオのゲームを想像してみてください。
マリオが右の方に進みながら、迫り来る敵をジャンプして踏みつけたり、逃げたりしながらゴールを目指すゲームですね。
これって実はゲーム機でなくても、人形劇として複数の人がそれぞれキャラクターを演じることでも同じようなゲームになると思います。
プレーヤーはマリオを歩かせたりジャンプさせたりする。
クリボーはマリオに踏みつけられたらつぶれていなくなる。
といったルールを決めて、みんながそれぞれの役を演じることができれば、スーパーマリオになります。
でも、これってたくさん人がいないとできないし、今のジャンプは高すぎだとか、クリボーの動きがいつもより速かったとか文句が出そうですよね。
これをプログラムによって、ジャンプボタンが押されたらジャンプするといった決められたルールに従って画面にキャラクターや背景を表示できれば、不平等が無くなってゲームを楽しめるようになり、他の人と同じ土俵で競い合うこともできるようになります。
これは、人間がやってもできることをプログラムで自動化することによって、ルールがより厳密に機能するようになり、ゲームとして成り立つようになったと言えるでしょう。
「自動化する」ということがポイントだったというわけです。
どんなものにプログラムが入っているの?
パソコンやスマホであれば、自分好みのアプリをインストールすることで、SNSや電車時刻を調べる機能などが使えるようになるのは、馴染みがあると思います。
上で述べたゲーム機もソフトを入れ替えることで好きなゲームができますね。
このようにソフトを入れ替えると同じハードでも違った機能になる、というのも面白い特徴です。
他にもテレビやエアコン、自動車など、身の回りの様々なものにプログラムが入っています。
いわゆる電子機器と呼ばれるものには、プログラムが入っていると考えて間違いないでしょう。
これらの機器はプログラムが無ければただの箱なのですが、プログラムが入ることで、テレビであれば電波を受信して映像を表示して音を出す、エアコンであれば設定温度になるように空気を冷やす、といった役割を果たすことができるようになるのです。
ものづくりのためのプログラミング
私はものづくりの楽しさを多くの人に伝えたいと思っているので、ものづくりに絡めてプログラミングの紹介したいと思います。
単に”ものづくり”というと非常に幅が広く、様々なものづくりがありますが、特に電子工作について説明します。
電子工作をするためにはプログラミングが必要になります。
最近では初心者が簡単に電子工作を始められるマイコンボード(基板上に部品が接続された小さなコンピュータのようなもの)が多数販売されています。
こういったマイコンボードもプログラムが無ければただの板です。
自分が望む動作をするようにプログラミングして初めて何かの役割を果たすようになります。
これらマイコンボードは簡単にプログラミングできるようになっていて、LEDライトを光らせたり、モーターを動かすなど、動きのある工作などを簡単に作ることができます。
有名なマイコンボードに以下のようなものがあります。
- Arduino(アルデュイーノ)
ものづくりの定番ボード。 - がじぇるねボード
http://gadget.renesas.com
→アイテム
目的別に特徴あるボードを取り揃え、ピンクのボードが目印。 - micro:bit(マイクロビット)
光、温度、加速度などのセンサー、LEDライト、無線などが内蔵されている学習向けボード。
イギリスでは小学生全員に無料で配られているそうです。 - Raspberry Pi(ラズベリーパイ)
Linuxが動き、ディスプレーとキーボードをつなげるとパソコンになる。
こういったマイコンボードとセンサーやモータを組み合わせて面白い電子工作をしている人がたくさんいます。
子供たちにものづくりやプログラミングを教えている人たちもいます。
その中のほんの一部を紹介します。
- プロジェクションゼリー(https://youtu.be/qBtBprITdWQ)
ドーム状のゼリーに動画を表示する作品です。プレゼントしたら喜ばれそうですね。 - 倒立振子(https://youtu.be/K-B74VyEp_4)
倒れないようにバランスを取っているのがわかります。 - 鍵盤ハーモニカ自動演奏(https://www.youtube.com/watch?v=tENQG8GRQ_s)
自動で音楽を演奏しています。音が出る作品は人を引きつけますね。 - マイコンレーサー(https://youtu.be/plDGNpu8L1I)
コース通りに走る車をプログラミングで実現する課外授業ですね。
ものづくり、プログラミングって楽しそう!と思っていただけたら幸いです。
プログラミング学習方法
プログラミングの基礎を身に付けるための記事を書いていますので、参考にしてください。
- Linux環境MSYS2でC言語のHello World!
- C言語(1) 変数を使った計算と表示
- C言語(2) 分岐、くり返し
- C言語(3) くり返しと分岐の練習問題
- C言語(4) くり返しと分岐の練習問題 解答例と解説
私のサイト以外にも以下のような学習教材があり、どれも無料体験ができます。
子供向け:
オーダーメイド型子ども向けプログラミング・ロボット教室【LITALICOワンダー】
まとめ
- プログラミングはプログラムを作ること
- 電子機器はハードとソフトでできていて、ソフトの部分がプログラム
- プログラムによって自動化することで人間の役に立つ仕事をしてくれる
- 電子工作にもプログラミングが必要
以上のことがイメージできていれば、まずは良いと思います。
最後まで読んでいただき、ありがとうございました。