算法描述与设计
3.2算法及其描述-教学设计(逐字稿)
3.3算法及其描述教学设计(逐字稿)
一、单元教学目标:
1、从生活实例出发,概述算法的概念与特征,运用恰当的描述方法和控制结构表示简单算法。
2、懂得描述程序设计语言产生与发展的过程,了解不同种类程序设计语言的特点。
3、在利用数字化工具解决问题完成任务的过程中,构建知识、培养技能、发展思维,促进信息技术核心素养达成。
二、课时教学目标与评价目标(课标质量描述):
1、理解算法的内涵
2、掌握算法的特征
3、了解算法描述的三种基本方法,了解其优势与不足
4、掌握流程图描述算法的方法
三、学科核心素养(课时):
计算思维:个体运用计算机领域的思想方法,在形成问题解决方案的过程中,产生的一系列思维活动。能采用计算机可以处理的方式界定问题、抽象特征、建立结构模型、合理组织数据;通过判断、分析与综合各种信息资源,运用合理的算法形成问题解决方案;总结利用计算机解决问题的过程与方法,并迁移到与之相关的其他问题解决中。
四、教学思路:
从生活中的实例出发,建立算法的表象。通过归纳总结找到算法的内涵,形成算法的概念。在三个算法实例中,通过比较、分析归纳出算法的特征。在活动过程中认识三种算法描述方法并理解各自的优缺点。
五、教学重难点
重点:掌握流程图描述算法的方法。
难点:算法的定义
教学过程:
一、导课
上节课我们初步了解计算机解决问题的一般过程。其中,设计算法是问题解决的重要环节。请阅读课本上算法的定义,结合活动一体会算法的内涵。
二、授课
(一)算法的定义
1.为了解决一个问题而采取的方法和步骤,就称之为算法(广义)。在信息技术领域,我们关心的是用计算机做工具解决问题,所以这里的算法更具体一些:指计算机能执行的算法(计算机求解某一问题的方法,是能被机械执行的动作或指令的有穷集)。
教学设计描述(精选7篇)_算法及其描述教学设计
教学设计描述(精选7篇)_算法及其描述
教学设计
教学设计描述(精选7篇)由我整理,希望给你工作、学习、生活带来便利,猜你可能喜爱“算法及其描述教学设计”。
第1篇:运动的描述教学设计
运动的描述教学设计
目标1.学问与技能知道参照物的概念
知道物体的运动和静止是相对的2.过程与方法
体验物体运动和静止的相对性3.情感看法与价值观
相识运动是宇宙中的普遍现象,运动和静止是相对的,建立辩证唯物主义世界观。说明与建议想想议议
课本图11.l-l出示了一组好玩的图片,分别表示了几种不同的运动。在课文中也列举了很多物体做机械运动的例子。老师应引导学生结合身边实例,相识运动是宇宙中的普遍现象。老师还可引导学生结合思索以下问题,由浅入深地提高对机械运动概念的相识:足球场上正在进行竞赛,场上哪些物体是运动的,哪些物体是静止的?(运动员、足球是运动的,球门是静止的。)运动的物体有什么特点?(它们相对于地面的位置在变更。)静止的物体是肯定不动的吗?(不是。球门相对于地面的位置虽然没有变更,但随地球的运动,它相对于太阳的位置在变更,因此也在运动着。)通过回答这些问
第1 页题,学生可以相识到机械运动的特点就是物体位置的改
变,然后过渡到对参照物的讲解。
课本图11.1-2是地壳板块移动影响地貌的示意图。20世纪初期德国科学家魏格纳提出了大陆漂移学说,后来发展为板块构造学说,并得到了古生物学、古地磁学等方面证据的支持。可与地理学问整合,扩高校生的视野。探讨表明,日本茨城县鹿岛町与中国上海市的距离,由于板块运动每年缩短2.9cm;而科学家们发觉欧亚大陆板块在与邻近板块相互碰撞、挤压作用下,每年平均上升约0.2cm~0.5cm。参照物
高中信息技术《算法与程序设计》优质教案、教学设计
《算法与程序设计》
1.2 算法描述与设计
教学设计
单位:授课人:
《算法描述与设计》教学设计
为了更形象、直观地表示算法,我们引入了流程图
,学生学习流也叫程序框图。下面,同学们学习“韩信点兵”问题的
流程图表示。
开始
1n
n 被3 、5 、7 整Y
除后余数为
2 、
3 、2
N
n+1n
输出n 的值
结束
流程图描述算法常用的框图主要有以下几个:
在流程图的基础上,专业软件开发人员一般采用伪代码来描述算法。伪代码是一种介于自然语言和计算机语言之间的一种算法描述,不是真正的程序语言代码,所以没有严格的语法限制,书写格式也比较自由,只要把意思表达清楚就可以了。例如,判断闰年伪代码算法描述如下:
输入年份y
IF y 能被4 整除THEN
IF y 能被100 整除THEN
IF y 能被400 整除
输出“是闰年”
附:《算法描述与设计》流程图作品评价量表
《算法描述与设计》流程图作品评价量表
说明:1、作品评价等级分为A、B、C、D 四个等级。
2、在对应的作品等级下画“√”。
《算法的设计与描述》教学设计
《算法的设计与描述》教学设计教学设计:《算法的设计与描述》
一、教学目标:
1.理解算法的概念和基本原理;
2.掌握基本的算法设计方法和分析技巧;
3.能够设计并实现简单的算法解决实际问题;
4.培养学生的逻辑思维、问题分析和解决问题的能力。
二、教学内容:
1.算法的概念和基本性质;
2.常用的算法设计方法和技巧;
3.算法的时间复杂度和空间复杂度分析;
4.算法正确性的证明和优化。
三、教学重点和难点:
1.算法设计方法和技巧的掌握;
2.算法时间复杂度和空间复杂度分析的理解和运用;
3.算法正确性的证明和优化方法的学习。
四、教学方法:
1.理论讲授结合实例分析;
2.实践操作和编程实现;
3.小组讨论和案例分享。
五、教学过程:
1.导入(5分钟)
通过提问,引入算法的概念和应用领域,激发学生对算法设计与描述的兴趣和思考。
2.理论讲解(30分钟)
(1)算法的定义和基本性质;
(2)常用的算法设计方法和技巧,如贪心法、动态规划、分治法、回溯法等;
(3)算法的时间复杂度和空间复杂度分析方法;
(4)算法正确性的证明和优化方法。
3.实例分析(20分钟)
通过实例分析,讲解具体的算法设计和描述过程,如最短路径算法、排序算法、背包问题等。
4.小组讨论和编程实践(30分钟)
学生分成小组,自主选择一个实际问题进行算法设计和描述,并用编程语言实现。通过小组讨论和交流,互相学习和优化算法。
5.案例分享和总结(15分钟)
学生代表向全班分享自己的算法设计和描述过程,同时与全班共同总结所学的知识和经验。
六、教学评价:
1.平时表现(包括听课积极性、课堂互动、实践操作等);
第二节算法和算法描述
2
确定性:每一步都必须有确切的定义
4
输出:至少产生一个输出
算 法 特 征
Biblioteka Baidu
有穷性:算法在执行有 穷步之后必须结束
3
5
可行性:原则上能精确运行
算法在解决问题中的地位和作用: 算法是程序设计的核心,是程序设计的灵魂。算法 的好坏直接影响着程序的通用性和有效性,影响着问 题的解决效率。 算法与程序的关系: 程序可以作为算法的一种描述,但程序通常还需要 考虑与计算机系统运行环境有关的细节问题,而算法 关注更多的是与问题分析和求解方法有关的问题。程 序的编制依赖算法的设计。程序的效率主要取决于算 法的效率。
伪代码
伪代码描述
伪代码是用介于自然语言和计算机程序语言
之间的文字和符号来描述算法的一种算法描述。
优点:简洁、易懂、修改容易,便于向程序设计
语言过渡。
缺点:不直观、错误不容易排查,代码语句不容
易规范,有时会产生误解。
例:求方程 ax + b = 0 的解。
S1:移项得 ax = - b ; S2:若a不等于0,则x=-b/a,结束 S3:若a=0,b=0,得x为任意值,结束; S4:否则输出x无实数解,结束;
自 然 语 言
例:求方程 ax + b = 0 的解。
流 程 图
例:求方程 ax + b = 0 的解。
《描述算法》教学设计
回顾本章知识组成,回忆算法的概念和特征,同时继续上节“手机充电”算法的描述,引出本节主题——描述算法。
1.知识讲解
继续上节“手机充电”算法的描述,指出该描述方式为——自然语言。总结自然语言描述算法的方法和特点,强调教学重点。
2.学生活动
a.布置任务:小组讨论,分组完成用自然语言描述“田忌赛马”、“合理安排课外活动实践”、“推荐最优乘车路线”三个算法。
b.小组展示。
3.例题分析
结合河北省信息技术学业水平考试真题,对自然语言描述算法的方法和特点进一步分析巩固,后进行总结。
1.承前启后
接上,指出除了自然语言,还可用图形化工具——流程图来描述算法,强调教学重点。
2.知识讲解
a.结合之前《二进制与数制转换》课堂教学中使用的“纸牌寻宝”教育游戏的游戏规则,将其用流程图的形式表示出来,展示流程图的绘制方法、常用符号及其功能。
b.以及顺序结构、选择结构、循环结构的相关知识点。
3.生活实例
结合生活实例,分小组绘制“某城市刷卡乘坐公交车”和“不同里程最优资费选择”的算法流程图。
4.举例说明绘制流程图的方法
5.例题分析
结合河北省信息技术学业水平考试真题,对自然语言描述算法的方法和特点进一步分析巩固,后进行总结。
1.承前启后
接上,指出除了自然语言和流程图,还可用伪代码来描述算法,强调教学重点。
2.动画阐述
制作PPT动画,配合讲解,介绍伪代码描述算法。
并结合“倒计时15s”的伪代码描述,介绍四种基本指令,
b.师生归纳:刚刚用到的方法属于数理思维方式,即用逻辑推理的方式直接想出或是用手工算出结果。教师提出还可用枚举法来求解本题,并介绍枚举法解决问题的思路,师生共同设计相应的伪代码表示算法。
算法概念与描述
算法概念与描述
算法是指解决特定问题的一系列步骤和规则的有限序列。它可以
用来计算、处理数据、执行特定任务等。算法可以以伪代码、流程图、程序等形式进行描述和实现。
算法的概念包括以下几个方面:
1. 有限性:算法必须是有限步骤的,每个步骤在有限时间内完成。
2. 明确定义性:算法中每个步骤都是明确定义的,没有二义性。
3. 输入:算法需要有输入数据,用来进行处理或计算。
4. 输出:算法的执行结果应该产生一个明确的输出,能够解决
问题。
5. 确定性:在相同的输入条件下,算法应该产生相同的输出结果。
6. 可行性:算法应该是可行的,即在有限的时间和资源内能够
完成。
7. 有效性:算法应该是有效率的,即执行所需的时间和资源应
尽可能少。
通过对以上几个方面进行描述和设计,可以构建出不同类型的算法,如搜索算法、排序算法、图算法等。算法的描述可以使用自然语言、伪代码、流程图等方式进行,对不同的问题和需求进行具体的实现。
算法及其描述教学设计
3.2算法及其描述
一、学习目标
1.理解算法的概念,掌握算法的特征;
2.从生活实例出发,概述算法的概念和特征;
3.运用恰当的描述方法和控制结构表示算法:顺序结构,选择结构,循环结构。
二、学业质量水平
1.依据解决问题的需要设计算法,采用流程图的方式描述算法。
2.依据问题解决的需要设计算法,运用算法描述方法和三种控制结构合理表示算法。
三、学习重点
1. 理解算法的概念,掌握算法的特征;
2.依据解决问题的需要设计算法,采用流程图的方式描述算法。
3.依据问题解决的需要设计算法,运用算法描述方法和三种控制结构合理表示算法。
四、学习难点
依据问题解决的需要设计算法,运用算法描述方法和三种控制结构合理表示算法。
五、学习方法
学生在学习本节的时候,多结合他们理解的运算过程,对简单算法进行分析描述和绘制流程图,也可以结合三种控制结构,进行简单的实例分析和绘制流程图。
六、教学方法:
讲授、讨论、上机操作
七、教学手段:
课件辅助
八、教学过程:
1、导入新课:
通过对比图片,展示人工智能技术的应用,提出问题人工智能的核心是什么?从而引出上节课的知识点,使用计算机解决问题包含了四个过程:分析问题,设计算法,编写程序,和调试运行程序。了解了算法是解决问题的过程与方法,以及算法是计算机解决问题的核心等等内容,那么到底什么是算法呢,它有哪些特征,它用什么来描述呢?我们这节课就来具体的学习一下算法。
(一)算法:
1、算法的含义:在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗地说,算法就是用计算机求解某一问题的方法,是能被机械地执行的动作或指令的有穷集合。(学生读)探究活动1:求解方程6x+5y+4z的正整数解的个数?
算法的描述与设计讲课文档
现在十页,总共十九页。
自然语言
自然语言描述
用自然语言表达算法,就是把算法的各个步 骤,依次用人们熟悉的自然语言表示出来。 优点:容易理解。 缺点:书写较烦、不确定性、对复杂的问题难以 表达准确、不能被计算机识别和执行。
现在十一页,总共十九页。
流程图
流 程 图
现在十二页,总共十九页。
伪代码
伪代码描述
初始化N=1
DO
If N整除3余2、整除5余3、整除7余2 then 输出N的值
Exit DO End If N=N+1 Loop
现在十五页,总共十九页。
判断某个数是否偶数
输入正数a
伪 If a除以2余数为0 then
代
输出“a为偶数”
码 Else
描
输出“a不是偶数”
述 End if
何过河?
要求:现在请同学们来设计一个方案,把3样 东西安然无恙的带过河。
现在三页,总共十九页。
思考:
1 这个方案总共有多少步? 2 哪几步顺序可以颠倒? 3 同学们农夫过河问题解决了,那到底什么是算法?
现在四页,总共十九页。
过河方案
牧 羊 人 过 河 方 案
第一步:将羊运过去
第二步:人返回
第三步:将菜运过去
现在十八页,总共十九页。
练习:
用程序框图表示“判断整数n(n>2)是否为质数”的算法。
算法描述与设计
流程图
第一章 如何用计算机解决问题 小结
1、什么是算法? 2、算法的特征: 5 3、算法的描述方法?
3
练习:说出下面流程图的各框名称 练习:
开始框 输入框 处理框 判断框 处理框 处理框 处理框 输出框 结束框
如果两个数有最大公约数A,那么这两个数, 如果两个数有最大公约数 ,那么这两个数,以及这两个数的 还有大数除以小数的余数,必然都是A的倍数 的倍数。 差,还有大数除以小数的余数,必然都是 的倍数。 所以当最后两个数刚好能整除时,较小的数就是最大公约数。 所以当最后两个数刚好能整除时,较小的数就是最大公约数。
1.2
算法描述与设计
②描述算法 伪代码
是介于自然语言和计算机程序之间的一种算法描述。 是介于自然语言和计算机程序之间的一种算法描述。 N=1 DO N除以3 N除以3余2 且 除以 输出N 输出N 退出程序 end if N=n+1 loop
算法设计与分析实验报告
算法设计与分析实验报告
一、实验内容:
5-1:设计一种策略,使得基于回溯法的轮船装载问题的时间复杂性能够达到O(2^n)。
5-2: 设计基于回溯法0-1 背包算法,使得算法不仅能够求得背包的最大价值的值,还能够找出最优解,即那些物品被装入背包。
二、算法思想与设计描述:
(一)轮船装载:
如果一个给定装载问题有解,则采用下面的策略可得到最优装载方案。
(1)首先将第一艘轮船尽可能装满;
(2)将剩余的集装箱装上第二艘轮船。
将第一艘轮船尽可能装满等价于选取全体集装箱的一个子集,使该子集中集装箱重量之和最接近。由此可知,装载问题等价于特殊的0-1背包问题。
int maxLoading(int w[], int num, int c, int bestx[])
{
int i = 1;//当前层
int* x = new int [num+1];//x[1:i-1]为当前路径
int bestw = 0;//当前最优载重量
int cw = 0;//当前载重量
int r = 0;//剩余集装箱重量
for(int j=1; j<=num ;j++)
r += w[j];
//搜索子树
while(1)
{
while(i<=num && cw+w[i]<=c)//进入左子树
{
r -= w[i];
cw += w[i];
x[i] = 1;
i++;
}
if(i > num)//到达叶节点
{
for(int j=1; j<=num; j++)
bestx[j] = x[j];
bestw = cw;
}
else//进入右子树
{
r -= w[i];
《算法和算法的描述》教学设计
《算法和算法的描述》教学设计
一、教材分析:
本节课是高中信息技术选修模块一《算法与程序设计》第一章第二节的内容,主要是一些概念和理论,而算法的概念和理论都太抽象,讲起来非常的枯燥乏味,那么就要把这些抽象的东西变得通俗易懂,使学生能轻松而又愉快的接受并理解。
二、学生分析:
在数学中已学过程序设计模块,对算法有一定的初步基础,学习了结构语言的三种结构,并能编写一些较简单的程序。但是学生对结构的掌握并不是很熟练,他们对编程存在一定的畏惧情绪。三、教学目标:
1.知识技能:
(1)理解算法的概念;
(2)能初步利用算法解决简单的问题。 2.情感领域:
培养学生的理论联系实际能力和动手操作能力。
3.能力发展:
培养学生自我探索信息,高效获取信息、分析评价信息、处理运用信息、表达呈现信息的能力,通过作品的制作、反思和评价,进一步提高其信息素养。
引导学生对编程的兴趣,理解算法的概念和如何科学合理的选择和设计算法,激发学生的编程兴趣,为程序设计打好基础。
四、教学重点:
1、算法的概念
2、算法的描述
3、算法的设计
五、教学难点:
1、算法的选择。
六、教学手段:
与学生进行互动探讨式教学,以趣味智力题激发学生探索解决问题的兴趣,以故事事例和具体的程序运行对比,引导学生一步步的思考,从而总结出算法的概念,以及如何设计和选择算法,充分调动学生的主观能动性和探究学习能力。
七、教学过程:教学环节创设情景引入新课教师活动
1、算法的概念
【问题一】:高二9班的同学甲,因感冒,要在晚自习请假回家。要求:小组讨论,帮甲同学写出可行的请假步骤。根据学生的答案,引出算法的概念。解决问题的步骤就是---算法。
1.2算法描述与设计
1.2 算法描述与设计
一、教材分析
本节是高中信息技术选修课《算法与程序设计》(教科版)第一章“如何用计算机解决问题”的第二节“算法描述与设计”。
通过1.1 节的学习,学生已经了解了计算机解决问题的基本过程,并知道算法是程序设计的灵魂,只要算法正确,就可以用任何一种语言编写程序。本节课通过几个典型的例子来帮助学生加深对算法的理解,并学会用不同的方法描述算法。。
二、学生分析
学生在数学课中对算法已经有所了解,特别是用“自然语言”和“流程图“描述算法,高一数学中已经讲过了,所以教师可以让学生自己先尝试完成。
三、教学目标
1、知识与技能
进一步理解什么是算法,知道算法的多样性。
2、过程与方法
①能够对设计的算法作简单的评价;
②学会用自然语言、流程图和伪代码来描述算法。
3、情感、态度及价值观
教师注意结合实例给学生讲解,帮助学生建立并保持其学习程序设计的兴趣和信心。
四、教学重、难点
1、重点
算法的三种描述方法:自然语言、流程图和伪代码。
2、难点
结合实例分析算法的三种描述方法。
五、教学策略
1、教学思路
本节课用日常生活问题和趣味性数学题引入 , 让学生通过比较,思考、讨论、探索解决问题的方法和步骤,理解算法的相关概念,通过两个例子由浅入深地引导学生思考,讨论,进行探究性学习,符合学生的认知规律。通过讲授、演示观察、讨论相结合的方法,充分调动学生的主观能动性,以达到主动学习、探究性学习。
作品欣赏——进入算法(解决问题的方法和步骤)——算法的三种描述方法(结合实例:韩信点兵问题、闰年的判断)。
教学过程
一、作品欣赏、引入新课
算法描述与设计
2、用流程图描述算法
用流程图描述算法,就是用含义确切的图形 符号描述算法。
例:求出两个数的和。
3、用伪代码描述算法
伪代码是介于自然语言和计算机程序设 计语言之间的一种算法描述。
描述算法的方法
1、自然语言:即用人们日常使用的语言和数学语言 描述的算法。
2、流程图:即用一组标准的图形符号来描述算法。
3 、伪代码:伪代码是一种非正式代码,常用自然语 言、数学语言和符号来描述算法的操作步骤。
1、用自然语言描述算法
用自然语言描述算法,就是把算法的各个步 骤,依次用人们所熟悉的日常会话的语言表 示出来。
End if
(1)表示条件判断: If条件 Then
执行语句一 Else
执行语句二 End If
输入年份 y If y能被4整除 then
if y 不能被100整除 then 输出“是闰年”
else if y能被400整除 then 输出“是闰年”
else 输出“不是闰年”
end if
end if
Else 输出“不是闰年”
算法独立于任何具体的程序设计语 言,一个算法可以用多种程序设计语言 来实现。
算法与算法描述
一、算法 1、概念: 简单的说,算法就是解决问题的方法和步骤。 2、特征: (1)、有穷性:有限步骤内完成。 (2)、确定性:每一步有确切的含义。
(3)、可行性:能精确运行,而且人们用笔和 纸做有限次运算后即可完成。
(4)、有0个或多个输入。
(5)、有一个或多个输出。
二、算法描述 1、自然语言:日常生活中使用的语言。 2、流程图:
A
)
2、关于算法的描述,下列选项中正确的是( A、一个算法,当没有输入时,也没有输出 B、一个算法可以没有输入 C、算法只能用流程图来表示 D、一个算法的执行步骤可以是无限的
3、下列问题不能用算法描述的是(
B
)。
A、已知圆锥地面半径和高,求表面积和体积 B、求一元二次方程ax2+bx+c=0(a≠0)两个实 C、 计算某班英语平均分 D 、求方程y=2x+1的所有整数解
起止框 处理框 输入/出框 判断框
3、伪代码:介于自然语言和计算机程序语言之间。
三、程序设计语言: 机器语言、汇编语言、高级语言。
开始
输入半径r
s=pi*r^2
自然语言描述: 步骤一、输入圆的半径r 步骤二、计算圆的面积s 步骤三、输出圆的面积s
输出面积s
结束
开始
输入密码
密码是 否正确
自然语言描述: 输出“密码正确, 步骤一、输入密码 请等待登陆” 步骤二、判断密码是否正确 步骤三、正确的话,输出“密码 正确,请等待登陆”;错误的话, 输出“密码错误,请重新输入”
算法分析与设计
算法分析与设计
算法是计算机科学中非常重要的概念,它指的是一系列解决问题的步骤或方法。算法的好坏直接影响着程序的性能和效率。因此,算法分析与设计是计算机科学领域中至关重要的一部分。
一、算法分析
算法分析是评估算法性能的过程。对于给定的问题,可能有多种算法可供选择。通过对算法进行分析,可以比较它们的优劣,并选择最适合的算法。
1. 时间复杂度
时间复杂度是衡量算法执行时间的一个指标。它反映了算法在处理输入规模增大时的性能变化。通常使用大O符号来表示时间复杂度。
常见的时间复杂度有以下几种:
- 常数时间复杂度 O(1)
- 线性时间复杂度 O(n)
- 对数时间复杂度 O(log n)
- 平方时间复杂度 O(n^2)
- 立方时间复杂度 O(n^3)
- 指数时间复杂度 O(2^n)
通过对算法的代码进行逐行分析,可以确定每行代码的时间复杂度,并将它们相加得到整个算法的时间复杂度。
2. 空间复杂度
空间复杂度是衡量算法在执行过程中所需存储空间的指标。它反映
了算法在处理输入规模增大时的内存消耗变化。
常见的空间复杂度有以下几种:
- 常数空间复杂度 O(1)
- 线性空间复杂度 O(n)
- 对数空间复杂度 O(log n)
- 线性对数空间复杂度 O(n log n)
- 平方空间复杂度 O(n^2)
- 立方空间复杂度 O(n^3)
- 指数空间复杂度 O(2^n)
通过对算法中使用的变量、数组等数据结构进行分析,可以确定算
法的空间复杂度。
二、算法设计
算法设计是将问题转化为算法步骤并解决问题的过程。在设计算法时,需要考虑以下几个方面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法描述与设计
一、教学目标
1. 进一步理解什么是算法,知道算法的多样性。
2. 学会用自然语言、流程图和伪代码来描述算法。
二、教材内容分析
通过1.1 节的学习,学生已经了解了计算机解决问题的基本过程,并知道算法是程序设计的灵魂,只要算法正确,就可以用任何一种语言编写程序。本节课通过三个典型的例子来帮助学生加深对算法的理解,并学会如何描述算法。
三、教学方法及策略
本节课主要通过三个典型实例教学生学习如何利用自然语言、流程图和伪代码来描述算法。第一个实例“野人过河”的趣味智力题,它一方面可以激发学生的学习兴趣,另一方面可使学生掌握利用自然语言描述算法的方法;第二个实例是通过求一元二次方程 ax2+bx+c=0 (其中a≠0 )实数解的典型的数学问题,使学生掌握用流程图描述算法的方法;第三个实例是通过判断某一年是否是闰年,让学生掌握用伪代码描述算法的方法。三个典型的实例由浅入深地引导学生思考,讨论,充分调动学生的主观能动性,为下一步学好编程打好基础。
四、教学过程
1. 课堂引入
由高斯小时候计算1+2+3+ … +100 的和的故事引入:算法是程序设计的灵魂,找到合适的算法是程序设计的前提 , 算法的设计分为两个内容:一是寻找一种方法;二是描述实现这个方法的步骤,我们这节课的重点是学习如何描述算法。
播放“野人过河”智力题动画(可以将动画文件发送给学生,让学生去操作,找过河方法)。
有三个牧师和三个野人过河,只有一条能装下两个人的船,在河的任何一方或者在船上,如果野人的人数大于牧师的人数,牧师就会有危险。你能不能找出一种安全的渡河方法呢?
通过动画形式的智力题引起学生极大的兴趣,给学生3分钟时间进行智力竞赛,要求完成任务的同学把过河方案描述出来,方案描述大致如下:
第一步,两个野人过河,然后一个野人把船划回;
第二步,又两个野人过河,然后由一个野人把船划回;
第三步,两个牧师过河,然后一个牧师和一个野人把船划回;
第四步,两个牧师过河,然后由一个野人把船划回;
第五步,两个野人过河,然后一个野人或牧师把船划回;
第六步,两个野人都上船过河。
(不同学生的方案可略有不同,描述语言上也可有差别。)
以上解决问题的过程,实际上也是一种算法,我们写的过河方案实际上就是用自然语言描述的算法。
2. 用自然语言描述算法
(1)自然语言——人们日常生活中使用的语言。
(2)自然语言的特点:通俗易懂,缺乏直观性,不简洁,且易产生歧义。如很多同学的描述语句和说法相差较大。
使用自然语言的注意事项:描述要尽可能精确,详尽。
3. 流程图描述
用自然语言描述算法比较容易接受,但叙述冗长,容易产生“ 歧义” 。下面我们再来学习另外一种最常见的算法描述方式——流程图。
(1)播放幻灯片,列出算法的框图描述元素。
(2)播放幻灯片,并简单分析求一元二次方程(其中a≠0 )实数解的算法框图。
用流程图描述算法直观易懂、逻辑关系清晰,不容易产生歧义。
4. 用伪代码描述算法
伪代码 (Pseudocode) 是介于自然语言和计算机程序设计语言之间的一种算法描述。它也
是专业软件开发人员描述算法的一种常用方法。没有严格的语法限制,书写格式也比较自由,描述的算法简单、易懂,容易修改,且容易转化为程序语言代码。
[ 例 ] 给定一个四位数的年份,判断它是否为闰年。判断闰年的条件是:如果该年份能被4整除但不能被 100 整除,或者能被 400 整除,则该年为闰年。
5. 课堂总结
(1)算法是指解决问题的方法和思路。
(2)描述算法的形式有多种,常用的有自然语言、流程图和伪代码。
(3)掌握流程图中常用符号的含义。