「13才からのコンピュータサイエンス物語」シリーズ。第一弾は「コンピュータって何だろう編」と「プログラミングって何だろう編」です。

この記事は、講演資料として作成した「13才からのコンピュータサイエンス物語」スライド資料のうち、主要なスライドの画像を貼りつけて、簡単な説明を加えたものです。

それでは、はじまりはじまり。。。


13才からのコンピュータサイエンス物語「コンピュータって何だろう編」と「プログラミングって何だろう編」のタイトルページ


13才からのコンピュータサイエンス物語「コンピュータって何だろう編」と「プログラミングって何だろう編」の見出しのページ


コンピュータサイエンスを知るために、まず「コンピュータって何だろう」を考えてみましょう。


わたしたちの日常生活の隅々に、コンピュータが普及しています。パソコン、スマートフォン、タブレット。それだけではありません。お仕事の場面、コンビニのATM、駅の改札口。天気予報や自動車エンジンの中。地図アプリやデジカメの中。


コンピュータは「電子計算機」か?いえいえ、今のコンピュータだけでなく、昔のコンピュータも考えてみると、ちょっと違うことがわかります。


インターネットが普及する以前からコンピュータはありました。ゼロとイチ以外の数字を使うコンピュータもありました。さらに昔には、電気ではなく蒸気機関を動力にするコンピュータも設計されていたのです。

(※1)解析機関(Analytical Engine)、作者 Science Museum London / Science and Society Picture Library、[CC BY-SA 2.0 (http://creativecommons.org/licenses/by-sa/2.0)]、ウィキメディア・コモンズ経由で


そもそも「コンピュータ」という言葉ができたのは1640年ごろ。「計算するのがお仕事の人」を指していました。日本では「計算手(けいさんしゅ)」と呼ばれ、数十年前にはまだまだ活躍していました。


「電子計算機」という呼び名は、コンピュータの特徴を表していません。


「情報を作ること」、「情報(プログラム)によって動くこと」。これがコンピュータの本質です。それは、機械ではなく人間であってもいいのです。


それでは、情報とは何でしょうか?「判断の助けになる知識」が情報です。


たとえば、大航海時代。航海の成功に必要なのは、勇気や運、腕前にくわえて、情報でした。天体の位置と時間から、船の位置を計算するのです。その計算は難しいので、前もっていろんなパターンの数値を計算しておいた数表が役立ちました。


数表の計算は、人間コンピュータがやっていました。計算してほしい問題を与えると、決められた計算方法に従って数表の一部の答えを出すお仕事です。


数表作りでも、「情報を作り、情報で動く」というコンピュータの特長が役立っています。このときのコンピュータは人間です。


材料となる情報(入力情報)から、結果となる情報(出力情報)を作ったのです。


そして計算方法が、プログラムにあたります。


これは数表作りの例ですが、コンピュータがやっていることは全て「情報を作り、情報で動く」で説明できます。いくつか例を見てみましょう。


スマートフォンのタッチパネルを操作して、画面の表示が変わる、という例を考えます。これも、情報を作り、情報によって動くコンピュータが実現しています。


ATMにカードを入れて暗証番号と金額をボタン入力すると、お金が出てきます。これも、ATMの中のコンピュータが「情報を作り、情報によって動く」をやっているからできることです。


ATMのコンピュータだけでは、お金を出していいかどうかの判断ができません。ですから、ATMのコンピュータは、ネットワークを介して、銀行のコンピュータとやりとりしています。銀行コンピュータが出金可と判断したときだけ、ATMコンピュータは出金指示を出すのです。


スマートフォンやATMそのものは、コンピュータではありません。コンピュータは、いろんな機械の中で、情報を扱う仕事をしているのです。


わたしたちが使っているコンピュータは、プログラムに従って情報を作る、という仕事に必要な仕組みでできています。画面やタッチパネル、キーボード、マウス、ネットワークは、コンピュータとやりとりするための仕組みですが、コンピュータの一部ではないのです。


13才からのコンピュータサイエンス物語、「コンピュータって何だろう編」と「プログラミングって何だろう編」の見出しページです。


「世界で最初のプログラマー」と呼ばれているのは、19世紀の英国のオーガスタ・エイダ・キング、ラブレイス伯爵夫人。詩人バイロンの唯一の嫡出子です。
この人の生涯と業績について話すだけで、1時間の講演になってしまうので今回はここまでです。

(※2)解析機関(Analytical Engine)、作者 Science Museum London / Science and Society Picture Library、[CC BY-SA 2.0 (http://creativecommons.org/licenses/by-sa/2.0)]、ウィキメディア・コモンズ経由で


エイダがプログラムを作ったのは、「解析機関」というコンピュータのためでした。解析機関は穴を空けたカード(パンチカード)によるプログラミングの仕組みを持っていましたが、それはジャカード織機の仕組みを参考にしたものでした。


プログラミングにはいろいろなやり方があります。たとえば940年代には、電線の配線を変えることで「プログラミング」していました。(「プログラミング」という言葉はまだ存在していませんでしたが。)
パンチカード方式は長く使われていました。写真は1960年代のIBM36というコンピュータ向けにPL/I言語で書かれたプログラムです。

(※3)コンピュータプログラムであるパンチカードの束、By ArnoldReinhold (Own work)、[CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0) or GFDL(http://www.gnu.org/copyleft/fdl.html)]、via Wikimedia Commons


今では、配線やパンチカードのプログラミングは消えてしまい、画面を見ながらキーボードで打ち込むのが普通になりました。
プログラミングは決して「ひとり作業」ではなく、みんなでワイワイ「チーム作業」のことが多いのです。


プログラミング言語はたくさんあります。でも、実はそれぞれのコンピュータが理解する言語は一つだけ。ではどうやって、コンピュータは人間が書いたプログラムを理解するのでしょうか?


まずアセンブリ言語とアセンブラという仕組みがあります。ゼロとイチよりもわかりやすい形式でプログラムを書くことができます。アセンブラは「単語おきかえ機」。アセンブリ言語のプログラムを、コンピュータ語に変換します。


さらにコンパイラとインタープリタを使う言語もあります。どちらも、人間のことばっぽい形式でプログラムを書くことができる仕組みです。コンパイラはプログラムをコンピュータ語に翻訳するプログラム。インタープリタは、プログラムを一行ずつ翻訳してコンピュータに指示するプログラムです。


わたしたちの日常生活を支える様々なコンピュータ。これらが全て、プログラムによって動いています。


最近のプログラムは巨大化しています。Facebookアプリは2000万行以上。Windowsオペレーティングシステムは5000万行以上。グーグルのインターネットサービスは20億行以上のプログラムでできているそうです。


今回はコンピュータとプログラミングがどんなものなのかを説明しました。コンピュータサイエンス世界の入口を、外から眺めたようなものです。コンピュータサイエンスにはまだまだ面白い話がたくさんあります。続きにご期待ください!


13才からのコンピュータサイエンス物語、「コンピュータって何だろう編」と「プログラミングって何だろう編」でした。