かながわグローバルIT研究所コンピュータとコンピュータサイエンスの楽しさを伝えます。多くの人にコンピュータサイエンスを知ってもらおうという「13才からのコンピュータサイエンス」シリーズ。今回は「そもそもコンピュータって何?」というお話しです。講演した内容を4回に分けて公開するうちの第1回です。わたしたちが使っているコンピュータは、「プログラムに従って情報を作る」のに必要な仕組みでできている。コンピュータサイエンスへの関心の高まり今回はコンピュータサイエンスの根本についてのお話しです。コンピュータサイエンスって、言葉として日本ではまだそんなに定着していないですが、最近は「コンピュータサイエンス」というキーワードで検索してこの「かながわグローバルIT研究所」のサイトを見つけて、訪問される読者の方がとても増えています。コンピュータサイエンスへの関心は着実に高まっていると感じます。それらとコンピュータサイエンスがどう違うのか?今回はそういう分類にはたちいりません。わたしはコンピュータサイエンスの教育を受けてきたし、コンピュータサイエンスが大好きです。コンピュータサイエンスに関する記事や文献を大量に読んで暮らしている人間です。本質が知られていない感のあるコンピュータサイエンスですが、その楽しさを多くの人に知ってもらいたい。今回はコンピュータサイエンスの基本のき、「コンピュータって何か?」というお話しから始めようと思います。コンピュータを知り、コンピュータサイエンスを知ろうコンピュータサイエンスを知るために、まず「コンピュータって何だろう」を考えてみましょう。上は、講演資料のページを画像化したものです。この記事ではこんなふうに、講演の話の流れに沿って、講演資料を使いながらお話ししていこうと思います。ちなみに、このページに登場しているオレンジ色のロボットっぽいキャラクターは「シイ」というオリジナルキャラクターです。「シイ」、「ピイ」、「ユウ」の三人組の一人です。ペンギンのほうは「ペン」。一人、「グイン」というペンギンもいます。そもそもコンピュータサイエンスって一体何のことか?と普通の方は思われていると思います。一言で言うと、「コンピュータに関する学問」ということになります。その範囲には「コンピュータはどういう仕組みでできているのか、どのようにしてよりよいコンピュータを作るのか」という観点からの取り組みも当然含まれていますが、それだけではありません。「どうやったらコンピュータをもっとうまく活用できるのか」という観点からの取り組み、例えばアルゴリズムやプログラミング言語から、コンピュータによってどうやってよりよい社会を創り出すのか、といったことも全部含んだ、とても幅広い学問分野です。コンピュータが出現してまだ数十年。その短い歴史でも、コンピュータの仕組みや使われ方は大きく高度化しました。数十年前と今では、コンピュータの仕組みや機能も、使われ方も全然違います。言えることは、社会の中でコンピュータが果たす役割はどんどん広がってきましたし、これからももっともっと広がっていくだろう、ということです。コンピュータの仕組みや使われ方が大きく変わり続けてきたのと同じように、コンピュータサイエンスも変化し続けてきました。コンピュータサイエンスは何を解決しようとしているのか、というもの時代によって変わってきましたし、これからも変わっていくでしょう。コンピュータサイエンスの根本は、常に「コンピュータ」です。コンピュータが何なのかを理解することが、コンピュータサイエンスの第一歩ということになります。わたしたちの日常生活とコンピュータわたしたちの日常生活の隅々に、コンピュータが普及しています。パソコン、スマートフォン、タブレット。それだけではありません。お仕事の場面、コンビニのATM、駅の改札口。天気予報や自動車エンジンの中。地図アプリやデジカメの中。それでは、わたしたちの日常生活には、どんなコンピュータが関わっているのでしょうか。思い浮かぶのは、図の一番上にあようなノートパソコンやスマホ、タブレットだと思います。一般家庭でも、それらは色々な使い方をされていますし、お仕事でも、みんなでわいわいやりながらパソコンなどを使って作業する、というのはよくあることだと思います。それ以外にも、例えばコンビニに行って、店内のATMでお金おろした時。そのATMの中にもコンピュータは入っていますし、ATMの中にあるコンピュータは、遠く離れたところにあるコンピュータと、ネットワークを経由してやりとりをして、お客さんの大事な口座のお金を管理しています。自動改札があって、その上には行き先表示板があって時刻などが色々書いてあります。この写真の中にもたくさんのコンピュータがお仕事をしています。皆さんが毎日見る天気予報。そこでは、人工衛星から撮った画像だとか、人口衛星からのデータに基づく気象シミュレーションで作った予報を使っています。知られていないことの例ですが、自動車のエンジンでもコンピュータが仕事をしています。今では、排気ガスの環境基準をクリアするためには、エンジンのシリンダーの中に、どういうタイミングで、どれくらいの燃料入れるかって、全部コンピュータで制御しないと不可能です。いういろんな制御のためのプログラムの開発コストが、自動車を開発するコストの大きな部分を占めるようにもなっています。ほかには、皆さんがスマホで日常的に使うような地図アプリです。GPSというのは、人工衛星からの信号を受信しながら自分の位置を割り出す仕組みですが、その結果を画面上でわかりやすく見せてくれるのが地図アプリです。コンピュータはスマホだけでなくていろんな機器の中で仕事をしています。デジカメの中にもコンピュータは入っていますし、ほかにも家電や電子機器など、色々なところにもコンピュータがあります。こんなにいろんな使い方をされているコンピュータですので、「結局、コンピュータって何なのか?」というのは、逆にわかりにくくなってるとも言えます。コンピュータといえば、ネット、2進数、電気?電子計算機?コンピュータは「電子計算機」か?いえいえ、今のコンピュータだけでなく、昔のコンピュータも考えてみると、ちょっと違うことがわかります。中学生や高校生に、「コンピュータってなんだと思う?」と聞くと、上のスライドのような答えが返ってくるかもしれません。コンピュータって電子計算機だよね、電気で動いててネットも使えるんだよね、それからコンピュータといえば、0と1なんでしょ、とか。あとはプログラミングなんかカッコイイよね。それらは確かに外れではないんですけど、「プログラミング」というところ以外は、本質ではないことばかりです。身の回りにあるコンピュータを考えると、確かにそれぞれ当てはまってはいるんですが、それらが当てはまらないコンピュータもたくさんあります。今のコンピュータだけでなく、昔のコンピュータも含めて考えると、こういう特徴はほとんど当てはまりません。蒸気機関のコンピュータ、10進数を使うコンピュータインターネットが普及する以前からコンピュータはありました。ゼロとイチ以外の数字を使うコンピュータもありました。昔には、電気ではなく蒸気機関を動力にするコンピュータも設計されていたのです。(http://creativecommons.org/licenses/by-sa/2.0)],ウィキメディア・コモンズ経由で今ではコンピュータといえばネットに繋いで使うもの、という感じですが、インターネット以前からコンピュータはもちろん存在していました。私の子ども時代は図の左上のようなコンピュータが仕事場や家庭に、今ほど多くはなくとも実際にあったわけです。スライドの右の大きな写真ですが、これは教科書などにも載っていますので、わかる人にはわかるENIAC(エニアック)ですね。1940年代のコンピュータですが、重要なのはENIACに内部は0と1だけじゃなくて、23456789も使っていました。二進数ではなく、十進数を使うコンピュータでした。0と1だけじゃないコンピュータも十分可能なのであって、今のコンピュータのように0と1で動くというのは必須ではありません。Engine)」です。あるチャールズ・バベッジが提案して、設計したもので、当時の大英帝国政府はこれに巡洋艦が一隻造れるくらいの莫大な予算を投じました。動力は蒸気機関なのですが、ちゃんとプログラムを使って計算することができますし、なんとプリンタも備えていました。残念ながら、設計当時はいろいろあって実際には完成しなかったのですが、その時の設定図を当時の技術を使って再現したものがイギリスの博物館においてあるそうです。動くそうです、何が言いたいかというと、電気がなくてもコンピュータは可能だ、ということです。ほんとうにあった「人間コンピュータ」そもそも「コンピュータ」という言葉ができたのは1640年ごろ。「計算するのがお仕事の人」を指していました。日本では「計算手(けいさんしゅ)」と呼ばれ、数十年前にはまだまだ活躍していました。computer」という言葉は、1640年頃から使われていました。日本ではまだ江戸時代のことです。その当時のコンピュータは今のものとは全く違っていまして、当時は「計算するのがお仕事の人」、つまり計算する職業のことをコンピュータと呼んでいました。図の下の写真は17世紀よりももっと最近の、20世紀の写真で、宇宙開発で有名なあのNASA(アメリカ航空宇宙局)にいらっしゃった人間コンピュータの方々です。これ1940年代の写真なんですが、この人間コンピュータたちの毎日のお仕事というのは、宇宙開発に必要なさまざまな数値を計算するというものでした。ちなみに日本でも、こういう職業は当然あったのですが、「コンピュータ」ではなく「計算手(けいさんしゅ)」と呼ばれていたそうです。コンピュータは「電子計算機」ではない!「電子計算機」という呼び名は、コンピュータの特徴を表していません。最近はあまり使われなくなったようですが、昔はよく「電子計算機」という言葉で説明されていました。この「電子計算機」ですが、わたしはずっと前から違和感を感じていました。コンピュータを電子計算機というのは、ちょっと違う。いい言葉を私も思いつかないです。「電子」については、電子や電気を使わないコンピュータもあるので本質ではありません。「計算機」というと、思い浮かぶのはそろばんとか電卓です。確かにコンピュータは計算もできるんですが、計算っぽくないこともやっています。最近は、メールするよりもスマホでLINEやSlackという方も多くなりました。LINEはコンピュータによって実現されているサービスですが、コンピュータがLINEを実現するためにやっていることが「計算」であるというのは違うと思います。「電子計算機」という呼び名がコンピュータの特徴を表してないのが問題です。日本語でほかにいい言葉はみあたりません。最近、子ども向けにプログラミングとか、コンピュータが流行っていますが、「そもそもコンピュータとは、〇〇な機器のことです」という根本的な定義から始まる本は見ないです。コンピュータが社会のあちこちに広まったことで逆に、「コンピュータとは何なのか」がとてもわかりにくくなっていると思います。作ること」、「情報(プログラム)によって動くこと」。これがコンピュータの本質です。それは、機械ではなく人間であってもいいのです。それでは、コンピュータは何なのか?まず、コンピュータは電気で動かなくてもいいし、ネットにつながらなくてもいいし、0と1以外の数字を使っても構わないし、人間であってもいいです。今まで紹介したいろいろなコンピュータに共通することがあります。それは、「情報を作っている」ということ。言うと、「情報を作る」というコンピュータの働きは、プログラムという「情報」によってコントロールされているということです。プログラムという情報を与えると、それに従って情報を作る。プログラムを変えると、違う動きをして、違う情報を作り出す。このような特徴を持ったものがコンピュータであると言えます。人間コンピュータも実はこのような働きをしていますし、いままで紹介したコンピュータは全て、この2つの条件を満たしています。これが、コンピュータサイエンティストにとってのコンピュータです。コンピュータは、機械であっても、人間のような生き物であってもよい。「情報を作っていて、情報によって動いているもの」は何であってもコンピュータとして考える。いろいろなコンピュータがありますが、それらを原理的に同じものとして扱うという点が、コンピュータサイエンスの面白いところだと思っています。それでは「情報」とは何でしょうか?次回「コンピュータって何だろう編(2)」に続きます。technology.。