教科版 高一信息技术 必修1 第四单元 4.1 算法及特征 教材解读
- 格式:docx
- 大小:17.55 KB
- 文档页数:2
教学设计一、教学目标:1.知识与技能:了解算法的含义;了解算法的表示方法;学会用流程图表示算法用流程图解决一些最简单的实际问题。
2.过程与方法:通过剖析日常生活中的算法问题来了解算法在日常生活中的应用形式,并掌握运用流程图表示的分支模式进行绘制;通过用流程图表示寻找最大值的算法让学生掌握流程图的使用。
3.情感态度与价值观:通过对算法的学习,以及对生活中一些小问题的算法分析,使学生具备一定的算法思维,能够正确地看待生活中的实际问题,具备看待实际问题的科学精神。
二、重点难点:重点:算法的流程图表示难点:算法的优化设计,体会算法的多样性三、教学策略与手段:本课教学以算法的自然语言描述和流程图为主,旨在培养学生的初级逻辑思维能力,并形成解决问题的初级方法技能,通过包括流程图绘制,巩固所学知识。
教学环境及工具:多媒体网络教室、投影仪、课件。
ClickCharts四、本课教学流程:一、戏体验有一个农夫带一条狼,一只羊和一筐菜过河。
每次只能带一样东西过去,没有农夫看管,狼要吃羊,羊要吃菜。
思考:他怎样能安全完整将三样东西的带过河?算法的概念:广义的讲,算法指的是解决问题或完成任务的一系列步骤。
师:我们把算法的概念总结一下?算法就是解决问题的方法和步骤:师:生活中有哪些算法的例子:生:菜谱、高一新生报名流程图。
三、算法的特征1、有穷性:算法的处理步骤必须是有限的。
师:农夫过河这个游戏的步骤是有限的。
2、可行性:原则上能精确运行。
师:狼和羊不可在一起。
3、确定性:每一步都有确切的含义。
4、有0个或多个输入。
5、1个多个输出。
四、算法的要素。
1、数据2、运算3、控制转移。
五、算法的表示1、用自然语言表示。
1、农夫带羊坐船过河;2、农夫自己回来;3、农夫带菜过河;4、农夫带羊回来;5、农夫放下羊,带狼过河;6、农夫自己回来;7、农夫带羊过河,完成任务。
2、流程图基本图形及其功能处理框:矩形。
指出要处理的内容。
输入输出框:平行四边形。
4.1算法及其特征——教学设计【教材分析】本课选自教育科学出版社出版的必修1《数据与计算》第4单元第1节。
第4单元计算与问题解决主要是对“计算”进行更多的探究,进一步了解计算与算法的关系、如何用算法来解决实际生活中问题。
本节课既要唤醒学生已有的知识与技能,又要让学生初识算法,因此在设计项目时,从学生身边案例出发,围绕“计算机编程社团纳新”项目设计三个有梯度的活动,以游戏闯关的形式开展情景式教学。
“面试题”中的小活动蕴含了巧妙的算法思想,其中枚举算法是最常用最容易理解的问题解决方法,将其作为本单元的入门,旨在复习前面章节所学的基础知识,激发学生的兴趣,提高他们的学习热情。
【学情分析】通过前面单元的学习,学生已经初步了解基本的输入输出语句、程序的三大结构、列表等。
本项目既要唤醒学生已有的知识与技能,又要让学生初识算法,因此在设计项目活动时,抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,而是采用了生动有趣的活动形式,以游戏闯关的形式开展,在游戏中学习,在学习中游戏,愉快轻松的解决重难点,达成教学目标。
【教学目标】(1)通过分析解决生活中实际问题,熟悉算法的概念,了解算法的特征,并能根据实际问题需要选择恰当的方式来描述算法;(2)通过问题求解,掌握用编程语言python实现简单算法。
核心素养(1)能够根据解决问题的需要,借助自适应学习平台自觉、主动地寻求恰当方式获取信息与处理信息;在解决问题的过程中,愿意与同学分享方法,实现信息的更大价值。
(信息意识)(2)能够采用计算机的思维方法界定问题、抽象问题特征,分析已知和未知信息,挖掘程序中的输入和输出,运用合理的算法形成解决问题的方案,并能用程序语言python实现这一方案。
(计算思维)(3)借助数字化工具(自适应学习平台)管理学习过程与资源,完成学习任务,并在线提交,养成数字化学习与创新的习惯。
(数字化学习与创新)(4)学生上课回答问题积极主动、合理利用信息技术工具(自适应学习平台)进行闯关测试,具有积极的学习态度。
将流程图转换为算法【问题】该流程图的目的是什么?任务要求,探究完成步骤分析。
经过梳理算法步骤,将其转化为流程图。
接下来摸一下另外两盏不亮的灯,2、详解选择排序算法过程观察下侧交换位置,请你说出各数组的实现过程和原理。
值。
为学生讲解数组的实际存储原理以及表示方式。
【练习】尝试以下代码教师提示学生完成该数组排序的过程和需用用到的流程图结构:核心结构:循环结构和选择结构设需要比较的数为a[i]设移动比较的数为a[j]循环结构为:j=i+1:起始比较j=j+1:逐位移动选择结构为:如果a<b,则min=a;否则,min=b 根据代码执行结果深度理解数组的原理和表示方式。
学生依据教师提示逐步完成流程图。
程序代码:A = [4,5,6,3,2,1]#print(len(A)) #len(A):返回数组A的长度,可通过print(len(A))来看一下结果for i in range(len(A)):min_idx = i #设min_idx为A数组的初始位置,即A[min_idx]=64 for j in range(i+1, len(A)): #执行循环,进行两个数的比较,将最小值的序号赋值为min_idxif A[min_idx] > A[j]:min_idx = jA[i], A[min_idx] = A[min_idx], A[i] #交换顺序,将最小值放在前面print ("排序后的数组:") for i in range(len(A)):print("%d" %A[i])程序结果我们常利用计算机运算速度快、精确度高的特点解决实际问题。
在设计算法时,最简单的方法就是"直译"我们的思维过程。
有一种算法是把所有可能的答案一一列举,合适就保留,不合适就丢弃。
这种方法称作“枚举”或“穷举”。
【活动】这次面试的冠军在A、B、C、D四位同学中。
新教科版高中信息技术必修一4.1《算法及其特征》说课稿一、教学内容概述本课程是新教科版高中信息技术必修一4.1《算法及其特征》课程教学的说课稿。
本节课主要介绍算法和算法设计的基本概念,以及常见的算法特征。
通过学习本节课,学生能够了解什么是算法,掌握算法设计的基本步骤,了解算法的正确性和可行性,以及了解算法的时间复杂度和空间复杂度。
二、教学目标1.掌握算法的定义和基本概念。
2.了解算法设计的基本步骤。
3.理解算法的正确性和可行性。
4.了解算法的时间复杂度和空间复杂度,并能够进行简单的分析。
三、教学重点1.算法的定义和基本概念。
2.算法设计的基本步骤。
3.算法的时间复杂度和空间复杂度。
四、教学难点1.算法的正确性和可行性。
2.算法的时间复杂度和空间复杂度的分析。
五、教学准备1.PPT课件。
2.演示用的代码示例。
六、教学过程1. 算法的定义和基本概念•介绍算法的定义:算法是解决特定问题求解步骤的描述,是指令的有限序列,其中每一条指令代表一个或多个操作。
•分享一个例子,如求解两个数的最大公约数。
•解释算法的基本概念:输入、输出、有穷性、确定性和可行性。
•引导学生思考其他例子,并找出其中的输入、输出等要素。
2. 算法设计的基本步骤•介绍算法设计的基本步骤:问题定义、算法设计、算法描述和算法实现。
•分析一个简单例子,如冒泡排序算法,展示算法设计的思路和具体步骤。
•让学生进行小组讨论,设计解决一个特定问题的算法。
3. 算法的正确性和可行性•解释算法的正确性和可行性的概念。
•引导学生思考如何判断一个算法是否正确和可行。
•分享一些常见的判断算法正确性和可行性的方法,如数学归纳法、循环不变式等。
4. 算法的时间复杂度和空间复杂度•引入算法的时间复杂度和空间复杂度的概念。
•介绍时间复杂度的表示方法和常见的时间复杂度分类,如O(1)、O(n)、O(n^2)等。
•分析一些常见算法的时间复杂度,如线性查找、二分查找等。
•介绍空间复杂度的表示方法和常见的空间复杂度分类,如O(1)、O(n)等。
4.1 算法及其特征【学习目标】1.通过解决开关问题,能够分析出算法的基本特征,感受算法在解决问题中的重要性。
2.通过解决药丸问题,尝试运用恰当的方法描述算法。
3.能够将部分简单算法转换为程序,并调试运行得出结果。
4.通过解决冠军问题,了解枚举法的含义,并能使用枚举法解决相关问题。
【教学重点】能够分析问题,设计解决问题的算法,并用恰当的方法描述算法;了解枚举法的含义,并能使用枚举法解决相关问题。
【教学难点】能够设计出解决问题的算法;能够用枚举法解决相关问题。
【教学过程】第一课时一、引入师:叶达报名参加学校软件开发社团时。
面试中有一道IQ题:有四个装了药丸的罐子,每个药丸都有一定的重量,其中有一个药罐被污染了。
每片被污染的药丸比污染前增重1克。
只允许称量一次,判断出哪个罐子的药被污染了。
(同座位讨论该问题的解决步骤)生:用自然语言描述问题解决的步骤。
第一步:第二步:师:在生活中很多类似的问题,在解决问题过程中都需要有一定方法。
这种问题解决的方法实际就是算法。
二、算法及其表示方法师:算法的定义在2.1节已经学过了,请大家再回顾一下,算法的表示方法有几种。
生:自然语言、流程图、程序。
师:来看下面这个问题的解决。
学校历届校友的海量数据存储在校网络中心服务器中(共10000条,无重复数据),某管理员因为误操作删除了一位校友的ID号(8位整数)信息,恰好在备份数据库中保存了一份所有人员ID号的文件(无重复数据,无序)。
怎样快速找出被误删的ID号以便恢复数据?例如:请同座位讨论,用自然语言描述问题求解的算法。
生:取出网络中心服务器ID列表中第一条数据;和备份服务器中的ID列表逐条进行对比,如果能够找到相同的ID号,则完成目标,否则取出网络中心服务器ID列表中下一条数据继续比对。
师:最差情况下,按照该算法解决问题需要进行多少次比较?生:10000*10000,1亿次。
师:还有没有其他方法?(提示:可以利用异或运算)异或应用于逻辑运算,其运算法则为:0^0=0,1^0=1,0^1=1,1^1=0。
4.1 算法及其特征
(一)项目目标分析
通过有趣的实际问题,熟悉算法的概念,了解算法的要素和重要特征,学会根据实际问题选择恰当的方式来描述算法;
通过问题求解,掌握用编程语言实现简单算法。
(二)项目内容分析
程序设计是给出解决特定问题程序的过程。
程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。
算法是程序设计中的核心,算法依赖程序设计语言来实现。
程序设计语言有较大的局限性,不能用来解决所有类型的问题,人们要根据所需解决的问题不同而选择不同的语言,而语言本身也在不断变化和更新。
因此,语言具有不稳定和变化更新快的特征;算法则比较稳定,它与描述算法的语言无关,可以在更长的时间内发挥作用。
程序设计语言只要多实践多使用就能熟能生巧,算法则需要比较深入的理论基础知识,必须经过严格的科学训练。
基于以上认识,程序设计语言知识可以作为一种技能来培养,程序设计方法可以作为一个规则来遵循,算法可以作为科学方法来传授,这样才能适应时代的需要,跟上技术的飞速发展。
通过前面单元的学习,我们可以认为学生具备初步编写程序的简单技能,如基本的输入输出语句、选择结构和循环结构的语句实现、列表及文件的初步操作等。
本项目既要唤醒学生已有的技能,又要让学生初识算法,因此在项目及活动设计时,抛开晦涩难懂的概念和语法,不做内容上的堆积和罗列,采用了生动有趣的活动形式,每个活动中会涉及到一个或几个知识点。
代码不是最终目的,而是作为载体,让学生初步了解程序设计的基本方法,在面对实际问题的时候,可以换一种思维,找到有效的算法。
本节的项目“软件开发社招新”主要包含“探讨面试题的解决方案”和“求解‘谁是冠军’”两个任务,包含4个活动。
任务一的重点在已有知识和技能的唤醒,任务二的重点是最基本算法思想的介绍。
(三)项目教学建议
通过本项目的教学应让学生了解程序设计的基本方法和基本流程,利用学生感兴趣的实例,让学生感觉程序设计并不是遥不可及的,而是人机对话的一种方式,让学生带着轻松的心情,在游戏中学习,在学习中游戏。
以活动为中心,增加拓展类知识,兼顾到不同层次学生的需求。
“探讨面试题的解决方案”包含三个活动。
活动1寻找“开关对应关系”重在定性分析,挖掘对象的特征,重温算法的结构化表示如流程图。
活动2寻找“被污染的药丸”重在定量分析,让学生尝试对生活中的实体进行数据抽象,针对实际问题分析已知信息和未知信息,挖掘程序中的输入、输出信息,了解算法的特征。
活动3寻找“误删的ID号”,将实例的增删抽象成数值的加减,同时复习前面单元中学会的编程技术,如累加、文件读写等。
任务二求解“谁是冠军”,介绍最简单最直接的算法思想——“枚举”,尝试将自然语言转换为程序表达,了解逻辑运算在程序设计中的应用。
两个任务4个活动,编程量不大,因此建议在教学过程中,重点放在分析问题,解决问题的过程上,把握每个活动的重难点。
根据学生实际情况,设定“读懂程序”“修改程序”“编写程序”“自创问题及编程实现”四个梯度,使每个学生都能获得成功的体验。