大学カタログ

図 1 情報学の広がり情報学の広がり 2

コンピュータをつくる技術

スマートフォンの中では、0 と 1 の電気の信号が 1 秒に何十億回も切り替わっています。その 0 と 1 から、アプリが動き、世界中とつながるまでのしくみをつくる分野です。

大学の実験室で、基板やサーバーの棚、ネットワークのケーブルを前に、コンピュータを組み立てて動かす学生たち

ひとことで言うと

レストランの厨房と、注文をさばく店長

CPU は料理人、メモリは調理台、データを保存する記憶装置は冷蔵庫にあたります。注文(アプリ)をさばく順番を決めるのが店長役の OS、食材や料理を運ぶのが配送役のネットワークです。この分野では、厨房そのものをどうつくり、どう回すかを学びます。

01

コンピュータのしくみ: CPU・メモリと 0 と 1

コンピュータの中心は、計算と命令の実行を受け持つ CPU と、作業中のデータを置くメモリです。どちらも、電気が流れるか流れないかの 2 つの状態、つまり 0 と 1 だけで動いています。

数も文字も写真も、すべて 0 と 1 の並びで表します。英字の「A」は 65 番で、2 進数では 01000001 です。よく使われる UTF-8 という決まりでは、日本語の文字の多くを、1 文字あたり 0 と 1 の 24 個(3 バイト)で表します。

1946 年に公開されたアメリカの ENIAC は、約 1 万 8,000 本の真空管を使い、重さは約 30 トンありました。それでも、手計算で 12 時間かかった弾道の計算を 30 秒で終えられました。いまのスマートフォンは、その何百万倍もの速さで計算します。

大学では、AND・OR・NOT などの論理回路を組み合わせて足し算の回路をつくり、CPU が命令を実行するしくみまでを順に学びます。高校の「情報 I」で学ぶ 2 進数が、その出発点です。

どんなに複雑なアプリも、最後は 0 と 1 の計算に置きかえられて動いています。

動かしてみる0 と 1 で数と文字を表す

0 と 1 を切り替えると、表す数と文字が変わります。英字の「A」(65)になる並びを探してみてください。

2 進数
00000000
10 進数
0
文字(ASCII)
―
部屋の壁に沿って並ぶ ENIAC の装置と、配線やスイッチを操作する 2 人の技術者
ENIAC を操作する 2 人の技術者。部屋いっぱいの装置を、ケーブルの差し替えとスイッチでプログラムしていました。写真: 作者不詳(Public domain・Wikimedia Commons)

02

OS: アプリとハードウェアの橋わたし

OS(オペレーティングシステム)は、アプリとハードウェアの間に立つ基本のソフトウェアです。スマートフォンの iOS や Android、パソコンの Windows や macOS がその例です。

音楽を聞きながら地図アプリを使えるのは、OS が CPU の使う時間をごく短く区切って、アプリに順番に割り当てているからです。メモリの割り当て、ファイルの保存、カメラや画面などの機器の管理も OS の仕事です。

1991 年、フィンランドのヘルシンキ大学の学生だったリーナス・トーバルズは、自作の OS の中心部分 Linux を公開しました。いまでは世界中のサーバーやスーパーコンピュータで使われ、Android の土台にもなっています。

日本では 1984 年に坂村健さんが TRON プロジェクトを始めました。その流れをくむ OS は、家電や車などに組み込まれた小さなコンピュータで広く使われています。2018 年には、その 1 つをもとにした仕様が IEEE の国際標準になりました。

OS があるおかげで、アプリをつくる人は機械ごとの細かい違いを気にせずに済みます。

図解スマートフォンの中の層

  1. アプリメッセージ・地図・カメラ・ゲーム
  2. OSCPU の時間とメモリを配り、機器を管理
  3. ドライバカメラや画面などの機器を動かす
  4. ハードウェアCPU・メモリ・画面・電池

03

ネットワーク: インターネットでデータが届くまで

LINE で友だちに写真を送るとき、データは 1 つのかたまりのままでは届きません。パケットという小さな包みに分けられ、それぞれに宛先の番号(IP アドレス)が付きます。

パケットは、ルーターという中継の機械をいくつも経由して宛先に向かいます。途中で失われたパケットは送り直し、届く順番がばらばらでも元どおりに組み立てます。1 つのパケットは多くの場合 1,500 バイトほどなので、3MB の写真なら約 2,000 個に分かれます。

海外とのやりとりは、海の底に敷かれた光ファイバーのケーブルを通ります。総務省の情報通信白書(2020 年版)は、国際間のデータ通信の 99% が海底ケーブルに支えられているという調査を紹介しています。

日本のインターネットの始まりは、1984 年に東京工業大学・慶應義塾大学・東京大学のコンピュータをつないだ JUNET です。中心になった村井純さんは、「日本のインターネットの父」と呼ばれています。

ネットワークの技術は、失われても、順番が乱れても、正しく届けるための工夫の積み重ねです。

動かしてみるデータが届くまでを見る

送ると、データが小さなパケットに分かれ、ルーターを経由して届く様子を見られます。届いたパケットが元のデータに戻るところにも注目してください。

あなたルータールータールータールーターサーバー
届いた順
青空の下に建つ、千葉県南房総市の千倉にある海底ケーブルの陸揚げ局の建物
千葉県南房総市の千倉にある KDDI の海底ケーブルの陸揚げ局。アメリカやアジアとつながる多くの国際海底ケーブルが、ここに集まっています。写真: 妖精書士(CC0・Wikimedia Commons)

04

プログラミング言語: 人の考えを機械に伝える

CPU が直接わかるのは、0 と 1 で書かれた機械語だけです。そこで、人が読み書きしやすい言葉で命令を書けるプログラミング言語がつくられてきました。書いたプログラムは、コンパイラやインタプリタという翻訳役のソフトが機械語に直します。

言語にはそれぞれ得意なことがあります。C 言語は機械に近く速く動くので OS や家電のソフトに、Python は短く書けるので AI やデータ分析によく使われます。Web ページを動かすのは、おもに JavaScript です。

Ruby は、まつもとゆきひろさんがつくり、1995 年に公開した日本生まれの言語です。2012 年には、日本で生まれたプログラミング言語として初めて ISO/IEC の国際規格になりました。

大学では、言語を使う側だけでなく、新しい言語やコンパイラをつくる側の技術も学びます。言語が変わっても、変数・条件分岐・くり返しという考え方は共通です。

1 つの言語で身につけた考え方は、ほかの言語でもそのまま使えます。

図解代表的な言語の得意なこと

C 言語

  • 機械に近く、速く動く
  • OS や家電のソフトに使う

Python

  • 短く読みやすく書ける
  • AI やデータ分析で人気

Scratch

  • ブロックを並べて書く
  • はじめの 1 歩に向く

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

  • データの通り道を調べる

    Windows ならコマンドプロンプトで「tracert www.google.com」と打ってみましょう。Mac ならターミナルで「traceroute www.google.com」です。データが経由するルーターの一覧が出るので、途中で時間が急に増える所を探してみましょう。

  • NAND からコンピュータをつくる

    Nand2Tetris は、NAND という 1 種類の回路から CPU、OS までを順につくる教材で、課題と道具をサイトから無料で使えます。英語のサイトですが、日本語訳の本『コンピュータシステムの理論と実装』(オライリー・ジャパン)も出ています。

    Nand2Tetris
  • パソコン甲子園に出る

    会津大学などが開く、高校生・高専生のための全国大会です。プログラミング部門は同じ学校の 2 人 1 組で参加します。参加の条件と日程は、年度ごとに公式サイトで確認してください。

    パソコン甲子園

「コンピュータをつくる技術」に関連するコミュニティ

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

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

よくある質問

電子回路やはんだ付けの経験がなくても大丈夫ですか?

多くの大学では、論理回路やコンピュータのしくみを 2 年ごろの授業で一から学びます。実験で回路を組むことはありますが、入学前の経験は求められません。授業の内容は大学によって異なるので、カリキュラムで確認してください。

情報工学と電気電子工学の違いは?

電気電子工学は電気の流れや電子部品・電力そのものを、情報工学はそれらを組み合わせたコンピュータとソフトウェアを主に扱います。CPU の設計のように両方にまたがる分野もあり、学ぶ科目が重なる大学もあります。

高校生でも受けられる資格はありますか?

IPA(情報処理推進機構)の IT パスポート試験や基本情報技術者試験は、年齢や学歴に関係なく受験できます。コンピュータやネットワークのしくみを、順序立てて学ぶきっかけになります。