身近な事例で解説、プログラミングでできることとは?

2018.6.12

2020年度から検討されている「小学校でのプログラミング教育必修化」。新たな教育改革に先立って、不安を隠せない親御さんもいるのではないでしょうか。また、昨今のプログラミング化に流され、プログラミングでできることは一体何なのかという部分を、きちんと把握できていない人も多いかと思われます。そこで今回は、プログラミングが活用されている身近な例や、主に使われているプログラミング言語などについて紹介していきます。

プログラミングでできること

プログラミング単体でできること

プログラミングでできることの中には、「プログラミング単体でできること」と「複合的なケースでできること」の2種類があります。以下はプログラミング単体でできる主な開発や制作についてです。

  • スマホ/Webアプリの開発
  • Webサイトの制作
  • ゲームソフトの開発
  • 新規通貨の発行
  • レースの予想
  • ドローンの制御

複合的なケースでできること

Raspberry Piというコンピュータをベースに、スイッチやセンサー、カメラにモーターを使うと、個人でも以下のような複合的なプログラミングを実践することが可能となります。

  • ゲームマシンの制作
  • テレビの録画装置
  • 監視カメラ
  • 自動運転車
  • 簡易地震計
  • ロボット制御

 

プログラミングが活用されている身近な例

ほぼすべての家電、電子機器はプログラム化されています。ここでは最新のプログラミング・テクニックを採用したサービスや、プログラミングによって社会を変えている実例について紹介していきます。

CookBot

クックパッドやDELISH KITCHENなど、レシピ紹介アプリはいくつもありますが、その中でもレシピ検索の進化を感じさせるのがCookBot(クックボット)です。食材を写真で撮影するだけで、その材料をもとに調理できるレシピを紹介してくれて、選んだレシピの各ステップをアナウンスしてくれます。文字入力でレシピを検索していた従来に比べ、とても画期的な機能と言えるでしょう。

食材の写真をCookBotが画像解析し、人工知能によって食材が判断され、その食材の情報がレシピサイトに投稿されると、レシピのステップをCookBotが読み込み、各ステップごとにメッセージを送ってくれるという流れです。ただし、今のところ英語表記しかないため、日本人にとっては少し不都合が生じます。将来的にCookBotが普及し、日本語をはじめさまざまな言語対応が行われることに期待が寄せられています。

hitTO

対話(chat)するロボット(bot)という2つの言葉を掛け合わせた「チャットボット」。テキストや音声を通じて、会話を自動的に行うことができ、人間がコンピュータを用いていた作業を自動的に実行できます。そんなチャットボットの代表例に挙げられているのが、hitTO(ヒット)です。

hitTOはユーザーと自然な対話ができる、AIを活用した高機能なチャットボットを迅速かつ簡単に提供できるソリューション。管理画面やユーザー画面の使いやすさ・デザイン性・コミュニケーションツールとの連携などが高く評価され、AIのビジネス活用を目的として多くの法人により採用されています。情報システム部が担当するITヘルプデスクや、総務人事部が担当する社内の問い合わせ対応、お客様向けのWebサイトでの自動応答など、法人における幅広い業務の効率化を実現しています。

AirREGI

iPad×アプリによって運用されている新しいレジシステムのAirREGI(エアレジ)。2013年にリリースされ、3年間でアカウント数が約25万を達成し、小売店を強力にサポートしてくれています。従来のレジシステムでは何十万円とかかってきた導入費用が、AirREGIの場合、iPadもしくはiPhoneがあれば、0円からスタートすることができます。

また、アプリでレジを管理しているため、アリペイやビットコインの新しい決済にもスムーズに対応が可能。こうしたことから、AirREGIはプログラムの力によって、より良い社会に方向を変えている好例と言えます。

 

プログラミングが使われる代表的な職業

アプリケーション・エンジニア

アプリケーションエンジニアは、スマホやPCで使われるアプリ、コンビニのATMで使う業務用アプリを開発する職業です。嗜好品から銀行業務までを担うアプリを幅広く開発する特徴があります。

Webディレクター

Webディレクターは、Webサイトおよびアプリを開発するために、顧客と共同で仕様を決めて、デザイナーやプログラマに指示を出す仕事です。Webディレクター自身はプログラミングしないケースもありますが、顧客との打ち合わせやプログラマーへの依頼時にプログラミング知識は必須となります。

ゲームクリエイター

テレビゲームにスマホゲーム、ゲームセンターのゲーム、どれもプログラミングによってキャラクターが動いたり、ポイントが加算されたりします。近年のゲーム業界は単純なものよりもポイントシステムを採用したものが多いため、プログラムもより高度化されています。2016年に流行したポケモンGOは、Java, C++, C#などのプログラミング言語によって構成されました。

システムエンジニア

システムエンジニアは、会社内で社員が使うソフトの設計や開発を行い、顧客からシステム案件を請け負って開発するスペシャリストです。最近は”見習いシステムエンジニア”も増加しており、IT社会の中心的な役割を果たしています。

ネットショップ

Amazonや楽天に代表されるネットショップですが、最近は実店舗とネットショップの2つを運営するEC化が増えています。 2010年には2.84%だったEC化率も2016年には5.43%と約2倍に増加。これに合わせてネットショップの経営や運営を任せられる人材が求められています。

 

人気のプログラミング言語

プログラミングを扱う年齢層や立場、目的によって、選択するプログラミング言語は異なってきます。ここでは、子ども、大学生、社会人にふさわしいプログラミング言語について解説していきます。

子ども向け

Scratch(スクラッチ)

Scratchは、MITメディアラボが開発した”ビジュアルプログラミング”の一つです。そもそもビジュアルプログラミングとは、視覚表現でキャラクターを動かすなど、コンピュータに実行させる言語です。一般的にプログラミングと聞くと、黒い画面に英語の文字が並んでいるという印象がありますが、ビジュアルプログラミングは特定の知識を必要とせず、直感的に覚えることができるため、子どもでも簡単に扱うことができます。https://scratch.mit.edu/

Viscuit(ビスケット)

Viscuitは、絵でプログラミングを作成し、実行すると絵が動くシステムです。Scratch同様、難しいことを覚えなくてもプログラムの楽しさを知ることができ、ビスケットを使うと、アニメーション、ゲーム、動く絵本などを簡単に作ることができます。

プログラムの基本は”めがね”であり、変化の仕方をコンピュータに教えます。ビスケットは基本的にこのめがねで全ての動きをつくります。単純に見えて実はいろいろな動きを作ることができるため、無限の可能性を秘めているツールと言えます。http://www7.viscuit.com/

大学生向け

Java(ジャバ)

Javaは、世界的に見ても習得したい言語としてトップのプログラミング言語と言われています。「Javaは多くの現場で使われている」「汎用的でOSに依存しない」といった点が人気の理由があり、動くプラットフォームを多く提供してくれるJavaは、多くのユーザーから好評を得ています。https://java.com/ja/

VBA(ブイビーエー)

VBAは、「Visual Basic for Applications」の略で、利用者が簡易的なプログラムを記述して実行することで、複雑な処理の自動化などを行うことができます。WordやExcel、PowerPointなどで利用できる機能で、同社のプログラミング言語および実行環境であるVisual Basicの簡易版を用いてプログラムを作成できます。https://msdn.microsoft.com/

社会人向け

HTML/CSS

CSS(Cascading Style Sheets:カスケーディング・スタイル・シート)は、ウェブページのスタイルを指定するための言語です。 ワープロソフトなどで作成される文書も含め、文書のスタイルを指定する技術全般を「スタイルシート」といいます。 HTMLやXHTMLなどで作成されるウェブページにスタイルを適用する場合には、スタイルシート言語の1つであるCSSが一般的に利用されています。

CSSは、HTMLと組み合わせて使用する言語で、 HTMLがウェブページ内の各要素の意味や情報構造を定義するのに対し、CSSではそれらをどのように装飾するかを指定します。 例えば、ウェブページがスクリーンに表示される際の色・サイズ・レイアウトなどの表示スタイルや、 プリンタなどの機器で印刷・出力される際の出力スタイル、 音声で読み上げられる際の再生スタイルなど、 ウェブページをどのようなスタイルで表示・出力・再生するかについて指定することができます。

Python(パイソン)

プログラミングを始める初心者に一番おすすめなのがPythonです。アメリカの一流大学で言語学習の導入段階において最も学ばれているものであり、デスクトップアプリやWebアプリなどを構築する際にしようされており、データマイニングに最適なルーツを備えています。Google, YouTube, Instagram, BitTorrentなどはPythonで構築されています。https://www.python.org/

Scala(スカラ)

オブジェクト指向言語と関数型言語の特徴を合わせたマルチパラダイムのプログラミング言語であるScala。TwitterやLinkedlnなどで利用されています。なお、世界的にScalaを扱える人材が少ないことから、プログラマーが稼げる言語ランキングで1位として知られています。https://www.scala-lang.org/

 

まとめ

プログラム化が激しい現代において、意識することなく身の回りのものを利用している方も多いでしょう。日々の生活の中で感じる”不便”をプログラミングによって解決できるようになっています。

また、一見するとプログラミングは大人がやるもので、非常に難しいというイメージが強いですが、最近では子どもでも利用できるプログラミング言語が増えています。プログラミング教育の必修化が検討されている今、これからの世代を担う子どもたちにとって、ますますプログラミングは身近な存在になっていくでしょう。

embotについて詳しくみる

関連記事