内容正文:
教学单元
认识数据
教学主题
算法及其特征
教学目标
知识与技能
· 能够合理并综合运用三种类型的流程图
· 能够将算法、流程图进行互相转换
· 能够通过流程图解决实际问题
过程与方法
· 通过讲授时的活动练习和探究任务,提高综合运用算法、流程图实现程序设计的能力。
情感态度价值观
· 能够从实际生活中、其他学科中感知到算法和流程图的实际价值。
核心素养培养
通过选择排序算法将算法、流程图和程序设计结合起来,奠定高级算法基础和高阶信息素养。
教学内容
算法;选择排序算法与数组数据类型;枚举算法
教学媒体
电子白板、PPT
教学过程
教学环节
教师活动
学生活动
设计意图
旧知复习
将流程图转换为算法
【问题】
该流程图的目的是什么?
1.输入变量a、b的值。
2.比较a和b。如果a>b,则a存入以max命名的存储单元中;否则,b存入max。
3.输出结果max。
回答问题:比较a与b的大小,并输出最大值。
让学生通过观察流程图,图形化语言的内容转化为中文的思维流程,使其回忆选择结构流程图的使用过程和结果。
课堂讲授
【知识点一、算法】
软件开发社团要招募新成员,报名的同学要经过面试才能加入。第一关面试题是:
“一个房间有3盏灯,房间外有3个开关分别控制这3盏灯。在只允许进房间一次的情况下,如何判断哪个开关控制哪盏灯?
【任务分析】
灯的属性:
1、亮与不亮;
2、热与不热;
灯亮推出开关的控制
灯热推出灯曾经亮过。
其步骤为:
· 首先开1号、2号两个开关;
· 2分钟后关闭1号开关;
· 进房间,显然亮着的灯由2号开关控制;
· 接下来摸一下另外两盏不亮的灯,发热的灯肯定由1号开关控制;
· 最后确定3号开关控制的灯。
思考并依据教师提示和任务要求,探究完成步骤分析。
经过梳理算法步骤,将其转化为流程图。
首先,学生依据任务分析探究完成算法的实现,理解算法的功能和价值,然后将算法转化为流程图,使其深度理解算法和流程图的区别于练习,并能够综合运用算法和流程图。
最后由学生和教师共同归纳总结算法的内涵和特征,培养其结论的推理能力。
2、算法
从某种意义上说,算法也是一种数学模型。一般而言,问题求解的第一步是数学建模。用数学语言描述实际现象,将现实世界的问题抽象成数学模型,就可能发现问题的本质并判定其能否求解,继而找到求解该问题的方法和算法。
3、算法的重要特征
· 有穷性
. 算法必须能在执行有限个步骤之后终止。
· 确切性
. 算法中的每一次运算都有明确的定义,具有无二义性,并且可以通过计算得到唯一的结果。
· 输入项
. 一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身给出了初始条件。
· 输出项
. 算法一定要有输出。任何算法都不能"无功而返"。
· 可行性
. 算法中执行的任何计算都可以在有限时间内完成(也称为有效性)。算法中的运算都必须是可以实现的。
认真思考并记录笔记。
【知识点二、选择排序算法与数组数据类型】
选择排序算法是常用的一种排序思维。
播放【选择排序】视频,让学生观看视频并思考其原理。
1、选择排序算法
· 内涵
选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,所以称为:选择排序。
· 原理(或算法)
设第一个元素为比较元素,依次和后面的元素比较
比较完所有元素找到最小的元素,将它和第一个元素互换
重复上述操作,我们找出第二小的元素和第二个位置的元素互换
以此类推找出剩余最小元素将它换到前面,即完成排序
观看视频并思考总结内涵和原理。
自主书写算法过程。
遇到疑难需要向教师提出。
根据教师引导完成提问中的内容并理解数组实例的排序过程。
阅读题目。
认真思考并记录笔记。
根据代码执行结果深度理解数组的原理和表示方式。
学生依据教师提示逐步完成流程图。
程序代码:
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_idx
if A[min_idx] > A[j]:
min_idx = j
A[i], A[min_idx] = A[min_