




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
力膜嗯糜可咳啰
不插电的计算机科学
董荣胜主持编译
计算思维及应用研究室
桂林电子科技大学
2008年10月
桂电“计算机科学导论”参考教材
(内部资料,仅供参考)
不插电的计算机科学
不插电的计算机科学(ComputerScienceUnplugged,简称Unplugged项目)
是TimBell,MikeFellowsandIanWitten领导的•个非赢利性项目,在很多国家
都有捐助者(包括新西兰、美国、瑞典、澳大利亚、中国、韩国、台湾和加拿大)。
团队包括的成员或关键组织的成员有ACMK-12委员会、ACM课程委员会、
CSTA(CS教师协会),也包括那些将此项目作为他们研究的校长、教师、大学
outreachcoordinators,研究生等。它链接到Google赞助的CS4ALL项目(UW、
CMU和UCLS),并将为一些项目提供资源和支持,如NCWIT(NationalCenter
forWomen&InformationTechnology,妇女与信息技术国家中心)和
TECS(TeacherEnrichmentinComputerScience,计算机科学教师强化)。现在正在
建立一个国际顾问团队为该项目提供指导,包括K-12教育的代表(小学和中学),
专业团队(如ACM、CSTA),国际捐助者(如Google、Microsoft)□
Unplugged项目在全世界已经实施超过16年了,可以在教室、科学中心,
家里,甚至是公园的游园活动中进行。其主要目标是将计算机科学(以及通常的
计算)作为一种有趣的、迷人的、智力上刺激的学科,从而向年轻人推广。该项
目希望激发人们的想象力,并希望表达那些不依赖于特定软件或系统的基本原理
以及那些到2020年仍不会过时的概念。Unplugged项目适合所有年龄段的人,
从小学到大学,可以跨越国界和文化背景。通过该项目可以实施踏平高科技教育
解决方案难以实施的障碍,跨越资讯富有和资讯贫乏之间、发达国家和发展中国
家之间的鸿沟。
1
目录
活动1进位的计算—二进制数................................1
活动2数字表示色彩一图像表示............................6
活动3文本压缩...........................................11
活动4卡片魔术一检错与纠错...............................14
活动520次猜测——信息理论...............................18
活动6战舰一搜索算法....................................23
活动7排序算法..........................................39
活动8敲钟——排序网....................................45
活动9泥泞的城市一最小生成树............................50
活动10橙子游戏一网络中的路由和死锁.....................54
活动11寻宝——有限状态机...............................57
活动12排序——编程语言.................................65
活动13贫穷的制图师——图形着色.........................68
活动14旅行城镇——支配集...............................77
活动15冰冻之路一Steiner树...............................82
活动16分享秘密——信息隐藏协议.........................91
活动17秘鲁人掷硬币问题——密码协议...................94
活动18公钥加密.......................................102
活动19巧克力工厂一人性化界面设计......................106
活动20计算机对话一图灵测试...........................115
2
活动1进位的计算--二进制数
适用年级:小学生以上
预设能力:可以计算15或31,并能进行配对与排序
所需时间:10到40分钟
适用人数:从个人到整个班都可以
重要概念
使用2为基数来表示数字
2进位的表示模式和相互关系
摘要
现代数字化计算机上所有的数据,几乎都是采用0和1的方式来储存和传送,这个活动
就是要展示如何只以两个数字〈0和D来表示所有的文字和数字。
专有名词
二进制表示法、二进制可十进制的转换、位与字节、字符集
图1.1二进制卡片的最初布局
图1.2翻开卡片显示五点
所需教材
每个小孩都需要有:
从图1.5剪下来的一组〈五张〉数字卡,图1.6的活动单和一支钢笔或铅笔。
1
活动流程
1.我们坐在孩子们可以看到你地方,并给卷个孩子一套卡片。
2.儿童可以像图1.1那样预订卡片,留下点数为16的卡片。有些儿童会试图将卡片以反
方向排序放置,因此,你应该检查他们的数从左至右是以降序放置的。对于幼小的儿童,不
用使用16点的卡片。
BINARYNUMBERS
Trytoworkoutthesebinarynumbers
10
=13
mooowCo=。g
:fW4
oo=4}
63
Mthesesecretcodes
-Will00101OltOOmittNONNINMillOHIOOOIOI
welldoc&
gv,玲3
图1.3图1.6工作表的解决方案
3.我们让孩子们计算出翻转的卡片,以致五个点数都能确切显示出来。做这唯一(正确)
的方式是4点的卡片和1点的卡片相对,而其余的卡片都正面朝下(如图1.2)。每张卡片要
么朝上显示所有的点数,要么朝下什么也不显示。我们准备一些新颖的方式获得五点一在八
张卡片里面通过使用其余的五张来覆盖三张的点数,对于小孩来说,按照规定的次数完成是
不正常的!
4.现在我们让孩子们展示其它号码的点,以致于他们可以探索表示的号码。问他们一些
号码,如3(需要卡片2和1)、12(需要卡片8和4)、19(需要卡片16,2和1)等。对
那些很快找到号码组合的人,我们问他们是否可以找到另•种方式获得该号码(他们最终很
可能会发现显示每一个号码的出路只有一条)。让他们讨论什么号码需要的卡片最多(答案
是31为5张卡片,15为4张卡片)。那最小的呢?(通常数字1将第一•被给出,但是这里
的正确答案是零。)是否有任何数字在最小和最大的数字之间不能被表示?(没有一所有号
码可以代表,每个都具有独特的代表性。)
5.对于那些年龄较大的孩子,我们问问他们在序列中如何显示数字1,2,3,4,..
2
看看他们是否可以计算出一个递增数字的程序以一次在卡片上显示(如果您从右到左倒装所
有卡片,那么卡片数字的点将逐一增加,直到你将它翻转过来)。
6.这个部分的活动是要使用。和1来表示纸牌是翻起或覆盖的状态,告诉学生我们使用
0来代表纸牌是隐藏的、1则代表纸牌是显示的,例如:图1.2的样版是00101,你也可以给
其它的范例来试试看,例如:10101代表21、11111代表31,另外给学生一些练习,让他们
两者之间可以互转,你可以让一部份学生轮流说出自己的生日,并使用0和1来表示这个
日期,而另一部份学生则将这些以0和1表示的数字转换成原来的日期,这就是二进制的
转换,也就是以2为基底的数字表示法。
7.请使用图1.6扩充练习上的工作表(完整的工作表请见图1.3),这个工作表使用灯泡
的亮或暗来表示纸牌的隐藏与显示,灯泡亮表示纸牌显示,灯泡暗表示纸牌隐藏。前面的几
个题型应该非常容易完成,例如第•题是代表8和1的纸牌显示,所以代表9。对于低于五
个灯泡的题型,学生应该使用前几个纸牌即可,例如在第二个题型中,只有使用三个灯泡,
从左到右对应的值分别是4、2和1,让学生试试看是否可以自己完成所有的练习。
六个灯泡的问题刚好可以配合六张纸牌的问题,每一张纸牌上的点数刚好是前张的两
倍,点数分别是:1,2,4,8,16,32,64所以32点的纸牌刚好可以用来解决六张纸牌的
问题。
在工作表下面有个使用卜26的数字来表示英文字母的对照表(0可以用来代表空白),
学生必须先学会每一个数字所代表的英文字,并且能找到对照表中的字母,这个表格代表我
们可以将文字的讯息转换成•系列的0与1,而学生们可以透过这种方法来传递编码过的机
密信息。
变换与拓展
在以下的练习中,我们使用棒子的长度来取代纸牌的点数(我们可以使用长度分别为1,2,
4,8和16单位的棒子来产生代表0-31单位的长度),或是使用重量来取代纸牌的点数(我
们可以使用重量分别为1,2,4,8和16单位的东西来产生代表0-31单位的重量)。
我们现在可以尝试使用高低音来取代如01101的顺序,高音频代表1、低音频代表0,这
个活动将会在教室中造成非常吵杂的结果,但是学生们将印象深刻。其实调制解调器和传真
机就是使用类似的音频技术来传递数据的,但是持续的高音音频将会造成类似撕裂的声音,
假如学生不熟悉这样的声音,可以让他们尝试以电话拨打传真机,他就可以听到这样的声音。
任一个有两种状态的对象都可以用来表示数字,图14显示我们可以使用各种不同的方法来
来表示数字9(01001),有•个比较特别的方法是使用手指头,手指头向上代表1、手指头
向下代表0,我们使用5根手指头可以代表最大的值为31,10根手指头则可以表示最大到
1023,这样的表示法需要•点点的小技巧,因为它将会产生一些奇怪的姿势,其实真正的挑
战是使用脚趾头,这将可以让你表示超过一百万的数字(真正是多少呢?两只手可以表示0
到1023,手指和脚趾在•起可以表示1024*1024=1048576),
中高年级的学生可能对于扩充1,2,4,8,16,32…的顺序会有极大的兴趣,这样的顺序存
在着一个非常有趣的关系:假如你将右边的数字累加到左边,总和将会永远比下一个数字少
lo
二进制有另一个非常有趣的性质那就是:你只要插入一个数字0在该数字的最右边,就
会产生2倍的效果,例如:1001⑼的倍数是10010(18),中高年级的学生应该可以自己解释
这样的现象代表什么(因为所有原来是1的位数值,现在都是原先的2倍了,所以总和变成
原来的2倍,相同的效果也会发生在10进位上,如果插入一个0在该数字的最右边,就会
产生10倍的效果)。
3
口图□□国
X5XX5
图1.4:表示数字9的一些其他方法
二进制数的概念可以被运用在猜数字的游戏之上,我们可以透过如:''该数字大于或等于
X吗?”的问句达成,例如我们知道该数字小于32,我们可以继续问“该数字小于16吗?”
来逐步达成猜数字的游戏。活动5将有更详细的描述。
使用5个数字可以表示所有的英文字母,但是如果要加上大小写那就不够使用了,你可
以让学生算算看计算机到底需要多少不同的字符来表示才足够(包括小数点、逗点和一些特
别的记号如$等),并且结论是要多少字符才能够储存所有的字符(两组英文字母、10个数
字和一些标点符号,全部已经超过了64个,所以需要7个数字才足够使用,但是7个数字
可以表达128个字符,已经非常足够了),目前大多数的计算机内部使用ASCII来储存数据,
每一个字符使用7个位来表示。
相关知识
现在的数字计算机几乎全部都使用上述的方式来表示信息,这样的表示方式称为二进制
制,因为只有采用了两个不同的数字来表示,这也可以称为以2为基底的表示方法(这和一
般人所熟知的以10为基底完全不同)。每一个0或是1称为位(bit,它是binarydigit二进
制数的缩写),“位”通常被用来表示计算机主存储器的地址,它是透过晶体管的开或关以及
电容器的充电或放电来表示不同的相位。在软式或硬式磁盘中,位则是透过磁盘片表面上磁
场的方向来表示,不是南一北就是北一南•CD—ROM则是透过光学的反射来表示,它运用
光的反射与否来表示0与.1。而当数据要透过电话线或无线电来传递时,必须先将数据以高
音频和低音频来表示0或1。
一个位可能无法表示太多数据,所以我们必须将这些字节合起来使用,我们常以8个位
来表示数据,8个位可以表示0—255的数字,8个位我称之为字节。
位不但可以表示数字,我们也可以拿它来表示文书处理文件中的字符,一个位通常被用
来表示个单一的文字字符,所以数字0—255就可以拿来表示所有的大小写英文字、数字、
标点符号和一些特殊符号。
为了要表示更大的数字,我们会将更多字节合起来使用,两个字节(16位)就可以被用
来表示65536个不同的值,四个字节(32位)可以表示超过40亿个不同的值。计算机的运
算速度会受到它一次可以处理位数多少的影响,例如32位计算机•次可以进行32位的运算,
而16位的计算机因为每次只能进行16位的运算,所以它必须将比较大的数打散成16位的
量,所以这样会造成速度变慢。
一般来说,我们无法直接看到计算机上的位和字节,因为它们在显示时已经自动转换成
字符和数字。但是,位和字节的观念,在计算机上用来储存数字、文字和其它讯息时,仍然
是非常重要的一种观念。
4
补充读物
大部分的计算机简介书籍都会讨论到二进制的数字系统,在GarethPowell所写的“My
friendArnold^bookofPersonalComputers一书第二章中,有完整的二进制数的介绍。
■.
••••
••••
♦•••
••••••••
••••••••
••••••••
••♦•♦•••••
图1.5说明:复制此页的卡片,并按着框图剪下图案,使两套这样的5张卡片。
BINARYNUMBERS展
Trytoworkoutthosebinarynumbers
f*cwt
vtm:
OOOsOO=w1OOwOO1Y
/夕=fOfIOOI
图1.6说明:计算出本页顶端电灯代表的数字。此外,在本页底端有•个二进制代码的消息;
在表中查找相关信息并计算出数字。
5
活动2数字表示色彩一图像表示
适用年级:小学生以上(至少7岁)
预设能力:可以计算初级数学
所需时间:10到40分钟
适用人数:从个人到整个班都可以
关注焦点
表示方法
着色
图
摘要
图画、照片及其他的图片都可以存储在计算机中,本课程讲述计算机如何有效地使用数
字来表示图片。
专有名词:
光栅图像,像素,图像压缩,行程编码(run-lengthcoding),传真机
所需教材
每个学生要发一张填空图(详见图2.1,形式如下图),铅笔、橡皮
图2.1填空图
6
教师需要准备如图2.2的幻灯片,也可以将其画在黑板上。
a■■■■
图2.2左为计算机屏幕上显示的字母“a”,
右图为其放大情形,可以清楚地看出组成的像素
活动流程
1.跟学生一起讨论传真机是如何进行传真的(在本次课程前最好安排学生先使用传真
机进行收发),计算机在什么情况下需要存储图片(例如:画图程序,游戏或多媒体等)。
接下来,向学生说明计算机智能存储数字(学过活动1-二进制数的学生对这一点会有
所了解),建议学生让计算机只使用数字来表示图片,看看他们如何做到。
2.我们如下解释计算机屏幕式如何显示图片:计算机屏幕被划分为许多小点,称之为
像素。“像素”是“图像元素”的简称,在黑白屏幕上,每一个像素不是黑就是白。图2.2显示
了屏幕上字母“a”放大时的情况,可以看见组成的点。计算机在存储图片时,只需要存储哪
些点是黑色,哪些点是白色就可以了。
3.我们以图2.2为例,说明图片怎样用数字表示,说明过程如下:写下第一行开始时连
续的白色像素数目(图2.1开始时只有一个白色的像素);然后是连续的黑色像素数目(3);
以次类推,知道整行被编码。
如此,第一行可以表示为1,3,lo用这种方法将其余行都编好数字,例如第二行表示
为4,1,即开始是4个白色的像素,接着是1个黑色像素。图2.3为图2.2的全部编码。注
意开始数字为0的行表示该行开头没有白色像素,第一个像素为黑色。
使用黑板进行说明可能比较困难,因为在黑板上难以分辨黑色像素
图2.3使用数字编码的图形2.2
4.让学生将图2.6进行解码。
解码后图片如2.3,2.4为缩小后的样子。
右边的“test”比较容易,而左边的“being”最为复杂,在方格内完成图像,由于十分容
易出错,所以最好使用铅笔。由于在填涂过程中表示黑色像素的数字十分容易出错,为了更
容易解码,我们可以将方格中的行和列编号,并将表示黑色像素的数字圈起来。
7
图2.5压缩图
变换与拓展
将描图纸覆在网格上进行解码,最后完成图像时就没有网格,这样会使图像更为清晰。
学生还可以使用方形彩色贴纸或其它替代物来取代铅笔填涂网格。十字绣的图案也可以使用
这种方式编码。
学生可以在网格中自己设计图案(或照着计算机屏幕显示出的画),然后将其编码,再
让其他学生还原。
由于二进制数表示的长度有限,通常实际应用中,像素最大长度是有限的。我们可以向
学生提问,让他们回答如何用7个格子来表示12个黑色像素(•种方法是将7个格子涂黑,
再下一行紧接着5格黑色),如果将颜色使用数字表示(例如:0表示黑色,1为红色,2为
绿色,等等)就可使用这种方法表示彩色图像。增加两个数字来表示一行像素,第一个水给
出像素的长度,第2个数字代表颜色。
相关知识
计算机中最简单表示黑白图像的方法是用0米表示白色,1来表示黑色。通常图像中经
常会有大块的白色(特别是页边)和连续的黑色(如水平线)。传真机中,每英寸有100个
像素,因此7英寸宽的页的一行开头的白色需要占用700bit存储量。
我们在课程中使用的“行程编码”方式更为有效,只需用lObit就可以表示上例中需要700
个二进制表示的图像。这个例子有一些极端,但也表明该方法可以显著节约空间。使用这种
节约空间的技术称为“压缩”,这也是计算机进行图像操作的关键。例如,一般来说,传真机
8
可以将图片压缩至原来的,。如果没有压缩技术,传真机需要花费7倍的时间进行传送,
7
这样会限制了传真机的使用。存储在计算机中的图像经常被压缩至’-甚至「一,有了压缩
10100
技术,计算机能够存储更多的图片。存储动画时这项技术更为重要,因为动画中每秒包含了
25张或更多图片。本课程所讲的压缩技术类似于大多数通用传真机使用技术。还有许多其
它压缩技术,一种是有损压缩,这种技术会轻微的改变图像以达到更好的压缩效果.压缩技
术会不会起反效果,反而将图像扩大了呢?也存在这种情况。假如有像国际象棋棋盘这样的
黑白间隔图像,直接使用像素表示黑白比使用数字编码更能节约空间,尽管这是一个假设,
但是•些真正的图像(如半调图像、向报纸上的插图等),由许多微小的点构成的图像,不能
很好地压缩甚至还会放大,因此,我们对这类图像表示方法的研究就显得十分必要。
补充读物
Netravali和Haskell的Digitalpictures:representationandcompression深入探讨了计算机
图像表示。
Hunter和Robinson于1978年发表的“Internationaldigitalfacsimilecodingstandards",文
章叙述了传真机编码标准方法。
最新关于图像编码标准的书是Pennebaker和Mitchell.的JPEG:StillImageData
CompressionStandard。
9
KjdFa*
i—.......J
>>)
Planet
Row1652.3
25.2,3,1
Being
3
Powf622.2
9.1.1,1
252.2.2,1
511.1
66
2
91.1
3
828Testpicture
62
Rowf11
92
723,1.4,1,3.1
9.2.1
4.2,3.1
1.Z12.29.2,1
112.2.5.1
11
1235,2
6.1.2.1.6.149
2.5
7,2.7.149
57
5.2,5.1
fS10.1
166.2
图2.6
说明:用数字在正方形内着色。图中的每一行都对应一行数字。例如,4,9,2,1这行代
表着方格4为空,方格9着色,方格2为空,方格1着色。
10
活动3文本压缩
适用年级:小学生以上(至少9岁)
预设能力:可以抄写文本
所需时间:大约10分钟
适用人数:从个人到整个班都可以
关注焦点
写
抄
在写过的文本中反复写
摘要
尽管现代计算机大规模存储技术有了很大进步,设备的存储效率仍然非常重要。在
数据存储时对数据编码,读取数据时对数据解码,这两处虽然耗费了一些时间,但是可
以很大程度上提高计算机的存储能力。本课程讲述了如何将文本进行编码以节约空间。
专有名词
文本压缩,Ziv-Lempel编码
所需教材
给每个学生发一张填空图,如图3.1所示。
教师需要准备一些诗歌或文章来给学生练习编码。
图3.1说明:根据箭头指向,在每个空白框填写所指的字母
11
活动流程
1.给每一位学生发一张填空图,并让他们来解码,即:将箭头所指向的字母填入空
格中,完成诗歌内容。例如,第一个空格应该填入字母e,第二行的第一个空格应填入
第一行的短语Peaseporridge。填好后如下图。
图3.2已完成的工作表
2.我们让学生自己找一些文本,并使用箭头和空格表示,使最后留下来的文字越少
越好。若空格的填充顺序是从上到下,从左到右,箭头应一直指向前面的部分,这样才
能保证能够解密。学生可以自己写一些文本,将其编码,也可以使用教师提供的文本。
因为许多儿歌和诗歌有许多重复的单词、短语或句子,所以它们都可进行有效的编码,
如Dr.Seuss's的书"Greeneggsandham"就是一个很好的素材。
变换与拓展
箭头与空格编码必须要使箭头总是指向前面的文本,例如,图3.3显示了单词
“Banana”的编码情况,尽管空格的箭头指向该单词本身,仍然可以按照从左到右的顺
序成功解码,对于有较长循环的字符或模式,采用这种自表达的方式编码很有用。
图3.3自我参考复制的代码
12
在计算机中,箭头和空格都可使用数字表示,例如:图3.3可以表示为“Ban(2,3)”,
2表示第2个字符为第一个要抄的字符,3表示需要照抄3个连续的字符。解码过程如下:
Ban___
Bana..
Banan.
Banana
图3.4
在计算机中,显然两个数字要表示两个以上的字符,如只用来表示一个字符,则没
有编码的必要。学生可以尝试采用数字表示法来进行编码和解码。
为了让学生更好的认识这种编码,可以发给学生一张印有文本的纸做练习,让学生
找出可以用数字来取代的部分,这些部分必须包含有两个或以上字母,因为若用两个数
字对一个字母进行编码不能节约空间,练习的目的是尽可能的将字母用数字表示。
相关知识
计算机的存储能力正在以不可置信的速度增长,过去25年中,计算机存储量实现了
百万倍的增长,但是相对于存储需求,这种增长仍不够。计算机能够储存一本书的能力
提供了存储整个图书馆藏书的可能,可以显示高质量的图片意味着可以播放电影,具有
较高可靠性的CD-ROM取代了软盘存储分散数据和程序。任何拥有计算机的人都会见证
Parkinson定律,即总有存不完的数据。
为了满足存储需要,除了购买更多的存储空间外,还可以压缩现有的数据。本课程
描述了压缩过程:改变数据的表达形式来节约空间。计算机会自动执行压缩和解压缩,
用户几乎不会意识到这个过程,他们只是注意到磁盘存储数据越多,从磁盘中读取文件
所需时间有了增加。计算机在存储和读取时也要耗费一些时间,有时系统使用压缩的文
件会更快,这是因为解压缩的时间要小于读压缩文件所节约的时间。
人们提出了许多压缩方法,其中普遍被采用的技术就是指向先出现重复的大块文
本,通常称这种技术为“Ziv-Lempel编码”或LZ编码,是以色列的两个教授于20世纪70
年代到80年代所提出的。这种编码对许多数据都有效,它还可适用于西班牙语、英语,
甚至是日语这种使用完全不同的字母表组成的文字,这种编码应用于文本,因为文本中
有很多单词会重复出现,可以使用指针取代。典型的LZ编码压缩可以将数据减少一半,
通用的档案存储程序如Zip和ARC以及磁盘备份时都使用了LZ编码进行,高速modem也
使用了LZ编码,当计算机通过普通电话线进行交互,压缩技术可以减少电话线传输数据
来量,从而显著提高传输速度。
还有一种压缩方法是采用较短码长表示高频字(如Morse编码)。此外还有更好的
方法(所需时间更多),基于这种思想,我们可以凭借现有的几个字母时测出下一个字
母,这将在活动5中有所介绍。
补充读物
Bell,Cleary,Witten写的Texfcompressionby以及Witten,Moffat,Bell写的
Gigabytes:Compressingandindexing全面介绍了压缩算法,这是面向大学计算
机科学的学生的。如果你对计算机编程感兴趣的话,还可以阅读MarkNelson的T成血柩
compressionbook,这是一本以应用为指南的书,Dewdney的O"皿沏/在文本压缩这
一章还讨论了“Huffmancoding”。
13
活动4卡片魔术一检错与纠错
适用年级:小学三年级以上
预设能力:能够识别和数出小的奇数和偶数
所需时间:大约30分钟
适用人数:从一个人到全班都适用
关注焦点
奇数和偶数
模式
小魔术
摘要
我们通常假定数据从一台计算机传送到另一台时总是正确的。然而,事实却不是这样,
会有一些意外发生,使数据发生改变,这次课程使用一个小魔术来展示如何检查出这些错误
并进行纠正。
专有名词
检错码,纠错码,奇偶校验
所需教材
每两个学生需要一套约25张的相同的卡片,卡片具体要求在后面描述
为了向全班进行演示,教师需要一套约40张的带磁卡片和•块金属板
活动流程
这次课程通过魔术来教导学生,在第一次演示时能够很容易的引起学生的兴趣,然后再
告诉学生怎么变这个魔术。为了增强魔术的效果,可加入•些戏剧因素。学生的位置安排必
须使他们可以清楚的看到教师的动作。表演这个魔术需要一叠同样的两面不同的卡片,比如,
•面是红色,一面是白色,可以用•张大的单面有颜色的卡纸裁开制成;或是使用扑克牌。
为了便于演示,卡片应带有磁性,可以买一些磁条粘在卡片上。制作大约40张这样的卡片,
•半为正面,-半为反面。将卡片放在一块竖着的金属板上,以便演示给全体学生看,而当
学生表演时,可以让他们把卡片平放在面前的地上或桌子上。
1.让一个或两个学生随意选择卡片排列成一个矩形,任何大小都可以,例如5X5(矩
形摆得越大,效果越好),卡片的排列方式任意,图4.1为一个示例:
图4.1一张初始任意的5X5卡片排列
14
2.教师随意的增加一行和一列,使卡片排列看上去更为复杂(如图4.2)。这一步是魔
术的关键,其方法是必须保证每一行和每一列中有颜色的卡片为偶数张。
图4.2增加一行一列的卡片排列
3.找一个学生来翻动一张卡片,改变它的颜色。当学生翻卡片时,教师可以蒙住眼睛,
背对卡片,不去看学生是如何做的。例如图4.3,第4行第3章卡片被翻动了。然后,解放眼
睛,仔细研究卡片,并断定哪一张卡片被动过了。将其恢复后,可再找一些学生来做演示,
使学生信服。这个魔术可以用任意多张的卡片做,卡片数量越多,效果越好。
口■口”
口口口口
口
flfDDCD
图4.3翻动一张卡片的排列
4.让学生来猜这个魔术是怎样做的。
5.此时教师可以提出将秘密告诉学生。
将学生分成两人一组,让每一组学生将他们的卡片排列成4X4的方形,卡片的排列方式
任意,检查学生是否能记住奇数和偶数的概念,并说明0是一个偶数。然后让他们再增加一
行或冽,确保有偶数张有颜色卡片(如果有色卡片的颜色已经是偶数,就增加•张白色的
卡片),此时教师可以将这张卡片称为奇偶校验卡片,以教学生奇偶校验这个术语。指出当
・张卡片被翻过后会变成怎样:翻过了的卡片所处的行和列中有色卡片的数量成为了奇数。
当学生会4X4后,可以让他们排更大的矩形。
变换与拓展
教师可以用任意具有两种状态的物体来代替卡片。例如硬币(正面/反面)、棍棒(水
平放置和垂直放置)、杯子(口向上和底向上)等等。如果将此活动替代活动1,可以标志
卡片的一面为0,另一面为1。将卡片用二进制表示,奇偶校验位用来保护信息。
通过卡片练习学生还可以发现更多。让他们考虑两张卡片被翻动时的情况,在这种情况
下,将无法确定的判断出被翻的两张卡片,尽管可以看出有卡片被翻过了。当3张卡片被翻
动后,会出现类似的情况,能够看出卡片被翻过了,不能准确的看出是哪几张被翻过了。当
4张卡片被翻动时,有可能校验位变成正确地,此时也不能发现有错了。
另一有趣的练习是关于最后一张卡片(最右边最下面)的设置。如果它在列上是正确的,
15
那么在一行中是不是也是正确的呢?(答案是肯定的,可以让学生来寻找反例以证明这一
点)。
上面所用到的校验码是偶校验,即使有色卡片数量为偶数,也可以使用奇校验,即使每
一行和每一列中的有色卡片数量为奇数,此时最后放置的卡片(最右边最下面)时只有行数
和列数同为奇数或同为偶数时才可成立,例如当矩形为5X9或12X4时可以,而3X4时不行。
可以让学生自己来做奇校验并试着让他们发现这个规律。
生活中用到检错的有用于图书出版的国际标准图书号(ISBN)。它是一个有10位数字
的号码,一般印在书的封底,用来唯•的标识一本图书。最后(第10个)的一位数字并不是
图书标识,而是一个校验码,就像我们之前说的奇偶校验码,用来检验整个号码是否有错误。
如果,我们使用ISBN订购图书,若有一位数字出错,则通过校验和可以检查出,使我们不
会买到错误的书。
校验和可以通过一些简单的算法计算,可以将第一位数乘以10,第二位数乘9,第三位
乘8,依次类推,直到第九位数乘2,将所有的积相加所得到的和用s表示。例如:有这样一
个ISBN号码,0-13-911991-4,则s=0X10+1X9+3X8+9X7+1X6+1X5+9X4+9X3+1X2=172。然
后取s除以11所得的余数,在上例中为7。如果余数为0,那么校验和为0,否则,取该数与11
的差作为校验和,位ISBN中的最后一位,即得11-7=4。此时如有算得ISBN中的最后一位不
为4,就可知道有错误发生。
使用此方法计算出的校验和最大值为10,在ISBN中使用字母X来表示,校验和为10的情
况是十分少见的。
让学生试着检验一些真正的ISBN的校验和。让他们知道他们可以检测出下列常见错误:
1.一位数字的值被改变了
2.两位相邻数字的值互换
3.增加了一位
4.减少了一位
让学生思考哪些错误是不能被检测出来的,例如,一位数字变大了二另一数字变小导致
和不变。
另一种相似的校验码(使用了另一种算法)为条形码。例如日用货品上的(图4.4)。如
果条形码读错了,则会出现最后一位与计算结果不同,此时,扫描器报警通知并重新扫描。
图4.4一张来自食品的条形码(UPC)
相关知识
假设我们要在银行中存入10元,银行工作人员输入这张存单并将其传送给中央电脑,使
你的帐户增加10元,若在传送过程中由于噪声干扰,在数量上出现错误,会使增加10元变为
增加1000元。面对这种情况,毫无疑问,银行很有必要保证传送信息的正确性。
这只是数据传送中必须检错的•个例子,事实上,无论那种场合,计算机间进行数据传
送,接受方能够检验接收的数据是否受到线路噪声的干扰使非常重要的。这种传送可能是金
16
融数据、文件传真或是电子邮件。不仅是文件传送,还有一种情况下进行检错也是非常重要
的,即当我们从光盘或磁盘上读数据时。由于这些存储介质会受到磁性、电辐射、热量以及
物理损害的影响,因此我们不仅想要直到存储数据是否受到损坏,还想要重构哪些被损坏的
数据,与数据传送时不同,我们无法要求重传有问题的数据。还有一种情形也不能重传数据,
即数据是从遥远的空间探测头上传来的,因为移动探测头上收集的数据会随时间而变化,若
有错误发生,进行重传的等待时间十分漫长,而且空间探测头的容量十分有限,无法存储足
够的资料。
能够发现数据中的错误称为检错,能够重新构造原来的数据称为纠错。一种实现检错和
纠错的简单的方法是同一数据传送3次,如果有错误发生,那么该数据就会与其他两份数据
不同,我们可以知道并将错误的数据丢弃。然而,这种方法存在不少问题,例如如果有两份
数据正好都犯了同样的错误,就会判断出错。另外,使用该方法会使系统效率十分低,因为
必须存储或转发3倍的数据。尽管所有的错误控制体都须要增加额外的数据,我们仍然可以
采用更好的方法。
所有计算机数据存储和传送时都是采用0和1序列,称为位,所以问题的关键就是确保发
送的01序列是正确的。卡片魔术用了两面不同的卡片分别表示。和1,并增加了奇偶校验来发
现错误,同样的技术可以用于计算机中,在一行序列中增加一个校验位可以发现一位错误,
将这些序列排列成矩形(同游戏),并在每•行和列都增加•个偶校验位,我们就可以做到
检错和纠错了。
事实上,计算机使用更为复杂的错误控制体系来发现和纠正多级错误,不过,这种体系
类似于奇偶校验方法,即使是最好的错误控制体系,也会有检测不出错误的可能,不过这种
可能性十分微小,小到与一只猴子能够随意敲击出莎士比亚的作品一样。
补充读物
奇偶校验的方法探测错误是比较原始的,还有许多种更好的方法,其中比较重要的方
法有Hammingdistances,CRC(cyclicredundancycheck),BCH(Bose-Chaudhuri-Hocquenghem)
codes,Reed-SolomonCodes,和回旋码(convolutionalcodes),这些方法的具体内容可参照
RichardHamming的CodingandInformationTheory,andBenjaminArazi'sAcommonsense
approachtothetheoryoferrorcorrectingcode。Hamming的书的ISBN号码为0-13-139139-9,这
本关于编码的书有一个十分有意思的书号。比较简单,易懂的关于纠错的书有TheTuring
Omnibus,作者是Dewdney,以及inComputerScience:AnOverview作者是Brookshear。
17
活动520次猜测——信息理论
适用年级:小学三年级以上
预设能力:比较两数大小和数的归类
所需时间:20到30分钟
适用人数:从2个人到全班都适用
关注焦点
演绎
数的归类
提问题
摘要
计算机科学非常关注信息,信息对于计算机非常重要,计算机系统要进行信息存储、读
取、分析、总结并与其他计算机交互,因此信息的量化十分关键。信息理论提供了衡量信息
的方法,包括如何有效地存储或传输的规则。本课程研究了衡量信息内容的方法。
专有名词
信息理论香农定理编码数据压缩检错和纠错嫡
所需教材
板书,如黑板和粉笔
如表5.1的卡片
消息类型消息样例说明
1到100之间的数字67
对年龄较大的学生,可以使用1到10万之间
1到1000之间的数字387
的数字
任意数字145对年龄较大的学生,可以取更大的数字
回答问题的学生年龄10不介意的话,可以使用教师的年龄
告诉学生有6个有规律的数字,让学生猜从
{2,4,6,8,10,12}
第一个到最后一个的数字
数字序列
这此数字是先加2,再减1,再加2,再减
{1,3,243,5,4,6,5,7}
1,.......
句子需要按从左到右的顺序,一次猜测一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江万里学院《美学与医学美学》2023-2024学年第二学期期末试卷
- 平凉市灵台县2024-2025学年六年级下学期调研数学试卷含解析
- 武汉纺织大学外经贸学院《广播电视新闻采编》2023-2024学年第二学期期末试卷
- 广州商学院《口腔工艺管理》2023-2024学年第二学期期末试卷
- 云南财经大学《新技术在城市规划中的应用》2023-2024学年第二学期期末试卷
- 镇江市高等专科学校《影视虚拟空间技术》2023-2024学年第一学期期末试卷
- 浙江工业大学《精神卫生保健》2023-2024学年第一学期期末试卷
- 债券相关知识培训
- 工艺流程培训
- 辽宁省大连市瓦房店市2024-2025学年七年级下学期期中地理试题(含答案)
- 2025年湖北省初中学业水平考试数学模拟卷(二)(原卷版+解析版)
- 2025年华能新能源股份有限公司广东分公司应届高校毕业生招聘笔试参考题库附带答案详解
- 2025年新疆克州中考英语一模试卷
- 2024年新疆伊犁州直检察机关招聘聘用制书记员笔试真题
- 口腔四手操作培训
- 医院检验科简介
- 成人手术后疼痛评估与护理团体标准
- 连锁药店年度规划
- 2024年10月自考07729仓储技术与库存理论试题及答案
- 血液透析头痛的应急预案
- 肝硬化肝性脑病指南
评论
0/150
提交评论