事例109
ペアワークで文字コード変換
神奈川県立城山高校 照内康成先生
情報のデジタル化の「鬼門」、進数変換をどうやって教えるか
情報のデジタル化では0・1による2進数が基本ですが、文字コードやHTMLサイトでWEBカラーを扱う際には、16進数がどうしても必要になります。しかし、「10進数の〇〇を2進数(あるいは16進数)で表すと…」などという問題をいくらやっても、生徒は苦手意識を持つだけで第一面白くありませんし、何よりも実際にコンピュータの中でどんなところで使われているかを意識することもできません。
そこで、2進数・16進数の変換を何とか定着させるかということで考えたのが、ペアワークで行う文字コード変換です。
初めに、生徒が特に苦手な10進数と16進数の対応を理解する方法を考えました。いったん理解してしまえばいいのですが、対応表を眺めるだけでは頭に入りません。そこで、16進数を体で覚えてしまおうということで、手を動かして10進数と16進数を対応させることにしました。
図のいちばん左、指は立っていない(=0本)グーの時は10進数の10(10)です。指が1本立てば11(10)、2本立てば12(10)…と進んで、指が5本立ったら15(10)と、ここまではすぐわかります。
これと16進数を対応させます。 グーの時はA(16)、指1本立てるとB(16)、2本立てるとC(16)…で5本立った時がF(16)です。これを実際に手を動かしながら「指が2本立っているときはいくつ?」と聞いて10進数では12(10)、16進数ではC(16)というのがすぐに出てくるまで繰り返します。これで対応表を見なくても、10から15まではすぐわかるようになりました。
文字コード表を使ってペアワークで暗号解読
このようにして2進数から16進数、またはその逆の進数変換がわかったら、文字コード(今回はJISコードを使いました)を参照して、文字を数値に変換することができます。今回は、2人組のペアワークで文字コードの変換を行いました。
2人のうちAさんは、8文字の英単語の書かれたカードを見て、一つひとつの文字を文字コード表から読み取って16進数に変換します。英字がある場所の上の桁と下の桁を、そのまま表せばよいので、ここまでは簡単にできます。
例えば「UMBRELLA」であれば、U→55(16)、M→4D(16)、B→42(16)、R→52(16)、E→45(16)、L→4C(16)、L→4C(16)、A→41(16)となります。
この時、AさんはBさんにこの英単語や16進数のコードを見せないようにします。
続いてAさんはこの16進数を2進数に直してワークシートに上から順に記入し、できあがったらBさんに渡します。JISコード表には、縦軸・横軸に2進数の表記が入っているものがあるので、今回はここを隠したものを使いました。
こちらのワークシートが、記入が終わった状態です。
次にワークシートを渡されたBさんは、Aさんとは逆に2進数を16進数に変換し、文字コード表から該当するアルファベットを読み取って右下のマスに記入して、元の英単語を完成させます。クラスで行ったときは、正解したペアチームから勝ち抜けとして、上位6チームを表彰するゲーム形式にしたところ、かなり盛り上がりました。
この授業は、2学期の「社会と情報」で、「デジタル化の仕組みの理解」の単元で行いました。文字・音声・画像・動画のデジタル化の仕組みの理解につなぐ、導入として行ったものです。進数変換は2学期の期末試験にも出題しましたが、生徒たちが解いているところをのぞいてみると、盛んに指を使っていましたので、やり方は定着できたかなと思います。
[質疑応答]
大学教員Q1:16進数では、桁上げをどう教えるかもポイントだと思いますが、この点はどうされていますか。
照内先生A1:そうですね。まず、今回の授業案の趣旨は、進数変換の計算を、いかにスムーズにできるかだけを目的としています。10進数と16進数の0~9まで以外のアルファベットになるところが、生徒がなかなか覚えられないといった課題から考案した手法ですので、桁上げのところは正直のところ今回の授業では「F(16)の次が10(16)ということで桁が上がる」ということしか伝えていません。
今後、桁上げをどうしても手を使って教えるのでしたら、指上げを行う動作を片手で1~9まで数えると、5で折り返してちょうど10のところで手がグーになりますから、ここから今回の16進数の数え方を使います。次の桁が上がるときに、使っていない左手の指を1本ずつ立たせていくというような、まあこれですと、5F(16) までしか数えられませんが、右手が下の桁、左手が上の桁ということくらいかなと思います。
神奈川県高等学校教科研究会情報部会実践事例報告会2018 講演より