コンピュータの仕組みとアイデアを理解する 〜 Excel で人力コンピュータを作ってみよう!
木の枝一本で、僕らは砂場に宇宙をつくる。 ー 『動け!教室』より
そして、コンピュータも。
といっても、せっかくなので枝と砂場の変わりにExcelをつかってコンピュータを作ってみようという note 。
そうすると、きっと君もコンピュータを好きになるよ。
準備するもの
●Excel
古いバージョンやタブレットの無料版、オンラインのExcelでもOK。
今回は誰でもやりやすいようにオンライン版のExcelでやります。
マイクロソフトアカウントがあれば無料で使えるからね。
使うまでの方法がわからなければ誰かに相談しよう。
では早速はじめます!
ご注意:わかりやすさと正確さはシーソーのあっちとこっちみたいな関係。ここではExcelで操作しやすくするためにいろいろ省略しちゃうね。なので、より正確な説明は専門書やWikipedia等を参考にしてね。
参考とするコンピュータの原理
いろんなコンピュータの原理があるけど、ここではチューリングマシーンを参考にします。
人工知能の父といわれるアラン・チューリングさんが、その頭脳と枝と砂場で(まあ紙と鉛筆)、今、僕たちが使っているほとんどのコンピュータの原理に通じるマシーンを生み出したんだ。
それが、チューリングマシーン。
マシーンだぜ?
僕らをどこかへ連れって行ってくれそうじゃない?
名前はカッコいいけど、原理とかって難しそう?
そんな事ないよー
砂場にも描けるくらいシンプルだからビビらないで。
アウトドア派の君ならExcelじゃなくても、
無人島にある材料でもつくれるゼ!(あばれる君風)
コンピュータはどういうふうにできてるか?
まず本体の部品はたった3つ。
部品1: 一本の長いテープ
チューリングさんのイメージでは長さは無限。
実際には無限は無理だから適当な長さでいいよ。
そして、それにはしるしをつける事ができる。
でも、どこでも適当につけるんじゃなくて、
方眼紙や竹のフシのように仕切りがあって、その間につけるんだ。
※なにかしるしが付けられるモノならテープじゃなくてもいい。例えば木だって紙だって土だって、そしてExcelのセルだって良いんだ。
部品2:一本のウデ(腕)
このウデはテープの上を移動して、テープにしるしをつけたり、しるしを消したりすることができる。
※つけたり消したり、だからエクセルや砂場がぴったり。紙と鉛筆なら消しゴムを追加するか、時間軸を作くろう。
そして、このウデは次の部品の指示通りに動く。
部品3:ルールブック
このルールブック(※1)には、
ウデを動かし、テープのしるしを操作(※2)するためのルールが書かれている。
※1 ルールブックというのは、
たとえば、野球やサッカーや将棋やポケカにはルールがあるよね。
初めはこうしなさいとか、次はこうして、こんな時はああしなさいとか。
それらがまとめられているブックのこと。
コンピュータのルールブックは、こんな感じ
ページ1. 腕の下のしるしをみなさい。
しるしがなかったら右に一歩動いて、もう一度ページ1。
しるしがあったら 右に一歩動いて、ページ2へ
ページ2. 腕の下のしるしをみなさい。
しるしがなかったらしるしをつけて、ページ3へ
などなど…。
僕ぐらいの年代だと、RGBゲームが買ってもらえないときに、ゲームブックというのが代わりになった。冒険の物語を読み進めて、戦うなら10ページ、逃げるなら15ページなんて物語が分かれていくんだ。まあそんな感じ。
それと細かい事をいうと、このルールブックの何ページを見ているかって状態は、ウデが管理(保存)するのだけど、今回はルールを適用した結果だけ使うので、その辺は省きます。
※2 このウデが行うしるしの操作は”調理”って言ってもいい。最初にある材料(しるしの状態)をルール=レシピに従って調理すると料理(最後のしるしの状態)になる。
次に、
本体につなげる入力装置と出力装置について。
装置1:キーボード (入力装置)
テープにしるしのパターンを書き込む装置です。
あれ?しるしはウデがつけるんじゃないの?と思った方もいると思います。
ざっくり言うと、あらかじめテープ上にしるしをつけるのが入力装置で、そのあとでルールブックに従ってしるしを変更していくのがウデだと思ってください。
たとえば、しるしありを●、しるしなしを○とすると
Aボタンをおしたら、テープのどこかに ○● と書き込むとかね。
装置2:モニター (出力装置)
テープ上のしるしを読み込んで、私たちが理解できる形にする装置です。
私たちが理解できる形というのは視覚的だったり、音声だったりします。
ウデが操作した結果のしるしのパターンを私たちが感じ取れる形にします。
今回は結果をもとにランプを光らせます。
コンピュータを作る
さて本体と、入力と出力の部品を確認したら、早速作ってみよう!
見やすいようにモニターからつくるね。
0.準備
新しいブックを作成し、列幅を調整しよう。
Excelでの操作
・Excelオンラインを開くか、Excelを起動し新しい空白のブックを新規作成
・セルA1に マイコンピュータ と入力
・A列を10文字程度の列幅にする
・B:Z列を2文字程度の列幅にする(方眼紙のような表示)
1. モニターを作る
今回は縦5、横3のセル範囲をモニターとします。
電光掲示板のようなものです。縦一列を光らせれば 1とか I に見えるよね。
本物のモニターはもっと電球が細かいだけで原理は一緒。
Excelでの操作
・セルA3に モニター と入力します。
・セルE3:G7を選択し、ホームタブ→下罫線ボタンの▼を押して
”すべての罫線”または”格子”を選択します。
2.ウデを作る
今回は僕たちがウデの役割を果たすよ。
あとで一本のウデになってルールブックをみながらテープを操作しよう。
Excelでの操作
とくに無し。雰囲気作りで図形機能でウデっぽいのを描いても良いです。
・セルA9に ウデ と入力
3.テープを作る
今回は、動きを分かりやすくするために、キーボードからしるしを受け取る場所と、モニターへ受け渡す場所を分けて作ります。
Excelでの操作
・セルA11に テープ と入力します。
・セルD11に 〜 と入力します。
・セルB11:C11を選択し、”すべての罫線”または”格子”の罫線を設定します。
・セルD11に”〜”を入力します。
・セルE11:S11に、”すべての罫線”または”格子”の罫線を設定します。
テープを作ったら、モニターとリンクさせます。これがモニターのランプのスイッチになるわけです。
Excelでの操作
テープのセルE11:S11をモニターのセルE3:G7にリンクします。
※オンライン版のExcelではリンク貼り付けができないので、
以下のように数式をいれます。
・セルE3に =E11 と入力し、オートフィルでG3までコピー
・セルE4に =H11 と入力し、オートフィルでG4までコピー
・セルE5に =K11 と入力し、オートフィルでG5までコピー
・セルE6に =N11 と入力し、オートフィルでG6までコピー
・セルE7に =Q11 と入力し、オートフィルでG7までコピー
4.キーボードを作る
今回はシンプルに "A"、"B"、"C"、3つのキーだけのキーボードにするね。
Excelでの操作
・セルA15に"キーボード"と入力します。
・セルB15に"A"、セルC15に"B"、セルD15に"C"と入力します。
・セルB15:D15を選択し、”すべての罫線”または”格子”の罫線を設定します。
5.ルールブックを作る
今回のルールブックは、ウデに対して、こまかな動きは省略して、初めのパターンと終わりのパターンの表を使います。
これは、掛け算の九九を覚えるようなものです。そうすれば、毎回計算する必要はありませんから。
以下、書いてある通りですが、面倒だと思うので図を参考に入力してもOKです。
Excelでの操作
・セルA17に"ルール"と入力します。
<表1:キーボードのキー → しるしパターン対応表>
・セルA18に”表1”と入力します。
・セルA19に"キーA"と入力し、となりのB19:C19に格子の罫線を引きます。
続けてB19に0、C19に1を入力します。
・セルA21に"キーB"と入力し、となりのB21:C21に格子の罫線を引きます。
続けてB21に1、C21に0を入力します。
・セルA23に"キーC"と入力し、となりのB23:C23に格子の罫線を引きます。
続けてB23に1、C23にも1を入力します。
<表2:キーボードのしるしパターン → モニター出力パターン対応表>
・セルG18に”表2”と入力します。
・セルG19:H19とセルJ19:X19に格子の罫線を引きます。
セルG19から右へ以下を入力します。
0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 0 1
・セルG21:H21とセルJ21:X21に格子の罫線を引きます。
以下のパターンで入力します。
1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0
・セルG23:H23とセルJ23:X23に格子の罫線を引きます。
以下のパターンで入力します。
1 1 0 1 0 1 0 1 1 0 0 1 0 1 0 1 0
さらに、条件付き書式を適用して少し見やすくします。
Excelでの操作
0と1では見難いので見た目を条件付き書式で○と●の記号に置き換えます。
・モニターとテープおよびルールの格子罫線が引かれているセルを全て選択し、
ホームタブの[条件付き書式]をクリック。出てきたメニューの[アイコンセット]をポイントし、[白黒の丸]をクリックします。
以上で準備が整いました。
コンピュータを動かす
なぜコンピュータを動かすのか?
答え:やりたいことをやりたいから。
ここではこんなやりたいことをやります。
やりたいこと:
キーボードから文字のキーを入力すると、モニターにその文字を表示する
これは、ほとんどのコンピュータ=ノートパソコンや携帯、スマホ、タブレット、いずれもが行っている基本中の基本動作だよね。
では、動かしましょう。以下の3ステップです。
ステップ1. 人間がキーボードから入力する
では、このExcelコンピュータのキーボードから”A” のキーを入力してみましょう。
はい、Aのキーを押したつもりになってください。
そうすると、ルールの表1の”キーA”のパターン”○●”をテープのセルB11:C11にコピー(またはそれぞれのセルに0と1を入力)します。
これで、キーボード(入力装置)からのしるしがテープに書き込まれました。
ステップ2. コンピュータが情報処理をする
次に入力されたパターンをルールに基づいてコンピュータが処理をします。
今回は人力コンピュータですので、私たちが処理します。
といっても面倒な処理は省いて、結論だけ反映させます。
ここでは、ルール表2を参考に、入力パターンに対応する出力パターンをテープに書き込みましょう。
表2の”キーA”の出力パターンJ19:X19 をテープE11:S11に入力します。コピペOK。
ステップ3.人間がモニターの表示を確認する
するとどうでしょう?
モニターにAの文字が表示されたと思います。
Aに見えない?
薄目にして見てみて!
宿題。
自分で B や C の入力動作をやってみてどうなるか確認してね。
さらに、もっと細かなモニターをつくって、もっと細かなパターンを表にして動かすのもいいね。
まとめ
今回、Excel人力コンピュータでやりたいことは、
キーボードから文字のキーを入力すると、モニターにその文字を表示する
でした。
この動きをまとめると下の図のようになります。
スタートからゴールに向かって、
ステップ1. 私たちがキーボードからキーAを叩くと、ルール表1に従い、対応するしるしがテープに書き込まれる
ステップ2. ウデはルール表2に従い、対応する出力用のしるし(J19:X19)をテープに書き込むように動作する。
ステップ3. モニターはテープに書き込まれたしるしに対応するセルを光らせる(ここでは黒丸)。結果、人間にはAという文字が見える。
さて、今回でてきた、テープやウデなどの用語をもう少しコンピュータに近い用語に置き換えると次のようになるよ。
用語の変換
ウデ = CPU
テープ = 記憶装置
しるし = 情報
ルールブック = プログラム
ルール表1※ = 文字コード
ルール表2※ = フォント
※ルールブックの中でも表にまとめることができるような性質のもの
コンピュータがやっていることは、だいたい今回のような感じでエクセルだって砂場だってシミュレーションできるんだ。
ステップ1. 入力装置は、私たち物理世界の出来事を、ルールに基づいてコンピュータが操作できる情報(=しるし)に変換し、コンピュータに渡す。
ステップ2. コンピュータ本体は、その受け取った情報を、これまたルールに基づいてああしたり、こうしたり操作して変換する。
ステップ3. 出力装置は、コンピュータが操作した結果の情報を、ルールに基づいて私たち物理世界の出来事に変換して、私たちに伝える。
だから、コンピュータは 情報を処理する機械 という。
逆にいうとそれだけ。
私たちが直接触れたり感じりするのは、入力装置や出力装置。
まあ、だから理解されにくいのだけどね…。
ところで、
実は私たちの脳みそもそうだったりします。
私たちの脳は、実際には脳細胞の中にあるしるしを操作しているだけ。
入力装置や出力装置はもちろん目や口や腕や足。
チューリングさんの発想もそこにある。
それはまたいずれ詳しくnoteします。
では、またね。
令和2年9月1日 こちらの街は秋風