プログラミングでなにができるの?身近な例から考えてみる

年々プログラミングに注目している方が増えてきているように思います。僕が大学生の時はコンピュータの勉強をしている、プログラミングをしている、というとオタクなんだ、というような印象を持たれることがよくありました()

でも今では逆にソフトウェアエンジニアをしています、とかプログラミングを仕事でしています、というと、すごいですね!、と言われることが増えました。

こういった状況の変化には様々な理由があると思います。一つは2020年度からのプログラミング教育必修化の流れも関係しているでしょう。以下は文部科学省から公表された内容です。こういったこともあり裾野が広がっているのでしょう。

 

2020年度(平成32年度)から実施される新小学校学習指導要領においては、各教科等の特質に応じて、児童がプログラミングを体験しながらコンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動を計画的に実施することとしました(小学校プログラミング教育の必修化)。

出典:「小学校プログラミング教育の手引(第一版)」の公表について

 

また、Google、マイクロソフトで製品開発に携わってきた及川さんが書いたソフトウェアファーストという書籍でも現在のビジネスにおけるソフトウェアの重要性を説いています。

 

ソフトウェア・ファースト あらゆるビジネスを一変させる最強戦略

新品価格
¥2,090から
(2019/10/27 15:57時点)

さて本記事ではプログラミングを用いることでどういったことができるのか、身近な例と共に掘り下げてみます。

本記事の内容

本記事では以下について取り上げます。

  • プログラミングとは
  • プログラムが活躍している身近なものたち

プログラミングとは

文脈にもよりますがプログラミングとはプログラムを書くことを指すことが多いでしょう。ではプログラムとはなんでしょう。プログラムとはコンピュータを意図した通りに処理を行うよう書かれた命令文のことになります。そのためそれらを合わせて改めて整理すると、

プログラミングとは、コンピュータに対し意図した通りに処理を行う命令文を作成する行為のこと

といえるでしょう。

いかがでしょう。なんとなく理解ができるといいですが、やはりプログラミングの経験がない方にとってはイメージを掴み難いと思います。そこで次項から実際にプログラミングによって作られたものの例をみながらイメージを深めていきましょう。

プログラムが活躍している身近なものたち

炊飯器·冷蔵庫などの家電製品

炊飯器、冷蔵庫などの皆さんの自宅にもある家電製品ではプログラムが動いています。

例えば炊飯器ではタイマーをセットして炊飯時間を指定したりできますよね。それらはプログラムによりある時間になったら炊飯するようプログラミングされているのです。最近では高価な炊飯器が数多くあると思いますが、お米の種類によって炊き方を変えるような機能もプログラムによって制御されているのです。

冷蔵庫も同様です。一定の温度を保つようプログラムで管理され制御されています。他にも冷蔵庫の扉を開けっ放ししていると音が鳴ったりしますよね。それらも扉が開けっ放しになっていることを検知したら音がなるようプログラムがされています。炊飯器、冷蔵庫に限らず他にも食洗機、洗濯機、電子レンジなど様々な家電製品の中でプログラムが動いています。

最近ではプログラミングできる家電もあります。例えばルンバがそうですね。

部屋のゴミを自動で吸い込んでお掃除してくれるロボット「ルンバ600シリーズ」をベースに開発されたお掃除しないロボット「iRobot Create 2」の発売が開始されました。iRobot Create 2はルンバ600シリーズからお掃除機能を取り除き、ユーザー自身がプログラミングで動き・音・光り方などを設定可能な研究・教育・趣味向けのロボットプラットフォームです。

出典:お掃除しないルンバをプログラミングして自分だけのロボットが作れるプラットフォーム「iRobot Create 2」が発売開始

このように家電製品の中でもプログラムは動いているのです。

自動車

自動車の中でも様々なプログラムが動いています。

例えば速度や残り燃料を表示しているインストルメントパネル(インパネ)について考えてみましょう。インパネでは現在の速度が表示されていますね。アクセルを踏めば速度メータが現在の速度をリアルタイムに表示してくれます。

それらももちろんプログラムで動いているのです。

特に自動車は走るコンピューターと表現されることもあるほど多くのプログラムが動いています。最近ではスマホと接続ができるSDLという国際標準規格があります。SDL対応のカーナビといった車載機はスマホと連携ができます。

SDL DEVELOPMENT TOOLSは実際に自動車に搭載でき、スマホと接続可能なSDL(スマートデバイスリンク)開発キットです。USB経由でスマホと接続することで液晶画面にSDL対応アプリの画面が表示し、操作できます。タッチディスプレー(800×480ドット)の背面に基盤を装着した構造で、USBポートや各種コネクターを配置。ACアダプターと車両情報取得用コードが付属しています。

出典:スマホと接続できる車載SDL開発キット

このSDLの話をみても自動車もプログラムで動作していることがよくわかりますね。アプリ開発コンテストも開催される予定がありこれからさらなる盛り上がりが期待されます。

SDLを使えば、対応のカーナビなど、車載機を経由して、スマートフォンの位置情報や音楽データを利用したり、SNSにアクセスしたりできる。つまり、クルマの中で合法的かつ安全に、普段使っているスマホの操作ができるわけだ。

また、エンジンの回転数や車速、ドアの状態など、クルマの状態をスマートフォンアプリで取得することも可能(車速等のクルマ側のデータの使用には、自動車メーカー各社の許諾が必要)。これによって、いままでのスマートフォンアプリでは実現できなかった可能性も広がりそうだ。

出典:カーナビで操作するスマホアプリ――SDLアプリコンテスト応募開始

ゲーム機

こちらももちろんプログラムが動いています。

ゲームソフトはプログラムが入って動いているイメージがある方も多いでしょう。しかしゲーム機本体ももちろん多くのプログラムが動いているのです。ゲーム機では例えばゲームソフトを読み込むプログラムが動いていたり、バッテリーの状況を管理するプログラムなど様々なプログラムが動いています。最近ではゲーム機本体にセンサーが取り付けられてるものもあり、どれくらい傾いているかをセンサーで取得しそれらをプログラムを用いてゲームに反映させたりもしますね。ゲーム機の中でも本当に多くのプログラムが動いています。

パソコン、スマートフォン

こちらももちろんプログラムが動いています。キーボードを叩いたら叩いた文字がちゃんと認識され画面に表示するようなプログラムもプログラミングによって作られています。そしてもちろん画面に文字や色を表示するようなこともプログラミングによって制御されているのです。そう考えるととても膨大な量のプログラムが動作していることに気づくのではないでしょうか。これらには先人の知恵がこれでもかと詰まっているのです。

駅の券売機、自動販売機

さて、最後の身近な例をご紹介します。それは駅の券売機や自販機です。お金を入れ、券やジュースを買うと思いますがこれらも正しい券やジュースが出るような制御はプログラムで制御されています。自販機であれば冷蔵庫と同じように適切な温度で美味しいジュースが提供できるよう管理するプログラムも動作していますね。

プログラミングをはじめてみよう

プログラミングに興味が出てきた方も多いのではないでしょうか。そんな方におすすめなのがUdemyです。オンラインセミナーで非常に豊富なコンテンツを提供しています。僕自身もよく利用していますが初心者向けのコンテンツも充実しています。例えばWeb 開発入門完全攻略コースは以下のような学習内容を提供しています。

学習内容

  • HTML5とCSS3を使ってWebサイトのコーディングができるようになります。
  • Bootstrapを使ってレスポンシブ対応のWebサイトのコーディングができるようになります。
  • JavaScriptを使って動的なWebサイトを開発できるようになります。
  • MySQLを使ってデータベースの設定と操作が行えるようになります。
  • RubyとRuby on Railsを使ってWebアプリケーションが構築できるようになります。
  • AWS Cloud9を使ったクラウド統合開発環境を設定して利用できるようになります。
  • Git / GitHubを使ったソースコードのバージョン管理ができるようになります。

引用:Web 開発入門完全攻略コース

Webサイトを作るコースになっていますが、Webサイトの開発はパソコンが手元にあれば始めやすいため個人的におすすめです。他にも以下のようなセミナーがあります。

ぜひ興味のあるセミナーを見つけプログラミングをはじめてみましょう


まとめ

さて、本記事はこれで以上です。プログラミングで何ができるのか少しイメージがついたでしょうか。プログラミングは本当に身近で普段から皆さんもプログラムで動くものを利用していることに気づいて頂けたと思います。次のステップとしてはぜひプログラミングに実際にトライしてみることをお勧めします。

それでは以上です、どなたかの参考になれば嬉しいです。