小学校の運動会の絵

今回は小学校の運動会がテーマ。コンピュータサイエンスと、いったいどんな関連があるのでしょうか?

先日は小学1年生の一人息子の運動会でした。あまり暑くはない曇り空は、運動会としては恵まれていたと思います。次々に繰り広げられる徒競走や団体競技、それらにひたむきに取り組む児童たちの姿にとても感動。日本の小学校のありがたさをつくづくと感じました。

さて小学校での体験を思い返しながら「小学校の運動会とコンピュータサイエンスで何か関連はないか?」と考えてみたところ、ありましたありました。それも、現代の全てのコンピュータに共通する「プログラム内蔵方式」や「フォン・ノイマン型アーキテクチャ(基本構成)」と呼ばれる考え方。これは、「CPU(中央処理装置)」、「メモリ(主記憶装置)」、「ハードディスク(外部記憶装置)」、「入力(インプット)」、「出力(アウトプット)」などからなる基本的なコンピュータの内部構成のこと。

このような「フォン・ノイマン型コンピュータ」(つまり現代のコンピュータ)をスムーズに動作されるための工夫と同じものが、小学校の運動会にも表れているのです。今回はそのあたりを紹介しようと思います。世の中の全てを「コンピュータサイエンスの眼鏡で見る」というコンピュータ科学者の考え方のご紹介にもなると思います。

運動会の段取りはコンピュータの仕組みと同じ

運動会のどこがコンピュータと似ているのかというと、ズバリ、それは当日の進め方です。当日の流れが「プログラム」と呼ばれることは偶然ではありません。コンピュータのプログラムも、運動会のプログラムも、「段取り」であることに変わりはないからです。

さてそれはただの言葉の話。運動会の進め方とコンピュータのプログラム実行をもっと詳しく見てみましょう。まずは運動会の進め方です。

学校の校庭の図に、運動会の際の児童席、本部、入場門、退場門を書き込んでいる絵

運動会の進め方を、各児童の視点で見てましょう。児童席からフィールドへ、そしてまた児童席、という動き方になります。

上の図は、運動会の日の校庭を上から見たところです。余計な詳細は省いていますが、こんな感じではないでしょうか。トラックまたはトラックの中で児童たちは演技や競技をします。これを「フィールド」と呼びましょう。児童は普段は、フィールドを取り巻くように配置された「児童席」にいて、ほかの児童の演技や競技を見ています。

さて、個別の児童の動きを見てみましょう。普段は児童席にいるのですが、自分たちの一つ前のグループがフィールドに入って演技や競技をし始めると、この児童は入場門付近に並んで、自分たちの演技や競技の準備をします。これが図の①です。

そして前のグループが退場すると、今度は自分たちがフィールドに入場して、演技や競技を行います。これが②です。(このとき、次のグループの児童は①のように入場門への集合を開始します。)

終わったら退場門から退場して、自分の席に戻ります。これが③です。(このとき、次のグループの児童たちは②のようにフィールドに入ります。)

演技は競技はフィールドで行うので、出番の児童は次々にフィールドに入っていき、出番が終わったら自分の席に戻ります。これを連続して行うことで、運動会がスムーズに進行していく段取りになっています。

運動会におけるフィールドとは「重要なイベントが起こる大事な場所」。イベントとは、演技や競技のことです。ここで次々にイベントを起こすためには、イベントに必要なものを滞りなくフィールドに供給していく必要がありますが、「演技や競技に必要なもの」とは児童たちのこと。なので、フィールドが空っぽのままで何も起こらないような時間を無くすために、児童たちが次々にフィールドに入ってイベントを起こしていく段取りが、小学校の運動会では自然に行われているのです。

コンピュータの構成と実行の段取り

それでは、コンピュータの構成と実行の段取りを、運動会の進め方と照らし合わせてみましょう。ここでは、コンピュータの基本構成要素のうち、「CPU(中央処理装置)」と「メモリ(主記憶装置)」だけを考えれば十分です。

CPU(中央処理装置)はよく「コンピュータの頭脳」と言われますが、実際の役割はもっと単純に、「プログラムに書かれた命令を1つずつ順番に実行していく」と考えることができます。

メモリは、あの4GBとか8GBといってパソコンの仕様表などに載っているあれです。中は、32ビット(または64ビット)が一つのデータの塊りとなっていて、それがずらっと並んで格納されていると考えるとよいでしょう。実際には、個別のデータは0と1の羅列、つまり2進数です。32ビットというのは、データの塊りは0か1の記号32個で構成されている、つまり32ケタの2進数がデータの単位であるという意味です。

さて、それが運動会とどのように関連するのかを見てみましょう。

まずCPUとは「プログラムを構成するひとつひとつの指示文の実行」という重要イベントが起こる場所。そしてそのイベントに必要なものはプログラムを構成する指示文や、指示文が操作する対象のデータのことで、これらは全てメモリに格納されているのです。このように考えると、運動会のフィールドはCPUに該当し、児童はメモリに格納された個々のデータとプログラムに該当することがおわかりでしょうか。

コンピュータは以下の3つのステップを高速で繰り返しています。

  1. 次に処理するデータをメモリから読み出す。
  2. CPUが、そのデータを使って処理を行う。(このデータは、「指示文」つまりプログラムだったり、「データ」つまり指示に従って操作する対象だったりします。
  3. もし処理結果を保存する必要があるなら、それをメモリに書き出しておく。

下の図にも示しています。

CPUつまり中央処理装置と、メモリつまり主記憶装置からなるコンピュータの基本構成図

児童がデータだとすると、児童席はメモリ(主記憶装置)、フィールドはCPU(中央処理装置)になります。

データの動きは、運動会の児童の動きと似ていることがおわかりでしょうか。児童席はメモリで、フィールドはCPUと同じ働きとなっています。(図では色でそのつながりを表現しています。)ちょっと違うのは、CPUは読み込んだデータとは別のデータを新たに作ることがあること。例えば「1」と「1」を足す処理をして新しく「2」を作ったりしますね。

なお、現代のコンピュータは全て「プログラム内蔵方式」や「フォン・ノイマン型アーキテクチャ」と呼ばれる方式で設計されています。その特徴の一つが、ここで挙げた3ステップの処理方式です。なので、これは現代のコンピュータ全てに共通する処理方式と考えて間違いではないのです。

参考情報:

身近にあるコンピュータサイエンスの根本原理

現代の社会の隅々にまで浸透して、あちこちでわたしたちの生活を支えてくれているコンピュータとそのプログラム。その中で何が起こっているのかは、難しすぎてあまり興味を持てないイメージを持っている方も多いかもしれません。でもこの記事で解説したとおり、運動会の段取りと同じ原理でコンピュータとプログラムは動作しています。

もちろん、コンピュータを作った人たちが、運動会を参考にしたわけではありません。それではこの類似は何を意味しているのでしょうか。

それは、運動会のスムーズな進行も、コンピュータのスムーズな実行も、同じ原理で実現されている、ということです。どちらも、重要なイベント(運動会の演技と競技、CPUの処理)をスムーズに進行するために、イベントで使う必要なもの(参加する児童や、処理で使うデータやプログラム文)を、イベントが行われる場所に連続して送り込むことが必要で、それを実現しようとすると自ずから同じような段取りになる、ということなのです。

近い将来、プログラミングが小学校・中学校の必修科目になることがすでに決まっています。プログラミングに親しむ機会が増えるのは結構なことですが、プログラミングはコンピュータに関する1つのスキルにすぎません。プログラミングを入口として、より広く応用されているコンピュータサイエンスを身近に感じてほしいと思います。そのような願いから、この記事では運動会を例にとってコンピュータの基本構成と働きを簡単に解説してみました。

ホーム画面に戻るにはここをクリック

関連記事:

(かながわグローバルIT研究所 森岡剛)

※この記事は、2016年6月に現在のタイトルに改題し、そろばんに関する部分を「『そろばん』はコンピュータか?」として独立させました。