今回から、新しいテーマで記事を書かせていただきます。IT企業に入社したばかりの新人さんたちに、コンピュータの基礎を教える方法のアイディア集です。私がやっている方法をいくつか紹介しますので、「それじゃあダメだ」とか「この方法はどうだろう」といった皆様のご意見をいただければ幸いです。アイディアをたくさん集めて、教え方の宝庫と呼べるようなコーナーにできればいいなぁと思います。よろしくお願いします。
第1回のテーマは「2進数」です。学生時代に、ほとんどコンピュータの勉強をしていない新人さんたちを対象として、楽しくわかりやすく2進数を教えるには、どのような切り口にしたらよいでしょう。最初に何を教えて、次にどのように展開するか、一緒に考えてください。
なぜ2進数を学ぶのかを説明する
いきなり「0と1だけで数を表すのが2進数です」なんて話をしたら、新人さんたちはとまどうでしょう。なぜ2進数を学ぶのか説明してから、様々な2進数の仕組を教えるべきです。私は、こんな風に説明しています。
- コンピュータは、そもそも計算機として開発された。
- 文字や画像など、本来数値でない情報を数値に置き換えて表すアイディアが生まれ、それによってコンピュータが、ただの計算機から万能の情報処理マシンになった。
- 電気で数値を表すのに10進数を使うのは困難である。たとえば、1本の電線で10進数の1桁を伝えるために、電圧を0V~9Vと細かく制御するのは困難である。
- そこで、1本の電線で電圧の有無だけを伝えることにした。これなら容易である。電圧無しを0、電圧有りを1とするのだ。1桁が0と1だけというのは、2進数である。
- コンピュータの内部では、2進数で情報が取り扱われている。だから、コンピュータの仕組を理解するには、2進数を学ぶ必要があるのだ。現在のパソコンは、32本の電線を使って32桁の2進数を取り扱っている。
2進数を書かせる
新人さんたちに、0と1の2進数の世界に慣れていただきましょう。そのためには、紙の上に2進数を書かせるのが効果的です。ふだん慣れ親しんでいる10進数と比較して2進数の仕組を教えるとよいでしょう。
まず、ノートに10進数で0~15までの数値を書かせます。10進数では、0~9までの10種類の記号を使って1桁を表すこと。9の次で10に桁上がりすることに注目させます。当たり前だと思っていることですが、あらためて説明するのです。
次に、10進数の横に並べて2進数を書かせます。0、1、その次で10に桁上がりすることに注意するよう伝えます。皆が書き終わったら、正解を発表し「できた人?」と聞いて挙手させます。できなかった人は、できた人と比べてどこが違うのか見つけさせます。
10進数 | 2進数 |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
10 | 1010 |
11 | 1011 |
12 | 1100 |
13 | 1101 |
14 | 1110 |
15 | 1111 |
2進数と電線のイメージをつなげる
4本の電線で2進数を伝えるには、ゼロが4桁の0000となることを示します。その上で、先ほどの2進数をすべて4桁に書き直させます。0000、0001、0010、・・・、1111と書かせるのです。これによって、2進数と電線のイメージをつなげます。現在のパソコンは、32本の電線を使っているのですから、ゼロが00000000000000000000000000000000となることを示します。4桁で練習したのは、桁数が多いと大変だからだと言い訳します。
新人さんたちに「32本の電線で示せる最大の2進数は、11111111111111111111111111111111だけど、これが10進数でいくつになるか気にならないかな?」と聞きます。Windowsの電卓(calc.exe)を使って、11111111111111111111111111111111という2進数を10進数に変換して見せます。4294967295になるので、32ビットコンピュータが一度に取り扱える数値の範囲が0~4294967295であると説明します(図)。
図●Windowsの電卓で2進数を10進数に変換する |
...ここまでで、だいたい15分~20分ぐらいの講義になります。この後は、Windowsの電卓を使わずに、手作業で10進数と2進数を相互に変換する手順の説明に進みます。それをやると、ちょうど1時間ぐらいになります。2進数の教え方の導入部は、こんな内容なのですが、いかがでしょう。皆様のご意見をお待ち申し上げます。