算法与程序设计教学设计Word格式文档下载.docx
《算法与程序设计教学设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《算法与程序设计教学设计Word格式文档下载.docx(71页珍藏版)》请在冰豆网上搜索。
(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.回顾小结
师生共同总结算法设计的过程,就是将大脑思维的每一步都记录下来,并且用计算机能达到的功能来实现人解决问题的思路。
『最后带领学生总结本节课的中心思想,即回答“算法设计的过程是怎样的”这一问题。
使整节课有了一个明确的结论。
【案例分析】
本案例面向课程目标中“计算机解决问题的基本过程”这一主题,案例语言准确,条理清晰。
对教学目标的设计较为恰当、务实。
对教学重、难点的把握十分准确,教学策略与教法的设计具有针对性,并在其后的教学设计中准确予以实现,适合用于“算法与程序设计”选修开始部分的教学。
案例的实践,能让学生在必修部分体验过用计算机解决问题的基础上,进一步体验了算法思想,并在学习中体会到算法和程序设计在解决问题中的地位与作用。
学生通过实例,经历分析问题、确定算法、用自然语言及流程图描述算法的过程,理解并建立算法与程序设计的思想。
这节课在必修的体验与后面程序设计的深入学习之间,起到了承先启后进行过渡的作用。
案例采用“逐步引导和训练”的教学策略来解决教学的重难点,依托生活中的实例,先从实例讨论的维度引导学生对实例进行层层分析、归纳总结,找到解决问题的算法并用流程图表示,从而实现学生对算法解决问题基本过程的再体验。
再从深化教学的维度,从具体的实例向一般性问题的解决推进,从而实现学生对算法解决问题基本过程的再理解,最终达到预设的教学目标。
建议,案例在教学过程的描述中明确对情感、态度与价值观目标的实现过程,或者说,案例需要交待清楚,如何培养学生交流合作、探究创造的教学策略。
【专家点评】
普通高中信息技术课程标准中明确阐述了《算法与程序设计》(选修)模块的宗旨,就是使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;
能从简单问题出发,设计解决问题的算法……从该教学案例的设计和施教过程来看,执教者不仅很好地把握了新课标的有关理念,而且,也是一节实践效果很好的课。
其主要特点是:
(1)教学对象分析得较为准确;
(2)教学目标制定得科学、恰当,可操作性强;
(3)在“教学思路”部分的分析上,文字表述明确、细致,在问题的分析方面做到了丝丝入扣,层层推进,并自然地导出了生活中“打擂台”实例;
(4)在教学的实施过程中,执教者首先以详细的师生对话的形式,展现了教学“情境创设”的全过程,课堂语言运用得较为准确。
在这里,关键性的“打擂过程的描述”条理清晰,易于引出打擂算法流程的设计和“流程图”的画出;
(5)在“求一般情况下的最大值的算法”时,执教者通过引导学生将该问题与“打擂”问题分析过程的比较,很容易地迁移到了新问题的算法设计上了。
从两问题的过渡难度梯度来看,可以说该教学案例,是“最近发展区”理论应用的成功典型。
其不足之处:
(1)作为教学案例(或教学设计),首先应有“教学内容分析”,这是制定教学目标的重要依据之一;
(2)作为一个优秀教学案例的完整部分,教学评价的内容也是必不可少的,因为,通过评价,不仅可以调节教学的进程,而且,还可以了解教学目标的达成度。
(连云港师范高等专科学校冯伯虎)
案例二:
赋值语句
杜娟娟
南京一中
【课标内容】
(一)计算机解决问题的基本过程
(1)结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程
(二)程序设计语言初步
(1)会使用程序设计语言实现顺序结构。
知识目标:
使学生初步认识赋值语句,掌握赋值号的含义及功能。
技能目标:
能够运用赋值语句进行简单代码的编写,体验代码编写的过程。
情感目标:
激发学生学习兴趣,培养学生分析处理问题的能力,增强逻辑思维能力。
『赋值语句是学生遇到的第一个语句,因此教师并没有将教学目标单纯的定位于掌握赋值语句的含义和功能,而是更多引导学生体验编程的过程。
【教学方法】
目标驱动,游戏教学法
重点:
控制键工作原理及代码编写
难点:
按钮的代码编写
『教学重点和难点的描述不清晰,如“代码编写”包含的范围过广。
教师活动
学生活动
教学意图
一、课题引入(5分钟)
本节课的一开始,轻松一点,请一个学生上讲台操作一个拼图游戏。
(屏幕广播)通过小游戏回顾类似于vb这种可视化程序设计语言处理问题的一般步骤:
(引导学生说出步骤)
界面设计——属性修改——代码编写——
保存工程——运行调试
我们已经完成好了前两个步骤,来看看大家完成的情况:
(演示一个学生的作品)
作品1
一学生操作拼图游戏
学生回忆并说出步骤
『复习理论。
在下面的授课过程中该理论将指导学生实践。
观看学生作品
利用拼图游戏调动学生探究的积极性。
『以学生最感兴趣的游戏作为情景,有效激发了学生的学习欲望。
从游戏中回顾旧知识,为本课学习作好准备。
强化步骤,培养学生有条理的逻辑思维能力。
在欣赏中加以评价,激发学生学习热情。
二、赋值语句
该学生的游戏界面已完成,单击按钮,没有用处,则引出代码编写。
『与上节课自然衔接』
问题引导编写代码:
*做了什么动作,才使得文字出现
-----单击“游戏规则”按钮
*那应该对哪个控件编写程序代码
-----“游戏规则”按钮
*如何进入按钮的代码编写窗口
-----双击“游戏规则”按钮
进入代码编辑窗口后:
(强调在光标闪烁的地方添加代码,对对象的click单击事件编程)
*单击按钮,出现文字,那么文字出现说明什么控件的什么属性发生了变化
-----label1的caption属性发生了变化
*label1的caption属性如何表示
(板书提示控件名.属性,单击几个控件,说出控件名)
请该学生上讲台完成代码:
="
点击按钮,完成拼图!
"
Word文档展示几个注意点!
『教师通过系列问题实现了第一条语句的编写。
该问题解决后学生并没有意识到“=”是赋值语句,这也是教师有意放过去的一个问题。
请学生自己练习,模仿完成,并尝试思考上下左右控制键的工作原理。
(5分钟)
屏幕广播,(以right按钮为例):
(8分钟)
*单击right按钮后,什么控件发生了变化-----图像控件(image1控件)
*图像控件发生了什么样的变化-----向右移动
*右移说明控件的什么属性变化---left属性
属性到底发生了怎样的变化
『再次用解决第一个问题的方法——设问,引导学生思考。
方法的重复在于帮助学生形成正确的编程思考方式。
分析:
(为了图片能够拼接的准确,我们就以一个网格的单位距离120移动)
表格分析,引导学生用自己的语言描述变化规律。
提出:
=+120
『本段过程非常精彩。
学生直接写出语句很困难,教师并没有简单给出答案,而是通过表格的方式引导学生自己写出语句。
而该条语句恰巧与数学的知识产生认知冲突,自然引出了“=”不是等号而是赋值号的概念。
此时产生认知冲突,先将代码放入程序中,验证
验证成功,从而提出了本节课的let赋值语句
格式:
Let<
变量名>
=<
表达式〉这里的let可省略
功能:
计算表达式的值,将表达式的值赋给变量
给学生两条语句,说出运算结果:
a=3+6
a=a-1
a=a*a
(巩固赋值语句)
强调赋值号和等号的区别
强调=”……”也是赋值语句
『前后呼应,提示学生本节课讲解的第一条语句中的“=”也是赋值号。
请学生举一反三,完成所有按钮的代码编写。
(12分钟)
发送判断代码
『本内容为分支语句的引出埋下了伏笔。
案例处处体现出授课者的课程整体思路。
分层次教学:
没有完成任务的同学继续完成。
完成好任务的同学,尝试将判断代码放入程序中,体验程序的交互性和完整性。
(教师巡视指导)
该学生在引导下尝试实现“游戏规则”按钮的代码编写
观看广播
学生在引导下完成代码
(简化文字)(5分钟)
模仿练习
举一反三,完成所有按钮的程序代码
学生分层次练习
该学生的操作能引起其他学生的注意。
一步步的引导比直接教授的效果更好些,对学生今后遇到问题能够有条理的进行思维,有着很大的帮助。
从简单的模仿开始,一步步向前递进。
重难点由教师讲解,一步步地分析按钮的工作原理,用图形和表格举例的方式,使学生更容易理解该条赋值语句中的叠加问题。
该条语句和学生头脑中的数学等式产生认知冲突,在冲突中验证成功,从而引出赋值语句。
分层次练习,使不同层次的学生完成相应任务
『关注学生的个性差异』
三、评价总结拓展(5分钟)
展示学生一作品,总结本课内容。
请点击上下左右方向键,控制图片移动方向,完成拼图!
=+120
=
展示学生二作品,将程序升华。
在学生的作品演示中总结本课。
体验程序的交互性,为今后的课程作铺垫。
案例设计者赋值语句的授课分为两个课时,本案例是第一课时,第二课时内容是赋值语句的应用。
1.醉翁之意不在酒
看到本案例的第一印象是“过于烦琐”。
赋值语句并不复杂,以高中生的现有能力完全可以接受教师讲解的赋值语句的含义和功能,为什么教师通过如此复杂的过程加以引导然而仔细阅读后发现教师的设计是醉翁之意不在酒。
教师不是为了讲赋值语句而讲赋值语句。
教师的授课对象是毫无语言基础的学生,他们不知道在哪里写代码,如何写代码,所以教师以赋值语句为切入口,通过类似初学者的思维过程带领他们一步步的感受程序设计流程。
这才是教师要实现的重要目标。
2.设计新颖
教师以学生喜爱的游戏入手,让学生的学习一直伴随着愉悦。
3.前后联系
教师设计的系列课程有:
用控件及设置属性设计游戏界面、用赋值语句完成图片移动以及用分支语句完成游戏成功的判断。
课与课之间有着极强的联系,体现了教师对课程的整体把握。
除了教师讲解的赋值语句的格式和功能,其余问题的解决均采用设问的方式让学生自己找到解决的方法。
语句="
中“=”问题的刻意忽视和讲解完赋值语句的格式和功能后“强调=……也是赋值语句”,教学内容前后呼应。
课与课的联系,教学方法的联系和教学内容的联系均体现了教师授课极强的逻辑性。
“赋值语句”是普通高中信息技术选修课《算法与程序设计》中程序设计阶段接触到具体代码编程的第一节课。
因此,上好该节课,对后面的程序学习会有很大的帮助。
执教者对以往的教学方法进行反思后认为,传统的语言教学较枯燥乏味,不能够很好地吸引学生的兴趣,往往造成为了讲程序而讲程序,实用性不强等缺陷。
创意性地采用趣味拼图引入课题,既激发了学生的兴趣,又通过开发游戏体验程序设计,完成教学目标。
本节课执教者课前做了大量的准备工作,其成功之处除了“利用一个趣味拼图游戏引入本节课的内容——赋值语句”以外,还利用层层引导的方式将知识一步步推导出来,得出=+120,使其和数学中的等式产生认知冲突,接着,将程序代码放入程序中,验证成功,从而引出赋值语句。
讲解赋值语句的格式和功能。
最后将判断代码发送给学生,让学生体验一个具有交互性的完整游戏程序。
思路清晰,设计合理。
很好地激发了学生的学习兴趣,在轻松活泼的气氛下进行教学,使课堂任务成功顺利地完成。
不足之处主要有:
(1)label1的caption属性的语句(也是赋值语句)没有很好地利用(强调赋值号和等号的区别);
(2)产生认知冲突时,作者采用将代码放入程序中进行验证,效果一般。
建议结合推导表格,采用带入计算的方法进行验证。
此处是常用的叠加问题,与数学等式冲突可以进一步强调赋值号和等号的区别;
(3)可视化程序设计语言处理问题的一般步骤(界面设计——属性修改——代码编写——保存工程——运行调试),在课上被教师有所忽略。
建议在完成某段代码后,增加保存工程并运行调试的过程。
案例三:
选择结构
章小虎
海口华兴学校
1.内容标准
(1)理解并掌握一种程序设计语言的基本知识,包括语句、数据类型、变量、常量、表达式、函数。
会使用程序设计语言实现顺序、选择、循环三种控制结构。
(2)理解模块化程序设计的基本思想,初步掌握其基本方法。
(3)初步掌握调试、运行程序的方法。
(4)在使用某种面向对象程序设计语言解决问题的过程中,掌握面向对象程序设计的基本思想与方法,熟悉对象、属性、事件、事件驱动等概念并学会运用。
2.活动建议
(1)选择实例,根据解决问题的要求分析设计算法,恰当地使用三种控制结构编写源程序,调试并运行该程序,在过程中体验程序设计语言的逻辑特点。
【教学分析】
算法与程序设计是普通高中信息技术课程中选修模块之一,本模块旨在使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;
能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法解决问题。
“选择结构”是教育科学出版社出版的高级中学课程标准实验教科书《算法与程序设计》第二章第三节的内容,共分三课时,本课为第二课时。
主要内容是用选择结构编写简单的程序解决具体问题。
用选择结构编写简单的程序解决具体问题是在学生已经掌握了程序设计数据的表示与处理的基础上,理解了顺序结构的前题下提出的。
通过本课的学习,可以促进学生对问题解决方法和思想的理解与掌握,从而提升学生的问题解决能力,让学生在按照一定的流程解决问题的过程中,去体会和理解程序设计的思想,而且也为多分支选择结构的学习打下基础。
【教学目标】
1.知识与技能:
(1)掌握分支选择结构实现条件判断控制。