今回から、新しいテーマで記事を書かせていただきます。IT企業に入社したばかりの新人さんたちに、コンピュータの基礎を教える方法のアイディア集です。私がやっている方法をいくつか紹介しますので、「それじゃあダメだ」とか「この方法はどうだろう」といった皆様のご意見をいただければ幸いです。アイディアをたくさん集めて、教え方の宝庫と呼べるようなコーナーにできればいいなぁと思います。よろしくお願いします。

 第1回のテーマは「2進数」です。学生時代に、ほとんどコンピュータの勉強をしていない新人さんたちを対象として、楽しくわかりやすく2進数を教えるには、どのような切り口にしたらよいでしょう。最初に何を教えて、次にどのように展開するか、一緒に考えてください。

なぜ2進数を学ぶのかを説明する

 いきなり「0と1だけで数を表すのが2進数です」なんて話をしたら、新人さんたちはとまどうでしょう。なぜ2進数を学ぶのか説明してから、様々な2進数の仕組を教えるべきです。私は、こんな風に説明しています。

  1. コンピュータは、そもそも計算機として開発された。
  2. 文字や画像など、本来数値でない情報を数値に置き換えて表すアイディアが生まれ、それによってコンピュータが、ただの計算機から万能の情報処理マシンになった。
  3. 電気で数値を表すのに10進数を使うのは困難である。たとえば、1本の電線で10進数の1桁を伝えるために、電圧を0V~9Vと細かく制御するのは困難である。
  4. そこで、1本の電線で電圧の有無だけを伝えることにした。これなら容易である。電圧無しを0、電圧有りを1とするのだ。1桁が0と1だけというのは、2進数である。
  5. コンピュータの内部では、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進数
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111

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進数の教え方の導入部は、こんな内容なのですが、いかがでしょう。皆様のご意見をお待ち申し上げます。