小学《人工智能编程》课程教案
第21讲 阿兰的密码
1.教学内容分析
本节内容首先情境带入,引出序列类型数据基本知识;随后,以Python编程软件为辅助,讲解列表及其基本操作知识;之后,开展实践任务,编写代码,以解密恩尼格码的功能为例,熟悉Python解密的程序设计;然后,思维拓展,讲解列表与数组及数据结构基础等内容,最后,能力提升,通过Python编程进行解密2栏栅栏密码。
2.学习者分析
1.学生具有一定的Python编程语言基础;
2.学生已经掌握一些数列等数学知识;
3.学生具备一定的逻辑推理能力,知识迁移能力,对人工智能的技术有较强的学习兴趣。
3.学习目标确定
1.知识与技能:
①理解列表的概念,掌握列表元素的基本访问方法;
②掌握列表的创建及其元素的索引方法;
③学生能够认识了解列表与数据及数据结构等知识。
2.过程与方法:
①通过学习列表及元素索引相关知识,体会人工智能程序运行逻辑;
②通过项目的编程练习,培养学生设计能力和举一反三的能力。
3.情感态度与价值观:
①养成自主学习、自主探究的能力;
②培养发现问题、解决问题的探究能力;
③通过对项目的讨论、分析、制作等活动,培养严密的逻辑思维能力。
4.教学重点难点
教学重点:1.理解列表元素及其访问方法;
2.掌握列表值得索引步骤;
教学难点:1.初步掌握列表的合并、更新、删除、截取等常用操作方法;
2.灵活运用软件完成项目的制作。
5.教学流程图
情境导入
原理讲解
项目制作
思维拓展
展示小结
能力提升
6.教学活动
环节一:(情境导入)5min |
教学活动1 1.教师讲授情境故事,设置悬念,吸引学生兴趣;(教师播放PPT) 教师:“电影大片《猎杀U-571》讲述了二战中同盟国不惜代价去获取德国恩尼格玛密码机的故事。恩尼格玛密码机包括一个用于输入明文的键盘、电子显示灯和一系列转子(也就是扰频器),每个转子都有26个档位,档位和字母表上的字母相对应。恩尼格玛密码机的原理看似简单,只有键盘、转子和显示器三个模块,但是密码机内至少有三至四个机械转子,用于改变加密文字的电路信号,一共能产生一亿亿种可能性,用暴力法来破解几乎是不可能的。因此,恩尼格玛密码机广泛应用于德军各级部队,德军通过更换及扩充转子的方法进一步提升了数据加密的性能。后来,波兰、英国、美国等同盟国费尽心机才破解了德军的恩尼格码通信系统,为二战胜利做出了很多贡献。当今数字时代,信息安全更为重要。小楷也准备学习一些数据加密解密技术,应用在后续的软件设计之中,同学们,你们想不想学习通过自己加密或者解密来保护自己呢!” 字符串截取特定字符前的文字学生聆听情境故事,积极回应老师,对数字运算产生兴趣; 教师:“好的,同学们,我们一起去学习一下怎样通过Python解密,今天我们的学习将分成三个模块,第一个模块,认识一些序列类型的数据;第二个模块,一起完成对恩尼格码解密的实践任务;第三个模块,思维拓展,学习一下列表引用及数据结构基础等知识。” 学生聆听教师讲授。 |
活动意图说明: 通过情境故事吸引学生的注意力,激发学生的学习兴趣,导入本节课的内容----阿兰的密码 |
环节二:(原理讲解)20min |
教学活动2 1.讲解列表及列表元素访问方法等知识内容; 教师:“Python中,经常会遇到一组元素,元素之间存在先后关系,通过序号来访问。这种类型的元素,就叫作序列类型的数据。列表(List)是包含0个或多个元素的有序序列,没有长度限制,可自由增删元素。列表里元素的类型可以不同,内容也可以改变,使用比较灵活。列表用方括号([])表示,元素之间用逗号分隔。如:[1,'one',2,'two']。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示;列表也可以通过list()函数将字符串转化成列表。例如;可以看出,直接使用list()函数会返回一个空列表。列表的数据项不需要具有相同的类型,使用起来具有灵活性。列表也支持成员关系操作符(in)、长度计算函数(len())、分片([])等操作。列表可以同时使用正向递增序号和反向递增序号,可以采用标准的比较操作符( <、 <=、==、 !=、 >=、 >)进行比较。然后,我们学习一下如何访问列表中的值。与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。可以使用下标索引来访问列表中的值。 Python列表有2种两种序号体系,即正向递增序号和反向递减序号,如图所示。同样也可以使用方括号的形式截取字符,程序代码与结果如图所示。” 学生聆听教师讲解列表元素及访问方法等知识内容,并播放PPT,进行操作演示; 2.讲解列表常用操作方法等知识内容并进行相关操作演示; 教师:“列表是一种序列,元素的数目是可变的。Python提高了一组操作符和函数用来处理列表类型,图中是一些常用的操作方法。首先我们先做一个练习,列表list数据类型的输出,程序代码及运行结果如图;然后我们看一下列表脚本操作符,列表对 + 和 * 的操作符与字符串相似。+号用于组合列表,*号用于重复列表。编程示例如图;接下来我们学习如何更新列表,Python允许对列表的数据项进行修改或更新,也可以使用append()方法来添加列表项,程序及结果如图所示,接下来,我们做一个练习,增加和替换列表元素。程序及结果如图所示;然后我们学习如何删除元素,可以使用del语句来删除列表的元素,程序及结果如图所示;最后,我们看看如何截取列表,我们以凯撒密码为例,程序及结果如图。” 学生聆听教师讲解常用操作方法等知识内容,并播放PPT,进行操作演示; |
活动意图说明 配合PPT和Python编程语言进行讲解,让学生从亲身经验中体会列表元素访问及常用操作方法。 |
环节三:(项目制作)25min |
教学活动3 教师带领学生借助软件完成恩尼格码的解密; 教师:“首先,编写代码,实现只有一个转子,初始位置是A的情况下,解密恩尼格码的功能。即对于输入的密文,明文依次为字母表前移1位, 2位, 3位……。其次,设计流程图,最后,利用Python编程进行恩尼格码解密,程序及结果如图。” 教师操作Python编程语言,并讲解根据要求解密恩尼格码的步骤方法; 学生聆听教师讲解利用Python完成恩尼格码的解密; 教师讲解完成后,教师可留给学生5min时间让学生自己操作学习; |
活动意图说明 屏幕共享,教师演示操作,培养学生动手操作能力,让学生直观学习编程设计过程,掌握逻辑结构。 |
环节四:(思维拓展)10min |
教学活动4 1. 教师讲解列表与数组基础知识; 教师:“Python语言中采用列表类型来表示一组元素。每一种编程语言都提供有表示一组元素的方法, C语言采用的却是数组。其实在编程语言中,数组很常见,仅有少数语言采用列表。列表与数组的最大区别在于:(1)预分配大小,数组需要预先分配大小。当创建一个数组时,必须指定数组的大小,确定它能容纳元素的个数。如果不知道有多少个元素,就需要给出一个最大的可能值,以保住实际使用的元素不超过数组的限制。列表没有预先分配大小的要求和限制,创建列表变量时不需要知道元素的个数,可以在使用中动态插入任何数量的元素。(2)元素类型一致性,数组要求元素类型一致,列表则不需要。定义数组时,要求指定数据类型,数组中的每一个元素必须具有相同的数据类型。列表没有元素类型的限制,列表中不同元素的类型可以相同,也可以不同,甚至列表中的元素还可以是列表类型。列表的使用十分自由,方便学习,也方便了程序的编写。Python语言中,列表必须通过显式的数据赋值才能生成,简单将一个列表赋值给另一个列表不会生成新的列表,这是编程中特别需要注意的地方。程序结果如图所示,从运行结果看, list1由实际数据元素赋值产生,将list1赋值给列表list2仅产生对列表list1的一个新的引用。真实数据只存储一份,修改list1也就同时改变了list2的元素。” 学生认真聆听教师讲解列表与数组基础知识; 1.教师讲解数据结构基础及Python常用数据结构; 教师:“数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带 “结构”的数据元素的集合。“结构”就是指数据元素之间存在的关系,分为逻辑结构和存储结构。数据结构也是计算机存储、组织数据的方式。通常情况下,精心设计的数据结构可以带来更高的运行、存储、索引及检索的效率。与数据结构相关的基本(1)数据。是对现实世界的事务采用计算机能够识别,存储和处理的形式进行描述的符号的集合。(2)数据元素。是数据的基本单位。一个数据可以由若干个数据项组成。数据项包括两种:一种是初等数据项,是数据不可分隔的最小单位。另一种是组合项,由若干个数据项组成。(3)数据对象。是性质相同数据元素的集合,是数据集合的一个子集。(4)相互关系:在任何数据对象中,数据元素都不是孤立存在的,他们相互之间存在一种或多种特定的关系,这种关系称为结构。数据结构是带有结构特性的数据元素的集合,它表示了数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这些运算以后所得到的新结构仍保持原来的结构类型。Python程序设计中常用的数据结构包括:字符串、列表、元组、字典、集合等。这些常用数据结构可分为有序序列和无序序列。其中,字符串、列表、元组为有序序列,字典、集合为无序序列。” 学生认真聆听教师讲解数据结构基础及Python常用数据结构的相关知识。 |
活动意图说明 增强学生对数据结构的认识,培养学生发散思维。 |
环节五:(展示小结)5min |
教学活动5 1.学生发言,展示作品,进行逻辑代码讲解; 2.教师对学生作品进行评价; 教师:“同学们,在看了大家的作品后,老师觉得大家都完成的非常好,老师给同学们一个大大的赞。” 2.总结本节课的知识内容,巩固本节课的知识点,铺垫下一节课。 |
教学活动6 1.教师讲解栅栏密码知识及2栏栅栏密码的解密过程; 教师:“栅栏密码,就是把一个明文(不含空格等特殊字符)分成n组,每组m个,然后一定的排序方法将这些字符重新组合。根据m的大小又可称为m栏栅栏密码,比较常见的是2栏栅栏密码。2栏栅栏密码的加密过程分为两步:首先,把待处理字符串信息中的字母交替排成上下两行。然后,再将下面一行字母排在上面一行的后边,从而形成一段密码。例如,对于明文: THE LONGEST DAY MUST HAVE AN END,具体的加密是: (1)把将要传递的信息中的字母交替排成上下两行,处理成如下形式。 T E O G S D Y U T A E N N H L N E T A M S H V A E D (2)将下面一行字母排在上面一行的后边,得出密文: TEOGSDYUTAENN HLNETAMSHVAED” 学生认真聆听教师讲解栅栏密码知识及2栏栅栏密码的解密过程; 2.利用所学知识,解密2栏栅栏密码; 教师:“同学们,根据我们学的知识,请根据2栏栅栏密码的加密原理,编程Python程序,将输入的一串密文进行解密处理,还原其原始文本。” |
活动意图说明 通过项目式学习的体验效果,让学生可以更直接的体验Python编程的应用,提高学生的参与感。 |
7.板书设计
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论