図 1 情報の広がり情報の広がり 3
コンピュータとプログラミング
コンピュータが命令を実行するしくみ、問題を解く手順(アルゴリズム)の表し方、プログラミング、乱数などを使ったシミュレーションを学ぶ単元です。共通テストの「情報 I」でも、プログラムを読み解く問題が出題されます。

ひとことで言うと
だれが行っても迷わない買い物メモ
「牛乳を 1 本。売り切れなら豆乳」「卵は安い方を 2 パック」。こう書いたメモなら、だれが買い物に行っても同じ物を買って帰れます。プログラミングは、こうした迷わない指示を、書いたとおりにしか動かないコンピュータに向けて書く作業です。

01
コンピュータのしくみ: 5 つの装置と、限りのあるビット
コンピュータは、制御装置・演算装置・記憶装置・入力装置・出力装置の 5 つでできています。制御装置と演算装置を合わせたものが CPU です。CPU は、記憶装置から命令とデータを取り出して処理します。スマートフォンも同じ構成で、タッチパネルは入力装置と出力装置を兼ねています。
この構成の元になる考え方は、19 世紀にさかのぼります。イギリスのチャールズ・バベッジは 1834 年、穴を開けたカードで命令を与える計算機、解析機関を構想しました。数を蓄える「ストア」と、計算する「ミル」を分ける設計は、今のメモリと CPU の関係と同じです。
1843 年には、エイダ・ラブレスがこの機械で数学の問題を解く手順を発表し、最初のプログラマーと呼ばれることもあります。ラブレスは、この機械が数だけでなく、音楽を作曲できるかもしれないとも書いていました。
情報 I では、コンピュータが数を決まったビット数で扱うことも学びます。8 ビットで表せる整数は 0 から 255 までで、255 に 1 を足すと 8 ビットの箱からあふれます(オーバーフロー)。小数も正確に表せないことがあり、コンピュータの計算はいつも正しいとは限りません。
5 つの装置の役割と、ビット数の限りを知ると、コンピュータの得意と苦手が見えてきます。
図解コンピュータの 5 つの装置
- 制御装置ほかの装置に指示を出す(CPU)
- 演算装置計算や比較をする(CPU)
- 記憶装置命令とデータをしまう
- 入力装置キーボード・マウス・カメラ
- 出力装置画面・スピーカー・プリンター


02
アルゴリズムと流れ図: うるう年を正しく判定する
問題を解く手順をアルゴリズムといいます。情報 I では、アルゴリズムを文章や流れ図(フローチャート)などで表し、プログラムに直します。流れ図は、処理を長方形、条件による分かれ道をひし形で描き、矢印でつなぐ図です。
うるう年の判定を考えます。国立天文台によると、西暦が 4 で割り切れる年はうるう年です。ただし、100 で割り切れて 400 で割り切れない年は平年です。そのため 2000 年はうるう年でしたが、2100 年は平年になります。
流れ図にするときは、400、100、4 の順に「割り切れるか」を調べると、まちがえにくくなります。条件を調べる順番を逆にして 4 から調べると、2100 年をうるう年と判定するプログラムができてしまいます。書いたら、2024 年、2025 年、2100 年、2000 年で確かめます。
プログラムでは、割り算の余りが 0 かどうかで「割り切れるか」を調べます。多くの言語では余りを求める記号に「%」を使い、「year % 4 == 0」のように書きます。数行で書けるので、授業で使っている言語ですぐに試せます。
条件を調べる順番まで決めて、手順は初めてまちがいなく動きます。
図解うるう年を判定する順番
- 1400 で割り切れる?はい → うるう年(例: 2000 年)
- 2100 で割り切れる?はい → 平年(例: 2100 年)
- 34 で割り切れる?はい → うるう年(例: 2024 年)
- 4どれでもない平年(例: 2025 年)

03
探索: 並んでいれば、半分ずつ探せる
たくさんのデータから目的のものを探す手順を探索といい、情報 I では線形探索と二分探索を比べます。線形探索は、先頭から順に 1 つずつ確かめる方法です。1,000 件のデータなら、最悪で 1,000 回確かめることになります。
二分探索は、真ん中のデータと比べて、探す範囲を半分ずつしぼる方法です。1,000 件でも、多くて 10 回で見つかります。2 を 10 回かけると 1,024 になり、1,000 を上回るからです。
ただし二分探索は、データが前もって順番に並んでいるときしか使えません。教員研修用教材も、並んでいる保証がないときや、データが少ないときは、単純な線形探索が向くことがあると説明しています。速さだけでなく準備の手間も含めて比べるのが、アルゴリズムの比較です。情報 I では、データを順番に並べる整列の手順も、いくつかの方法を比べながら学びます。
同じ問題でも、データの状態によって向いている手順が変わります。

04
シミュレーション: さいころを一瞬で 6 万回振る
現実の出来事の大事な部分だけを取り出し、式や図で表したものをモデルといいます。モデルを使って結果を予測するのがシミュレーションです。預金の利息のように決まった規則で変わるものは確定モデル、さいころのように偶然を含むものは確率モデルで表します。
確定モデルの例として、10 万円を年 5% の複利で預けると、9 年後に約 15 万 5,000 円になり、1.5 倍を超えます。くり返しの処理を 1 つ書けば、10 年分でも 100 年分でも同じように計算できます。
確率モデルには乱数を使います。乱数は、どの数も同じ確率で出るように作られた数です。1〜6 の乱数を 60 回作ると、目の出方はかなりばらつきます。6 万回にすると、どの目も 1 万回に近づきます。1 回 3 秒で振っても 50 時間かかる実験を、一瞬でくり返せるのがシミュレーションの強みです。
モデルは現実を単純にしたものなので、結果が現実と合うかを確かめ、モデルを直すことも学習の一部です。大学では、プログラミング入門やアルゴリズムとデータ構造、数値計算の授業に続きます。機械工学や経済学の研究でも、シミュレーションは欠かせない道具です。
高校生のうちに試せること
うるう年を判定するプログラムを書く
授業で使っている言語で、西暦を入れるとうるう年かどうかを表示するプログラムを書きましょう。2000 年、2024 年、2025 年、2100 年の 4 つで正しく判定できれば完成です。条件の順番を入れ替えると、どこでまちがえるかも試してください。
さいころの乱数で、出る目を数える
1〜6 の乱数を 60 回と 6 万回作り、それぞれの目が出た回数を数えるプログラムを書きましょう。棒グラフにして並べると、回数を増やしたときにばらつきがどう変わるかがよく分かります。
線形探索と二分探索の回数を比べる
1 から 1,000 までの数を順に並べた配列を作り、決めた数を線形探索と二分探索で探すプログラムを書きましょう。比べた回数を表示すると、最大 1,000 回と 10 回の差が実感できます。
「コンピュータとプログラミング」に関連するコミュニティ
研究室・部活・サークルなど、全国の 116 件から探せます。

アルゴリズム論研究室
九州大学(福岡県)
情報学・山内 由紀子 教授
梅谷研究室
東京大学(東京都)
情報理工学系研究科創造情報学専攻・コンピュータグラフィックス・物理シミュレーション・梅谷 信行 准教授
シミュレーション技法
神戸大学(兵庫県)
システム情報学・陰山 聡 教授
中村研究室
東京大学(東京都)
情報理工学系研究科システム情報学専攻・高性能コンピュータアーキテクチャ・VLSI設計方法論・中村 宏 教授

渋谷研究室
東京大学(東京都)
情報理工学系研究科コンピュータ科学専攻・ゲノム解析・アルゴリズム論・渋谷 哲朗 教授
コンピュータシステム研究室
熊本大学(熊本県)
工学部 情報電気工学科 情報工学教育プログラム・計算機アーキテクチャ・久我 守弘 准教授
並列・分散処理や再構成可能なシステム、スーパーコンピューティングを研究する。
よくある質問
数学が苦手でも、プログラミングはできますか?
できます。情報 I のプログラムで使う計算は、四則演算と、割り算の余りや大小の比べ方が中心です。うるう年の判定のように、条件を順番に整理する力のほうが大切です。
授業で使う言語と、大学で使う言語が違っても大丈夫ですか?
大丈夫です。順次・分岐・反復や、変数、関数といった考え方は、どの言語でも共通です。1 つの言語で手順を組み立てた経験があれば、大学で別の言語を学ぶときにも生かせます。

