CSアンプラグド プログラミングを体験してみる。
CSアンプラグド プログラミングは、
ニュージーランドカンタベリー大学のコンピュータサイエンス教育研究グループがCC BY-SA 4.0(表示 + 継承可)で提供しているCSアンプラグド(CS Unplugged)に掲載されている プログラミング手法です。
CSアンプラグド プログラミングとは
CSアンプラグド プログラミングは、3つの単語から成り立っています。
CS:コンピューターサイエンス
アンプラグド:電源を入れない(コンピューターを使わない。)
プログラミング:プログラミング的思考
つまりCSアンプラグド プログラミングは、
CS(コンピュータサイエンス)をコンピューターを使わずに(アンプラグド)で、プログラミング(プログラミング思考)を学ぶ試みです。
CSコンピュータサイエンスの考え方
コンピューターサイエンスは以下の考えに基づいています。
コンピューター上でのプログラミングはアイデアを実装するための単なるツールでしかない。
目的を実現するためにはアイデアとアイデアを理解するプログラミング的思考が重要。
コンピューター上でのプログラミングを行わなくとも、プログラミング的思考を身に着けることができる。
このCSアンプラグド プログラミングが、
どのような方法で
プログラミング的思考をどのレベルまで理解できるのか
に着目し体験していきます。
CSアンプラグド(CS Unplugged) プログラミング学習法
CSアンプラグド(CS Unplugged)では、学校向けと自宅向けに以下の課題(トピックス)が用意されています。

学校向けの課題は、指導方法を含む指導者用のコンテンツです。
ここでは、自宅向け課題を使って独学でCSアンプラグド プログラミングを順次体験していきます。
パリティチェックの考え方(課題1)
課題1 Mind-reading magicは、パリティチェックの考え方をカードを使った手品で学習しています。
パリティチェックは、データーの誤りを見つける手法のひとつです。
データー通信の初期では、電話回線でデーターをやり取りしていました。

電話回線は、雑音が発生しやすく通話では問題なくとも、送ったデーターが雑音で変わってしまう場合もありました。
例えば、11,000円送金したつもりが相手側では、10,000円入金となってしまう場合が起こりえます。
そのため、
送ったデーターが変わっていないか?
変わってしまった部分はどこか?
を見つけるためにパリティというデーターを追加して送ります。
(以下の場合は、行と列の1の数が奇数となるようにパリティをつけて送っています。)

データー受け取り側では、パリティをチェックして受け取ったデーターの信頼性を確認し修正します。
(2列が0だとパリティが偶数になるので、受け取りデーターが誤りだとわかります。)
チェック処理は、メモリーや外部記憶装置にも使われており、チェック方式もより複雑な方式が使われています。
2進数の考え方(課題2)
課題2 Binary Challengeでは、カードに書かれたドット(黒丸)パターンで2進数の表現方法を学びます。
置いた位置に対応する2進数の値分のドットを書いたカードを用意します。

各カードをドットが少ない順に右から左へドットが見えないように裏返して並べていきます。

任意の数(10進数)を指定します。
ドット数の合計が指定された任意の数になるようにカードを表にします。
指定された任意の数ごとに表と裏の並びパターンが違います。
表を1、裏を0としたパターンが2進数の表現になっていることを学びます。
任意の数に9を指定した場合は2進数は次の通り001001で表現されます。

任意の数に5を指定した場合は2進数は次の通り000101で表現されます。

10進数と2進数
10進数 ・・・+dec×103+dec×102+dec×101+dec×100 dec=0~9の範囲
2進数 ・・・+bin×25+bin×24+bin×23+bin×22+bin×21+bin×20 bin=0か1
その他のCSアンプラグド プログラミング
チェックデジット 動きの制御 画像表現は次のページで説明しています。


