算法
一、背景
设计者 教案名称 学生 教材 课时
刘子璇 算法 高二年级 粤教版《数据与计算》 1
二、学习者分析
本课教学对象为高二年级学生,他们的思维活跃,具有一定的逻辑思维和推理演绎的能力,整体有一定动手能力,但归纳总结能力偏弱。日常生活中处处蕴含算法,同学们都接触践行过,但未意识到算法的概念,完整的思维体系尚未形成。
三、教学目标
掌握数字化学习的方法,明确算法在程序设计中的重要作用(信息意识、数字化学习与创新)
能根据需要选用合适的数字化工具开展学习(信息意识、数字化学习与创新)
能够用流程图的方式描述算法(数字化学习与创新、计算思维)
依据解决问题的需要,设计和表示简单算法(计算思维)
四、教学重难点
教学重点
算法的特征。
算法的描述方法和三种基本的控制结构。
程序设计语言的发展过程。
教学难点
1.算法的描述方法和三种基本的控制结构。
五、教学准备
教师:课件、教具、教材
学生:学生学件、教学资料
技术:(1)硬件准备——多媒体机房、电子白板;(2)软件准备——演示文稿
六、教学策略设计
引导学生在鲜活的实例中学习知识。让每个学生充分参与、全程参与、深度参与,在学习的基础上进行总结与运用。在此过程中,教师充分诱导、启发、示范、联系。
七、教学过程
教学环节 教师活动 学生活动 设计意图
课前导入 (4min) 教师:大家好。今天我们讲算法基础。其实生活中处处是算法,因为算法通俗地讲就是解决问题的方法和步骤。(展示算法含义PPT) 学生认真听讲 贴近生活,激发学生学习兴趣,引出新课,让学生更快地进入本节课的学习
知识新授 (30min) 教师:好。今天我们来设计一个判断输入数是否是质数的算法。这个算法的原理是一个大于1的自然数中,质数是除了1和此整数自身外,没法被其他自然数整除的数。 教师:根据这个核心,我们看一下步骤展示(展示并讲解算法)。 教师:很显然,自然语言就类似于我们平常口述数学题解题步骤。但不是所有能被描述出来的解决步骤都是算法,算法它有自己的五个特征。 教师:我们来看一下算法所具有的五个特征(展示PPT)以我们的判断是否是质数为例,它的计算步骤是可以穷尽的,计算机也可以在有限时间内计算出来。但如果是要判断所有的自然数是否是质数,数是无穷尽的,所以计算机根本判断不完所有的质数,这就违背了算法的有穷性和可行性,它就不是个算法。确定性,求质数这就不是一个确切的描述,要说明是求哪个区间内的质数,比如求1到100这个区间内的质数。最后就是输入输出,输入可以有0个或多个,输出则至少有一个,否则程序无意义。 教师:我们刚刚学习了用自然语言描述算法,但描述算法远远不止这一种方法,我们今天来学习另外两种使用较多的算法表示(展示并讲解PPT)。 教师:(展示PPT)。第三种是伪代码,就是用介于自然语言和计算机语言之间的文字和符号来描述算法。这个就比较接近真实代码了而且不拘泥于使用各种符号,就像我们写代码前的思维构思。 教师:(展示PPT)在第二种流程图的描述方式中,有一个要注意的知识点,按照程序执行的流程,可以分为三种基本结构:顺序、选择和循环结构。顺序结构是按照语句顺序执行程序,是最简单的程序结构;选择结构也称为分支结构,是根据给定的条件选择程序的执行语句;循环结构是根据给定的条件反复执行相同的程序语句,条件不成立跳出循环。在我们刚刚展出的一定区间内求质数的流程图,它就包含这三种基本结构,我请一位同学来分析一下刚刚的流程图。 学生回答,教师聆听纠错。(展示ppt) 教师:这部分的知识点很重要,大家一定要掌握,流程图的三种基本结构经常考,尤其是循环结构和分支结构。大家可以完成一下书上的三道题巩固一下。给大家三分钟。 教师:好,我们来对一下答案。第一题选A,有的同学可能选了D,循环结构。但大家仔细看一下题目,农夫每趟带的东西都是不一样的,那么在程序里就不可能是相同的程序语句。第二题,输入n=5,然后0赋值给M,1赋值给i,M+i=1,i+1=2,然后是个判断语句,M小于n吗,是的,所以返回到上一步骤,算出M=3,还是小于5,再返回,M=6,大于5,于是输出6,在这过程中循环语句执行了几次?对,3次。第三题s、n=1,判断语句n<4吗?小于,于是进入n=n+1,n=2,s=1*2=2,此时s的值已经被2覆盖了,不再等于1了,然后重复步骤,得出s=2*3=6,n=3仍然<4,于是再循环,n=4,s=24,不再满足循环条件,程序结束,输出24,所以选C。 教师:程序设计语言是人们编制计算机程序所使用的语言。比如我们学习的python就属于程序设计语言。程序设计语言经历了从机器语言、汇编语言到高级语言的发展过程。(展示并讲解PPT) 教师:OK,现在大家花两分钟做一下书上29页的四道题。 教师:第一题很简单,选D。第二题选D,fortran是最早出现的高级程序设计语言,诞生于1945年,抗日战争胜利的那年。这个大家可能不知道,但通过排除法能够得出这个答案。第三题也很简单,选B。第四题A选项编译程序属于计算机系统软件,B选项编译程序会生成目标程序,而且编译程序一般不是执行源程序,而是把我们写的文字型的代码编译为二进制的内容,然后去执行二进制的内容。D选项编译程序有出错处理,会报错原因和位置。 教师:最后我们来学习一下算法的评价。我们通常从时间复杂度和空间复杂度来描述它。时间复杂度是一个函数,它定性描述一个算法的运行时间。空间复杂度定性描述一个算法或程序运行所需要的存储空间大小。 认真听讲老师讲授新知识并积极回答相关题目。 知识点讲解+例题巩固,力图学生真正理解记忆知识点。
总结 (6 min) 教师:今天这节课我们学习了算法基础,我们可以用一张图概括今天所学的内容: 一言以蔽之,算法是解决问题的方法和步骤,而程序是对算法的描述,所以说算法是问题与程序之间的桥梁。 教师:大家下课后可以把书上的相关题目写一写,练一练,及时复习巩固。这节课到此结束,谢谢大家! 学生认真听讲 通过知识关系图,展示知识之间的联系,有效巩固新学知识点(共12张PPT)
粤教版普通高中教科书
信息技术 必修1
第三章 算法基础
算法是指按照一定规则解决某一问题的明确而有限的步骤,通俗地讲就是解决问题的方法和步骤。
算法
大象关冰箱算法
第一步,打开冰箱
第二步,把大象装进去
第三步,关上冰箱
计算机程序
计算机程序是计算机能够识别和执行的指令或语句的序列。程序是对算法的描述。
算法的特性
1、有穷性:算法所包含的计算步骤是有限的。
3、确定性:算法执行的每一个步骤都必须有确切的定义,不能模棱两可。
4、数据输入:一个算法必须有零个或者多个数据输入。
5、数据输出:一个算法必须有一个或者多个数据输出。
2、可行性:每个计算步骤都可以在有限时间内完成。
零个输入:鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几只?
多个输入:接收用户输入的两个整数,输出两数之和?
算法的三种描述方式
1、用自然语言描述算法,就是用人们日常所用的语言。
2、用流程图描述算法是用程序框图来描述算法的一种表示方法。
3、用伪代码描述算法就是用介于自然语言和计算机语言之间的文字和符号来描述算法。
2、设计算法 - 自然语言
(1)自然语言描述算法
第一步,输入书本的单价p和数量n的值;
第二部,计算金额s的值,即s=p×n;
第三步,输出s的值;
第四步,结束。
通俗易懂
2、设计算法 - 流程图
图 形 名 称 功 能
开始/结束框 表示算法的开始或结束
输入/输出框 表示算法中变量的输入或输出
处理框 表示算法中要执行的处理内容
判断框 表示算法中的条件判断
流程线 表示算法中的流向
直观形象、简洁清晰
2、设计算法 - 伪代码
接近真实代码且不拘泥于具体语言
(1)伪代码描述算法
输入p,n
s ← p * n
输出 s
程序的三种基本结构
(a)顺序结构是按照语句顺序执行程序,是最简单的程序结构。
(b)选择结构也称为分支结构,是根据给定的条件选择程序的执行语句。
(c)循环结构是根据给定的条件反复执行相同的程序语句。
按照程序执行的流程,可以分为以下三种基本结构:
程序设计语言的发展历史
(1)机器语言:
是由“0”和“1”这样的二进制代码指令组来表示。因为计算机内部采用二进制的原因,所以机器语言能够被计算机直接识别和执行,执行速度很快。但由于二进制代码难以理解导致开发起来极其困难。
(2)汇编语言:
使用了助记符来替代特定的二进制代码指令。比机器语言易于理解且效率仍十分高,但不能被计算机直接运行。需专门的语言翻译器翻译成机器语言,开发难度依然很大。
(3)高级语言:
接近于数学语言或人的自然语言。容易阅读、易学易用、通用性强,但仍需专门的语言翻译器翻译成机器语言,由于接近人的自然语言所以开发起来要简单许多。(python、c等)
10110000 00001001 #把9送进累加器
00000100 00001000 #完成9+8的运算
11110100 #停止操作
机器语言
MOV AL,9 #把9送进累加器
ADD AL,8 #完成9+8的运算
HTL #停止操作
汇编语言
9+8
高级语言
3-4、编写程序与调试运行
编写程序
调试运行
总结 - 问题、算法与程序之间的关系
问题
程序
自然语言
流程图
伪代码
算法
分析问题
编程语言
算法是解决问题的方法和步骤,而程序是对算法的描述
所以说算法是问题与程序之间的桥梁。