《算法与程序设计》教学探析 期

2024-09-18

《算法与程序设计》教学探析 期(精选9篇)

《算法与程序设计》教学探析 期 篇1

【摘 要】在高中“算法与程序设计”模块教学中,算法的设计以及运用程序设计解决问题的方法与思路,与学生原有的知识结构和解题经验有较大差异,使得学生的学习存在较大困难。教师应从生活实例出发,激发学生的学习兴趣;降低编程起点,提高学生的学习信心;引导学生通过程序阅读,学习他人编程经验;强化算法的分析与设计,培养学生分析问题与解决问题的能力。

【关键词】算法与程序设计;教学探析

【中图分类号】G40-057 【文献标识码】A 【论文编号】1671-7384(2013)11-0050-03 “算法与程序设计”是普通高中信息技术课程中难度较大的一个选修模块。照本宣科的讲授只能使学生死记硬背程序,这种缺乏理解的学习导致了学生进一步学习的困难,更谈不上对所学知识的灵活运用。因此,如何改变学生的思维方式、如何组织教学以使学生真正理解算法并学会运用程序设计解决实际问题,值得我们探索和研究。

从生活实例出发,激发学生的学习兴趣

从教育心理学的角度来说,兴趣是一个人倾向于认识、研究并获得某种知识的心理特征,是可以推动人们求知的一种内在力量。学生对某一学科有兴趣,就会专心致志地钻研它,从而提高学习效果。以下案例正是从学生兴趣出发,激发了学生参与的热情。

案例1:遥控机器人

窗体上是一张机器人图片以及“ 向上”、“ 向下”、“向左”、“向右”四个按钮。怎样让机器人听从我们的指令动起来呢?以向上为例,我们看到机器人图片的Top属性是1000,在“向上”按钮的单击事件中,可以写这样一句代码:Picrobot.Top = 900。运行程序,单击“向上”按钮,机器人听从指令向上挪了一部分。再按一次,机器人怎么没有反应?怎样修改程序才能让机器人根据指令不断地向上移动呢?学生思考,得出程序代码:Picrobot.Top = Picrobot.Top-50。

对于机器人,学生都有种神秘感,往往觉得不可思议,但是又想探索。在教师的引导下,学生的本能兴趣转化为内在学习动力,在实现对机器人控制的过程中,加深了对控件、赋值语句和变量概念的理解。

降低编程起点,提高学生的学习信心

没有人在学习程序设计的初始阶段就能成为编程高手。然而在程序设计教学中,教师常常一开始就要求学生编写完整的程序。导致很多学生无从下手,学习的自信心受到了严重打击。因此,我们应降低编程起点,将学生引入门。一方面,在问题的选择上,尽可能使用学生能够通过已有知识和经验分析出解决方法的问题;另一方面,可以采用案例教学法,从模仿典型程序开始,在代码模板上补充关键代码后即可调试运行,从而体验成功的喜悦,增强学生学习的信心。下面就是一个使用案例教学法的例子。

案例2:循环结构 [1] 针对s=1+2+3+„„+100问题,引导学生观察累加求和的过程:s=s+数字。引出如果用变量i表示数字,整个计算过程是在重复执行若干个同样的操作:s=s+i。如何让计算机自动重复上述过程呢?教师呈现用循环语句解决问题的程序,接着让学生模仿累加程序,完善计算s=100+101+„„+200、s=12+22+32+„„+102、p=1*2*3*„„*9四个式子程序空白处的代码。4个任务的难度依次递增,第1题要求分析出循环的初值、终值;第2和第3题要求分析出循环体;第4题要求同时分析出循环的初值、终值和循环体。学生完成后,教师展示学生程序,引导学生归纳总结出For循环结构的一般格式。然后提出“计算s=10+20+30+„„+100”的任务,让学生在一般格式的指导下,独立编写程序解决问题。

牛顿说过:我之所以能取得现在的成就,是因为我站在巨人的肩膀上。在案例教学法中,案例和代码模板就是“巨人的肩膀”,学生通过补充程序模板中的关键代码,逐步认识For循环结构,并在多个“个”的尝试中,找出隐藏在“个”背后的规律性内容,归纳出For循环结构的一般格式,进而在一般格式的指导下编写程序,解决重复执行“类”问题。在此过程中,学生的编程思维和分析能力获得了快速的提高,提高了学习程序设计的信心。

通过程序阅读,学习他人编程经验

学习程序设计,一个重要而有效的方法就是阅读。阅读书中的例题、软件开发环境中的范例、网络中的开放源代码以及自己编写的程序。克努特曾说过:通过阅读他人的程序获得技巧,是极其重要,但在许许多多的计算机课程中,这样的训练却可悲地被忽视了,因此导致了计算机被极其糟糕地低效使用。通过阅读大量的“示例”程序,可以加深对各种语句语法和语义的理解,从中发现、总结别人解决问题的方法,积累编程的经验以及实现基本算法的代码段。

怎样阅读程序呢?对于一篇文章,通常首先采用粗读的方式进行整体认知,了解文章主要写的是什么,留下总的印象;然后再进行精读,深入到文章的局部,留心遣词造句,赏析精彩语段,揣摩文章的谋篇布局。阅读程序和阅读文章有相通之处,对于一些较为复杂的程序,应该先进行整体分析,从整体上摸清程序的架构,再对各个部分的代码逐一进行跟踪阅读。

1.整体分析

这一阶段,相当于文章的粗读,需要从整体上把握程序的组成部分、各个部分的大意以及连接方式。我们如何去了解一个语句块的作用呢?主要有三种方法:一是依据经验,也就是我们已经掌握的各种算法和语句的关键点来判别;二是看注释,一个高品质的代码都会有注释,对我们理解语义有方向性的指导作用;三是靠猜测,我们根据过程名以及参数名,能对这个过程的作用略知一二。如果有必要,则可以到过程的定义中,找到某些具有特征的操作,以证实自己的猜测。[2]任何一个复杂的程序都可以分解为三种基本结构:

顺序结构、选择结构和循环结构。每种结构只有一个入口和一个出口,而各个结构之间的连接方式有两种:积木式连接和嵌套式连接。积木式连接是一个结构的出口与另一个结构的入口连接;嵌套式连接是在一个结构的内部嵌套另一个结构。一般来说,我们应先分析出程序中积木式连接结构,再找出这些结构中的嵌套式连接结构。借助于流程图、伪代码等描述算法的工具,可以根据源程序画出反映程序结构的流程图,这对理清思路、分析程序结构有很大的帮助作用。[3] 下面我们先用整体分析法阅读一段代码:

案例3:

Private Sub cmdGcd_Click()Dim a As Integer Dim b As Integer Dim r As Integer a = Val(InputBox(“输入a”))b = Val(InputBox(“输入b”))Do While b <> 0 r = a Mod b a = b b = r Loop Print “最大公约数为:”;a End Sub 从命令按钮名和输出提示信息可以知道,这是一个求两个数的最大公约数的程序,程序结构如图2所示。

2.跟踪阅读

如果要详细了解各个部分是如何运行的,就要对语句进行跟踪阅读,相当于文章的精读。跟踪阅读就是用人脑模拟计算机的执行过程。对于顺序结构,阅读不成问题。对于选择结构,关键是要搞清条件和语句的关系,当有两个选择结构连接时,要分清楚是积木式连接还是嵌套式连接。对于循环结构,可以通过对循环体内的语句逐一跟踪阅读,分析循环结构的执行过程。这时,可以借助于纸笔,用列表的方法将循环执行过程中各变量的值一一记录下来。[4] 在案例3中,当输入48,28(即a=48,b=28)时,程序执行的过程如下表所示:

程序阅读的关键是代码的积累。“读书破万卷,下笔如有神”,程序读多了,自然容易借鉴别人的编程经验和方法。

强化算法设计,培养学生解决问题的能力

程序设计的核心是算法,语言只是表达工具。用程序设计解决问题,关键是要找到解决问题的算法。只要算法正确,就可以用任何一种语言编写程序。对于初学程序设计的学生来说,接触的问题并不复杂,相应算法也较简单。很多学生看到问题后,不进行细致的分析和设计,粗粗一想就开始动手,很简单的问题往往写出一大堆代码,自己也说不清解决问题的方法和过程。

案例4 : 编写程序,实现成绩统计功能。通过InputBox函数输入50个学生成绩。当成绩大于等于85时,为“优秀”等级;成绩大于等于60且小于85时,为“及格”等级;当成绩小于60时,为“不及格”等级。要求统计优秀人数、及格人数及不及格人数。

学生解决这个问题的过程,往往只是按照题目的表面意思进行处理,首先执行一次循环输入数据;然后扫描三次数组,分别统计优秀、及格和不及格人数。

俗话说:磨刀不误砍柴工。我们应该怎样进行算法设计呢?在这个案例中,重复扫描使得程序效率不高。其实,最简单的算法是只循环一次,输入数据后立即使用多分支选择结构对输入的数据进行判断,分别对优秀、及格及不及格人数进行统计。算法分析前,学生为自己编写的程序沾沾自喜,然而进行算法分析后,学生意识到自己程序的缺陷,较好地体验了算法对提高程序效率的作用,理解和掌握了隐藏在问题背后的知识,提高了解决问题的能力。

综上所述,算法与程序设计教学需要我们在教学实践中不断地总结经验教训,密切结合学生的自身情况,引导学生多阅读、多思考、多实践。让学生在算法的指导下,在不断完善和调试程序的过程中,潜移默化地掌握相关知识,养成缜密严谨的科学态度,进一步提高逻辑分析能力、发散思维能力以及发现并解决问题的能力。

《算法与程序设计》教学探析 期 篇2

1.学生对该模块的畏难心理

算法和程序设计本身是选修模块,在掌握程度上没有压力,学生学习动力差,再加上程序设计本身比较抽象、枯燥和逻辑思维性强,学生普遍认为程序设计比较高深,对于学生而言,这部分学习内容的理论性和知识性都比较强,并且在编写程序的过程中,需要不断调试、修改程序,而且比起学习一些应用软件而能制作出各种各样有声有色的作品,显得枯燥乏味,所以学生对程序设计的学习存在畏难心理。这也是在在教学中一直存在“难教”和“难学”的原因,这就对教学的顺利进行产生了一定的困难。

2.内容多、课时少,教学目标不能很好地完成

算法与程序设计模块中包括两大块内容,一是算法部分,一是VB程序设计基础部分,基本上涵盖了程序设计中用到的所有知识,有大量的概念、数据、语句以及其他的过程和函数,这些理论知识学生都必须掌握并能在VB中熟练应用,因此教师需要详细地讲解,并让学生做大量的练习。但信息技术课程每周两节课,要学生全面理解算法并学会编程,教学难度可想而知。

3.学生差异问题

首先,高中生的起点水平参差不齐。很多学生在升入高中前,并未接触过算法与程序设计的相关知识。每班大约有超过百分之九十的学生在高中以前未曾接触过程序设计这方面的内容,因此,学生学习程序设计语言的基础较差。其次,编写程序还涉及本身的理科基础,特别是数学思维能力,每个学生的思维能力、理解能力是因人而异的。像实验班与普通班、文科班与理科班,他们的接受能力就不同,而同一个班级的学生,他们中有的思维敏捷能很快接受新的知识,有的却还需要反复讲解才能接受。现在我们教学要面向全体学生,让全体学生都接受一些困难。

二、教学中的实践尝试

面对上述问题与困惑,如何在有限时间内合理运用教材采取恰当的教学方法激发学生的学习兴趣也就是如何提高算法与程序设计课堂教学的有效性,我们不妨从以下几个方面去解决。

1.创设情境激发学生兴趣,提高学生学习信心

程序设计教学要从学生的兴趣入手,利用学生对事物的好奇心,选择学生身边的、有实际意义的程序,激发学生的学习兴趣。比如,第一堂课讲VB界面设计,可设计一个QQ登录界面,让学生将抽象的概念形象化,将自认为高深的知识与身边常用的小工具结合起来,打破学生对本模块知识的畏难心理。

2.深入浅出,消除学生对程序设计的畏难心理

在教学时,低起点,从一个个简单实例出发,让学生从自身的实践中感受到这个知识点的确很简单,从而让学生认为能够自己动手设计小程序,从中体会成功的喜悦。前两节课千万不能罗列过多的概念,让学生摸不着头绪,误认所学内容很难,打击学生的学习兴趣。不要把控件的每一个属性都细讲。需按问题需要设计界面来选用控件,以一个个鲜活的具体实例为切入点,在每个例子中适时、适量地渗透一些相关的概念和知识,使学生在完成任务的过程中,逐渐地、很自然地去体会控件、对象、事件的概念。由浅入深地逐渐介绍,让学生在编写程序的过程中总结控件的用法。

3.与其他学科相结合,加深学生对知识点的理解,提高教学效果

数学中很多问题都可以用程序设计的思维方法来解决。因此信息技术教师可以从学生在数学课上已经熟悉的知识点入手,在教学中多举一些这方面的事例,不仅可以提高学生的学习兴趣,而且还能提高学生研究问题、解决问题的能力。

例如对典型的求和问题:

可以引导学生尝试以下问题:

(1)如求S=100+99+……+1,应修改哪个语句?

(2)如求S=1*2*3*…*10,需要修改哪些地方?

(3)如求S=1+1/2+1/3……+1/n应做哪些变更?

通过以上一系列角度不同的变通,学生对每一个语句的认识加深了,对语句中确定每一个变量更加谨慎了。

4.分层次教学

现在各个学校的班级设置都有文科班和理科班、实验班,教学内容在难度上要有所变化。一个班级布置作业时要根据学生的能力分层次,设置难易不同的教学内容,这就要求教师在研究学生和教学内容上下功夫,备好课,更要“备”好学生,使学生都能够掌握所学知识的要点,在学习中都能找到乐趣。

三、切实落实以学生为中心和主体,以教师为主导的新课改思想

高中数学算法与程序框图教学探析 篇3

【关键词】高中数学 程序框图 案例

中图分类号:G4 文献标识码:A DOI:10.3969/j.issn.1672-0407.2016.12.178

新课标的制定使得数学学科的教学内容更加多元化和现代化,学生们一方面需要在教师的教学指导下扎实掌握数学基本原理,另一方面还需要通过不断的观察和探究实现对原理的综合应用。算法与程序框图的章节教学,是对传统数学原理教学的更新,学生们需要在计算数字公式的过程中快速准确的辨析程序框图的正确走向,最终找到或得出最佳的结果。一般情况下,高中生对基本算法与程序框图类题型的解答比较轻松,但对算法试题中涉及到多类选择时,往往会因考虑不全面而导致错误的解答。因此,为了提高学生的数学思辨能力和实际程序操作能力,笔者将在下文探析针对高中生的算法与程序框图教学,从多角度算法教学、程序框图辨析教学、课堂实践教学三方面逐层引导学生们学习并掌握此类题型的解答步骤和技巧。

一、算法教学

算法教学是整个算法与程序框图教学的基础与关键,学生们只有掌握好了数学算法公式和条件的解答,才能保证之后程序框图的正确选择。因此,数学教师在教学过程中需要重视对学生多种算法题型的考查,及时了解他们对数学算法题型的真实计算水平,继而在算法教学中实现对教学内容的全面兼顾和重点突出。

首先,根据历年数学算法原题,数学教师需要归纳总结出较为全面的算法题型和常考的考点。学生们只有在明确几种类型的算法试题之后,才能尽量规避遇到不熟悉的算法题型而导致解题的中断。高中数学教材中的算法题型主要是考查学生对教材内多种计算公式和方法的掌握,因此,数学教师要指导学生在算法题型的学习过程中牢固掌握各类数学原理和数学公式。例如,数学教师可以将高中课本中的算法题型分为函数算法、数列算法、不等式算法、几何算法等类型,这些类型下指数函数、对数函数、幂函数、函数方程、三角函数的计算公式,等差数列、等比数列的计算公式,一元一次不等式、二元一次不等式的换算,各类几何的表面积、体积、度数、方程的计算等都需要高中生准确地加以计算,以保证每个程序框图中的正确数额。

其次,高中数学教师在引导学生们全面学习并掌握教材中多类算法题型时还应该突出重点,指导学生们对难度较大的算法题型加以掌握。这种重难点算法的教学指导,一方面是教师对高中生数学概念和原理应用的拔高试探,另一方面也能够进一步调动高中生们对重点算法思路和语句的掌握,从而为接下来的程序实践奠定良好的基础。例如,数学教师在讲解函数类算法题型时,就可以有意识地指导学生们对教材中重点语句和关键函数方程进一步加以细化,根据常见和常考的重要知识点对函数算法的题型分析探究,继而提高学生们对函数算法的计算效率和准确率。

二、程序框图教学

高中生经过算法知识点学习和运用之后,才能在数学教师的指导下开始程序框图的辨析学习,将计算得出的结果通过对程序语句的分析和判断做出合理的数字串接,最终以最快的效率得出最佳的程序算法结果。根据程序框图的教学内容,数学教师需要分步骤地指导学生们学习了解并熟练判断程序结构。

首先,高中生们需要在教师的指导下认识基本的程序框图的组成要素,如起止框、输入输出框、处理框、判断框、流程线、循环框、连结点、注释框,这些程序框图组成要素是学生清晰解读程序流程的关键,因此高中生们需要牢记并熟练每个组成要素的功能,继而在今后程序框图的设计学习中灵活运用。其中学生们需要重点掌握对循环框的解读,这种圆形的框图即是用来表达算法中的重复操作以及运算,学生们只有理解每种框图和线条的作用和功能才能实现对算法程序的正确解读,同时也能为今后程序框图的编写实践做好构成要素的准备。

其次,数学教师需要重点教授学生们对程序框图几种结构的辨析和理解。如顺序结构是当中最简单的算法结构,语句与语句、框与框之间是按照从上到下的顺序进行的,即上一框图的程序动作实施之后才能执行下一框图的命令。条件结构中通常会出现判断框,上一算法结果符合哪种条件就选择相应的A框或B框执行其中的算法命令。循环结构一般是从程序过程中的某处开始按照一定的条件重复执行某个过程,分为当型循环结构和直到型循环结构,前者是对算法结果符合某一条件时重复进行,直到最终算法结果返回时判断条件P不成立时为止的程序过程,后者则是对算法结果不符合某一条件时重复进行,直到最终算法结果返回时判断条件P成立时为止的程序过程。高中生只有熟练辨析每种程序框图的解答技巧,才能保证算法结果与程序执行的高效率。

三、课堂实践教学

为了进一步调动学生对算法程序框图的学习热情,检查他们对程序算法的掌握情况,高中数学教师可以在课堂教学之外,与班级计算机教师进行学科教学结合,指导学生们将理论所学运用到程序编写的实践过程中,继而实现理论与实践的高效结合。在上述算法教学和程序框图教学的基础上,高中生们还需要学习运用程序语言,对基本的程序语句如INPUT、IF、THEN、ELSE、PRINT、WHILE、UNTIL、DO、LOOP UNTIL、END IF能够熟练运用,理解每种程序语句的使用条件和实际意义。数学教师在实践课堂中主要发挥教学引导和辅助的作用,学生们需要以独立的学习个体完成对算法和程序框图的整个计算和编写设计,在实践中不断锻炼和提升对数学知识的理解和运用,并在实践中不断发现自身的学习缺点,借鉴和学习群体中其他学生的高效实践方法,最终实现对算法程序的理论和实践的综合熟练应用。

《算法与程序设计》教学探析 期 篇4

浙江象山中学 黄琴

一、设计思想

本课设计打破教材编写顺序,将本教材中的第二章的算法与第五章的程序实现结合起来组织教学,通过理论结合实践,让学生更容易理解各种算法的基本设计思想,体验编写程序的成功感受,同时又能掌握解析思想。“解析算法”思想是:找出问题前提条件与结果之间正确得数学表达式。那么如何把解析思想体现在算法中,用程序语言实现呢?。我在教学过程中对整堂课的设计上的思路是:通过具体情境认知主题——体验主题——实现主题——拓展主题——这几个阶段层层深入的递进式方法使学生充分掌握解析算法。

算法课一般与枯燥,晦涩,难懂,逻辑等字眼联系在一起,往往难以激发学生兴趣。如何打破这种局面?如何激发学生兴趣,使学生情不自禁的,自主的去学习算法呢?

新课程倡导“人文与生活”,在了解学生的身心发展特点前提下,尊重学生的学习、生活、兴趣,真正以学生为主体,有创造性地设计信息技术教学环节。本课作的设计除了遵循算法自顶而下,逐步求精的思想之外,新意之处在于根据电影情节别出心裁创设了一个情境,由计算男女主角相遇时间导入,在故事中不留痕迹地渗透了教学内容,完成由简单到复杂的教学任务。

二、教材分析

本节课是《算法与程序设计》第二章《算法实例》第二节的内容,主要任务是学会使用解析算法设计简单算法流程图,并掌握用程序设计语言VB来实现有关解析算法的实例。解析算法来源于生活,生活中的很多问题都是用解析算法解决的。解析算法注重学生逻辑思维能力的训练,同时它也充分体现了用计算机解决实际问题的思想,是设计算法的一种重要方法。教材中引用了“计算n个电阻并列后的总电阻值”和“储蓄顾问”两个例子让学生体验解析算法思想及其储蓄实现,我觉得可能对学生的兴趣的激发可能不够,所以试想能否沿用上节课的情境,让学生维趣。

三、学情分析

1、在前面的教学中,学生已经理解了算法的特点,学习了算法的三种表示方式,理解了顺序、选择、循环三种基本结构,并通过参与活动手册中的实践,对程序有了初步的认识。

2、通过枚举算法两课时的学习,重点深化了流程图,基本上会设计流程图,并根据流程图写出相应的代码并通过自己编制程序上机实践来体验。那么在课堂分析过程中,学生将从听课——理解——体验——探究这些过程中全面掌握解析算法的设计思想,并能用此算法来解决日常生活问题及与其他学科有所关联的一些简单问题。

3、这节课授课的对象是象山滨海中学(三级中学)高一普通班级,所以在任务设计时适当地化简了,考虑了学生的整体水平。

四、教学目标

1、知识目标:通过具体实例的求解,让学生了解什么是解析算法;

让学生亲身体验并理解解析算法解决问题的基本思想; 用流程图形式来表示解析算法解决问题的思路;

2、能力目标:通过具体例子分析,让学生理解如何用三步法来解决实际问题;

学会使用解析算法解决简单问题;

3、情感目标:通过情景创设,激发学生学习兴趣;

通过小组合作增进学生间的学习交流,培养合作能力,激发学习能动性;

五、重点与难点

教学重点:通过对“相遇时间”的计算,让学生理解解析算法的思想,进一步培养学生运用三步法来解决实际问题; 教学难点:解析算法思想的理解与实现(流程图转化为代码并上机实践)

六、教学策略与手段

1、教师教法:情景创设法、演示法、讨论法

2、学生学法:自主学习、合作探究学习

七、课前准备

1、教师的教学准备:

准备“向左走 向右走”电影片段 准备解析算法的Visual Basic演示程序

2、教学环境 多媒体机房

八、教学过程

第一步 创设情境,认知主题

【教师】:课前播放电影片段《向左走 向右走》。

提问:刚才看的是那部电影中的画面?

【学生】:《向左走 向右走》并且简述电影的主要情节。

【教师】:电影“向左走 向右走”中,讲述了金城武饰演的一位小提琴家和梁咏琪饰演的一位翻译家之间唯美爱情故事。两人居住在同一幢公寓,中间只隔了一堵墙,却因为两人彼此习惯不同,一个习惯向左走,一个习惯向右走,总是不断擦身而过未曾相遇。电梯一上一下、在月台上分站两旁„„

画面停留在男女主角各自向左走向右走的画面,如图。

教师:导演编排得也太整人了,今天老师来当一回编剧,让他们两个有缘人能相遇。

相遇问题:今天,金城武和粱永琪各自以自己的速度围着游乐公园(矩形,公园周长为25km)一个向左走,一个向右走,经过多少时间,可以相遇呢? 【学生】:思考 【教师】:激励,两条平行线,也会有交汇的时候,什么时候能相遇呢? 【教师】:如果相遇,有一个条件?

【学生】:走过的路程和是整个公园的长度,S1+S2=S 【教师】:S1?S2? 【学生】:S1=V1*t,S2=V2*t 【教师】:金城武在t时间内走过的路程为:S1=V1*t

梁咏琪在t时间内走过的路程为:S2=V2*t 【学生】:一步步分析得出:

【教师】:刚才我们一步步分析问题的条件与结果之间的关系的这个过程就是解析算法的过程。

解析算法基本思想:用解析的方法找出表示问题的前提条件与所求结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。【学生】:理解解析算法思想 【教师】:解析算法的关键是什么呢? 【学生】:找出数学表达式 【教师】:算法关键:找出的正确的数学表达式。【设计意图】:引导学生都进入了电影情景中,融入情节,使每个学生似乎都有了情感目标要,要让对方相遇,所以听得特别认真,这时水到渠成地提出解析算法的基础知识,学生不知不觉就学习着解析算法的相关知识。接下去深入学习解析算法的实现过程。这个导入显得贴切,稳妥。

第二步 学习新课 体验主题

1、自然语言转化成流程图 【教师】:我们将刚才分析的结果转化成流程图。

根据学生的分析,一步步展示流程图

教师与学生一起分析程序实现所需的变量: v1、v2的单位(千米每小时,km/h),千米每小时是常用单位,一般不用米每秒。所以时间t的单位小时,h)【教师】:如果t=1.002(小时)情况怎么办? 【学生】:截掉小数位,【教师】:t=0.75(小时)情况怎么办? 【学生】:将单位化成分或者秒,然后再截掉小数位。【教师】:一般情况下用分,相遇的时间用秒作单位过于精确了。【学生】:t=fix(t*60)【教师】:分析得出变化后的流程图:

变量分析:

v1、v2:分别存储两人行走速度(单位:千米每小时,km/h)t:存储所用时间(单位:小时,h)m:存储所用时间(单位:分钟,m)

【设计意图】分析时层层深入,将问题一个个迎刃而解,并且让学生重新理一遍变量,为程序实现作铺垫。

2、流程图转化成代码

学生根据流程图,转化成代码,教师适当提示:

Private Sub Command1_Click()Dim v1, v2, t As Double Dim m As Integer V1=val(text1.text)V2=val(text2.text)t=25/(v1+v2)m=Fix(t*60)text3.text = Str(m)End Sub 第三步 学以致用 实现主题 【教师】:下面我们就付诸实施,利用计算机帮助我们计算相遇时间。

实践活动一:相遇时间,后附。展示完成后的程序效果,如图。

展示程序设计的界面,让学生先完成基本的程序界面,再编写代码(通过提供不完整代码,有针对性的给予提示),调试成功后,可再对程序界面进行美化,这样可以使学生在完成教学任务的同时拓展知识。教师先调试一遍,注意输入的速度,提示学生一般人的行走速度在10km/h左右。【学生】:操作实践。【教师】:教师巡视,给予个别指导。【设计意图】:刚才分析相遇时间,是老师学生一起实现的,通过这个过程学生已经基本上掌握了解析算法。这里给学生自己实践机会,对解析算法进行独立应用,巩固相关知识。

第四步 逐步深入 拓展主题

【教师】:两个人相遇之后,在一起,开始为以后的生活作打算,梁咏琪开始琢磨起储蓄计划,准备去银行存钱但是她算术不够好,总是要问正在创作小提琴曲谱的金城武。下面是梁咏琪和金城武之间的几次对话: 粱:如果我存1000元,想得到本息额1100元,应该要存多少年? 为简单起见,假定银行公布的储蓄规则为:(PPT展示)

1、存期以年为单位,存款以元为单位;

2、不论存期的长短,年利率均为4.5%;

3、不计复利。【学生】:3年

【教师】粱:如果我存5000元,想得到本息额6000元,应该要存多少年啊? 【学生】:5年

【教师】粱:如果我存20000元,想得到本息额24000元,应该要存多少年啊? 学生思考有点慢了。

【教师】:梁咏琪还要无休止地问下去,金城武能不能安心创作? 【学生】:不能。

【教师】:有没有什么办法呢?如果大家帮金城武设计了一个能完成刚才问题的程序,问题是不是就可以解决了。

1、提出问题:请你帮金城武设计一个计算机程序,帮梁咏琪解答疑问,使金城武可以专心创作。

2、分析问题

提炼问题:M元钱需要存多少年,可以得到K元本息? 按照银行的储蓄规则,一笔数量为M元的存款: 【教师】:1年后到期的本息为? 【学生】:M+M*0.045 【教师】:2年后到期的本息为? 【学生】:M+M*0.045+ M*0.045 【教师】:3年后到期的本息为?

【学生】:M+M*0.045+ M*0.045 + M*0.045 【教师】Y年后到期的本息为? 【学生】:M+Y*(M*0.045)【教师】:一笔M元 M+Y*(M*0.045)= K

Y=(K-M)/(0.045*M)

钱的存款,需要存Y年,才能得到至少K元本息:

【教师】:如果Y年是小数? 【学生】:Y=Fix(Y)+1

3、自然语言转换成流程图

4、流程图转化成程序代码 Private Sub Command1_Click()Dim M, K, Y As Double M=Val(Text1.Text)K=Val(Text2.Text)Y=(K?)/(0.045 * m)

If y > Fix(y)Then y =?+ 1

Text3.Text = “存款应为:” + Str(y)+ “年” End Sub

Private Sub Text1_Click()

Text1.Text = “": Text2.Text = ”“: Text3.Text = ”" End Sub 拓展:改进应用程序“梁咏琪的储蓄顾问”

《算法与程序设计》教学探析 期 篇5

《算法与程序设计》作为高中信息技术选修课,长期以来一直是高中信息技术教学的重点和难点。程序设计与数学学科存在千丝万缕的联系,但它又不单是有数学知识就能掌握的,如何在教学中因材施教、激发学生兴趣、指导学生学习是程序设计教学的首要问题。

一、程序设计教学中存在的普遍问题

1、内容多,时间紧,教学目标不能很好地完成。《算法与程序设计》模块中基本上涵盖了程序设计中用到的所有知识,有大量的数据、语句以及其它的过程和函数,这些理论知识学生都必须掌握并能在VB中熟练应用,这就需要老师详细地讲解,学生在课堂上做大量的练习。书本上还包括几种典型的算法、程序设计思想和项目实践,虽然这部分只要求学生初步掌握,但是教师要一步一步讲透彻,否则学生难以理解。一个完整的算法讲解、编写最少需一两节课的时间,而要让多数学生真正能自主编写,甚至需要投入更多时间。但是一般信息技术课程最多每周两节课,再除掉其他假期,真正可以上课的时间不多,要学生全面理解算法并会编程真是很难。

2、学生基础参差不齐,存在“吃不饱”和“吃不了”的现象。《算法与程序设计》模块教学方式与学生基础密切相关。由于各学校的经济条件、师资力量等因素,高一新生计算机基础相差较大,这给组织教学带来了很大的困难。如果教学起点过低,必然会使程度较好的学生受到影响;若起点太高,教学就只能为少数优秀学生服务,这会挫伤大多数学生的学习积极性,导致差生越来越差,降低整体教学质量。长期以来,教师在布置上机实验时总是全班统一要求,忽视了学生之间存在的个别差异。统一的实验内容、实验形式及实验难度不能适应每个学生的实际情况,让有差异的学生做无差异的实验内容,势必会造成“吃不饱”和“吃不了”的现象。这样的“统一”,遏制了学生学习能力的发展。

3、学生对传统的课堂讲练教学有厌倦感。高中信息技术课基本上都是在多媒体网络教室进行,所以学生潜意识中就认为信息技术课上课方式应该与其他科目不同。但事实上程序设计这门课基本上都是采用传统的教师先讲后演示、学生先听后编程的方式,学生在听或者看的过程中往往注意力不集中,到实践编程时又无从下手。而由于高考的压力,在课外基本上是不看课本的,再加之学校普遍存在信息技术课时不足的问题,等到下节课再来上课的时候学生更是忘得一塌糊涂,形成恶性循环,最终导致学生对信息技术课产生抵触心理。

二、教学方法实践探索

1、合理安排课程,寻找学科间整合。

算法初步是高中新课程数学科目中的一项新增内容,在高一第二学期学习。《算法与程序设计》模块与数学课程算法初步部分内容相衔接,因此将选修模块安排在高中一年级第二学期或以后开设。信息技术教师可以从同学们在数学课上已经熟悉的知识点入手,进行算法的讲解,让同学们对已有知识有更深一步的了解,达到事半功倍的效果;甚至可以和数学教师沟通,合理安排教学进度,做好数学与信息技术的整合。 2、采用分层策略设计教学任务。分层教学承认学生的差异,符合教学中的可接受原则和因材施教的原则。分级教学面向全体学生,使教学适合每个学生的发展需要和实际水平,这也符合学生的心理要求,能激发他们学习的自信和兴趣,提高他们的学习主动性和积极性。为了使学生乐于编程并学有所得,教师在设置教学任务时,应改变以往硬性规定、呆板单一的做法,可将任务分为必做任务和自主任务两个层次。必做任务一般为基础问题,主要用于基础知识和基本技能的训练,一般每个同学都基本能够完成,所以要求每个同学必须完成。自主任务则是课堂相关知识的拓展延伸或创新,每个同学可视自己的学习基础量力而为,自主选择是否完成或者完成多少。

3、打破课本原有的知识结构体系。《算法与程序设计》教材的安排基本是按照“先理论后实践,先语句再程序”的顺序,这就容易导致教师在上课时先讲基础理论部分,像算法的.概念、流程图的画法,再讲具体的算法程序。由于大多数学生以前没有接触算法,使得他们学习很茫然,不知道学这些理论有什么用,从而丧失学习兴趣。我们可以改变这种体系,从程序设计学习一开始就让学生接触功能简单、结构清晰的程序,以建立对程序和语句的整体概念,体会各种语句的格式功能,了解语言的有关规定,理解计算机解决问题的一般过程。

4、增强课堂教学艺术,提升学生兴趣,以竞赛、活动带动信息技术课程的学习。算法教学最好通过实验,在解决具体问题的过程中学习一些基本的逻辑结构,并且尽可能地上机尝试。选取教学案例时要尽可能做到:①贴近生活,或者数学课本上的一些典型例题;②要有趣味性,如一个故事、一段相声、一则奇闻等等;③问题本身要简单,但要包含要学习的算法思想。

5、创建开放式的网络教学模式,培养学生的自主探究能力。高效学习必须是主动的学习。如何能让学生主动地学习编程呢?我们要把学习的主动权交给学生,以一种开放的方式诱发学生的学习欲望,提高学生的自主学习兴趣,辅助课堂教学构建高质量、有价值的多媒体网络教学资源,培养学生在网络环境下进行高效率的互助学习。

教案算法与程序设计思想 篇6

【课标要求】

(一)利用计算机解决问题的基本过程

(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。

(2)经历用自然语言、流程图或伪代码等方法描述算法的过程。

(4)了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。

【学情分析】

高一年级的学生已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。『此处说“已有了顺序结构、分支结构、循环结构等知识的储备”,应该是指在必修部分对“计算机解决实际问题的基本过程”已有所体验与了解,或是指已学习过数学中相关模块的知识,这是本案例教学得以实施的必不可少的前提条件。』

【教学目标】

1.知识与技能:

建立求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。2.过程与方法:

利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。

『在过程上,通过现实生活中的实例来引导学生总结“求最大值”的算法思想。过程的实现关键在于实例引用是否贴切,是否有利于学生向抽象结论的构建。本案例的实例选择是符合这一要求的。在方法上,注重培养学生分析、解决问题的一般能力,再次体验与理解应用计算机解决问题的基本过程,为后面更一步的学习打下基础,积累信心。』

3.情感态度与价值观:

让学生全身心地投入到教学活动中,积极与同伴合作交流,进行探索活动。培养学生良好的思维品质,发展他们的创新思维,并养成积极的学习态度和良好的学习习惯。

创设情境,以激发学生的学习兴趣。努力营造一个可以接纳的、支持性的、宽容的课堂学习环境,让学生置身于民主和愉悦的课堂氛围中放飞思维、潜心研究、快乐创造。

『本案例对“情感、态度与价值观”目标的设计,更多的是试图建立一个活跃、民主、快乐的学习环境。良好的学习环境是学生乐学好学、教师提高课堂效率的重要条件。如果真能实现这样一个环境,营造出理想状态中的学习氛围,无疑会使学生在学到“知识与技能”的同时收获到更多的东西——合作、分享、成就。而且如果能够结合教学内容来描述目标,则会使目标显得更具体,更有针对性。』

【重点难点】

教学重点:建立求一批数据中最大值的算法设计思想,并将此算法设计思想用流程图表示出来。

教学难点:上述重点问题同样是本课教学的难点。另外,如何把人解决问题的思路、步骤用计算机语言描述出来也是本课的难点之一。

『建议,此处可添加关于教学重、难点的确立依据,以及解决教学难点的关键方法方面的描述。同一段知识内容的教学重、难点对于同类教师基本上是一致的,不同的是对教学重、难点的认识与处理方法。应该说,对教学重、难点认识的越深刻就越有可能找到更好的处理方法。』

【教学思路】

利用现实生活中比较一组学生身高这一事件,引导学生去发现求最大值的一种方法。如何设计求一批数据中最大值的算法?我认为让学生自己去经历整个探究过程,要比直接把现成的算法告诉学生有意义得多。它能迅速、有效地帮助学生建立程序设计思想。在完成这个任务的过程中,教师的循循善诱起到了非常关键的作用。找出一批数据中的最大者,从表面上来看是一个很简单的问题。在比较数的过程中,人因为动用了眼睛,比较大小的思维过程一闪而过,所以能很快求出一批数据中的最大值。而计算机与人不同,它对这些数据看不见、摸不着,怎么来完成这一任务呢?其实,计算机解决问题的关键,就是要把人解决问题的思维过程用计算机语言描述出来,即为大脑思维的每一步“拍照”。这是计算机程序设计教学的一个重点,也是一个难点,需要教师在教学过程中逐步引导和训练学生,使学生逐渐学会分析问题,寻求解决问题的方法和步骤。本案例运用生活中“打擂台”的实例引导学生分析求最大值的方法,通过对这一现象的分析,逐步引出求最大值的算法设计思想。

『作者在此处点出了解决教学难点的方法,即采用“逐步引导和训练”的方法。其意图就是希望学生经历整个过程,从而锻炼、提升探究能力,领悟、理解其中的思想,实现授人以渔的目的。』

【教学过程】

1.情境创设___________如何建立支架的? 师(提问): 今天在第一排就座的有10 多位同学,谁是我们第一排在座各位中的最高者呢? 师(引导): 大家思考,通常这个任务我们是怎样去完成的? 教师根据学生对问题的回答进行分析。引导学生往古时候比武时常常采用的“打擂台”的方式上想,提示学生可参考电视上经常播放的“挑战主持人”节目。师生: 打擂的过程可以描述为:

(1)确定一个擂主(讨论第一个擂主是如何确定的);

(2)挑战者上台;

(3)擂主和挑战者比较;

(4)挑战者胜的话,挑战者做擂主,否则擂主卫冕;

(5)重复执行(2)~(4)步骤,直到最后一个挑战者。

师: 在打擂的过程中,我们看到(2)~(4)步骤是要重复做的,所以我们该怎么办呢? 生: 需要循环结构来实现。师: 这几个步骤序列重复到什么时候结束呢?由学生讨论结束的办法,很显然,需要在最后加上一个能判断什么时候结束的判断框。

根据讨论的步骤,最后师生共同得出打擂台的算法和流程图(如图1)。

『作者的引导可以总结为:比身高(学生的回答可能多种多样,也可能偏离预设方向)——比武、“打擂台”(将学生发散出去的思考往预设方向上牵引)——“挑战主持人”节目(进一步将学生的思考引到其头脑中已有的认识上,前提是学生要看过该节目)——用自然语言的方式整理出比赛的规则(即算法的自然语言描述)——得到表示算法的流程图。应该说,这样的引导方式完全可以达到作者的预设目标。』 2.求一般情况下的最大值的算法 师(引导): 如果我们面对的是一堆数据,现在希望我们求出这一堆数据中的最大值该怎么办?通过教师和学生的共同分析,把问题进一步细化为:

(1)从第一个数据开始看起;

(2)把第一个数据的值在变量中记下来;

(3)再取一个数据;

(4)比较这个数据与变量中记下的数据的值;

(5)如果这个数据的值比记下的数据的值大,则去掉变量中原来那个数据,记下新数据的值;

(6)重复执行(2)~(4),继续比较,直到最后一个数据。

也就是说,计算机的变量始终记着当前比较过数据中的最大者(我们不妨用X 表示它),当取完最后一个数据时,X 中留下的也就是最大值了。求最大值的算法设计思想用下图表示。

『教学在上一环节的基础上再做进一步的深入,即扩大数据的比较范围,讨论一般的情况。由于学生已经经历了上一环节的思考过程,因此,再次思考一般性问题的解决方案就变得容易多了,这又是另一维度的“逐步引导和训练”,即具体到一般的过渡。这是作者对教学策略设计的准确实现。』 注意:

a.再次让学生讨论变量的意义,弄清赋值语句的意义。b.一些物理量用变量表达的意义。如X 表示最大值,X 表示输入的一个值,且每次循环时都用同一个变量X。

c.为了控制循环结束,必须加入一个控制循环次数的计数器I,当I 达到一定的次数后,循环工作结束。

『除了对教学目标宏观上的关注与设计之外,也注意到了教学内容细节上的把握。作者在此处提出的三点注意都是编程语言细节上的问题,应该说,这“三点注意”是作者多年或是本案例实践过后总结的教学经验,当然也可能是教师在教学设计时预先设想的教学问题。这些要“注意的点”正是教学实践或设计中的精华所在,也是值得我们借鉴与学习的内容之一。』

3. 回顾小结

师生共同总结算法设计的过程,就是将大脑思维的每一步都记录下来,并且用计算机能达到的功能来实现人解决问题的思路。

《算法与程序设计》教学探析 期 篇7

●简单实例引入, 培养良好编程习惯

刚接触编程, 学生都有一种畏惧的心理, 觉得编程是很难的事, 需要记很多的代码、语句。为此, 在编程的第一课《VB可视化开发环境》中, 笔者用一个简单实例“小时钟”引入, 让学生先观察和实践, 然后加以归纳总结。

演示《小时钟》程序。

“小时钟”的演示, 唤醒了学生的参与意识, 激发了学生的学习兴趣和创作欲望, 学生都跃跃欲试, 自然而然地进入了编程三步曲的制作方法介绍。

编程三步曲。

1. 设计界面

启动VB, 打开默认的窗体, 为了显示时间, 在窗体中摆放一个标签Label1, 办法是双击工具栏中的“Interval”。为了控制时间的显示, 还需要在窗体中摆放一个叫做“时钟”的控件 (如图1) 。

2. 修改属性

分别修改窗体、标签、时钟的属性如下表。

其中最重要的一项是时钟属性的“Interval”, 它的中文含义是“时间间隔”, 最初默认间隔时间是“0”, 如果填入“100”, 时间间隔就是1/10秒;填入“1000”, 时间间隔就是一秒钟;填写入“10000”时间间隔就是10秒, 以此类推。这里, 我们需要每隔1秒钟显示一次时间, 所以我们要填入“1000”。

3. 编写程序

在窗体上双击时钟图标进入编写代码窗口 (如图2) 。

在Private Sub Timer1_Timer () 与End Sub之间输入下面一句话:

程序就算编写完了, 就一句话, 让标签Label1的标题 (Caption) 等于time, time是一个函数, 它的值是当前计算机中自带时钟的时间。

在教师的指引下, 学生很快就制作出自己的小时钟, 体验到了学习的成功感, 成功的喜悦令他们对学习VB编程不再畏惧。因此, 教师抓紧这一契机, 及时导入“小时钟”程序中的对象、属性、方法、事件的讲解等, 并再次强调VB的编程三步曲。这样, 学生从编写第一个程序开始, 就严格遵循VB编程三步曲, 养成良好的编程习惯。

●形象化教学策略, 提高教学效益

结构化程序设计思想中, 所有的程序都可以由顺序、选择和循环这三种基本结构组成。其中, 尤以循环结构内容最为难以理解和掌握, 而它又恰恰是最重要的一种结构形式。在学习循环结构时, 笔者采用形象化教学策略, 运用“小汽车的前后运动”这一例子, 讲解如何利用VB的循环结构FOR-NEXT语句来实现小汽车的前后运动。

首先, 演示程序《奔跑的小汽车》。

然后, 提问学生“汽车是怎样实现前进与后退的?”

分析:小汽车是一幅图, 它在窗体的定位是由两个属性决定:TOP、LEFT (如图3) 。

小汽车的前进与后退是改变它的LEFT属性, 那么运用以前的知识 (顺序结构和分支结构) 能否实现?

演示:插入小汽车图片, 通过改变位置, 察看LEFT属性的变化。修改控件的属性有两种方法, 第一种直接修改, 其值不会变化 (不行) ;第二种通过程序修改, CAR.LEFT=K。

问题:怎样才能让K的值不断地增加?

要求:添加一命令按钮, 编写事件代码。

困惑:这样, 每按一次这个命令按钮, K的值只增加1, 要使小汽车前进, 要不断地按… …

释疑:对于这种重复相同的操作, 我们可以利用循环结构的程序来实现。

讲解:以汽车前进为例子, 剖析循环执行的流程图 (如图4) ;讲解实现循环结构的FOR-NEXT语句。

实践:打开《小汽车》程序, 分析“前进”按钮的代码, 初值、终值和步长。

探究:小汽车如何加速、减速?

拓展:尝试给《小汽车》添加“后退”按钮, 并编写代码。

提高:如何让小汽车沿45度爬上斜坡?

本来枯燥乏味的循环结构FOR-NEXT语句, 在小汽车的来回“奔跑”中, 变得生动有趣、简单明了。

教学中创设一个好的情境, 使学生融入其中, 有利于激发学生的学习主动性, 加深对知识的理解和记忆。

●巧妙组织, 编制程序解决实际问题

算法与程序设计最终目的是为了解决实际问题。本模块的学习目的是使学生在原有基础上进一步体验算法思想, 了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发, 设计解决问题的算法;并能初步使用一种程序设计语言编制程序实现算法解决问题。笔者精选了平时生活和学习中经常用到的电子计时器进行教学。要求学生在一堂课内完成电子计时器的制作。在短短的40分钟内, 不但要让学生理解小时钟程序的制作算法思想, 还要让学生掌握其程序的代码编写, 的确难度不小。一般情况下, 教师的讲解都是按正确的思路去执行的, 而且在学生的习惯性思维中, 通常教师是不会出错的。这次, 在课堂上, 笔者做出大胆尝试, 故意出错, 引起学生的注意, 然后再加以分析, 讲解出错的原因, 寻找解决的办法, 并引入新的知识难点——全局变量。

解题步骤:

1. 任务分析:编写模拟“电子计时器”的程序。

功能描述: (1) 重置时间, 就是把时间变为0, 电子计时器暂时停止计时; (2) 开始计时, 就是电子计时器开始工作计时; (3) 暂停计时, 就是电子计时器暂时停止计时, 但下次计时的时候, 要从先前停的时间继续计时。

2. 算法分析 (如图5) 。

说明:等待时间到达, 计时器控件自动完成“时间的增加”。

3. VB编程三步曲。

(1) 设计界面, 修改对象属性。

(1) 添加一个标签, 修改Caption属性=0, 修改名称:Min, 修改字体、字号属性; (2) 添加两个标签, 修改Caption属性=:, 修改Caption属性=0, 修改名称:Sec; (3) 添加一个计时器控件, 修改Interval=1000 (表示时间间隔是一秒钟) 。

(2) 编写代码。

编写计时器事件。分析:定义变量T代表时间, 单位:秒。每过1秒钟, 电子计时器显示就要加1, 而计时器控件每秒执行一次, 因此, 可以使用累加:T=T+1;由于T是秒数, 当T>60时, 必须转换成分钟数。变量M代表分钟数, S代表秒数。

尝试:双击计时器控件, 并输入代码。

每执行一次累加1

T整除60得出分钟数

T取模60得出秒数

在标签1输出变量M的值

在标签3输出变量S的值

(3) 调试运行。

失败:电子计时器只显示1, 就停下来, 不动了, 这是什么原因?

生: (一片哗然) 是不是有病毒?… …

停顿片刻… …

调试:尝试增加Print t; 发现变量T的值总是1。

对比:这跟我们以前利用循环进行累加求和有所区别 (如图6, 演示《循环变量的变化》) 。

发现:变量的定义, 放在循环语句的外面, 循环的执行不会把变量T初始化。

分析:这是因为变量T是在计时器控件中定义的, 计时器控件每执行一次都把变量T初始化 (即:T=0) 。

(4) 解决办法:讲解全局变量 (Power Point) 。全局变量是指在程序开头的说明部分 (“通用——声明”) 定义和说明的量, 其作用域是整个窗体程序。把变量T定义为全局变量 (“通用——声明”事件:Dim t As Integer) , 这样就不会被初始化。它只是在程序执行开始时初始化一次, 不受其他控件影响。

实践证明, 笔者的精心组织、巧妙安排果然收到了良好的效果, 学生对于全局变量这一知识难点完全掌握, 并能理解、熟练运用。

●在动手中学习, 实施分层教学

在教学中要让学生多分析、多操作、多体验, 在做中学、学中做。教师应选取适当的问题, 放手让学生以合作的方式探究解决, 使他们亲历从需求分析到算法设计, 再到编程实现的完整过程。

分层教学:学生水平参差不齐的状况, 好学生吃不饱, 教师的过多讲解对于他们来说是一种浪费, 不利于他们进一步发展;差生认为进度太快。为此, 有需要的学生通过红蜘蛛教学软件“举手”, 教师对这些学生进行个别辅导。这样, 已经掌握的学生就可以不受影响, 自主探究。

分层任务:让学生根据自己的能力选择是否完成选做题, 有能力的学生就可以在完成必做题的基础上, 继续探究选做题。

任务的设计, 遵循让学生跳一跳就能摸得到目标的原则, 水平差的学生经过自己的努力完成必做题后的满足感不亚于好学生做完必做题后再攻克选做题后的成就感。在教学过程中, 随着一个个任务的完成, 知识点的掌握, 目标的实现, 学生能够逐渐在成功中找到自信, 体会到完成任务的快乐, 极大地激发探索知识的动力。

《算法与程序设计》教学探析 期 篇8

关键词:算法;程序设计;教学模式

中图分类号:C45 文献标识码:ADOI:10.3969/j.issn.1672-0407.2012.06.010

文章编号:1672-0407(2012)06-021-02收稿日期:2012-04-22

一、存在的问题

1.《算法与程序设计》模块中基本上涵盖了程序设计中用到的所有知识,有大量的数据、语句以及其他的过程和函数,这对学生有难度,容易使学生产生畏难和恐惧心理。

2.对于教师而言,算法及编程知识相对枯燥并且学生接受能力有差别,不容易引发学生的学习兴趣,具体体现在学生的课堂听讲状态和完成练习情况上,这也对教学推进产生了一定困难。

3.学生对传统的课堂讲练教学有厌倦感。高中信息技术课基本上都是在多媒体网络教室进行,所以学生潜意识中就认为信息技术课上课方式应该与其他科目不同。但事实上程序设计这门课基本上都是采用传统模式,教师先讲后演示、学生先听后编程的方式,学生在听或者看的过程中往往注意力不集中,到实践编程时又无从下手,形成恶性循环,最终导致学生对信息技术课产生抵触心理。

这些情况是在日常教学中存在,针对以上问题,笔者进行了有效教学探究。

二、教学模式的探究

(一)创设情境,激发学生学习兴趣

增强课堂教学艺术,提升学生兴趣。只有抓住学生的兴趣,引起学生的注意,学生的思维才会异常活跃,才可能发挥潜在的学习积极性、主动性和自觉性。尤其在算法中,面对相对枯燥、抽象的内容,教学中就需要去创设贴近生活或趣味性强烈的情景“紧紧抓住学生”,让兴趣调动起学生的好奇心。

案例:教材第一章采用“游戏导入”用“猜数游戏”做切入点,用游戏对教学促进进行有益的尝试,通过生生之间,人机之间相互猜数的活动,激发学习兴趣。

1.同学之间玩“猜数游戏”。学生甲心中想一个0~100之间的整数,学生乙猜,依据学生乙猜的数进行判断并反馈信息“大”还是“小”,直到猜中,相互交换角色看谁用的次数少。

2.教师利用程序设计的程式和学生一起来进行游戏,注意引导学生思考总结猜数使用方法,设法减少猜的次数,让学生交流讨论,引出算法概念。

3.组织学生研究教材内容,理解程序设计概念、程序设计步骤、程序设计语言。

通过创设的情景,让学生在探讨中认识到学习算法的目的就是通过程序设计来“教”电脑做事情解决问题。在游戏中融入程序设计,降低学生对学习算法和程序设计的恐惧感。

(二)根据学生学习知识水平,合理重组教学内容

教师在备课时可以充分发挥自己的教学实践智慧,在熟悉课标的基础上理解教材意图,具体分析学生的知识基础与认识结构,了解学情,在符合课标的基础上调整教学内容,以契合教学现实。

教材中的“解析法与问题关键”的关键是对问题深入分析,将复杂问题简化、抽象,然后构建合理的教学模型。其中的任务“制作矩形框”涉及条件语句、条件嵌套等知识,对学生有一定难度。在课标允许的情况下我将任务改为已知用长度为L的铁丝制作一个圆,计算圆的半径和面积,问题只涉及赋值和顺序结构,学生只需重点关注两三行程序代码即可,这样促进学生对问题的理解。学生可轻松了解解析算法解决问题的思想,感悟计算机解决问题的魅力。

(三)合理安排上机调试时间

算法与程序设计的操作性很强,因此教学就要强调学生的动手实践。让学生在做中学、学中做,让学生去体验、去探索、去实现自己的想法,完善自身的知识结构。通过实践,算法与程序设计整个过程就可以得到完整体现,学生可以及时看到自己设计的算法的可行性、有效性,这样可以很好地激发学生的自主性和创造性,从而提高学习的效果。

教师在实践过程中改变自己的角色,重视对学生的关注,改进学生的学习方式。在实践中,一个算法就是一个课题,可以让学生独立去探究,也可以让小组来进行讨论。根据心理学研究,一个人心理一旦形成“希望实现需要”,就会为自己需要满足而努力开发自己的潜能,这时他的思维火种就会燃烧,就会想方设法设计多种算法,并在计算机上验证处理,再经历合作思维的撞击实现对知识的掌握。

(四)上机实践课的开放式网络教学

开放式网络教学以一种开放的方式诱发学生的学习欲望,提高学生的自主学习兴趣,辅助课堂教学,构建高质量、有价值的多媒体网络教学资源,培养并引导学生在网络环境下进行高效率的互助学习。

1.实际课应有明确的目标任务,可布置一些小程序编写、修改程序,精心设计任务,让学生消除“信息技术课等于上网”的思想,树立正确的认识和学习态度。

2.加强网络管理可运用一些技术手段对部分网络进行屏蔽加强对学生管理。

3.针对不同学生依据不同教学目标,设计不同层次内容和任务,由学生自己选择适合自己的任务。

4.教师及时观察学生的完成情况,并能及时进行肯定;对有困难的学生多鼓励,给予学生学习的信心。

5.课后收集学生对课堂反馈意见,对教学内容、教学方法及时调整,可以通过网络工具与学生进行沟通,对学生存在问题进行及时有效指导。

三、结束语

算法教学设计 篇9

教学设计

太原市第五十三中学

符权有

基本算法语句

课标要求与教材分析

当今世界,越来越多的事情交付计算机完成,而计算机完成任何一项任务都需要算法,因此算法是计算机科学的基础,但是用自然语言或程序框图描述的算法计算机是无法“明白”的,因此我们还需要将算法用计算机能够理解的语言表达出来,这就是通常驻机构所说的程序和程序设计,教科书中介结了输入语句、输出语句、赋值语句、条件语句、循环语句,尽管不同的程序设计语言有不同的语句形式和语法规则,但基本结构是相同的。因些书中的算法语言稍加改动就可以在某些程序环境下执行。

此外,与其它教学内容相比较,算法学习的一个最大的特点就是操作实践性强,因些对学生动手能力及思维的拓展有一定的帮助。需要特别指出的是,中国古代数学中蕴涵了丰富的算法思想。在本模块中,学生将在义务教育阶段初步感受算法思想的基础上,结合对具体数学实例的分析,体验程序框图在解决问题中的作用;通过模仿、操作、探索,学习设计程序框图表达解决问题的过程;体会算法的基本思想以及算法的重要性和有效性,发展有条理的思考与表达的能力,提高逻辑思维能力。

程序是由若干算法语句组成的有序集合,是由表示算法基本逻辑结构的算法语句组成的。任何高级程序设计语言都包含我们这一节所学的输入语句、输出语句、赋值语句、条件语句、循环语句,这五种算法与三种基本结构基本上是相对应的。因此教学中应注意以下几点:1.通过对具体问题的理解、分析,把具体问题的程序框图转换成程序语言,在这个过程中掌握基本算法语句中的输入、输出、赋值、条件、循环语句,从而进一步理解算法语句。2.在学习的过程中通过阅读中国古代数学中的算法案例,体会古代中国数学对世界数学发展的作用,提升民族自豪感。

学情分析

算法是数学与计算机的关联,在数学中有一的地位,学生前一阶段已经学习了算法的自然语言和程序框图设计,在此基础上,进一步把算法的自然语言转换成计算机能够识别的程序语言,使学生有一定的教学基础。

教学目标

1.经历将具体问题的程序流程图转化为程序语句的过程,理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句,体会算法的基本思想。

2.会利用输入语句、输出语句、赋值语句、条件语句、循环语句解决具体的问题,编写算法语言。

教学中需要注意的事项

1.重视对学生数学学习过程的评价

关注学生在数学语言的学习过程中,是否对用集合语言描述数学和现实生活中的问题充满兴趣;在学习过程中,能否体会集合语言准确、简洁的特征;是否能积极、主动地发展自己运用数学语言进行交流的能力。

2.正确评价学生的数学基础知识和基本技能

关注学生在本节及今后学习中,让学生集中学习算法的初步知识,主要包括算法的基本结构、基本语句、基本思想等。算法思想将贯穿高中数学课程的相关部分,在其他相关部分还将进一步学习算法。

输入、输出、赋值语句

教学目标

知识与技能目标:

1.正确理解输入语句、输出语句、赋值语句的结构及特点。2.会利用输入语句、输出语句、赋值语句编写简单的程序。

过程与方法目标:

通过对具体问题的探究,尝试用各种不同的方法解决问题,让学生充分感知、体验计算机程序在实际应用中的便利,明白数学与计算机学科的联系,为今后更深入地学习算法打下坚实的基础。情感态度和价值观:

通过本节的学习使学生认识到数学与计算机学科之间的关联,进一步体会到计算机的好处,提高学生对数学学科的兴趣。

教学重点与难点

重点:对输入语句、输出语句、赋值语句三种语句的理解。

难点:对输入语句、输出语句、赋值语句三种语句的熟练应用;能够准确理解赋值语句中的“=”的作用及意义。

教学方法与手段

学生自学为主,教师对学生易错的地方进行讲解,利用计算机等手段增强学生对算法语句中输入、输出、赋值语句的理解和应用。

教学流程

一、新课导入

在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具,如:听MP3看电影,玩游戏,打字排版,画卡通画,处理数据等等,那么,计算机是怎样工作的呢?计算机完成任何一项任务都需要算法,但是,我们用自然语言或程序框图描述的算法,计算机是无法“看得懂,听得见”的。因此还需要将算法用计算机能够理解的程序设计语言,使计算机能够识别并运行。为了实现算法中的三种基本的逻辑结构:顺序结构件结构和循环结构,各种程序设计语言中都包含下列基本的算法语句:

输入语句、输出语句、赋值语句、条件语句、循环语句

那么今天我们首先来学习前三种:输入语句、输出语句、赋值语句。

二、展示本节学习目标

1.在对实际问题的探究中正确理解输入语句、输出语句、赋值语句的结构及特点。2.在理解三种语句结构的基础上会利用输入语句、输出语句、赋值语句编写简单的程序。

三、探究新知

输入语句、输出语句、赋值语句属于算法结构中的顺序语句,是计算机自上而下执行的语句。它是程序中必不可少的环节。

输入、输出语句分别用来实现算法的输入信息,输出结果的功能,下面我们首先来看这两种语句的特点。通过阅读课本P21-P22页的内容,回答下列问题: 1.在课本中的例子中你们觉得哪些是输入语句、输出语句?

2.请你通过具体的例子总结输入、输出语句的特点。3.尝试着用输入、输出语句写几个具体的算法语言。

[学生]:先看书阅读,然后互相交流、议论、猜想得出结论,并进行尝试性的编写。在此过程中,教师应适当作引导,把学生的重点引到“INPUT”和“PRINT”这两个词语上来。[教师]:1.输入语句:

INPUT “提示内容”;变量

对于多个变量来说

INPUT 变量1,变量2···

和你自己总结出来的语句结构一样吗?如果一样请用它写几个例子;如果不一样请先纠正你的错误,再对它进行应用,编几个具体的例子。

[学生]:对这个格式进行应用,举例,由同桌之间互相进行检查、纠错。[教师]:2.输出语句:

PRINT “提示内容”;表达式

重复上述步骤。

[学生]:再对这个句型进行举例,同桌之间互相讨论、纠错。

[教师]:好了,在掌握了这两种语句的基础上,接下来我们研究赋值语句,请同学们阅读课本P23页最后两段到P24页第一段,总结一下什么是赋值语句,赋值语句的格式是什么? [学生]:先看书阅读,然后互相交流、议论、猜想得出结论,并进行尝试性的编写。[教师]:进行总结: 变量=表达式

这里需要注意是“=”与我们数学中的等号是不完全等同的,在数学中“=”前后的式子表示相等,但是在赋值语句中表示将表达式的值赋给了前面的变量,也就是说先有“=”号之后再有“=”之前,把后给了前。

讨论一个新的问题:对于赋值语句我们在应用的时候应该注意什么? [学生]:先进行分组讨论、分析、总结,然后进行回答:

1.A=B与B=A的意思不相同,前者表示把B的值给了A,后者表示把A的值给了B 2.赋值号左面只能是变量名称,而不能是表达式;也不能用赋值语句进行代数式的演算。

四、应用新知,例题精析

例1.编写程序,计算一个学生数学、语文、英语三门课的平均成绩。

[分析]:要编写一个程序,首先要把这个问题写成算法的基本步骤,然后再转换成程序框图,再用基本算法语句表达出来;尤其在初学的时候更不能一蹴而就。[过程]:先由学生在练习本上探究、修正,然后由我公布答案。解:程序:

INPUT “数学=”;a INPUT “语文=”;b INPUT “英语=”;c y=(a+b+c)/3 PRINT “The average=”;y END [小结]:由学生先进行程序框图的设计,再进行编程。(这里要先让学生进行尝试性的动手,以调动学生学习的积极性,提高学习效率。)例2.阅读下面这个程序,它表示什么? A=10 A=A+10 PRINT A END [学生]:思考并进行解答。[小结]:这个例题要学生明白赋值语句的特点和易错的地方,如果学生将这个程序读懂了表示他基本已经理解了赋值语句。

例3.交换两个变量A和B的值,并输出交换前后的值。[分析]:考察赋值语句的应用,是例2的强化版本。[解答]:INPUT A INPUT B PRINT A,B X=A A=B B=X PRINT A,B END

五、课堂训练:

1.已知华氏温度与摄氏温度的转换公式是:

(华氏温度-32)*5/9=摄氏温度

编写一个程序,输入一个华氏温度,输出其相应的摄氏温度。解: INPUT “请输入华氏温度:”;x y=(x-32)*5/9 PRINT “华氏温度:”;x PRINT “摄氏温度:”;y END [分析]:考察学生对输入、输出、赋值语句的应用

2.编写一个程序,计算两个非0实数的加、减、乘、除运算的结果。解: INPUT “请输入a(a0)=”;a INPUT “请输入b(b0)=”;b X=a+b Y=a-b Z=a*b Q=a/b PRINT a,b PRINT X,Y,Z,Q END [分析]:考察学生对赋值语句的理解

六、小结

1.这节课我们主要学习了输入、输出、赋值语句的理解,掌握输入、输出、赋值语句的应用,明白数学与计算机科目的联系。

2.基中赋值语句是本节课的难点,有部分同学可能不易理解,需要课后的努力。

七、课后作业 学用通第48页: 1题,3题,4题

八、板书设计

输入、输出、赋值语句

一、新课导入

四、应用新知,例题精析

以具体的问题引入新课。对新学知识的典型例题进行讲解。

二、展示学习目标

五、课堂训练

三、探究新知 进行强化练习

以学生自学为主,六、小结 对新知进行探索

七、作业

九、目标落实检测

1.在赋值语句中,n=n+1是

A.没有意义 B.n与n+1相等 C.将的原n值加1再赋值给n,即n的值增加1 2.编写程序,计算甲、乙、丙三人的平均年龄。3.程序: a=1 b=2 c=a+b b=a+c-b PRINT a,b,c END 最后输出的值是谁?等于多少?

十、教学反思

本节课的教学中,主导思想让学生自学为主,教师引导为辅,充分调动学生的学习主动性,在自己探索中学习、成长,掌握本节课的主要知识。由于学生的基础较差,导致在实际的实施中讲的东西较多,练的较少,这应该在以后的教学活动中加以改进,争取在下一阶段的教学中,让学生养成先预习后学习的良好学习习惯,夯实学生的基础,为进一步学数学,学好数学做好充分的准备。

在具体的教学中,发现部分学生不会阅读课文,不能从文中找出相关的、主要的信息,看书以片面的,跳跃的方式来处理信息,由于是新学课,采用这几种方式,很容易将课本中的一些对知识进行总结的话露掉,而这些话又恰恰是非常重要的经验总结,必须要让学生进行理解和应用,因此会看书、读懂题,这是我的学生现在面临的很重要的两个弱点,这需要我在以后的教学中慢慢加以引导,教会学生怎么样从课本中提炼出我们需要的信息及答案,这是一个长期的过程而且对学生今后在数学方面的发展有着重要的作用,应该加以注意。此外,由于这节课我在两个班都进行过教学,第一个班采用的传统的析书形式,第二个班采用的多媒体,很明显,在第一个班最后的教学内容的含量不如在第二个班的教学内容多,而且在第二个班用多媒体学生更容易理解这些生硬的算法语句,可见在一些课时的设计过程式中我们应该应用多媒体进行辅助的教学,有利于学生更好的对知识的理解和把握,提高我们的课堂效率。

个人简介

上一篇:医院感染知识试题免费下一篇:我们成功了语文课件