一覧へ 情報Ⅰ (3) 第2回 | ソフトウェアの仕組み
情報Ⅰ (3) コンピュータとプログラミング | 第2回

ソフトウェアの仕組み

命令もデータも同じ場所に並んでいて、CPU はそれを 1 つずつ読んで動く。小さな CPU を自分で回してみる

50分
教師用メモ

準備 教室コードは新しいものにする。「教師」を押す。体験 01 は端末内で完結する。

時間配分 前回まとめ・目標 4分 / 節1 小さな CPU を回す 18分 / 節2 言葉の階段 12分 / 節3 頭脳・机・引き出し 10分 / まとめ・自己評価・ふりかえり 6分

教科書: 新編情報Ⅰ 22 ソフトウェアの仕組み(p.66)、章末資料 CPU とメモリ・CPU の処理能力。

この回の評価(指導要領 (3) ア(ア) イ(ア)。CPU が機械語のプログラムをデータとして読みながら実行すること、メモリの役割、プログラム内蔵方式。単元設計は 単元設計のページ)

  • 知識・技能 命令とデータが同じ記憶装置に置かれ、CPU が順に読んで実行すること(プログラム内蔵方式)、機械語とプログラミング言語の関係、CPU・メモリ・ストレージの役割を説明している(体験01・02・03)
  • 思考・判断・表現 小さな CPU の命令を並べ替えて目的の結果を出している(体験01)。身近な機器のプログラミング言語や性能の見方を考えている(体験02・03)
  • 態度 プログラムが動く仕組みに興味を持ち、身のまわりの機器と結びつけようとしている(ふりかえり)

ふりかえりの枚の自己評価の分布を見て、「まだ」が多い目標を次回冒頭で拾い直す。

前回のまとめ

ハードは箱、ソフトが意味を与える

入力→記憶⇄演算+制御(CPU)→出力

ソフトウェアは「命令の並び」だと言った。では、その命令はどこにあって、CPU はどう読んでいるのか。今日は 8 マスのメモリと 1 つの CPU だけの、小さなコンピュータを自分で動かす

命令とデータは、同じ場所にある

教師用メモ

前回「まだ」が多かった目標があれば 2 分拾う。

今日の目標

授業の終わりにできるようになること

01
CPU がメモリの命令を 1 つずつ読んで実行する仕組み(プログラム内蔵方式)を説明できる
02
機械語とプログラミング言語の関係を、翻訳の階段として説明できる
03
CPU・メモリ・ストレージの役割を、たとえで言い分けられる
01 | 18分
小さな CPU を回す

1 命令ずつ進めて、答えを出す

02 | 12分
言葉の階段

人の言葉から 0 と 1 まで

03 | 10分
頭脳・机・引き出し

性能の見方

SECTION 01

小さな CPU を回す

8 マスのメモリ。読む、足す、しまう、出す

8個の引き出しが並んだ棚の前で、高校生が1枚ずつカードを取り出して読み上げ、もう一人が黒板の計算を進めている
体験 01

1 命令ずつ進めて、答えを出す

左がメモリ(8 マス)。上 4 マスが命令、下 4 マスがデータ。「1 歩進む」を押すと、CPU が青枠の命令を読んで実行する。全部進めたら、命令を並べ替えて「7 と 5 を足して表示する」を作る。この画面は自分の端末だけ

メモリ | 命令とデータが同じ場所に
CPU
いま読む番地(PC)0
計算の手元(A)0
出力
「1 歩進む」を押す
教師用メモ

進め方(14分)

  • 投影で「1 歩進む」を 4 回。0 番地「4 番地を読む」→ A に 7。1 番地「5 番地を足す」→ A は 12。2 番地「A を出力」→ 12。3 番地「止まる」。
  • 「CPU は何をしていた?」→ 番地を 1 つ進めて、そこの命令を読んで、実行しただけ。これを繰り返すだけで計算が進む。
  • 「お題」を押すとデータが変わる。生徒は命令の番地(4 か 5 か 6 か 7)をタップして選び直し、7 + 5 = 12 を出す。
  • データのマスをタップすると値を変えられる。「命令のマスに数を入れたら?」→ CPU は命令として読もうとする。命令とデータは同じ 0 と 1で、どう読むかを CPU が決めている(プログラム内蔵方式)。

実際の CPU は数十億個のトランジスタで、1 秒に数十億回この「読む→実行」を繰り返す(クロック)。目標 01。

まとめ 01

プログラム内蔵方式 | 命令もデータも記憶装置に置き、CPU が順に読む

メモリから命令を読む→解読する→実行する(計算・読み書き・出力)→次の番地へ
プログラムコンピュータに指示する命令の集まり。命令が集まって部品になり、部品が集まってソフトウェアになる
プログラム内蔵方式記憶装置に命令とデータの両方を格納し、CPU が順に読み込んで実行する。命令もデータも同じ 0 と 1。初期のコンピュータは配線を変えて命令を変えていた
クロック各回路の動作のタイミングを合わせる信号。1 秒の回数がクロック周波数。高いほど 1 秒に多くの命令を処理できる(発熱もする)

※ 命令の並びを変えれば、同じ機械で別の仕事ができる。これがハードウェアに意味を与えるソフトウェアの正体

教師用メモ

目標 01。「ノイマン型」の名前は口頭で。量子コンピュータは非ノイマン型、と一言。

SECTION 02

言葉の階段

人の言葉から、CPU が読める 0 と 1 まで

階段の一番上に日本語のレシピを持つ高校生、中段にキーボードで打たれた短い命令文、一番下に0と1の帯。矢印が下へ向かう
体験 02

どの段の言葉か

人の言葉=曖昧でもよい。プログラミング言語=人が読み書きでき、曖昧さがない。機械語=CPU が直接実行できる 0 と 1。タップして分け、「答え合わせ」

人の言葉プログラミング言語機械語
教師用メモ

進め方(7分) 3 分で答え合わせ。「なぜ人は機械語を直接書かない?」→ 読めない、間違える。だから人にも分かるプログラミング言語で書き、機械語に翻訳する(コンパイラ・インタプリタ)。

知っているプログラミング言語を挙げさせる(Python、Scratch、JavaScript、C、Java)。評価規準「プログラミング言語の種類を考える」。目標 02。

まとめ 02

プログラミング言語 | 人とコンピュータが会話するための言葉

人の言葉(曖昧)→プログラミング言語(ソースコード)→ 翻訳 →機械語 0 と 1→CPU が実行
機械語0 と 1 の組み合わせの言語。コンピュータはこれ以外を直接解釈・実行できない。人が書くのは困難
プログラミング言語人にも分かりやすい言葉で命令を書くための言語。Python・Scratch・JavaScript・C など。書いたものがソースコード。機械語に翻訳して実行する
レシピとの違いプログラムは料理のレシピに似ている(具材の代わりにデータ)。ただし「塩を少々」のような曖昧さは書けない。次回以降、実際に書く
教師用メモ

目標 02。第5回から Python を書く、と予告。

SECTION 03

頭脳・机・引き出し

パソコンを買うとき、どの数字を見るか

勉強机に座る高校生。頭の上にCPUの絵、机の天板にメモリの絵、引き出しにハードディスクの絵が重ねて描かれている
体験 03

頭脳か、机か、引き出しか

CPU=考える速さ。メモリ=作業中のものを広げる場所(電源を切ると消える)。ストレージ=しまっておく場所(消えないが取り出しに時間がかかる)。タップして分け、「答え合わせ」

CPU = 頭脳メモリ = 机の広さストレージ = 引き出し
教師用メモ

進め方(6分) 3 分で答え合わせ。「スマホの 128 GB は何の数字?」→ ストレージ。「動作が重いときに増やしたいのは?」→ メモリ。コア数は「料理する人の数」、クロックは「手の速さ」。

どの記憶装置も用途に応じて大きさを決める。速いほど高く、大きいほど遅い。目標 03。

まとめ 03

CPU・メモリ・ストレージ | 速さ・広さ・容量

CPU頭脳。命令を読んで実行する。クロック周波数(1 秒の回数)とコア数(同時に処理する数)が性能の目安。上げると発熱と消費電力が増えるため、近年はコア数で伸ばす
メモリ(主記憶)机の天板の広さ。作業中のプログラムとデータを置く。広いと同時に多くを扱える。電源を切ると消える(揮発性)
ストレージ(補助記憶)引き出し。写真・動画・アプリをしまう。取り出しに時間がかかる。電源を切っても消えない(不揮発性)。SSD は HDD より速い

プログラムはストレージからメモリに読み込まれ、CPU がメモリから 1 命令ずつ読む。体験 01 の 8 マスは、このメモリ

教師用メモ

目標 03。CPU 内部のレジスタ(体験 01 の A)は、メモリよりさらに速くて小さい作業場、と一言。

道具で確かめる

この回の CPU と、道具の CPU を見比べる

道具で命令を 1 つずつ進め、この回の CPU と動き方が同じところを確かめる

CPU における計算の仕組み命令を 1 つずつ実行し、レジスタとメモリの変化を見る
  1. 「この枚で開く」を押す
  2. 命令を 1 つずつ進める
  3. この枚の CPU と、動き方が同じところを言う
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る
CPU の性能指標クロック周波数などが、速さにどう効くかを見る
  1. 「この枚で開く」を押す
  2. 周波数を変える
  3. 1 秒あたりの処理回数がどう変わるかを見る
この授業のページの中で開く。終わったら「閉じてこの枚に戻る」で戻る

※ この枚は提出しない。自分の手で確かめて、分かったことをノートに書く

教師用メモ

進め方 提出させない枚。手を動かして確かめるところまで。机間指導で、止まっている生徒だけを見る。

6分。命令を 1 つずつ進める点は同じ。性能指標は発展。

道具は外で公開されている Web アプリ。この授業のページの中で開くので、別のページへは移らない。閉じれば、そのままこの枚に戻る。ブラウザの中で動き、入力はこの授業のサーバーには送られない。

今日のまとめ

3つの目標に、自分の操作で答える

01
プログラム内蔵方式 命令もデータもメモリに。CPU は番地を進めて読んで実行するだけ。それで 7 + 5 が出た
02
言葉の階段 人の言葉 → プログラミング言語(曖昧さなし)→ 機械語(0 と 1)。翻訳して CPU が実行する
03
頭脳・机・引き出し CPU は速さ、メモリは広さ(消える)、ストレージは容量(消えない)
自己評価

今日の目標、自分はどこまで

3 つの目標それぞれに、できた/だいたい/まだ、を 1 つ選ぶ。右の帯にクラス全体の分布が出る

今日の目標、自分はどこまで | 1 つずつ選ぶ
01CPU がメモリの命令を順に読んで実行する仕組みを説明できる
02機械語とプログラミング言語の関係を翻訳の階段で説明できる
03CPU・メモリ・ストレージの役割をたとえで言い分けられる
できただいたいまだ
教師用メモ

1 分。「まだ」が多い目標は、次回の冒頭で拾い直す。

ふりかえり

自分のスマホの「頭脳・机・引き出し」はいくつか

設定画面で調べられる範囲でよい(ストレージの容量は「設定 → ストレージ」)。自分のスマホが無い人・手元に無い人は、いま使っている学校の端末で調べてよい。分からなければ「何を見ればよいか」を書く

みんなのスマホ
教師用メモ

3 分。次回は「CPU の中で足し算がどう行われているか」。論理回路。