ハードウェアの勉強

決まったテキストもカリキュラムもありません

ハッピーコンピューティングには決まったカリキュラム、テキストはありません。

これだけ情報があふれる世の中。私が作るテキストよりも優れたものがすでに市場にあるでしょう。また、私が作る画一的なものが、一人ひとり個性の違う生徒さんみんなにマッチするとは思えません。

一人ひとり、その子にあったテキストで学ぶのが最善と思います。

私の役割

私は頻繁に本屋に通い、この本はあの子に合うかなと考えてみたり、たくさんのウェブサイトを探し回って、今度このウェブサイトをみんなに紹介しようと検討したり、テキストを作る代わりにそういう仕事をしています。

ちまたにあふれる良質なコンテンツの例

たとえば本日中高生に紹介したウェブサイトのひとつは「相楽製作所」さんです。

相楽製作所
相楽製作所は京都の南、相楽郡にある小さな個人メイカーです。

製作されている製品も楽しそうなものばかりですし、YouTubeチャンネルも素晴らしいですが、驚いたのはなんと言っても「研究開発」のページにある「コンピュータ基礎」です。

コンピュータのハードウェアに興味を持つ中学生、高校生には真っ先におすすめしたいコンテンツです。

たとえば「5.加算回路 | コンピュータの仕組み」に記載されている「代表的な演算回路である足し算をする回路(加算回路)」。とてもきれいな手書きの写真のおかげで学ぶ意欲も高まるでしょう。ぜひご覧ください。

SimcirJSでシミュレーションしてみた

相楽製作所のウェブサイトに掲載されていた手書きの加算回路図をみながら、SimcirJSというプログラムを使って加算回路シミュレーションを試作してみました。

{ "width":520, "height":380, "showToolbox":false, "toolbox":[ {"type":"In"}, {"type":"Out"}, {"type":"Joint"}, {"type":"DC"}, {"type":"LED"}, {"type":"PushOff"}, {"type":"PushOn"}, {"type":"Toggle"}, {"type":"BUF"}, {"type":"NOT"}, {"type":"AND"}, {"type":"NAND"}, {"type":"OR"}, {"type":"NOR"}, {"type":"XOR"}, {"type":"XNOR"}, {"type":"OSC"}, {"type":"7seg"}, {"type":"16seg"}, {"type":"4bit7seg"}, {"type":"RotaryEncoder"}, {"type":"BusIn"}, {"type":"BusOut"}, {"type":"RS-FF"}, {"type":"JK-FF"}, {"type":"T-FF"}, {"type":"D-FF"}, {"type":"8bitCounter"}, {"type":"HalfAdder"}, {"type":"FullAdder"}, {"type":"4bitAdder"}, {"type":"2to4BinaryDecoder"}, {"type":"3to8BinaryDecoder"}, {"type":"4to16BinaryDecoder"} ], "devices":[ {"type":"DC","id":"dev0","x":0,"y":168,"label":"DC"}, {"type":"4bit7seg","id":"dev1","x":40,"y":216,"label":"4bit7seg"}, {"type":"Toggle","id":"dev2","x":40,"y":296,"label":"Yh","state":{"on":false}}, {"type":"Toggle","id":"dev3","x":80,"y":296,"label":"Yl","state":{"on":false}}, {"type":"4bit7seg","id":"dev4","x":32,"y":8,"label":"4bit7seg"}, {"type":"Toggle","id":"dev5","x":32,"y":88,"label":"Xh","state":{"on":false}}, {"type":"Toggle","id":"dev6","x":72,"y":88,"label":"Xl","state":{"on":false}}, {"type":"OR","id":"dev7","x":144,"y":24,"label":"OR"}, {"type":"AND","id":"dev8","x":144,"y":72,"label":"AND"}, {"type":"NOT","id":"dev9","x":192,"y":56,"label":"NOT"}, {"type":"AND","id":"dev10","x":232,"y":24,"label":"AND"}, {"type":"OR","id":"dev11","x":152,"y":224,"label":"OR"}, {"type":"AND","id":"dev12","x":152,"y":280,"label":"AND"}, {"type":"AND","id":"dev13","x":248,"y":240,"label":"AND"}, {"type":"NOT","id":"dev14","x":200,"y":256,"label":"NOT"}, {"type":"OR","id":"dev15","x":280,"y":120,"label":"OR"}, {"type":"AND","id":"dev16","x":280,"y":168,"label":"AND"}, {"type":"NOT","id":"dev17","x":336,"y":144,"label":"NOT"}, {"type":"AND","id":"dev18","x":376,"y":96,"label":"AND"}, {"type":"OR","id":"dev19","x":376,"y":240,"label":"OR"}, {"type":"4bit7seg","id":"dev20","x":432,"y":56,"label":"4bit7seg"} ], "connectors":[ {"from":"dev1.in0","to":"dev3.out0"}, {"from":"dev1.in1","to":"dev2.out0"}, {"from":"dev2.in0","to":"dev0.out0"}, {"from":"dev3.in0","to":"dev0.out0"}, {"from":"dev4.in0","to":"dev6.out0"}, {"from":"dev4.in1","to":"dev5.out0"}, {"from":"dev5.in0","to":"dev0.out0"}, {"from":"dev6.in0","to":"dev0.out0"}, {"from":"dev7.in0","to":"dev6.out0"}, {"from":"dev7.in1","to":"dev3.out0"}, {"from":"dev8.in0","to":"dev6.out0"}, {"from":"dev8.in1","to":"dev3.out0"}, {"from":"dev9.in0","to":"dev8.out0"}, {"from":"dev10.in0","to":"dev7.out0"}, {"from":"dev10.in1","to":"dev9.out0"}, {"from":"dev11.in0","to":"dev5.out0"}, {"from":"dev11.in1","to":"dev2.out0"}, {"from":"dev12.in0","to":"dev5.out0"}, {"from":"dev12.in1","to":"dev2.out0"}, {"from":"dev13.in0","to":"dev11.out0"}, {"from":"dev13.in1","to":"dev14.out0"}, {"from":"dev14.in0","to":"dev12.out0"}, {"from":"dev15.in0","to":"dev8.out0"}, {"from":"dev15.in1","to":"dev13.out0"}, {"from":"dev16.in0","to":"dev8.out0"}, {"from":"dev16.in1","to":"dev13.out0"}, {"from":"dev17.in0","to":"dev16.out0"}, {"from":"dev18.in0","to":"dev15.out0"}, {"from":"dev18.in1","to":"dev17.out0"}, {"from":"dev19.in0","to":"dev16.out0"}, {"from":"dev19.in1","to":"dev12.out0"}, {"from":"dev20.in0","to":"dev10.out0"}, {"from":"dev20.in1","to":"dev18.out0"}, {"from":"dev20.in2","to":"dev19.out0"} ] }
SimcirJS, Copyright (c) 2014 Kazuhiko Arase, Licensed under the MIT license.

回路の左側に配置した2つの7セグメントディスプレイの下に、それぞれ2つずつボタンを置きました。これらをクリックして、足される数と足す数を決めてください。

回路の右側に置いた7セグメントディスプレイに計算した結果が正しく表示されるはずです。
0~3の値をとる2つの整数を足すことしかできませんが、1+2=3など、正確に計算できます。

おー!ちゃんと足し算できた!
これこれ!伝えたいのはこの楽しさ!

冬休みを使って、こんな喜びを子どもたちには体験してほしいものです。

タイトルとURLをコピーしました