蒋慧丽 江苏省宜兴市和桥高级中学

素养包含品格和能力,是知识、技能、态度等整体综合的能力。与传统的教学模式相比,素养导向的教学旨在促进学生对所学知识和技能进行有意义的深度建构。[1]《普通高中信息技术课程标准(2017年版2020年修订)》倡导项目式学习,要求教学内容主题化、课程内容情境化,教师需转变教学思维,积极探索基于情境、问题等的课堂教学,注重加强课题研究、项目设计、研究性学习等跨学科综合性教学。[2]信息技术学科注重算法、数据等核心概念,要求学生掌握程序设计语言的基本知识,利用Python实现简单的算法,解决实际问题。但目前学生在学习Python编程的过程中难以学以致用,如何将所学知识应用于解决真实问题是教学中亟待突破的点。因此,笔者以素养为导向,将项目式教学方法应用于高中Python编程教学中,尝试对当前的编程教学进行革新。下面,以教育科学出版社出版的高中信息技术《必修1 数据与计算》中的“认识”数据单元的“加密与解密”内容为例,介绍此种教学设计的思路与实施路径。

●项目设计

该部分内容包含“数据加密和解密的概念及技术原理”“凯撒加密和解密算法”“用Python实现简单的加密和解密算法”。数据也是一种信息,因此,笔者设定本项目的主题为“信息的守护者”,引导学生学习密码的设置、加密、破译,理解保护数据的意义。项目的难点是利用凯撒加密算法理解加密思想,并通过程序设计实现加密与解密。学生将综合运用Python编程中的循环、条件语句、字符串和ASCII码转换函数等知识点解决真实情境中的问题。

●教学流程

1.情境创设

项目情境要贴近学生实际的情况和学习需求。本节课的情境基于中国的飞鸽传书和二战中的军事信息传输,学生需理解飞鸽传书的局限性以及军事情报的安全挑战,从而引出“数据的加密与解密”的主题。

师:(出示图片)中国有一种古老而独特的传信方式——飞鸽传书,这种传输方式是否存在安全问题?

生:敌军可以截获并解读这些信息。

师:如何解决这个问题?西方国家采用一种方法,将信息转化为一种特殊的内容,只有掌握特殊内容转换方法的人才能将其还原成原文。即使敌军截获了传输的内容,也无法解读其中的真实含义,从而确保了信息的保密性,这种数据处理技术成为二战期间军事通信的关键。(引出本节课的项目主题:通过学习数据的加密和解密,成为“信息守护者”)

2.项目分解

项目式教学基于基本知识内容,以单元中的学科中位、核心概念为起点,明确项目的本质,对项目进行准确的表征和理解,将复杂项目拆解为一系列有意义的问题,从而形成对项目的准确描述和全面认识。基于此理念,笔者将项目主题“信息的守护者”分解为“信息的隐身”和“揭秘隐身术”两个子任务。

子任务1:“信息的隐身”。教师发放学习任务单,即理论任务单,在理论任务单中,“数据”为核心大概念,学生将深入学习数据加密的概念、原理等理论知识,该部分的项目成果是加密和解密的过程图。教师先让学生阅读书本并探究“情境创设”中的“将信息转换为内容”的“信息”“内容”“转换的方法”分别对应加密和解密技术中哪些专业名词,然后总结加密与解密相关理论:将原始信息(数据)隐匿起来,在缺少特殊信息(数据)时不可读的即加密,原始信息(数据)称为明文,加密后的信息(数据)称为密文,将密文还原成明文的过程称为解密(或解码),控制加密和解密过程的是密钥。教师让学生发挥主观能动性,根据核心概念绘制加密解密的过程图,最后总结加密和解密原理。

子任务2:“揭秘隐身术”(本项目的重点内容)。主要学习凯撒密码算法及思想,合理设计加密解密程序。教师发放实践任务单,学生分组搜集相关的加密算法,如凯撒密码、维吉尼亚密码、哈希算法等,并进行展示比较。教师以“凯撒算法”为例让学生体验凯撒密码,学生自主探究凯撒加密算法,将任务单上的代码补充完整,并编程体验“信息的隐身”,实现对信息的加密。在教学过程中,教师应注意锻炼学生举一反三的能力,灵活分析问题、描述算法、编写程序、调试运行,通过对加密过程的推导和类比自主完成解密程序。

3.算法探究

以“凯撒加密算法”为例,由于高一学生已经掌握数轴中关于偏移量的数学知识,教师可以通过偏移量的表达建立数学关系抽象出加密算法。教师呈现如图1所示的算法规则,让学生尝试在字母表上进行简单的偏移操作,学生观察找到规律:将图中每一个字母用字母表中该字母偏移后的第三个字母替换。接着,教师提问:“每一个字母都满足这个规律吗?最后几个字母的规律是什么?”学生回答:“如果明文字母在‘A’和‘W’之间,则直接后移3位得到相应密文字母,如果明文字母在‘X’和‘Z’之间,则返回字母表的开头按顺序后移。”在学生了解算法规则后,教师呈现凯撒密码表(如下表),学生从表格中可以清晰地观察字母在字母表中的位置与ASCII码之间存在的对应关系并建立数学表达式。以字符Z为例,向后偏移3位,Z后面变成了字母C,ASCII值-26再向后偏移ASCII值+3,学生得出数学表达式,即A-W:密文码值=明文码值+3,X-Z:密文码值=明文码值-23。至此,抽象出凯撒加密算法的核心原理,将明文中的每个字母向后移动固定的位置,同时也让学生理解在计算机中英文字符是以ASCII编码形式存储和处理的,偏移过程是通过对ASCII码值进行加减操作实现的。

?

图1

4.编程测试

编程测试阶段学生需要思考如何用Python语言描述明文、密文和密钥,根据教师下发的实践任务单,画出流程图,分析凯撒密码核心算法代码的知识点。凯撒加密过程可以分解成3个子问题:如何处理密码中的每一个字符?如何转换ASCII码和字符?如何考虑不同大小写的字符?

子问题1可以采用循环结构遍历每个字符。子问题2涉及ASCII码和字符之间的相互转换过程,用Python实现加密算法需用到ord()和chr()函数,ord()函数将字符转换成对应的ASCII值,chr()函数把ASCII值转换成对应的字符,明文转换成密文即“字符-数值-字符”两次变换过程,将其用Python语言表示即A-W:密文=chr(ord(明文)+3),X-Z:密文=chr(ord(明文)-23)。子问题3采用条件结构判断A-W间的字母、X-Z间的字母以及非字母的其他字符。示例代码如图2所示,实践任务单上的代码可以重点让学生根据注释补全第3行到第9行代码。学生提交加密程序作业,然后自主推导解密算法并完善程序(需注意字母表变换的范围),如图3所示。

图2

图3

5.成果评价

项目评价环节将实施素养导向的表现性评价,学生分享自己设计的作品,教师归纳总结典型错误、易错点以及课堂的生成性问题。最后,围绕学生的编程项目成果、代码质量、解决问题的思维和创新性等进行不同维度的评估,学生根据教师设计的表现性评价量表进行同伴互评,全面地评估学生在编程项目中的能力和素养。

●结束语

本文以“加密和解密”为例,呈现了素养导向的高中Python编程项目式教学设计的思路:情境创设、项目分解、算法探究、编程测试、成果评价。在进行教学设计时,教师需明晰“项目”的意义,项目式学习的前提是教师要设计真实的项目主题、驱动性的高质量的任务和问题,并对教材内容进行二次开发以提高自身的学科教学胜任力。