算法和算法的描述教学设计(写写帮推荐)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法和算法的描述教学设计(写写帮推荐)
第一篇:算法和算法的描述教学设计(写写帮推荐)
算法和算法的描述(教学案例)
教材分析:
这节课内容主要是一些概念和理论,而算法的概念和理论都太抽象,讲起来非常的枯燥乏味,那么就要把这些抽象的东西变得通俗易懂,使学生能轻松而又愉快的接受并理解。

学生分析:
学生基本上没有接触过编程,那么在高中阶段初步接触编程,学生首先会感到很深奥,看到书中的程序语句,尤其是看到后面的长一点的程序语句更是觉得可怕,那教师必须要考虑在授课中如何正确引导,以什么样的方式进行。

学生有没有兴趣学,往往看这个课是不是有意思,难不难学,一看难学又乏味,就开始产生厌学的情绪。

教学目标:
引导学生对编程的兴趣,理解算法的概念和如何科学合理的选择和设计算法,为程序设计打好基础。

教学重点:
算法的概念、算法的设计和选择。

教学难点:
如何科学合理的选择和设计算法。

教学方法:
与学生进行互动探讨式教学,以趣味智力题激发学生探索解决问题的兴趣,以故事事例和具体的程序运行对比,引导学生一步步的思考,从而总结出算法的概念,以及如何设计和选择算法,充分调动学生的主观能动性和探究学习能力。

教学过程:
1、引导学生对编程的兴趣
(1)教师:同学们喜欢玩电脑游戏吗?
(2)学生:喜欢!(说到游戏学生总是表现出很浓的兴趣。


(3)教师:在上机练习课的时候,总发现有个别同学偷偷的玩游戏,其实你们喜欢,老师也很喜欢,那么同学们想不想自己编个游戏
来玩呀?
(4)学生:会不会很麻烦!(学生表现出好奇,又对编程心里还没有底。

)(5)教师:不用担心,编程并不像你们所想像的那样难,很快你们就会编一些小游戏程序了。

其实编程是件非常有意思的事情,在以后的学习中你会发现自己越来越喜欢编程,甚至会着迷的。

2、算法的概念
(1)教师:幻灯片出示一个经典的趣味性例子, 有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,牧羊人应如何过河?
(2)教师:分组讨论,前后四个同学为一组,把你们的橡皮擦放到一块,分别写上狼、羊、白菜,你们自己是牧羊人,现在请同学们来设计一个方案,把3样东西安然无恙的带过河。

我们来比一比看哪组同学最快完成。

课堂立即活跃起来,同学们把它当作一种游戏全都投入进去了,积极思考起来。

(3)很快就有学生举手回答。

过河的方案: 第一步:人和羊过河,人返回,留下羊;
第二步:人和狼过河,人和羊返回,留下狼;第三步:人和菜过河,人返回,留下菜;第四步:人和羊过河。

(4)教师:同学们这个方案行不行?(5)学生:行。

(6)教师:还有没有其它方案?
(7)学生:还可以在第二步时,人和菜先过河,人羊返回,留下菜;第三步,带狼过河。

(8)教师:刚才同学们把第二步和第三步可以改变先后顺序,其它顺序还能不能颠倒,比如说:第一步先过狼?
(9)学生:不能。

(10)教师总结出算法的概念:同学们说的不错。

那什么是算法呢?这个过河的方案就是这道趣味题的算法。

请同学们记住一句话:算法就是解决问题的方法和步骤。

在以后的编程中也要记住了,有些步骤是可以颠倒的,不影响程序的结果;但是有些一但颠倒了那最终
的结果也就全变了。

3、用流程图来描述算法
(1)教师:幻灯片放映,出示例题:某商场为了对苹果进行促销,规定购买2千克以上可以在原价每千克1.5元的基础上打8折。

请同学们告诉我该怎么计算应付款?
(2)学生:首先称好苹果,超过2千克,应付款为:苹果重量*1.5*0.8;如没超过,应付款为:苹果重量*1.5(3)教师:放幻灯片,演示流程图。

好,这个同学刚才给出了算法。

现在我用一个图来把这个过程描述一下。

(4)教师:解释这个图的执行过程。

问:同学们,告诉我这是什么图啊?(5)学生:流程图。

(6)教师:幻灯片出示:流程图的基本图形及其功能
(7)教师:我知道大家在数学课程里,学习过用流程图来描述算法。

有了你们数学课的一点基础,那么我们现在学习起来就比较容易。

流程图是描述算法常用的工具,容易表达,结构清晰简洁,有利于不同环境的程序设计。

在以后的学习中,我们还会充分利用流程图来帮我们分析问题。

4、算法的设计与选择
(1)教师:大家在做题时,是不是有时候一道题有多种解法?(2)学生:是。

(3)教师:我给大家讲个故事:200年前的一天,一位数学教师走进课堂,也许是想清静一个小时,给四年级的学生们布置了一道题:从1加到100。

5分钟后,一个学生走到他跟前,交上了正确答案,这时他是多么吃惊呀!这怎么可能呢?这个孩子一定是个天才。

(4)教师:请大家告诉我1加到100等于多少?、(5)学生:5050(6)教师:你们是用什么方法计算的?
(7)学生:首尾相加后,再乘以100,即(100+1)*50=5050(8)教师:这无疑是一种很好的算法,既简单实用,效率也高。

1+2+3…+100最终也能加到结果,但是计算的过程大家可想而知。

解决问题的方法,也许有很多种,但是运用不同的方法却会产生不同的
效果。

我们编写程序也是一样,你使用不同的算法,也会产生不同的效果。

说归说,我们再来看一个例子。

幻灯片出示:求9147485和5147480两个数的最大公约数。

(9)同学们你们是怎么计算的?(10)学生:用“辗转相除法”计算。

(11)教师:好,请你们来计算一下。

(12)学生:数这么大很难算啊!
(13)教师:同学们别着急,有两个同学已经编写了解决这个问题的程序。

大家一起
来看一下。

(幻灯片出示)
(14)教师:同学甲编写的程序用的算法是“辗转相除法”;同学乙用的算法是“穷举法”,从5147480开始,每次减1,一个个的进行判断,直到找到为止。

好,我们分别来运行一下,请同学们注意观察。

教师:启动VB,运行同学甲的程序:
第1次运行输入:9147485和5147480 , 结果:5 第2次运行输入:45684和58460 , 结果:4 第3次运行输入:8654726和675942 , 结果:2 运行同学乙的程序:
第1次运行,大约5秒钟后显示结果:5 第2次运行,大约5秒钟后显示结果:5(15)教师:请学生回答观察到的现象。

(16)学生:甲的运行速度快一些,还可以求其它组数的最大公约数,而乙只能计算这一组。

(17)教师:同学们观察得很好!那你们认为那个算法好一些呢?(18)学生:甲。

(19)教师:对。

算法的设计,直接影响着程序的通用性和解决问题的效率,总的来说,一个好的算法,应该是科学而又合理的算法。

实践练习:
一天,小猴子从树上摘下若干个桃子,当即吃了一半,觉得不过瘾,又吃了一个。

第二天小猴子接着吃剩下的一半,还觉得不过瘾,又吃了一个。

以后每天都是吃前一天剩下的一半后,就再多吃了一个。

到第四天,只剩下一下桃子。

试设计一个算法流程图,求小猴子第一
天摘下了多少个桃子。

第二篇:算法教学设计
3.4算法及其表示智能吸尘器算法简单分析
【教材分析】本节教材的地位、作用等分析。

本节教材位于高中信息技术必修模块第三章中:“算法及其实现”部分内容,本节课的学习目的是使学生体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;体验信息技术中算法的魅力,为学生选修算法模块奠定基础。

【学情分析】
算法是我们信息技术基础模块的最难的一块内容,课时又少,只有两课时,如果初中信息技术正常开展,那么这个内容也容易开展。

【教学目标】
1.知识与技能
理解算法的含义,体会算法在程序设计中的地位;培养用计算机编程解决现实问题的能力。

2.过程与方法
能通过观察吸尘器的工作来分析其算法,培养学生用程序设计的思想来思考产品。

3.情感态度与价值观
引导学生了解程序设计的更多知识,体验信息技术的强大魅力;激发学生对计算机编程解决现实问题的学习欲望,提高学习兴趣。

渗透人文教育,懂得感恩。

【重点难点】
教学重点:算法的特征;算法的表示教学难点:对算法的理解,流程图
【设计思想】
新课标强调要“培养解决问题的能力,倡导运用信息技术进行创新实践”,以前教学中我一直从面到点,先讲算法的定义和特点,再举例,效果不是很好,学生印象不深,往往到学期结束的时候,对算法印象全无。

因此,这次在设计本节内容的时候,在选择实例的时候,我从两点考虑:一是生活化,选择的例子尽可能贴近生活,既要达到吸引学
生的目的,又能体现技术的真实内涵(现在的学生,生活自理能力太差了);二是通过把抽象的问题分析成为具体步骤或方法,从而形成算法,让学生理解计算机解决问题的基本过程。

我在选择实例的时候,尽量让这个例子能贯穿整堂课,把一个问题分析透,印象会深刻。

【教学流程】
导入
师:喜欢干家务吗?生:不喜欢
师:可是有一个人就是无怨无悔的做着家务(渗透人文教育,懂得感恩)生:谁?
师:“马大嫂”,你们认识“马大嫂”吗?每个家庭都有。

生:领悟
师:“马大嫂”在我们同学们的年纪时,也是不喜欢干家务的,是什么让他们无怨无悔的干着家务?作为他们的孩子,我们有没有想过替他们分担一点?或者当我们长到“马大嫂”的年龄,我们能不能让家庭生活轻松一些?
生:讨论
师:家庭的智能化脚步离我们越来越近,我们的生活里随处可见,比如有定时功能的家电,洗衣机、洗碗机,今天我给大家推荐一款“买汰扫”的扫:智能吸尘器。

(引导学生用计算机编程来解决现实问题)
首先声明,我不是搞推销的,而是带领大家去设计生产产品的。

今天我们一起来分析、设计一款智能吸尘器。

首先,我们分析一下原始的手工操作吸尘器的工作需要几步?新课(先把复杂的问题简单化,得出大的方向,然后逐步细化)生:三步,打开电源、开始工作、关闭电源
师:看来你们都是宋丹丹的徒弟,其实这也是我们用计算机解决实际问题的思维:先设计算法、再编制程序来实现算法。

师:什么是算法呢?算法是解决问题的方法和步骤,同学们用的是自然语言描述的算法,我是用流程图来描述算法。

算法描述的方法和步骤应该是有限的,有开必有关;有Begin必有End;
同学们是不是有被忽悠的感觉?有,就说明了我们的同学想的更远了,是啊,我这个算什么算法,跟本没解决什么问题,对了,算法还有一个定义,解题方法的精确描述,我这个算法的步骤有了,但不够精确描述,所以我们要自顶向下,逐步求精。

师:你们说哪个步骤需要细化?生:第二步
师:那你们觉得吸尘器要体现智能,应该从哪些方面考虑?生:讨论
归结你们的观点,主要有三个:设定清洁路线模块,躲避障碍物模块,自动充电程序设定清洁路线模块
师:你们拖过地吗?如果让你来拖地,你会选择怎样的路线既能减少重复路线,又能全部覆盖? 好,我们模拟一下,(用flash 规定几个相同的区域,然后计时擦除)把橡皮擦当成我们的吸尘器,擦除前景颜色并计时,……通过大家的实践,我们可以看出几种方案比较科学,通过这个试验,我们知道解决问题的方法有很多,生活中也一样,关键是要选择合适的一种,达到既快又好.这是我们在最优环境下的情况,没有考虑实际情况。

我们看看具体的设计
前面同学们提到躲避障碍物是设计的关键。

躲避障碍物模块
师:躲避障碍物模块是体现吸尘器智能的关键一点,我们先分析碰到墙壁怎么处理,只要碰到墙壁能处理,其他的是不是也是一个道理?
现在我请同学们描述一下碰到墙壁这个算法。

真了不起,你们用自然语言描述了这个算法,我习惯用流程图来描述。

请看我的算法
这个算法同样比较粗糙,我们一起把它修正一下,首先要确定哪些地方需要细化,对了,是怎样判断“有没有碰到墙壁?”,这是核心,你们认为怎样判断好?请大家在纸上设计设计
还有没有其它需要修正的?对了,怎样“转变方向”也要细化,你们认为怎样改变方向好?
就这个流程图本身,还有什么地方需要修正的吗?Y和N线路里有相同的语句,我们可以把
它提出来,放在合并后的线路中.好,我们把经过大家修改后的算法称为智能清扫模块
自动充电程序
我们还少了一个关键模块,地没扫完,电没了怎么办?
现在请同学们参考智能清扫模块的流程图,画一画碰到电不足了那一刻怎么处理的算法。

学生上台画流程图,根据学生的流程图修正,得到循环结构。

回顾小结
现在我们回顾一下我们设计智能吸尘器的过程:首先我们把复杂的问题简单化,设计了一个三步走的算法,然后,选择了一个最优路线,再设计了一个具有智能的障碍物躲避模块和自动充电模块,在第一个流程图里我们提出了算法要有开始和结束,即算法的有限性;最优路线里我们得出了最优算法;障碍物躲避模块我们提出了可行性和没有二义性。

针对以上算法,从开始到结束都离不开这三种情况,就像我们的生活,有可能一路直行、也有可能碰到分叉口、还有就是回到原路,还有没有其他的可能?这就如同我们的算法,所以这三种我们就称为基本结构,由这些基本结构组合成大的程序。

拓展
有了算法,程序实现就容易了,经过我们一起设计的第一代机器人初具模型,请看我们的作品(展示物体碰撞的动画),再看看我写的代码,一些简单的语句你们也看得懂,比如我们的核心模块……
我们用一节课的时间就已经设计出这样的产品,如果学了一本书,读了四年的大学,你们的产品不知要好到哪里,到时候别忘了给全班同学发一个哦。

课外作业
研究了智能吸尘器,你们有什么启发?那么我们就一起设计一下自己未来的家庭生活吧?
只有想不到的,没有做不到的。

想法高于一切,这个想法就是我们今天讲的算法,它不单单存在于我们的计算机行业,生活中处处可见,希望大家做个有心人,好好设计自己未来的生活,设计不好,继续马大嫂的生活。

第三篇:《枚举算法》教学设计
《枚举算法》教学设计
苍南县成人教育中心学校陈荣军
一、教学目标
1、知识与技能目标:
理解枚举算法的基本原理,熟悉枚举算法程序设计的基本思路及程序结构特点;学会使用枚举算法解决现实生活、学习中所遇到的问题。

2、过程与方法:
围绕“课堂任务导航程序”,通过课堂任务设计,让学生熟悉用枚举算法求解问题的基本过程,并把它运用到实际生活中去解决问题,学会选择适当的枚举方法多角度分析问题,解决问题。

3、情感态度与价值观:
激发学生的学习热情,提高学生自主学习能力,增强学生创新意识;引导学生关注枚举算法在社会生活中的应用,并以此培养学生将算法思想运用到解决实际问题中去的能力。

二、学情分析
本节内容的教学对象是普通高中高一学生,他们经过半学期的信息技术教学,具备了一定的计算机操作能力;在VB程序设计方面,也已经有所学习,具备一定的基础,但因所上课时不多,学生对VB还只是略知皮毛,语法及编程能力有待于进一步提高。

三、教材分析
1、本节主要内容介绍
枚举算法是程序设计中使用最为普遍、学生必须熟练掌握和正确运用的一种算法。

它利用计算机运算速度快、精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检查,从中找出符合要求
的答案。

用枚举算法解决问题,通常可以从确定范围、逐一列举,验证条件、逐一验证这两个方面进行分析,把这两个方面分析好了,问题自然会迎刃而解。

2、重点难点分析教学重点:
(1)理解枚举算法的基本原理。

(2)能根据问题描述确定枚举范围,并能用程序正确表示验证条件。

(3)枚举算法的程序实现。

教学难点:
(1)各种枚举算法的优劣评价。

(2)编程实现枚举算法。

四、教学设计理念采用了以学生的学习和发展为中心,基于建构主义理论的任务驱动、情境教学等教学方法,突出自主、合作、探究等学习方法;强调信息技术与生活实际的联系,培养学生的逻辑思维能力、解决问题的能力以及创新意识等;设置多元化的评价方式,让学生掌握学习内容的同时,形成交流与评价的能力。

主要教学方法:讲授法、演示法、任务驱动、情境教学等主要学习方法:自主学习,合作探究学习等
五、教学策略
通过“课堂任务导航程序”,在教学过程中,围绕“情境导入→回顾算法思想→任务引领→自主学习→合作探究→交流评价→课堂总结”的教学流程来展开教学活动。

六、教学环境
教师用VB自制的“课堂任务导航程序”(客户端)、教师服务端程序、多媒体网络教室、多媒体教学软件、VB6.0中文企业版等。

七、教学过程
一、情境导入(3分钟)
教师活动:同学们,大家好!首先,很高兴今天能给大家上一节课,希望老师今天的这节课能让大家有所收获。

在上新课内容之前,老师想先请同学们帮老师一个忙(教师广播展示VB制作的“QQ登录程序”):老师前段时间申请了个QQ,结果把密码给忘记了,但我记得密码是由六位相同的数字组成,哪位同学能上来帮老师找出密码?
学生活动:学生上台,根据老师的描述,从000000到999999一
一测试密码,最终找到密码。

教师活动:非常感谢这位同学的帮忙!这位同学能说下,你是怎么找出密码的吗?学生活动:从000000,111111,222222…… 999999这样逐个测试。

教师活动:很好。

像刚才这位同学这样,根据老师给的范围,逐一列举所有可能,并根据程序提示(验证条件)逐一验证,从而找出答案的方法就是今天我们要来共同学习的《枚举算法》。

设计理念:通过学生熟悉的QQ密码破解来引入课堂,增强学生兴趣,也能使学生乐于接受。

二、回顾枚举算法思想,提出课堂任务(5分钟)
教师活动:教师广播展示课件,学习枚举算法的概念,说明枚举算法的两个关键点:
1、确定范围,一一列举(既不遗漏,也不多余);
2、确定条件,逐一验证。

教师活动:在了解了枚举算法的概念后,同学们能不能列举几个我们实际生活中用枚举算法解决的问题的例子呢?学生活动:学生举例(教师根据例子引导分析,重点强调“确定范围、一一列举,根据条件、逐一验证”)
教师活动:非常好!看来大家对枚举算法已经有了一定的理解了,接下来,我们来看下在程序里面,如何实现枚举算法解决问题。

请大家打开桌面“学生”文件夹里的“课堂任务导航.exe”,完成“任务一”。

(教师简要说明“课堂任务导航程序“使用方法)
三、课堂任务一(10分钟)
学生活动:根据课堂任务导航程序及帮助信息自主完成课堂“任务一”(4分钟)教师活动:教师巡视、个别指导,观察、总结并及时记录学生在完成任务过程中出现的问题。

同时,在“教师服务端”程序中观察展示学生任务一的完成情况,及时了解学生的学习进度。

任务反馈:大部分学生能顺利完成任务一,对于不能自主完成的,可由已完成学生帮助完成。

教师活动:很好!大部分同学已经完成任务一了,接下来让我们一起看下我们的程序是如何实现枚举算法的。

教师展示任务一程序(广播)教师活动:我们知道要想实现枚举算法,主要是要做到两点:一个
是确定枚举范围进行一一列举;还有就是根据条件,逐一验证。

我们来看下我们的程序的怎么实现这两点的?
学生活动:观察程序,思考。

教师活动:我们先来看下“确定范围、一一列举”在程序里是如何体现的?(6分钟)
学生活动:使用for语句实现
教师活动:“根据条件,逐一验证”呢?学生活动:if语句
教师活动:很好!一般实现枚举算法的程序都是由循环结构嵌套分支结构组成。

好了,大家现在已经知道了枚举算法的程序结构了,接下来请同学们继续完成任务二。

(设计理念:通过任务一的设计,让学生自主探究学习,培养学生的自主探究学习能力,通过学生互助,培养学生互帮互助的精神;通过对任务一的程序分析,培养学生的善于观察思考、解决问题的能力,并让学生熟悉枚举算法的程序结构特点,以便学生能更加顺利的完成任务二。


四、课堂任务二(设置陷阱,探讨交流)(15分钟)学生活动:学生先自主完成任务二。

(5分钟)
教师活动:教师巡视、个别指导,观察学生在完成任务过程中出现的问题:有些学生能输出58个数,有些学生只输出6个数,原因在哪里?请一个能输出58个数的学生上台演示操作,然后让学生分析输出的这些数都能满足要求吗?经过分析,学生会发现有些数的个位数不符合要求。

提出问题:如何修改程序将不符合要求的数去掉?(2分钟)
学生活动:修改程序(由学生小组合作相互探讨完成)。

(5分钟)教师活动:当有部分学生输出正确答案后,请一个能输出正确结果的学生分析如何修改,并到教师机上修改刚才错误的程序(算法1);请一个不同算法的同学来修改程序(算法2);让他们分析各自算法的效率谁更高。

然后教师小结,鼓励学生要善于发现问题、深入分析问题、积极解决问题;从不同角度分析问题可以得到不同效率的算法。

(3分钟)
(设计理念:设计任务陷阱培养学生善于发现问题、深入分析问题、积极解决问题的能力;通过探讨交流,培养学生的团体协作能力及合作探究精神;设计任务一题多解,培养学生从不同角度分析问题的能力,锻炼学生的发散性思维。

通过算法分析,让学生理解算法的执行效率,懂得选择最优算法去解决问题,提高程序的性能。


五、层层递进,任务拓展(高层次学生做)
拓展任务:在任务二的基础上,增加验证条件:“十位数是3的倍数,百位数是4的倍数”,提出问题:如何将数字里的十位数和百位数分离?
学生活动:学生通过教师提供的帮助材料,讨论分析问题,尝试去完成拓展任务教师活动:教师观察,引导。

(设计理念:设计拓展任务,提高任务难度梯度,供高层次学生完成,以实施课堂中的分层教学。


六、提交作品,课堂评价(3分钟)
学生提交作品,教师选择几个作品做总结性评价。

七、归纳总结、布置课后作业(1分钟)
1、通过“教师服务端”程序中学生“自我评价”中的知识点,进行课堂总结:(1)枚举算法的基本原理:
确定范围、逐一列举(既不遗漏,也不多余)(循环语句)确定条件、逐一验证
(条件语句)
(2)枚举算法中范围的确定及列举:循环语句(如for)实现
(3)枚举算法中验证条件的表示:利用if语句进行条件判断;条件表示主要运用VB中的算数运算符及逻辑运算符实现。

(4)实现枚举算法的程序结构特点:
外层循环嵌套内层条件判断
2、布置课后作业:找水仙花数(学生任务导航程序)
(设计理念:通过知识总结,帮助学生将知识系统化,便于学生理解记忆。

通过知识的延伸,促使学生将知识内化,并进行能力迁移,进一步提高学生解决问题的能力。

)。

相关文档
最新文档