李猛 山东师范大学
武小芬 山东省淄博高新区华侨城小学
《义务教育信息科技课程标准(2022年版)》指出,“信息科技是现代科学技术领域的重要部分,主要研究以数字形式表达的信息及其应用中的科学原理、思维方法、处理过程和工程实现。信息科技课程旨在培养科学精神和科技伦理,提升自主可控意识,培育社会主义核心价值观,树立总体国家安全观,提升数字素养与技能”。同时,《义务教育课程方案(2022年版)》提出,“课程教材要体现中国和中华民族风格……将中华传统文化有机融入课程,增强课程思想性”。信息科技课程作为一门探索科学原理、培养计算思维的课程,如何与传统文化进行有机融合,笔者以“古诗中的信息加密”为例对其进行了探索。
在信息科技教学中,谈到“信息加密”,一般都是以经典的“恺撒密码”作为教学内容。“恺撒密码”是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。我国是世界文明古国之一,在漫长的历史进程中有着很多对信息加密的智慧。我们能不能把古人的智慧在信息科技课堂中呈现出来,与学生一起用算法思维研究古人的智慧,并用程序再现呢?
笔者与学生以“中国古代加密技术”为关键字进行搜索,发现我国是世界上最早使用密码的国家之一,有文字考证的历史可以追溯到3000年前的周代,先后出现过“阴书”“牙璋、虎符”“五言律诗秘钥加密法”“戚继光声韵加密法”“袖里吞金”等加密技术。结合以上几种加密技术的特点,笔者选择了将“五言律诗秘钥加密法”“戚继光声韵加密法”整合为“古诗中的信息加密”单元进行算法研究。
①了解我国古代利用古诗进行信息加密的原理。
②能分别用自然语言与N-S图叙述古诗信息加密的算法。
③能通过列表、循环、分支、字符与字符串进行编程验证。
④能拓展迁移思考恺撒加密的算法。
环节一:了解“五言律诗秘钥加密法”
教师介绍现代军事中的加密方法,并提出问题:古人是如何对重要信息进行加密的?
学生通过上网搜索,了解古人的加密技术,并对“五言律诗秘钥加密法”进行重点研究。
教师讲解:“五言律诗秘钥加密法”见于我国北宋时期的军事著作《武经总要》。该法首先对40个常用军事短语进行顺序编码:一、请弓;二、请箭;三、请刀;四、请甲;五、请枪旗;六、请锅幕;七、请马;八、请衣赐;九、请粮料……四十、战小胜。在军队出征前,指挥机关将用上述短语编码的密码本发给将领,并约定用一首不含重复文字的40字五言律诗与密码相对应。假设双方以唐代杜甫的《春望》作为解码密钥:“国破山河在,城春草木深。感时花溅泪,恨别鸟惊心。烽火连三月,家书抵万金。白头搔更短,浑欲不胜簪。”如果军队需要补充粮食,前方将领就从密码本中查出“请粮料”的编码(第九),《春望》中的第九字是“木”,将领便把“木”字写到一件普通公文中,并在字上加盖印章。指挥机关接到这件公文后,查出盖印章的“木”字,在约好的诗中列第九,再对照密码本上的顺序,就知道前方缺粮草。
环节二:解密过程分解(如表1)
表1
①建立“密码本”。
②建立“解码密钥”。
③收到“密码”后在“解码密钥”中搜索找到对应“密钥”。
④根据“密钥”找到“密码本”中对应信息并输出。
环节三:编程验证
①前期知识储备:建立变量、变量赋值、建立列表、循环结构、列表的“项”。
②程序编写(如图1)。
图1
③验证调试:输入密码为“月”,程序输出“贼移营”。
环节四:应用迁移
①根据前三个环节,教师与学生一起讨论得到信息加密与解密的核心是制订规则,根据规则进行加密与解密。
②教师提出思考问题:本案例中选择可以作为“解码密钥”的古诗的标准是什么?如果所选古诗不符合这个规则,将会产生什么后果?能不能通过修改程序的参数,即“解码密钥”的古诗,验证自己的想法。
③教师针对此案例与学生一起查找符合“解码密钥”规则的古诗,并根据此案例进一步完善,设计加密部分程序,使该案例成为既能进行加密又能进行解密的完整程序。
环节一:初探“戚继光声韵加密法”
教师分析:“戚继光声韵加密法”又称“戚继光反切法加密”,是由我国明代抗倭名将戚继光发明。戚继光借助我国自东汉末年产生的“反切注音法”,即一个汉字的读音可以由两个汉字相切得到,声母由第一个汉字提供,韵母由第二个汉字提供,再加上当时的八种音调,编出完整的反切密码,如“粮”字可由“来江切”而得,即“来”提供声母“l”,“江”提供韵母“iang”,这样的信息加密安全性更高。戚继光为此还专门创造了两首诗作为密钥:“柳边求气低,波他争日时。莺蒙语出喜,打掌与君知。”“春花香,秋山开,嘉宾欢歌须金杯,孤灯光辉烧银缸。之东郊,过西桥,鸡声 催初天,奇梅歪遮沟。”第一首诗的20个字提供声母,编号为1~20。第二首诗36个字提供韵母,编号为1~36。例如,“12~23”中的“12”对应第一首诗的“蒙”,提供声母“m”;“23”对应第二首诗的“郊”,提供韵母“iao”。相切后为“miao”,根据当时的音调标注法可进一步确定为“瞄”字。
环节二:任务分解(如表2)
表2
①建立“声母密钥”“韵母密钥”。
②输入“密码”。
③分割“密码”中的数字。
④根据分割后的数字分别找到对应的“声母”和“韵母”。
⑤相切后得到解密后的信息。
⑥建立N-S图。
环节三:编程验证
①难点分析:编程的难点在于如何把输入的密码如“2-24”进行数字分割。此时教师引导学生建立四个变量“数字”“数字1”“数字2”“指针”,并把前三个变量分别赋初值为空,“指针”变量初值为“1”。分割数字分为两部分进行,在“回答”字符串的第“指针”项等于“-”前,利用变量“数字”取出“回答”的第“指针”项数字并通过字符串相加赋值给变量“数字1”从而取出声母所对应的数字值。“-”之后利用变量“指针”大于“回答”字符串长度这一条件,重复执行“数字”取“回答”字符串第“指针”项数字并以字符串形式累积到“数字2”得到韵母所对应的数字值。利用“数字1”和“数字2”得到对应的“声母”“韵母”并拼出拼音,此时可根据语境推断出相应的信息。
②搭建程序(如图2)。
图2
环节四:应用迁移
探索以“2-11,4-23,6-16”这种形式输入密码时如何分割数字。
此项目根据前面两个项目,以小组合作形式,学生自主完成并制作PPT进行展示。
通过此单元教学,学生经历了发现问题、分析问题、任务分解、构建算法、编程验证、迁移运用的思维过程。此过程中需要学生语文素养的支持,如古诗的积累、声母韵母等语音学的知识储备。合适的选题使语文学科与信息科技学科自然融合,文理相得益彰,传统文化的魅力尽显,取得了较好的教学效果。