トラック1・📜プログラムとは何か

コンピュータは何をする機械か

読む目安 約10分・ゴール:コンピュータが「超高速だが命令どおりにしか動かない機械」であることを、自分の言葉で説明できる

アプリでこのトピックを学ぶ(無料・登録不要)

このトピックの要点

スマートフォンもゲーム機も自動改札機も、中身はコンピュータです。では、コンピュータとはそもそも何をする機械なのでしょうか。ここをはっきりさせておくと、この先の学習で迷子になりません。

コンピュータの仕事は、突き詰めるとたった3つです。入力(数や文字を受け取る)、処理(決められた計算をする)、出力(結果を画面やファイルに出す)。この3つの繰り返しだけで、動画の再生も、銀行の振込も、自動運転も成り立っています。

入力・処理・出力の3つの箱が矢印でつながった図
入力・処理・出力の3つの箱が矢印でつながった図

それなら電卓と同じでは、と思うかもしれません。実際とても近いのですが、決定的な違いがひとつあります。コンピュータは手順そのものを覚えておいて、あとから何度でも自動で実行できるのです。この覚えさせた手順書のことをプログラムと呼びます。電卓は人がボタンを押すたびに1回計算するだけですが、コンピュータは「1万人分の給与を順に計算せよ」という手順書を渡せば、あとは黙って最後までやり切ります。

賢いのではなく、速くて、正確で、飽きない

コンピュータは賢い機械だと思われがちですが、この理解は少しずれています。コンピュータは言われたことしかしない機械です。その代わり、人間には真似できない3つの力を持っています。

苦手なこともはっきりしています。「いい感じにやっておいて」がまったく通じません。空気も行間も読まず、こちらの書き間違いさえ忠実に実行してしまいます。ですから、思ったのと違う動きをしたときに疑うべきは、機械ではなく自分の書いた手順のほうです。この考え方は、第3トラックのデバッグ訓練でくり返し使うことになります。

どのくらい速いのか実感しにくいので、一つ例を挙げます。1000人分のテストの平均点を電卓で出すなら、休憩なしでも1時間はかかるでしょう。同じ処理をコンピュータは1000分の1秒で終えます。しかも人数が1万人でも100万人でも、手順書を書き直す必要はありません。同じ手順が、量が増えてもそのまま使える——この性質が、のちに学ぶ繰り返し(ループ)の価値につながっていきます。

ビットボクたち機械はズルをしないけど、気も利かせないんだ。だから手順は具体的にね。

AIが人間のように受け答えをする時代になっても、この性質は変わっていません。AIの中身もまた、膨大な数の足し算と掛け算を猛烈な速さで繰り返しているだけです。「賢く見えるほど、大量の単純作業」——それがコンピュータの正体です。

つまりプログラミングの学習とは、難しい呪文を覚えることではありません。曖昧さのない手順を組み立てる練習なのです。この第0部ではまだC言語の文法には入りません。その前に、機械が何をどう動かしているのかを見ておきます。急がば回れ、です。

アプリでこのトピックを学ぶ(無料・登録不要)

確認問題

確認問題 1

コンピュータの基本的な働きを3つに分けたものとして、最も適切な組み合わせはどれでしょう。

  1. 記憶 → 発想 → 判断
  2. 入力 → 処理 → 出力
  3. 起動 → 保存 → 終了
  4. 通信 → 表示 → 印刷
答えを見る

正解:B(入力 → 処理 → 出力)

コンピュータの仕事は「入力(数や文字を受け取る)→処理(決められた計算をする)→出力(結果を出す)」の3つに集約できます。動画再生も銀行の振込も、この繰り返しです。ほかの選択肢は、この3つの一部分にすぎないか(起動・保存・通信・表示)、コンピュータが行わない働き(発想)を含んでいます。

確認問題 2

コンピュータが苦手なこととして、正しいものはどれでしょう。

  1. 同じ計算を何万回も繰り返すこと
  2. 1秒間に何十億回の計算をすること
  3. 「いい感じにやっておいて」という曖昧な指示を汲み取ること
  4. 指示された通りに正確に動くこと
答えを見る

正解:C(「いい感じにやっておいて」という曖昧な指示を汲み取ること)

コンピュータは「速い・正確・飽きない」が得意で、繰り返しも高速計算も正確な実行も全部得意分野です。唯一できないのが、空気を読んで足りない指示を補うこと。だからこそ、私たちは曖昧さのない手順を書く必要があります。

「プログラムとは何か」の目次

  1. コンピュータは何をする機械か
  2. プログラムとは「手順書」である
  3. ソースコードから機械語へ——コンパイルの旅
  4. CPUとメモリの模式図
  5. 命令実行サイクル(Fetch-Decode-Execute)
  6. プログラミング言語の地図とCの位置
  7. なぜ最初にC言語なのか
  8. 0と1ですべてを表す——2進数の入口

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版の販売ページは準備中です。

ほかのトラック

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版