《浙教版信息科技六年级上册第一单元算法的实现大单元整体教学设计.docx》由会员分享,可在线阅读,更多相关《浙教版信息科技六年级上册第一单元算法的实现大单元整体教学设计.docx(25页珍藏版)》请在课桌文档上搜索。
1、第一单元算法的实现【单元整体构想】一、单元内容简介算法的实现有多种方式,编写计算机程序实现算法是最常用的方式之一。本单元主要对应课标“身边的算法”模块中“算法的描述”和“算法的执行”这两部分内容,在五年级学生初步认识用算法解决问题的基础上,聚焦使用计算机实现算法解决问题,将形式化的描述方式转变为通过计算机实现的程序。通过本单元的学习,学生将继续熟悉利用算法求解简单问题的基本方式,通过若干个熟悉的实践案例提升算法设计能力,认识算法与程序之间的关系。二、单元设计的望远镜思维五年级已经安排了初步的算法学习,包括利用算法三种控制结构设计算法、算法的多种描述方式、用算法解决问题的一般过程等。学生知道可以
2、从多种途径对算法进行验证,对程序有了一定体验,但是缺乏系统的认知。本单元通过解决“投票”“鸡兔同笼”“猜数字”三个具体问题,聚焦实现算法的程序,帮助学生理解算法与程序之间的关系,为本册后续“算法的效率”单元的学习打下阅读、编写程序的基础,为“算法的影响”单元的学习做好充足的程序体验铺垫。在数学学科中,学生学习过运用简易方程解决简单的实际问题,掌握了用字母表示数的方法,能够在真实的情境中,探索运用基本的数量关系分析与解决问题;通过科学学科的学习,学生能够利用分析、比较、概括等方法抓住简单事物的本质特征,能够使用或建构模型解释科学现象和过程。这些都为本单元的学习做好了认知与能力的储备。三、单元设计
3、的放大镜思维本单元继续围绕“算法”这条核心逻辑主线,在具体问题的解决过程中让学生理解“算法是一组明确定义且可执行的操作,用于描述解决问题的方法及步骤”“解决问题的一般步骤包括抽象、分解、建模和制订解决方案”等大概念。本单元一共7课,包括利用算法解决问题的步骤与方法,通过“总-分-总”的方式进行编排。第1课以解决学生熟悉的投票问题为例,从整体上回顾在计算机中运用算法解决问题的过程,以唤醒学生原有的认知。第2-5课以“鸡兔同笼”问题为例,呈现每一个步骤的具体方法及过程。第6-7课通过猜数字游戏,让学生综合运用所学方法解决问题,以提升学生运用计算机求解问题的能力与意识。各课在问题的选择上各有侧重,从
4、学生生活中比较熟悉的问题,到数学学科中的经典问题,再到游戏问题,解决问题每个步骤的复杂程度及要求逐步上升,从简单模拟到运用一定的算法思想设计算法;从读懂教师提供的程序,到体验执行程序,再到尝试编写程序,意在让学生进一步理解算法与程序之间的关系。本单元各课内容如下表所示:课序课题主要内容第1课算法与问题解决在计算机中运用算法解决问题的一般步骤。第2课抽象与建模借助表格对“鸡兔同笼”问题进行抽象,用算式表达计算模型。第3课算法设计认识枚举算法,利用枚举法设计解决“鸡兔同笼”问题的算法。第4课算法的程序体验认识Python编程运行环境与基础诗句。第5课算法的执行运行、调试程序。第6课猜数字算法设计对
5、猜数字问题进行抽象建模,使用循环和分支结构设计算法。第7课猜数字算法验证编写程序验证算法,调试、完善算法与程序。【单元目标设计】素养目标通过具体问题的解决,知道用计算机实现算法解决问题的一般过程,理解算法与计算机程序的关系,掌握程序设计的基本知识与方法,提高、完善优化算法的意识。逻辑主线单元主要涉及的大概念单元目标描述算法1 .算法是一组明确定义且 可执行的操作,用于描述解 决问题的方法及其步骤。2 .解决问题的一般步骤包 括抽象、分解、建模和制订 解决方案。3 .算法可以用文字、图示、 代码等方式进行描述。1,通过解决简单问题,体验用算法解决问题的一般过程,掌握抽象与建模、算法设计、验证与优
6、化算法的方法。2 .通过程序验证算法,理解算法与程序的关系,掌握阅读、修改、编写、运行计算机程序的方法。3 .通过调试程序,理解算法的执行过程,能够根据程序输出结果有针对性地完善算法。【单元评价设计】本单元的评价建议通过一个真实问题的解决,对用算法解决问题的全过程进行评价,重点环节(如抽象与建模、设计算法、验证与优化算法等)的评价设计要具象化,具有操作性的同时兼具指导性。一、最终评价任务设计联系生活中猜数字游戏的经验,将其设计为人机交互程序。由计算机确定一个OTOo的目标数字,用户输入猜测数字,程序比较猜测数字与目标数字的大小关系:如果用户答错了,就给出“大了”或“小了”的提示并让用户两次猜测
7、;如果用户答对了,就给出“对了”的提示并停止运行。二、评价量规设计评价内容得分标准杰出(3分)胜任(2分)新手(1分)得分I对问题进行抽象,确定变量能独立对问题中的数据、关系、规则等进行抽象,确定变量,并阐明理由。对问题中的数据、关系、规则进行抽象,确定变量。需要在学习架构支持或者他人帮助下对问题进行抽象,确定变量。建立解决问题的计算模型能选择合理的方式建立解决问题的计算模型,如图示、表格、算式等,并能清晰解释该计算模型。能利用图示、表格或算式建立解决问题的计算模型。需要在学习架构支持或者他人帮助下建立计算模型。合理选择控制结构,设计算法确定算法的输入与输出,灵活运用顺序、分支、循环算法控制结
8、构独立设计算法。确定算法的输入与输出,运用顺序、分支、循环算法控制结构设计算法。需要在学习架构支持或者他人帮助下完成算法的设计。使用流程图描述算法能根据需求选择使用手绘或者数字化方式绘制流程图,流程图符号、流程线使用规范,每一个步骤描述清晰准确。流程图符号、流程线使用基本规范,每个步骤的描述均正确。流程图符号、流程线使用存在明显错误,步骤描述不清晰或存在错误。修改程序并运行程序验证算法能够修改代码或者自主编写程序,能够调试程序,并根据调试结果优化迭代算法与程序。能够阅读程序,修改部分参数或代码,能够运行并调试程序。能够阅读程序,并运行程序。【单元过程设计】一、单元问题设计问题一:投票、猜数字等
9、问题的算法可以用计算机来实现,那么所有算法都能用计算机实现吗?设计意图:本题意图让学生联系现实生活,引发学生的思考,探讨哪些算法可以由计算机来实现,在举例中感受用计算机实现算法的优势。学生回答的引导方向:首先明确这里的算法指的是用计算机解决问题时的方法及步骤,因此理论上所有的算法都可以由计算机实现。但在实际应用中,有些算法由于计算复杂度太高,无法在一定时间内完成,因此暂时无法用计算机实现。问题二:日常使用的计算机程序是怎么编写出来的?设计意图:学生在日常生活中使用计算机与各种移动终端,已经有了丰富的程序使用经验,但对于程序是怎么编写出来的相对缺乏认知。本题意在让学生提出合理的假设,并通过本单元
10、的学习认识程序,了解程序的编写过程,能通过程序来执行并验证算法。学生回答的引导方向:日常使用的计算机程序通常是由开发人员使用计算机语言按照一定的规则编写的,要经历“需求分析-设计算法-编写代码-程序测试-程序维护”一系列工作流程。二、单元学习策略本单元的学习要融入具体问题的解决过程。教材中通过作品投票、鸡兔同笼、猜数字三个问题,让学生在反复经历抽象建模、设计算法、验证算法、优化算法的过程中提高用算法解决问题的能力。在实际教学中,教师可以根据学生与学校的实际情况对问题做适当调整,但要避免问题或项目之间的简单重复,实现学生在能力和思维方面的螺旋上升。在开展具体的教学时,建议采用项目化教学,教师要为
11、学生提供丰富的学习架构,满足不同学生在不同阶段的学习需求,同时做项目进度管理与评价,保障整个项目有有序推进。与程序设计相关的课要做好分层教学,设计不同难度的活动供学生自主选择,如读懂程序、给程序填空、修改程序、独立编写程序等,让每一个学生都体验用计算机实现算法的优势,获得学习的成就感。课题第1课算法与问题解决教学目标教学重点教学难点环境与素材1 .通过解决投票问题,体验在计算机中运用算法解决问题的一般步骤。2 .通过程序实现算法,感受计算机解决问题的优势。体验在计算机中运用算法解决问题的一般步骤。设计解决问题的算法。1 .网络教室。2 .Python3.8。3 .投票问题相关的图文、影音素材。
12、4 .使用多种计算机语言编写的范例程序。教学过程一、讨论生活中的投票问题可以通过哪些途径解决?各有什么优点?二、建构利用算法来解决问题有多种途径,如由人工实施或由计算机实现等,不同的途径适用于不同的场景。在计算机中运用算法解决问题,主要经历问题分析、抽象与建模、设计算法、验证与优化算法等过程。1.抽象与建模解决问题首先要对问题进行分析,抽象出关键要素,建立模型。以投票问题为例,某校正在进行校徽设计征选,全校1000名学生通过投票的方式在两个候选作品中选择一个自己喜欢的设计方案。ti*.QCexB0xrtHttih*t.商介校IWj倡语句wiletu36:条件指环Ig句单分支条 件第句*ji35
13、-tuifjl2tu*4-94:,print(ji4n,tut:*tutu1【小知识】赋值:使用赋值号“二”将右边的值赋给左边的对象。输出:在PythOn中,使用Print()实现1个或多个对象的输出,多个对象之间用英文逗号分隔。输出的对象可以是数字或字符串,字符串需要放在英文单引号或双引号之中。常见比较运算符:等于“二=、小于“”、不等于!二二三、练习在IDLEShelI中编写一段代码,计算并输出边长为3、4、5厘米的三角形的周长。参考答案:Print(“该三角形的周长为“,3+4+5)或S=3+4+5Print(“该三角形的周长为“,S)课后反思/评价标准教学目标教学重点教学难点环境与素材
14、1 .通过运行“鸡兔同笼”程序,掌握算法执行的方法。2 .通过调试“鸡兔同笼”程序,掌握程序调试的方法,初步具 备完善算法与程序的意识。掌握运行、调试程序的方法。初步具备完善算法与程序的意识。L “鸡兔同笼”解题程序。3 .相关学习微课。教学过程课题第5课算法的执行一、探索使用计算机程序来解决身边的问题,观察并记录程序运行的过程与结果。二、建构计算机通过运行程序,完成算法的执行,根据既定步骤完成高速、准确的自动化处理。1 .运行程序运行编写好的程序,可以得到计算机输出的可观察的算法执行结果。在Python中,可以通过IDLEShell运行程序。在“File”菜单中选择“Open”,打开相应的程
15、序。在程序编辑器中的“Run”菜单中选择“RunModule,即可运行程序。L坦行蚣工【小知识】条件循环语句:在PythOn中,第一行以While开始,然后是循环的判断条件,WhiIe循环头部始终以冒号结束。头部之后的缩进部分是循环体。当满足判断条件时重复执行循环体内容,否则停止循环。2 .调试程序编写程序实现算法时,可能会因为录入错误、语法错误、逻辑错误等导致程序不能正常运行或者结果出错。对程序进行反复调试,可以及时发现这些错误。大小耳,* -c和t 化AM个变量段有的林宏多 竺京英文手角状态 下出人。Ivhon港才使用城区今代展之 向的层次、【试一试】修改代码中鸡、兔的总头数与脚数,观察、
16、记录程序运行的过程与结果。3 .完善算法与程序根据调试中发现的问题,有针对性地完善算法与程序。修正代码在录入、语法和逻辑上的错误,使其能够正常运行;完善算法,使其能更好地解决问题。如在测试“鸡兔同笼”解题程序时发现,调整鸡、兔的总头数与总脚数后,程序可能不输出任何结果,这不符合算法必须有输出的特点。为了让用户明确得知题目是否有解,可以做如下调整:用一个变量记录此题是否有解,如使用变量jie,当jie=l时表示有解,当jie=0时表示无解,若无解需在算法结果前输出无解提示。好的算法往往可以解决同一类问题,而不局限于某一个特定的问题。【试一试】当“鸡兔同笼”问题中的总头数与总脚数发生变化时,需要用
17、户在代码中手动调整。和同伴讨论提出更完善的算法设想,便于用户操作。三、练习运行完善后的“鸡兔同笼”程序,经过反复调试,解决发现的问题,并提出完善算法的新创想。发现的问题解决问题的创想课后反思/评价标准课题第6课猜数字算法设计1 .通过对猜数字问题进行抽象与建模,掌握利用表格进行建模教学目标的方法。2 .通过设计猜数字算法,熟练掌握算法设计与描述的方法。教学重点设计猜数字算法。教学难点灵活利用循环和分支结构设计算法。门皿一主3l猜数字游戏的相关素材。环境与素材示犯2.绘制流程图的数字化软件与平台。教学过程一、讨论你玩过猜数字游戏吗?和同伴讨论一下游戏规则,并玩一玩。二、建构通过数据输入和输出可以
18、实现计算机与外界的信息交流,实现“人机对话”。1 .抽象与建模人机交互程序主要实现用户与计算机交互的功能,主要流程包括用户输入数据、计算机处理数据、计算机输出数据。精数字游戏一2同学以QiIM之例幺林一个秋宇.让力2同学南.维据试所晴的欷彩;fe大亍一小了长”了”的我示比一比诲引或少的次优片片数字!生活中的很多交互行为都可以设计成人机交互程序。比如,可以将猜数字游戏做成人机交互程序,让用户猜数,计算机出题并根据用户猜数结果实现游戏反馈自动化。对这个问题进行抽象建模时,可以参考人机交互的主要流程。(1)输入数据用户反复输入数字进行猜测,直到答对为止。由于数字一直在变化中,可以用一个变量来表示,如
19、cai。(2)处理数据计算机主要是对用户输入的数字和目标数的大小进行比较判断。为了让程序更具有普遍性,可以用一个变量来表示目标数,如da。Cai和da之间存在“大于,“小于,,“等于,三种关系。(3)输出数据根据Cai和da的大小关系,输出三种提示。根据以上抽象内容,可以利用表格建立模型如下:输入数据比较输出输入caicaida输出“大了,继续”输入caicaida输出“小了,继续”输入Caicai=da输出“对了,停止”2 .算法的设计明确输入、输出之后,需要合理选择控制结构控制交互过程。例如,使用条件循环实现:当CaiWda时,让用户反复作答;在循环结构中嵌套分支结构,判断cai与da的大
20、小,计算机根据不同的大小关系输出相应的提示。设计猜数字游戏的算法流程图如下:)三、练习修改猜数字游戏的规则,并调整算法流程图。课后反思/评价标准课题第7课猜数字算法验证教学目标1 .通过运行程序验证猜数字算法,掌握分析程序运行过程与结果的方法。2 .根据对算法验证结果的分析,能初步完善算法。教学重点验证算法。教学难点完善算法。环境与素材1 .猜数字游戏的半成品程序。2 .待完善的算法流程图。教学过程一、探索编写“猜数字”交互程序时,可能用到哪些语句?为什么?使用while循环语句可以让用户在没有猜对时反复输入数字。判断用户的数字大小时,要用到什么语句呢?二、建构通过编写、运行程序,可以对算法进
21、行验证,并根据验证结果不断优化算法。1.验证算法使用计算机验证算法,首先选择合适的程序设计语言编写程序,即将算法转化为计算机可以执行的精准命令;然后运行程序并跟踪、记录运行过程结果,验证算法是否解决问题。:9CcirXI牛0小后面为注释语句,程序运行时不会被执行。在编写程序时添加注释是个好习惯。林行发今【小知识】输入:在PythOn中,使用input()实现数据的输入,”中间的内容是提示语。用户输入的内容默认为字符串类型,若对其进行数值运算,则须进行数据类型的转换,如使用int()将其转化为整型数据,例如cai=int(input(猜一个1至100之间的数字”)。双分支条件语句:在PythOn
22、中,用“ifCISe”来构造双分支条件语句,当满足判断条件时执行if分支下的代码,否则执行else分支下的代码。甄呼ci(:*,光”注*print1*)、Z2-.WiuMWT)手退足判,l牍斜例【试一试】调整“目标数”,运行程序,和同伴一起玩一玩。2.完善算法通过分析程序结果与任务需求是否一致,以及调试过程中发现的问题,提出完善算法的方案。例如,为了增加猜数字程序的实用性与趣味性,可以在程序中增加记录猜测次数的功能:用变量Ci表示次数,用户每猜一次,ci就加1,用户答对后输出一共猜了多少次的提示。无事后的银小代马【试一试】运行程序,和同伴比一比,谁用了最少的次数猜出目标数。【小知识】使用“二分查找法”可以用较少的次数猜出正确的答案。如在猜数字游戏中,可以先猜ITOO中间的数50,那么根据出题者的大小提示,就可以排队一半的数!再在剩下的范围内继续猜中间值,重复这个过程,不超过7次就能猜出这个数字了。三、练习继续修改完善后的猜数字算法,实现以下功能:如果用户的猜数次数超过7次,提示“挑战失败二课后反思/评价标准