大学カタログ

図 3 仕事での生かし方仕事での生かし方 1

アプリ・Web をつくる

スマートフォンのアプリや予約サイトなど、毎日使うサービスをプログラミングで形にする仕事です。情報 I で書く短いプログラムの「条件分岐」や「繰り返し」が、そのままアプリの部品になります。

明るい開発室で、時間ごとのマス目が並ぶ予約画面の大きな画面を囲み、スマートフォンで操作を試しながら相談する学生たち

ひとことで言うと

混んだ駐輪場で、空いている場所を探す

混んだ駐輪場では、端から順に見て、自転車がない場所に止めます。2 台分の場所がいるなら、となりも空いているかを確かめます。予約アプリの中では、この探し方をプログラムで書いて、一瞬で空き時間を見つけています。

01

どんな仕事?: 情報 I の 3 つの形で、アプリが動く

ソフトウェアエンジニアや Web エンジニアは、アプリや Web サイトをプログラムで動かす仕事です。美容院の予約アプリなら、空いている時間を表示し、選ばれた時間を記録し、確認のメールを送るまでを受け持ちます。

どのアプリも、もとをたどると情報 I で学ぶ 3 つの形でできています。上から順に実行する「順次」、条件で道を分ける「分岐」、同じ処理をくり返す「反復」です。これに、値をしまう変数や配列、処理をまとめる関数を組み合わせます。

情報 I では、ほかのサービスの機能を借りる WebAPI や、データベース、ネットワークのしくみも学びます。地図や天気を表示する機能は、WebAPI で外のサービスからデータを受け取ってつくることがよくあります。授業の単元が、仕事の道具箱にそのまま入っています。

授業で書く短いプログラムの形が、アプリの部品そのものです。

図解アプリづくりで使う情報 I・II

アプリ・Web
  • 順次・分岐・反復処理の流れを組み立てる(情報 I)
  • 変数・配列予約や在庫の値をしまう(情報 I)
  • 関数同じ処理を 1 か所にまとめる(情報 I)
  • 探索・整列空き枠を探し、順に並べる(情報 I)
  • WebAPI地図や天気を外から借りる(情報 I)
  • システムの開発要件を決め、分けてつくる(情報 II)

02

プログラミングが生きる場面: 予約アプリの「空き枠」を探す

美容院の予約アプリを考えます。10:00 から 19:00 までを 30 分ずつに区切ると、1 日の枠は 18 個です。アプリの中では、この 18 個を配列にしまい、空いていれば 0、予約済みなら 1 のように記録します。

空き枠を探す処理は、情報 I の繰り返しと条件分岐そのものです。配列の先頭から 1 つずつ見て、「0 なら画面に表示する」をくり返します。授業で習う、合計や最大値を求めるプログラムと同じ形です。

難しくなるのは、60 分のカットのように 2 枠続けて必要なメニューです。「この枠と次の枠が両方 0」を条件にしないと、途中に予約が入っている時間を案内してしまいます。条件を 1 つ足すかどうかで、アプリの正しさが変わります。

閉店の時刻の扱いも大切です。19:00 に閉まる店で 60 分のメニューなら、最後に選べる開始時刻は 18:00 です。18:30 を表示してしまわないか、境目の時刻で必ず確かめます。

配列・繰り返し・条件分岐の組み合わせで、空き枠の表示ができあがります。

図解60 分のメニューの空き枠を探す(例)

入力30 分ごとの 18 枠(0 = 空き、1 = 予約済み)
  1. 1先頭の 10:00 の枠から順に見ていく
  2. 2その枠と次の枠が両方 0 かを調べる
  3. 3両方 0 なら、開始時刻の候補に加える
  4. 4最後の 18:30 の枠は、次の枠がないので外す
結果60 分続けて空いている開始時刻だけが、画面に並ぶ
机の上に手書きの紙の画面が何枚も重なり、10:30・11:00・11:30 と 30 分ごとの時刻が並ぶ表の一部に赤い印がついている
予約アプリの画面を紙で試作したもの。30 分ごとの枠が並び、赤い印は予約済みの枠です。本物をつくる前に、紙で画面の流れを確かめることもあります。写真: d_jan(CC BY 2.0・Wikimedia Commons)

03

テストが生きる場面: つなげたときの「ずれ」を見つける

情報 II では、システムを機能ごとに分けてつくり、最後につなげてテストする流れを学びます。分けてつくると、何人もで同時に作業でき、直すときも部品ごとに済みます。ただし、部品どうしの約束がずれていると、つなげたときに思わぬ失敗が起きます。

1999 年 9 月、アメリカ航空宇宙局(NASA)の火星探査機マーズ・クライメート・オービターが、火星に着いたところで失われました。地上のソフトはヤード・ポンド法の単位で値を出し、探査機のソフトはメートル法の単位で受け取っていました。この単位の変換もれで軌道の計算がずれ、探査機は火星に近づきすぎたのです。

調査した委員会は、ソフトを端から端まで通して確かめる検証が足りなかったことも、原因の 1 つに挙げました。予約アプリでも、画面・サーバー・データベースをつないで通しで確かめることが欠かせません。前の節の 18:00 と 18:30 のように、境目の値を選んで確かめるのも、テストでよく使う方法です。

部品をつないで通しで確かめることが、大きな失敗を防ぎます。

クイズアプリづくりのクイズ

答えを 1 つ選んでください。

  1. Q11999 年、NASA の火星探査機が失われた、いちばんの原因は?

  2. Q219:00 に閉まる店。60 分のメニューを予約できる、最後の開始時刻は?

  3. Q3経済産業省の 2019 年の試算。2030 年に IT 人材は最大で約何人足りなくなる?

0 / 3 問に回答

04

予約アプリをつくるエンジニアの 1 日(例)

ここでは、美容院や病院向けの予約アプリをつくる会社で働くエンジニアの 1 日の例を紹介します。働き方は、会社やチームによって違います。

朝は、利用者からの問い合わせや不具合の報告を確かめます。「月末の日だけ予約できない」という報告なら、日付をくり返し数える処理の、終わりの条件を疑います。原因が分かったら直し、同じことが起きないかを確かめるテストを足します。

午後は、新しい機能づくりです。「2 人で同じ時刻に予約したい」という要望には、2 人分の席が同じ時刻に空いているかを調べる条件を考えます。仲間とプログラムを読み合い、分かりやすい書き方になっているかも確かめます。

直す・確かめる・つくるをくり返し、アプリを少しずつ良くしていきます。

図解予約アプリをつくるエンジニアの 1 日(例)

  1. 9:30朝会チームで今日の作業を確かめる
  2. 10:00不具合の調査月末だけ予約できない原因を探す
  3. 11:30テストの追加月末や閉店前の境目を確かめる
  4. 12:30昼休み
  5. 13:30新しい機能2 人で同じ時刻に予約できるようにする
  6. 15:30読み合い仲間のプログラムを読んで意見する
  7. 17:00公開の準備試験用の環境で動きを確かめる

05

向いている人と入り方・その先

高校のうちは、情報 I のプログラミングを、手を動かして学んでください。教科書の例を少し変えて動かし、予想どおりかを確かめると力がつきます。情報 II を選べる学校なら、システムを分けてつくり、テストする流れまで体験できます。

力試しには、高校 3 年生以下が参加できる日本情報オリンピックがあります。予選の参加費は無料です。国家試験では、IPA の IT パスポート試験や基本情報技術者試験を高校生でも受けられます。どちらも、コンピュータを使う CBT 方式です。

大学は、情報工学・情報科学などの情報系の学部・学科が中心です。工学部や理学部、経営系の学部から目指す人もいます。経済産業省が 2019 年に公表した試算では、2030 年に IT 人材が最大で約 79 万人足りなくなるおそれがあるとされました。

動かないプログラムの原因を、一つずつ確かめるのが苦にならない人に向いています。経験を積むと、チームをまとめるリーダーや、何をつくるかを決める企画の仕事へ進む道があります。

授業のプログラムを自分で少し変えてみることが、いちばんの近道です。

図解高校からアプリの仕事への道(例)

  1. 1高校で学ぶ情報 I・II のプログラミング
  2. 2力を試す情報オリンピック・国家試験
  3. 3大学で深めるアルゴリズム・ソフトウェア工学
  4. 4会社に入るアプリや Web の開発チームへ
  5. 5専門を広げるリーダーや企画の仕事へ

高校生のうちに試せること

  • 空き枠を探すプログラムを書く

    30 分ごとの 18 枠を配列にして、空き(0)と予約済み(1)を並べましょう。繰り返しと条件分岐で空き枠を表示できたら、次は「2 枠続けて空いている」ときだけ表示するように直してみてください。

  • テストの表をつくって確かめる

    空き枠のプログラムが書けたら、10:00・18:00・18:30 の枠を空けたり予約済みにしたりして、表示が正しいかを確かめましょう。試す値と、期待する結果を先に表に書いておくのがこつです。

  • 日本情報オリンピックに挑戦する

    高校 3 年生以下が参加できるプログラミングの大会で、予選の参加費は無料です。過去の問題と解説も公開されています。申し込みの時期は公式サイトで確かめ、まずは過去問で練習しましょう。

    日本情報オリンピック

「アプリ・Web をつくる」に関連するコミュニティ

研究室・部活・サークルなど、全国の 81 件から探せます。

研究室をすべて見る(23 件)

よくある質問

プログラミングが苦手でも、アプリの仕事を目指せますか?

目指せます。多くのエンジニアも、短いプログラムを少しずつ変えて動かすところから始めています。情報 I の順次・分岐・反復が分かれば、アプリの部品の多くは読めるようになります。

授業で使う言語と、仕事で使う言語が違っても大丈夫ですか?

大丈夫です。変数・条件分岐・繰り返し・配列・関数の考え方は、ほとんどの言語に共通です。1 つの言語で考え方を身につければ、ほかの言語も学びやすくなります。

文系に進んでも、アプリの仕事に関われますか?

関われます。何をつくるかを決める企画や、使う人の声を集める仕事もあります。情報 I で学んだプログラムの考え方があると、エンジニアと話が通じやすくなります。