プログラミングとは
プログラミングとは、コンピュータが動くために必要な具体的な命令(プログラム)を順番に提示するものです。プログラミングがなければ、スマートフォンやパソコンはもちろん、電化製品や乗り物などはまったく作動しません。プログラムされたコンピュータ自体が、自分で考えたり物事を想像したりすることはできないためです。
例えば、赤ちゃんは誰からも教わらず自ら歩こうしますが、コンピュータロボットに「歩きなさい」と口頭で命令するだけでは歩かないでしょう。プログラミングとは、動くための要素や順番をコンピュータに教え、動けるようにしてあげることといえます。
プログラミング関連用語を解説
プログラミングとは、コンピュータを動かすための命令を順番に書き出すことを表します。コンピュータは、正しく命令されれば迅速かつ正確に動作し、同じ命令であれば同じ処理を寸分違わず行います。
処理能力と精度の高いプログラムとプログラミングがあれば、人間の能力以上の働きをするといえるでしょう。ここでは“プログラム”と“プログラミング言語”について解説します。
プログラムとは
プログラムとは、コンピュータに与える具体的な情報であり、順番に示される命令を指します。プログラミングとは、命令の与え方です。
ロボットに正しい歩行を教えるとしましょう。
- 足裏の重心は「かかと」→「指のつけ根」→「指先」と移動
- 足裏はべったりつけずに、「中央外側」を意識してつける
- 指先は「小指の付け根」→「親指の付け根」と重心を移動
- 踏み込みは親指
ここでいうプログラムとは、「かかと」や「指」などの部位や「移動」「つける」「踏み込み」などの動作です。プログラミングとは、「→」で表したように流れを決めたり組み替えたりすることを指します。
プログラミング言語とは
プログラミング言語とは、コンピュータとのやり取りに使用する人工言語を指します。コンピュータは「ありがとう」「こんにちは」などの日本語を理解できません。コンピュータが理解できる言語である「プログラミング言語」が必要です。
プログラミング言語には、マイナーな言語を含めると200種類以上あるといわれます。それぞれのプログラミング言語には動作上の得手不得手があるため、目的に合う言語を使う必要があります。また子どもが使いやすいプログラミング言語として、幼児にはViscuit、小中学生にはScratchやSwiftがおすすめです。
- Viscuit:自分が描いたイラストを動かせる
- Scratch:ブロックの組み合わせでゲームやアニメーションを作成
- Swift:Apple系のアプリを作成
プログラミングが得意なこと
本記事で紹介するプログラミングが得意なことは、以下の3要素です。
- 自動化
- 高速処理
- 正確処理
プログラミングの発展に伴い、日常生活は大変便利になりました。タイマー付き家電製品やATMなどは、プログラミングの得意分野が発揮された証拠といえるでしょう。
自動化
プログラミングによる「自動化」とは、同じ処理を自動的に繰り返すシステムを表します。
人間が何かを処理する際、集中して正確に作業を進めるのは可能です。しかし不安があったり疲労感が残ったりする場合は、作業スピードや正確さを保てないでしょう。プログラミングされたコンピュータは、いつでもどこでも決められた工程に従い、正確に処理します。柔軟な対応は難しいとはいえ、プログラミングは一寸の狂いもなく、自動的に処理するのが得意です。
高速処理
プログラミングによる「高速化」とは、同じ処理を高速スピードで正確にやり遂げることを指します。
たとえば、人間が100マス計算を1分前後で解けたとしても、コンピュータの計算力は人間の比になりません。日本のスーパーコンピュータ「富岳」の計算速度は、なんと1秒あたり約44.2京回(京は千兆の10倍)です。
プログラミングの得意分野には、特定の処理を決められた時間や回数でくり返し行う自動化だけでなく、処理を行うスピードの速さも挙げられるでしょう。
正確処理
プログラミングによる「正確処理」とは、プログラムが高度な正確さを保ちながら処理を行うことを指します。
人間が処理する場合は、常にパーフェクトな結果は望めません。人間の場合、長時間の作業で体力的にも疲れ、集中力が切れてしまうためです。また、休憩によって作業が中断されるほかに、疲労によってパフォーマンスが低下すれば処理結果にも影響があります。
プログラミングの得意分野とは、長時間にわたって正確な処理を続けられることにあるといえるでしょう。
プログラミングで何ができるの?
私たちの生活は、プログラミングの発達によって多くの恩恵を受けています。そこで本章では、プログラミングの得意分野である「自動化」「高速処理」「正確処理」の要素が実際に活用されている例を紹介します。
複雑な作業の自動化
プログラミングによって、複雑な作業の自動化が可能です。複雑な作業の自動化には、次のような例が挙げられます。
- GmailやiPhoneとLINEなどの自動連携
- ブログの自動更新
- Excelでの作業を自動編集
連携や更新・入力作業などは決まった行程があり、すべて手動で行うと時間や労力がかかります。しかしプログラミングの活用によって、複雑な作業の自動化や効率化が可能です。
Webサイト開発
Webサイト開発とは、プログラミングによってWebサイトやアプリを新たに作成することを指します。既存のサイトやアプリとは、TwitterやFacebook・Instagramなどのソーシャルメディア、Amazonや楽天市場などのECサイト、YouTubeを例とする動画サイトなどです。
Webサイトやアプリはプログラミングで作成されており、すべてWeb上で処理されるアプリケーションです。プログラミングを学べば、より多くの悩みを解決するWebサイトを開発できるでしょう。
電子機器・システム開発
電子機器やシステム開発とは、スマートフォンやタブレットなどはもちろん、公的機関で使われるシステムの開発です電子機器開発には、エアコンや自動車・携帯電話などが挙げられます。日常生活をさせる多くのアイテムにプログラミングが活用されています。
システム開発とは、物流配送・ATM・コンビニの商品管理など、特定の業務を効率化するための開発です。開発には、システムエンジニアが関わるのが一般的で、高度なプログラミング技術が必要とされます。
AI(人工知能)・ロボット開発
AI(人工知能)とは、コンピュータの中でも人間と同様の判断や推測が可能とされるコンピュータ(ロボット)です。AIは、イメージしやすいPepper(感情認識パーソナルロボット)のようなロボット以外にも、多くの場面で活用されています。
- 「ルンバ」物を認識して掃除する掃除ロボット
- 「Siri」音声認識によるアシスタント機能
- 「Face ID」Appleの顔認証システム
AI・ロボット開発とは、今後も家庭やビジネス・医療分野などにおいてニーズが高まるといえるでしょう。
アプリ・ゲーム開発
アプリ・ゲーム開発とは、プログラミングによってアプリやゲームを新たに開発することを指します。現在のアプリやゲームの代表例として、LINE・ドラゴンクエスト・食べログ・企業の公式アプリといったサービスが挙げられるでしょう。昨今話題である、VRゴーグルを使うVRゲームも、プログラミングのなせる業といえます。
アプリ・ゲーム開発は、今後もさらに需要が高まる分野であり、子どもたちの憧れの仕事となるかもしれません。プログラミングを学習するモチベーションにもつながるでしょう。