用顺序结构解决实际问题教学案例备课讲稿

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

用顺序结构解决实际问题

这是一节区级研讨课。一直以来我喜欢有挑战性的事情,所以在开学初确定研讨课选题时,我选择的是课改以前教材中没有的《排序算法设计》。可是,教研员决定让我把研讨课提前到三月十九日,课题也就因此改为《用顺序结构解决实际问题》。内容的难度明显降低了,但挑战性也会随之降低吗?说实在话,开始觉得这是一个不太有意思的课题,甚至有些失望。可当我真正准备这节课时,感觉其实更具挑战,也就乐在其中了。

一、教学目标

知识与技能:

1、掌握赋值语句的格式、功能和执行过程;

2、学会使用赋值语句来实现顺序结构,解决实际问题。

过程与方法:

从“提取人民币方案”问题出发,一起经历分析问题、设计算法、编写程序、调试程序等用计算机解决问题的过程,学会使用赋值语句解决实际问题。

情感态度与价值观:

激发学生学习兴趣,培养学生分析处理问题的能力,增强逻辑思维能力。

二、教材分析

这是第一次使用这套教材,感觉导入用实例有的比较复杂,不适合初学者,但很多例子又很贴近实际。于是多数情况下,是用更简单的例题导入,有了一定基础后,引导学生自学书上的例题。这样学生不仅能做到循序渐进,还能接触更多的知识和问题,提高解决问题的能力。

三、学生分析

这是《算法与程序设计》这门课的第六节课,学生对界面设计已经熟悉,而且了解事件过程与事件驱动,但是真正去认识代码这是第一节课。在这之前,做过代码录入的练习,能够比较熟练地掌握。

四、教学策略

采用加涅的九段教学法以及“任务驱动法”教学策略。

五、教学重点

赋值语句的格式、功能和执行过程

六、教学难点

用赋值语句解决实际问题

七、教学流程(见下页)

八、教学过程

1、创设情境,引发思考(加涅:引起注意、告诉学习者目标)

正投显示“银行取款单”,学生了解在取款单上要填写的内容及银行出纳如何支付。接下来,说明本节课的目标:我们用VB帮银行设计一个程序,解决以下问题-储户到银行提取存款共计N元,试问银行出纳员应如何付款,才可以使储户拿到的人民币的张数最少?

运行“money.exe”,输入366,先让学生说出结果。课堂一下子就热闹起来,很快说出答案和思考的方法。以生活中的实际问题展开,很容易激发学生的学习兴趣。

设计好的程序运行之后,可以让学生马上感受到程序设计给实际带来的方便。

2、分析问题,注重细节培养(加涅:刺激对先前学习的回忆)

“细节决定成败”。初学程序设计,一些好的编程习惯的养成显得尤为重要。在分析问题过程中,要用到7个变量来记录7种面值人民币的张数。于是,我问到:如果是你来设计,你给这7个变量起什么样的名字?沉默几秒钟后,有学生大声说出:a、b、c、d、e、f、g。看到其他学生在点头,我说:这样没错,但我觉得不太好,有没有更好的名字呢?于是,又有学生说:用a1、a2、a3、a4、a5、a6、a7。我说:嗯,不错,感觉7个变量有些联系了。可如果是我,我想这样起名:用Y100来表示100元的张数,立刻有学生说Y50、Y20……他们是聪明的,稍稍点拨,不必过多解释,只要再次强调变量的“见名知义”,相信他们今后会很好地记住了。

用上节课学习的“整除”来完成计算Y100、Y50、Y20……的公式,多数学生写到Y20已经觉得很麻烦了,这恰好为后面程序的简化留下空间。

(Y100=N\100 Y50= (N-Y100*100)\50 Y20= (N-Y100*100-Y50*50)\20)

3、设计算法(加涅:呈现刺激材料)

算法以流程图的形式给出,首先让学生说出是什么结构?(这之前学生已经了解三种结构流程图的特点)图中每个框中的文字,在学生说出后点击呈现,这样在分析问题的基础上,有利于学生清楚地掌握此题算法。

4、讲授新课(加涅:提供学习指导)

将代码以网页的形式呈现给学生(在网页中是用图片的形式给出,为的是在后面录入的过程中,掌握的不太好的学生可以参考,但不能直接复制过去。即使照着代码录入,慢慢也会提升编程的能力),复习定义变量等知识,同时指出哪里用到了赋值语句。用一个简单的实例讲解赋值语句的格式、功能及执行过程。板书变量的变化,帮助学生理解执行过程,并用立即窗口验证这一过程。强调赋值的方向性,用网页中提供的四段程序代码“看程序写结果”进行巩固。其中一段交换两个变量值的代码,让学生能说出功能。有学生说出来了,而且知道要借助一个中间变量。

5、用赋值语句简化公式(加涅:增强记忆与促进迁移)

了解了赋值语句的功能后,让学生思考能否把“提取人民币方案”的程序做适当简化?(提示:可以让N记录每一次人民币的当前值)

Y100=N\100:N=N-Y100*100

Y50= N\50:N=N-Y50*50

Y20= N\20:N=N-Y20*20

Y10= N\10……依此类推

我在黑板上先给出Y100=N\100,接下来我说如果想Y50= N\50,那么这之前N的值应该是什么?有了前面四个“看程序写结果”的基础,他们知道:一个变量可以被多次赋值,每一次都是新值取代旧值。于是很快说出答案,并感觉简化后的代码更易理解。

6、完成任务

完成“提取人民币方案”程序设计。程序界面事先提供,让学生把重点放在本节课的知识点上,以前的知识在老师的提问中巩固。(提问:有多少个对象?界面中用到了哪些控件?设置了什么属性?代码写在哪段事件过程中?)

7、思考:你觉得用已学知识,可以解决物理、数学等学科或生活中的哪些问题?你能把

问题描述一下吗?

有的学生上课说出了可以用来求圆面积,有的想用来计算万有引力……

九、教学反思

1、热情点燃热情

新课程的一个重要理念是改变以往课堂结构中单纯以教师的教为主,学生只是被动接受的教学格局。教学的关键是调动学生学习的积极性、主动性,主动的去学习、思考和探究,去建构知识。学生的学习兴趣太重要了,所以在和学生一起学习《算法与程序设计》这门课时,我始终想的是:如何让这门课不枯燥,让他们很快能找到编程的乐趣。为此,我在导入用实例上下了不少功夫。比如这节课之前用过“打字母游戏”,学生当时是将代码复制到程序中的,当他们选择不同难度游戏时,发现玩儿得不过瘾。这时,有的同学竟然主动考虑去改写代码,而且改写成功了。(Timer控件的Interval属性)而这看似简单的改动,使他们很快就体会到成功的喜悦。我及时地表扬了这样的学生,其他学生赞美的声音很自然流露出来,起到了非常好的效果。这种学习的热情会很容易地感染到我。开学到上这节课时学生都没能拿到教材,为此,我决定搭建起学习用网站。由于时间仓促,只能顾及它的实用效果,可以说毫无美感可言。但即使这样,为了这个小小的网站,我的课前准备工作也成倍增加。但看着它在学习过程中起到的举足轻重的作用,我的热情很高。例如,我在网站的首页上链接了用VB设计的拼图、五子棋等游戏,结果证明多数同学比往届的学生更早地喜欢上了编程。这难得的热情鼓励着我,要让自己的每一节课精彩,让学生继续这份热情。这被点燃的热情,让《用顺序结构解决实际问题》这节课,从准备到成功上完,都充满着快乐。

2、我们在做有意义的事情

每届都会有学生这样问我:老师,我们学编程有什么用?这不是单凭老师的几句说教能解答的问题,而是要让学生在课堂学习过程中体会到:我们在做有意义的事情。在设计《用顺序结构解决实际问题》这节课时,我在导入实例上费了一番周折,希望能用看似简单的语句解决“大”问题。这个“大”问题,不是有多复杂,而是它的实用性。最终我确定了这样一个设计:首先,用正投打出“银行取款单”,学生知道要填写取款数,接下来银行出纳给储户需要的钱数。于是出示这节课的问题:用VB帮银行设计一个程序,解决以下问题:储户到银行提取存款共计N元,试问银行出纳员应如何付款,才可以使储户拿到的人民币的张数最少?运行Money.exe,输入356。此时先让学生说出答案,班里一下子热闹起来了,大声说着:三张一百的,一张五十的,一张五元的和一张一元的。这个时候再看程序运行结果,能从学生的表情中看到对程序的兴趣。

3、注重细节培养

“细节决定成败”,初学程序设计,一些好的编程习惯的养成显得尤为重要。比如变量的命名要做到“见名知义”,再比如:有的同学运行之后看到了结果,很兴奋地举手让我看。我看到后做了鼓励,接下来,让他再试一个数字就出错了。用365验证可以通过,为什么用375就不行呢?他立刻说:计算Y20的公式出了问题?我说:你再仔细查一下。结果是在复制公式时,有的地方忘了改了。我把这种情况也告之全班学生,让他们懂得调试程序时,要把各种可能的情况的加以尝试,那样的验证通过才是正确的结果。

4、学会换位思考

在课堂的教学设计过程中,教师要换位思考,要处处站在学生的角度来思考问题,站在

相关文档
最新文档