事例260

3人の偉人を通して学ぶ「コンピュータとプログラミング」の単元

~パスカル・バベッジ・シャノン コンピュータを生み出したのは誰の功績か~

神奈川県立生田東高校 大石智広先生

※クリックすると拡大します

 

コンピュータの仕組みを3人の偉人の「主張」からストーリー仕立てで学ぶ

2017年神奈川県情報部会 実践事例報告会より
2017年神奈川県情報部会 実践事例報告会より

この発表は、ざっくり言うと「コンピュータの仕組みを学ぶ単元を、こんなストーリー性や軸を持って行った」という、単元の設計のご紹介が主になります。

 

まず背景です。「情報Ⅰ」では、コンピュータの仕組みをこれまでより詳しく学ぶことが求められてます。私の授業中では、これまでも2進数やCPUが演算の仕組みというのは、一部は扱ってきましたが、どうしても説明に終始してしまっていました。

 

生徒の活動はせいぜい計算をするくらいで、主体的、探究的に取り組んだり、こちらが教えたいことを生徒に発見させたりするような授業を作ることはなかなかできませんでした。

 

かと言って、それをより詳しくするとなると、少々言い方は悪いですが、退屈な授業を増やすことになりかねません。そこで、何とか探究的で、かつ生徒が発見するような形の授業を開発しなければ、ということで考えたというのが背景になります。

 

 

コンピュータの仕組みに関する矛盾するような主張をする複数の文章を比較する

これをどのように解決するか、という方針です。

 

これまで『ネットワーク』の単元においては、インターネットの歴史的な発明過程を題材にしていました。

 

回線交換方式とパケット交換方式のそれぞれの特徴が書かれた2つの文章を生徒に読み取らせて、何が違うのかを考え、比較させることで、それぞれの方式の特徴や、なぜその方式が採用されているのか、という理由に生徒自身が気付かせる授業に取り組んできました。

 

ということで、今回も同じ方法を使うことにしました。具体的には、コンピュータが発明されてきた過程を題材にして、そこにコンピュータの仕組みに関する矛盾するような主張をする複数の文章を出して比較させることで、主体的かつ探究的に学べる授業ができるのではないか、と考えました。

 

 

生徒に比較させた文章は、2年前のこの実践事例報告会の模擬授業でご紹介したものです。

 

パスカル、バベッジ、シャノンという3人の偉人を登場させて、それぞれ自分が開発したことや考えたことがコンピュータをコンピュータたらしめた、と主張するような文章を作りました。

 

3人の偉人の主張.pdf
PDFファイル 5.1 MB

 

 

例えばパスカルは、「私は計算する機械であるパスカリーヌを発明した。コンピュータは計算する機械であるから、私が発明した時点で、コンピュータはコンピュータだった」と主張しています。

 

バベッジは、「私はプログラム制御可能な解析エンジンの設計を行った。プログラム制御が可能になることにより、改造しなくてもいろいろな働きさせられるものこそがコンピュータなのだから、私が生み出した特徴によってコンピュータになったんだ」と言っています。

 

シャノンは、「私は2進数と電気回路を結び付けた論理回路を生み出した。論理回路を採用することで、超高速かつ大量のデータを扱えるようになって、コンピュータはただ計算する機械ではなくて情報機器なのだから、その情報機器を生み出したのは私の功績だ」と述べています。

 

この3人の主張が書かれた文章を読んで、誰の発明なり生み出したものが、コンピュータをコンピュータたらしめたのかということを、生徒に理由を付けて考えさせることを狙いました。

 

 

1人ずつの内容を詳しく説明しながら、彼らの主張するコンピュータの仕組みを実際に体験する

これらを使ってどのような単元にしたのか、というのがこちらです。

 

 

最初の授業で、まず文章を読んで、「コンピュータを生み出したのは誰か」ということを考察する活動を行います。

 

次の時間からは、この3人が生み出したものが今のコンピュータの仕組みにどのように生かされてるのか、ということを1人ずつ扱っていきました。

 

パスカルを扱った回では、CPUの計算の仕組みが教科書に載っているので、そこと結び付けて学習させました。パスカルが発明した機械式計算機のパスカリーヌは、入力した数値を保持する仕組み(今でいうとレジスタ)を持ち、加算器によって足し算をするという仕組みでした。パスカルが生み出したものも、今のコンピュータも実は本質的には変わってないんだよ、ということを対比しながら説明していきます。そして、いったんこの時点で「パスカルが生み出したものはコンピュータと言えるかどうか」を考察します。狙いとしては、それぞれの人についての授業をするたびに、生徒がその人のファンになってくれたらいいな、というところです。

 

 

次の時間ではバベッジを取り上げます。バベッジのところでは、プログラムができるというだけでなく、実はバベッジの解析機関というのは、順次構造・分岐構造、繰り返し構造が全部できるというものだったので、プログラムの基本制御構造と、構造化定理を合わせて説明しました。

 

「この3つの基本構造があれば、何でもプログラムできるんだ。この時代にそれができたというのはすごいね」ということを生徒に感じてもらうべく、バベッジが作ったコンピュータの話と、実際にGoogle Colaboratoryを使って3つの基本構造の入ったプログラムを触って動かして、ちょっと改造してみる、という実習も入れました。これらを通して、生徒にプログラムができることの可能性を感じてもらえることを目指しました。

 

次からがシャノンのターンになりますが、シャノンのターンはちょっと長いです。

 

最初に「シャノンが大学院で勉強した2進数を皆も勉強してみよう」ということで2進数の勉強をしました。次に、今回シャノンの功績の中で一番のトピックになっている「論理回路を生み出した」というところを、ネットのシミュレーターを使ってAND回路・OR回路を体験させました。

 

さらに、実はシャノンは最初に論理回路を生み出した論文の中で半加算器の設計もしていたので、「シャノンの設計に基づいて半加算器を作るぞ」と言って、シミュレーターで半加算器を作ることも行いました。

 

シャノンのターンはさらに続きます。「実はシャノンは『情報のデジタル化』にも関係しているんだよ」ということを紹介しながら、情報のデジタル化の話をしました。デジタル化の基本中の基本である、「情報の最小単位は0と1の2通りだけを表す状態である」ということを見つけたのはシャノンであること、bitという言葉を生み出したはシャノン自身ではないけれど、シャノンとその仲間が考えたことなどを説明しながら、情報量の測り方について、実際に手を動かしながらやってみます。そして、こういう考え方を基にデジタル化ということができて、今の情報化社会ができたのだ、ということに落ち着くのが7時間目です。そして、最後の8時間目に、改めて「コンピュータを生み出したのは誰か、ということを考えよう」という活動を入れて、締めとなります。

 

 

 

それぞれの授業の工夫はいろいろありますが、今年新しく行った部分で言うと、本校は今年度から1人1台端末でロイロノートを入れたので、せっかくの機会なのでカードを使ってみました。

 

 

例えば、「バベッジが作ったものはコンピュータと言えるか」ということを、「コンピュータと言える」と思う人は青、「言えない」という人はピンクのカードに理由を書いてもらって共有しました。

 

これを見ると、かなりバベッジファンが増えているというのが分かりますね。そして、最8時間目最後のところでは、誰が1番好きかというだけでなく、3人の主張をしっかり統合して考え、それぞれの功績を重みづけして順位を考え、順位の理由を記述する、という問いに変更して行いました。

 

スライドの下の方がその結果です。一推しの人がパスカルであれば黄色、バベッジはピンク、シャノンは水色のスライドに、順位の理由を書いてもらっています。

 

このクラスは、結構ばらばらな感じですが、実は最初にやった3クラスは、ほとんどがシャノン支持でした。理由を見ると、「今のコンピュータに一番近いから」といった書き方をしていました。

 

確かにそれはそうなのですが、ちょっと問いたいことが違ったな、と思ったので、問いの意味を明確にするために、「現代の自動車にとって、バッテリーというのは重要だけど、バッテリーの発明が車を生み出したと言えるのか。それ以前に、自動車と言えるものは登場していたかもしれないよね。エンジンか、バッテリーか、タイヤなのか。何があったら自動車なんだろう」という例え話をしてから考えさせたクラスの結果がこちらです。かなりバランスが良くなっていますね。

 

 

3人の主張のどこに注目して順位を決めたのか

この順位付けについて、5クラス194人の結果を集計したのがこちらです。バッテリーの例え話をしたグループとしなかったグループに分けて集計して比較しました。

 

バッテリーの話をしていないクラスは48%がシャノン推しになっていて、その基準も「現代のコンピュータに近いから」というものが多かったです。一方、バッテリーの話をしたグループでは、シャノンとバベッジがほぼ同数で、バベッジがちょっと上回るという結果になっていました。

 

 

どのような理由で順位付けしているかについては、それぞれ当たり前なところもありますが、パスカルを推してる生徒は「発明の原点だから」とか「計算ができればそれはコンピュータだ」ということ。

 

バベッジを推した生徒は、単に「プログラム制御というのが大事だ」という人もいれば、ちょっとかっこいい言葉でいえば「汎用性を獲得した。いろいろなことに使えるようになった」ということを書いたり。面白いと思ったのは「自動で動くのがコンピュータである」というものです。「人間の手を離れても何かしてくれるのがコンピュータであって、それはここから生まれた」といったことを書いてくれた生徒もいました。

 

シャノンについては、大量のデータを扱うインターネットなどをイメージして大量のデータの処理が可能になったことに触れたり、速いのが大事であることから処理速度に注目したり、電気で動くのがコンピュータだよね、といったことが理由になっていました。

 

 

3人の主張比較することを通して「コンピュータの本質」を考える機会に

 

やってみて感じたのは、ほとんどの生徒が自分なりの基準を決めて考えられてたのが良かった、ということです。また、バッテリーの例え話は効果的だったと感じました。

 

そして、3人の主張を統合して考察させるために順位を付けましたが、1位・2位を決めるときの基準と、2位・3位を決めるときの基準をそれぞれ別に考えていた生徒がほとんどだったので、果たして統合した基準と言えるかどうか、ということは課題であると思います。ただ、「自動で動くのがコンピュータだから、1位はこれ、2位はこれ、3位はこれ」という観点で考えてくれた生徒もいました。

 

振り返りとしては、個々の授業の面白さや分かりやすさについては、いろいろな素材を使ったり、分かりやすい具体例や方法を考えたりするために、引き続き努力が必要であると思いました。説明はいったんここまでとして、コメントや質問などがあればいただきたいと思います。

 

[質疑応答]

 

Q1:

この単元での「正解」というのは、何が書けたら正解にされるのですか。

 

A1大石先生:

これには正解はないと思っています。今回視聴してくださった先生でしたら、「何でこの3人なんだよ。他にもいるだろう」と思われる方もあるかもしれませんね。チューリングはどうした、ノイマンもいるだろう、アタナソフは…といろいろ出て来ると思います。

 

ただ、特に正解はありませんが、その人を選んだ理由が、その人の業績と合っているかどうかということは大事であると思っています。

 

 

Q2-1:

プログラムの基本構造の単元で、チューリングやノイマンといった人も入れて、「プログラムとは何か」といった内容に踏み込む、というのはどうでしょうか。

 

A2-1大石先生:

私は踏み込みませんでした。これを扱うと話が複雑になりすぎるので、「『順次』と『繰り返し』と『分岐』の3つがあれば、皆がやっているゲームのプログラムなんかも全部書けるんだよ。それができるように設計していたのが、バベッジのコンピュータなんだよ」という話にとどめています。

 

 

Q2-2:

私も、「プログラムとは」というところで悩んでいるのは、「HTMLやCSSはプログラミング言語ではない、マークアップ言語である」という問題があると思います。ところが、最近のHTMLやCSSは分岐ができるようになりましたし、変数も扱えるようになってきたことを考えると、これはプログラミング言語なのか、そうではないのか、というものがいろいろありますよね。

 

A2-2大石先生:

そうですね。『順次』と『繰り返し』と『分岐』の3つができなければプログラムではないのか、というと、多分そんなことはなくて、コンピュータの進化の過程を見ると、その3つができるコンピュータというのは、結構後になって出てきたものなのです。初期のコンピュータは、『分岐』ができない、ものも多かったと思います。ですから、3つの基本構造がなければコンピュータじゃない、プログラムじゃない、というのは、ちょっと違うように思います。

ですから、その3つをできるように考えていたバベッジがいかにすごいか、ということは言いたいですね。

 

 

Q2-3:

生徒たちも、エンジンの話をした後は、随分バベッジ推しに変わりましたよね。

 

A2-3大石先生:

そうですね。ですから、たぶんそこで「コンピュータの本質とは何か」ということを考えることになったと思います。自動車であれば、「自動車と言うために何か必要なのか。エンジンか、バッテリーか、タイヤなのか、何があったら自動車なんだろう」というのと同じように、「何があったらコンピュータなのか」ということを考えた結果、「自動で動くのがコンピュータだ」とか、「いろんなことができるのかコンピュータだ」という考えも増えてきたのだと思います。

 

 

Q2-4:

「誰がコンピュータを作ったのか」というのは、大人にとってもおもしろい話題ですよね。ちなみに、大石先生は、誰推しですか。

 

Q2-4大石先生:

いい質問ですね。これも、時間があったら生徒にも話したいなと思ったことですが、いろいろな人の中でこの3人を選んだので、私にとっては3人とも推しです。

でも、コンピュータの本質に近いのは、たぶんバベッジではないかと思います。19世紀前半に、パンチカードのプログラムに従って蒸気エンジンで動く解析機関を作るというのは、まさに時代を超越している感があるので、すごく思い入れはあります。

 

一方でシャノンにも思い入れがあります。なぜかと言うと、「コンピュータを生み出したのは誰か」と聞かれて「シャノンだ」と言う人は多分いないでしょう。それを生徒が結構支持してくれたのは、すごく嬉しいと言えば嬉しいです。

 

 

Q3-1:

この実践を行う前にやっておいたほうが、より効果が高いと思われる単元や実習などありますでしょうか。他の教科でも使えるのではないかと思いますが。

 

A3-1大石先生:

これは私の感覚としての答えになりますが、何かを比較して違いを考える取り組みは、実は1年を智通していろいろな単元でやってきています。それがあるので、生徒は文章を読んだり、それを比べて違いを見出したりことには結構慣れてきています。そういったことに慣れておくことは、多分話が早いということになると思います。

 

例えば、『情報モラル』で言えば、ネットいけいけ派のAさんと、ちょっと慎重派のBさんの意見の比較として、Aさんは「匿名なんだから、別に何を書いたってばれやしないじゃん」みたいなことを言って、一方Bさんは「そうでもないんじゃないかな」と言って、これは何が違うのかを考えよう、といったことをしますね。

 

他の教科という点で言えば、例えば歴史上の事件に対する評価で2つの考え方を比較するとか。理科でも2つの仮説を比較するとか、いろいろな場面でできるのではないかと思います。

 

ではこの活動から何を感じ取れるか、ということについては、なかなか難しいですが、文章を読むことに多少は慣れてくれたかな、と思います。

 

 

Q3-2:

読ませる文章量は非常に多いですね。

 

A3-2大石先生:

そうですね。ちなみに、オリジナルの資料はこの1.5倍ぐらいありましたが、授業で使うためにかなり削りました。

 

例えば、「功績」という点では、発明したけれど誰にも知られずに終わったのか、あるいは後に引き継がれたのか、といった視点や、「その前にどんな研究があったのか」ということも大事ですよね。

 

実は、パスカルの前にシッカートという人が機械式計算機を生み出していたのではないか、という話があったので、最初はパスカルに「シッカートの発明はダメだ」みたいなことを言わせてみたり、ということもやりました。

 

また、シャノンが2進数と電気を結び付ける前の1930年代に、中嶋章という日本人の研究者がそれをやっていたという話もあります。オリジナルの資料では、シャノンが「いや、あいつはあまり知られてなかったし…」みたいなことを言っていた、ということまで入れていたので、すごく長かったです。

 

 

Q4:

入試のための授業とはちょっと違うという前提で聞いていただきたいのですが、情報科ではこういう歴史的なところは、暗黙の了解でテストには出ないという印象がありますよね。

 

A4大石先生:

確かに、物理でもニュートンが当時どう主張したか、みたいなことは出ませんしね。

 

ただ私自身は、歴史は非常に大事だと思います。歴史的なことというのは、全て問題解決の積み重ねです。今ある技術というのは、その当時の人たちが悩んでいたことと向かい合って、課題を解決した結果、今ある技術や仕組みになったり、考え方が見つかっていたりするわけですから。

 

だから、問題解決的な授業はどうしたらできるか、ということを考えたときに、過去に戻れば必ず問題解決があったはずだと思って、できるだけ歴史を振り返るようにしています。ただ、それがそのまま授業として扱えるような難易度か、というのはまた別の問題ですが。

 

なので、何か困ったことの歴史を見ると、探究的なものや何かを発見させるような授業が作れるのではないかと思っています。ぜひ皆さんも、そういうネタを見つけていただけたらと思います。

 

神奈川県情報部会実践事例報告会2022オンライン ポスターセッションより