资源简介 教育科学出版社 高中信息技术 必修1 数据与计算《3.2 数据与结构(第一课时)》教学设计【教学目标】知识与技能(1)认识不同的数据类型,以及它们的特点。(2)熟悉队列结构的概念和特点。过程与方法(1)能够使用python语言对队列进行操作。(2)能够比较不同数据结构的特点,并会选用合适的数据结构组织数据来解决简单问题。情感态度价值观(1)增强对信息技术的求知欲,养成积极地学习和使用信息、参与信息的态度。(2)通过完成活动,学生理解并掌握计算机语言处理问题的思维方式,感受编程的价值从而运用到实际生活中。【教学重难点】教学重点:理解线性数据结构的数据间关系。教学难点:理解复合数据类型;学会根据问题的需要选择合适的数据结构对问题抽象组织,进而解决问题。【教学方法】情景导入法、项目教学法、微课教学法、实践体验法、自主探究法。【授课时间】1课时【教学过程】导入新课通过观看视频来了解“约瑟夫问题”,提出问题:1.为什么约瑟夫和他的朋友,最后能活下来呢 2.约瑟夫和他的朋友,一开始要站在什么位置才能逃避死亡 学习目标【项目主题】网络购物【项目目标】通过项目活动,认识相关数据的组织方法,了解数据之间的关系,理解几种典型的数据结构,为利用数据、实现数据的价值做准备。队列:熟悉队列的概念和特点,能够使用Python语言对队列进行操作。【项目任务】探究网购订单处理活动1 了解订单数据在当今信息时代,网上购物已成为人们的一种非常重要的购物方式。在网上购物时,在我们提交订单后,网页上就会显示订单数据,请你参照图所示的订单数据填写如下表内容。订单数据商品名称商品数量商品总价Python对应数据类型【数据类型】(一)简单数据类型1整数(int):包括正整数、负整数和0。2.浮点数(float):浮点数由整数与小数部分组成。3.字符串(str):(1)字符串就是文本,可以是字母、数字或符号。(2)字符串两端需加引号('或”)。(3)输出时原样显示引号中的内容。4.布尔型(bool):当关系表达式成立时值为True(真),不成立时值为False(假)。复合数据类型:列表、字典、元组、集合列表:StuList=[ 10, 'file', 2.0 ],混合数据类型。字典:dictionary={ 'a':1, 'b':2, 'c':3 },“键:值”对。元组:StuInfo=( 3.6 , '一班' , 16 ),不能修改。集合:StuInfo={ '张三' , True ,10 },无序不重复。数据类型小练习1.以下不是简单数据类型的是( )浮点数 B.字符串 C.布尔 D.字典2.以下是简单数据类型的是( )A.元组 B.集合 C.整数 D.列表3.以下语句是定义空列表的是( )A.bookset=set() B.q=[ ] C.num=( ) D.dictionary={ }四、活动2 编制订单数据处理程序1.问题:商家如何安排发货?发货原则:先下单,先发货2.问题:商家对订单进行了哪些操作?(1)添加订单(顾客下单)(2)发货(3)查看未发货订单(4)退出3.用列表模拟订单的操作q=[] #空订单_________ #001编号下单_________ #安排001编号订单发货_________ #查看未发货订单_________ #返回订单长度4.尝试补全代码实践练习练习1:列表的基本操作。练习2:将“订单数据处理程序”补全代码并运行、测试功能。【数据结构、线性结构、队列】动画演示添加订单与商家发货的过程,理解订单数据间的关系,引出以下数据结构的知识:1.数据结构是存在特定关系的数据元素的集合。主要有集合结构、线性结构、树结构和图结构四种类型。线性结构如下图2.线性数据结构特点:(1)首元素无前趋元素、尾元素无后继元素;(2)中间元素既有前趋元素,又有后继元素;(3)数据元素之间是一对一的关系。特殊线性结构—队列:动画演示入队出队过程,特点:先进先出。在Python中,队列一般用列表(list)实现。列表的使用者只需要知道列表上有哪些可用的操作,而不需要知道这些操作是如何进行的。q=[ ] #定义空列表qq.append(x) #元素x入队q.pop(0) #返回队首元素,队首元素出队(删除)len(q) #返回队列q的长度(元素个数)q[i] #返回列表q中索引(index)为i的元素。正编号(从左到右编号依次为0,1,2,…)负编号(从右到左编号依次为-1,-2,-3,…)五、约瑟夫问题1.过程模拟 学以致用请五位同学到台上站成一个队列,教师充当计算机角色发号施令。2.问题解决:请同学们根据约瑟夫问题的解题过程,将程序的空白处填写完整,求得最后结果。解题过程详细描述 转化成代码1.所有人,即41人全部进入队列。 2.第一个人出队,然后入队。 3.第二个人出队,然后入队。 4.第三个人出队,不再入队。 重复2--4步,直到队列中只剩下两个人为止。 ls=[ ] #建立一个空列表用于模拟队列 for i in range(1,42): #使用循环将1-41加入队列 ls.append(i) while len(ls)>2: #只要队列长度大于2,就不停重复。 for i in range(2): #循环两次模拟前两个人的出队、入队。 c=___________ #弹出队首元素,并赋值给c进行记录。 _____________ #把c添加回队尾 t=ls.pop(0) #第三个人只出队,不再入队。 print( t ,“很遗憾,您被淘汰了!”) print(ls,“恭喜你们,成为为幸运儿!”) #将队列打印出来,查看剩下的两个元素。3.实践练习将“约瑟夫问题”程序补全代码并运行。课堂练习1.请找出下列关于列表的描述正确的是( )A. 列表中的元素是无序的B. 列表元素从1开始建立索引C. append( )会在列表尾部添加新元素D. 使用pop(0)删除0号元素后,列表不再有索引号为0的元素2.以下现实生活中哪些问题可以利用队列来解决( )A. 解决地图最短线路选择问题 B. Windows操作系统的文件系统结构C. 打印机打印任务流程问题 D. 实现浏览器后退、前进按钮的功能注:学生在问卷星网页上答题,并以简答题的形式进行总结收获。课堂小结知识梳理(1)数据类型(2)列表的基本操作(3)线性数据结构(4)什么是队列(5)队列的应用2.收获提升零散孤立的数据是很难被有效利用的!根据所要解决的问题的不同,依据数据关系建立合适的结构。采用这些结构将数据组织起来,才能有利于操作和管理,进而更高校地解决实际问题。学会在生活中根据实际问题,建立合适的数据结构,进而运用所学的知识解决问题。八、课后作业1. 改进订单数据处理程序,实现当用户输入“2”表示“发货”时,还要输出发货的单号,以便工作人员及时处理。2. 对比以下“订单数据处理程序”的两种不同运行界面,感受图形用户界面美观友好、操作方便灵活,从而激发兴趣,预习《3.3 数据与系统》。 展开更多...... 收起↑ 资源预览