第一篇:教案算法与程序设计思想
算法与程序设计思想
【课标要求】
(一)利用计算机解决问题的基本过程
(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. 回顾小结
师生共同总结算法设计的过程,就是将大脑思维的每一步都记录下来,并且用计算机能达到的功能来实现人解决问题的思路。
『最后带领学生总结本节课的中心思想,即回答“算法设计的过程是怎样的?”这一问题。使整节课有了一个明确的结论。』
第二篇:算法与程序设计思想
《算法与程序设计思想》教学案例1
一、教学目标 1.知识与技能:
求一批数据中最大值的算法设计思想,并将算法的设计思想用流程图表示出来。2.过程与方法:
利用现实生活中比较身高的活动,以及对武术比赛中“打擂台”流程的逐步梳理,让学生学会从此类生活实际中提炼出求最大值的思想方法,即算法思想。
培养学生分析问题、解决问题的能力,让学生学会在面对问题时能梳理出解决问题的清晰思路,进而设计出解决某个特定问题的有限步骤,从而理解计算机是如何解决、处理某种问题的。
3.情感、态度与价值观:
让学生全身心地投入到教学活动中,积极与同伴合作交流,进行探索活动。培养学生良好的思维品质,发展他们的创新思维,并养成积极的学习态度和良好的学习习惯。
创设情境,以激发学生的学习兴趣。努力营造一个可以接纳的、支持性的、宽容的课堂学习环境,让学生置身于民主和愉悦的课堂氛围中放飞思维、潜心研究、快乐创造。
二、教学重点、难点 教学重点:建立求一批数据中最大值的算法设计思想,并将此算法设计思想用流程图表示出来。
教学难点:上述重点问题同样是本课教学的难点。另外,如何把人解决问题的思路、步骤用计算机语言描述出来也是本课的难点之一。
三、教学对象分析
高一年级的学生。他们已具备了一定的观察、思考、分析和解决问题能力,也已有了顺序结构、分支结构、循环结构等知识的储备。因此,对于如何将解决问题的思路画成流程图,学生已有一定的基础,但可能还不很熟练,尤其对刚学过的循环结构,教师在课堂上要注意引导。
四、教学策略及教法设计
利用现实生活中比较一组学生身高这一事件,引导学生去发现求最大值的一种方法。如何设计求一批数据中最大值的算法?我认为让学生自己去经历整个探究过程,要比直接把现成的算法告诉学生有意义得多。它能迅速、有效地帮助学生建立程序设计思想。在完成这个任务的过程中,教师的循循善诱起到了非常关键的作用。找出一批数据中的最大者,从表面上来看是一个很简单的问题。在比较数的过程中,人因为动用了眼睛,比较大小的思维过程一闪而过,所以能很快求出一批数据中的最大值。而计算机与人不同,它对这些数据看不见、摸不着,怎么来完成这一任务呢?其实,计算机解决问题的关键,就是要把人解决问题的思维过程用计算机语言描述出来,即为大脑思维的每一步“拍照”。这是计算机程序设计教学的一个重点,也是一个难点,需要教师在教学过程中逐步引导和训练学生,使学生逐渐学会分析问题,寻求解决问题的方法和步骤。本案例运用生活中“打擂台”的实例引导学生分析求最大值的方法,通过对这一现象的分析,逐步引出求最大值的算法设计思想。1 孙朝霞.从生活中探究和建立程序设计思想——《算法与程序设计思想》教学案例.中小学信息技术教育,2005(12)
五、教学过程 1.情境创设 师(提问): 今天在第一排就座的有10 多位同学,谁是我们第一排在座各位中的最高者呢?
师(引导): 大家思考,通常这个任务我们是怎样去完成的? 教师根据学生对问题的回答进行分析。引导学生往古时候比武时常常采用的“打擂台”的方式上想,提示学生可参考电视上经常播放的“挑战主持人”节目。
师生: 打擂的过程可以描述为:
(1)确定一个擂主(讨论第一个擂主是如何确定的);(2)挑战者上台;
(3)擂主和挑战者比较;
(4)挑战者胜的话,挑战者做擂主,否则擂主卫冕;(5)重复执行(2)~(4)步骤,直到最后一个挑战者。
师: 在打擂的过程中,我们看到(2)~(4)步骤是要重复做的,所以我们该怎么办呢?
生: 需要循环结构来实现。
师: 这几个步骤序列重复到什么时候结束呢?由学生讨论结束的办法,很显然,需要在最后加上一个能判断什么时候结束的判断框。
根据讨论的步骤,最后师生共同得出打擂台的算法和流程图(如图1)。
2.求一般情况下的最大值的算法 师(引导): 如果我们面对的是一堆数据,现在希望我们求出这一堆数据中的最大值该怎么办?通过教师和学生的共同分析,把问题进一步细化为:
(1)从第一个数据开始看起;
(2)把第一个数据的值在变量中记下来;(3)再取一个数据;
(4)比较这个数据与变量中记下的数据的值;
(5)如果这个数据的值比记下的数据的值大,则去掉变量中原来那个数据,记下新数据的值;
(6)重复执行(2)~(4),继续比较,直到最后一个数据。也就是说,计算机的变量始终记着当前比较过数据中的最大者(我们不妨用X 表示它),当取完最后一个数据时,X 中留下的也就是最大值了。
求最大值的算法设计思想用图2 表示。
注意:
a.再次让学生讨论变量的意义,弄清赋值语句的意义。
b.一些物理量用变量表达的意义。如X 表示最大值,X 表示输入的一个值,且每次循环时都用同一个变量X。
c.为了控制循环结束,必须加入一个控制循环次数的计数器I,当I 达到一定的次数后,循环工作结束。
3. 回顾小结
师生共同总结算法设计的过程,就是将大脑思维的每一步都记录下来,并且用计算机能达到的功能来实现人解决问题的思路。
第三篇:算法与程序设计教学思想
算法与程序设计教学思想
在高中阶段开设信息技术课程的基本目的是进一步提高学生的信息素养,使他们能适应社会发展的需求,为信息社会培养合格的人才。本课程力图通过信息的获取、加工、管理、表达与交流等各类信息实践活动,掌握信息技术,感受信息文化,增强信息意识,内化信息伦理。要达到这一目的,必须为学生建构起一个利于他们提高信息素养的良好学习和实践环境。
根据教育部制订的普通高中课程标准编写的,由浙江教育出版社出版的高中信息技术教科书(实验),经全国各地多年来的试用,积累起了比较丰富的教学实践经验。在浙江教育出版社积极倡导、支持,教科书编写人员不懈努力和广大任课教师的热情参与下,多次开展了卓有成效的教学交流活动。例如,教师用书的编制与修订,优秀教案选编的出版,开展教学资源竞赛等等,都为教科书的使用和课程教学质量的提高作出了有益的贡献。
总的说来,上述各项活动都比较侧重于解决如何教的问题,受益的对象基本局限于教师范围。但是,我们更主要的任务是如何使广大同学直接受益,如何为广大高中同学创造一个便于进行自主学习信息技术课程的辅助学习的平台,通过这一平台来掌握高中课程范围内的信息技术基础知识和基本技能。使同学们能根据自己的基础、特长和兴趣,学会创造性地利用信息技术解决学习和生活中的实际问题。《高中信息技术辅助教学平台》(计算机光盘版)就是为这一目的开发和编制的。为了使信息技术课程的教学能全面贯彻教育部制订的课程标准精神,使广大任课老师在教学过程中有所参照,也为了减轻老师们的备课负担,更主要的是为了激发同学们学习本课程的积极性,能循序渐进地掌握信息技术的基础知识、基本技能和相关的应用能力。“平台”的设计是以“教案”或“学案”的形式呈现的。
信息技术辅助教学平台共分六个模块,分别是:信息技术基础、算法与程序设计、多媒体技术应用、网络技术应用、数据管理技术、研究与探索(机器人活动和信息学活动)。前5个模块按32课时来安排内容。任课老师可按本校生源、设备、师资条件的实际情况进行适当调整。
根据本“平台”的设计目标及其所肩负的任务,前5个模块的基本结构栏目为:课标理解、教材分析、教法实践、知识货架、素材下载等项。
课标理解:以课程标准为依据,提出对本单元教学内容在课程中的作用和地位的理解,使教师和学生的信息技术教学活动更符合课程目标。
教材分析:指明本课时的学习目的,基本教学内容,需要掌握的学习重点和要解决的难点。对部分重点或技术难点提供简明动画,帮助同学理解。
教法实践:根据教学内容,提出教学流程或教学方法,进行讨论交流、实践体验、综合探究等实践活动;通过实例演示或练习(含拓展练习),对同学反馈的知识、技能进行评价。知识货架:是本模块、本章、本节、本课涉及的知识和概念的汇编,供教师和同学查阅。
素材下载:为教师备课提供相关素材内容;为学生的学习、作业、练习准备必要的素材,以节约学生时间,提高学习效率。其中有些内容是为了拓展教师和学生的视野提供帮助。
《算法与程序设计》是高中信息技术课程的选修模块。由于算法与程序设计在解决问题过程中所起的关键作用,因此,它被各地学校广泛地选修,这也为本模块教学积累起了比较丰富的经验。本模块所担负的主要任务是:让学生体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用,并能对简单问题设计算法,初步学会用一种程序设计语言编制程序,实现算法,解决问题。
本“平台”汇集了丰富的算法与程序设计教学内容和相关素材。它可以用来帮助教师备课,进行课堂教学;也可以帮助学生学习,提高他们的学习兴趣,激发他们对未知领域积极探究的欲望和提高分析问题、解决问题的能力。本“平台”努力为学生提供一个较为优良的学习环境,促进学生主动学习,以充分发挥其主体潜能,为学生个性化学习开辟一个新领地。
《算法与程序设计》既有严谨的理论,需要对被解决的问题进行周密的分析,把问题模型化,又要有解决问题的科学的、严格的方法。具备算法理念,初步掌握算法的设计与分析方法是一件对学生终身有用的好事。本“平台”对“课标理解”、“教材分析”等5个基本栏目都有较详尽的叙述;对部分比较典型和难度较大的内容还配置了相应的Flash动画帮助师生们进行教和学。
问题求解存在于社会生活的各个领域,在“拓展学习”栏目中“平台”提供了许多来源于学习、生活、工作的算法设计实例,供学生课内或课后进行自主学习,以进一步形成算法理念,提高自己的算法设计和算法表达的能力。所有的示例程序、练习素材及辅助动画都可在“素材下载”栏目中找到,供下载,以节省师生的教学与学习的时间,提高效率。
由于“平台”是在实践教学经验基础上的一种再创作,难免有欠妥和不足之处。编者殷切祈望使用本“平台”的广大师生不吝赐教,以期不断总结经验,完善内容,改进形式,能更好地为广大师生服务,为提高教学质量作一点微薄贡献。
第四篇:算法与程序设计教案
第一课 初识算法与程序设计
一、教学目标
1、知识与技能
(1)理解算法的概念,培养学生自我探索信息,高效获取信息的能力;
(2)能初步利用算法解决简单的问题,培养学生的理论联系实际能力和动手操作能力。
2、情感、态度、价值观
学生在学习过程中,通过亲身经历体验获得对此算法的感性认识,培养学生自我获取信息、分析评价信息、、表达呈现信息的能力,进一步提高其信息素养。
二、教学重点难点
重点:算法概念的理解
难点:如何科学合理的选择和设计算法。
三、教学策略与手段
以趣味性问题设置情境,激发学生探索解决问题的兴趣,与学生进行互动探讨,通过Flash演示材料,比较直观地把抽象的问题简单化,使学生的思考逐步深入,从而总结出算法的概念,学会如何设计和选择算法,培养学生自主探究学习的能力。
四、教学过程(1课时)
(一)我们来共同寻找下面一些生活中比较现实的问题的解决方法。【问题一】天下真的有“不要钱的午餐”吗?
某一餐馆门口海报上写着“不要钱的午餐”,规则如下:在三个月内,来宾必须凑够五个人,五人每次来就餐必须按照不同的顺序坐,直到把所有可能的顺序都坐一遍,以后来吃饭就可永远免费”。于是有人想,这太容易了,每人每次坐不同的位置,吃五次不就行了?于是他就叫上自己的朋友参加这项活动,可是,吃了十次之后,还没有吃上免费午餐,这是怎么回事呢?
学生们感觉非常有意思,很快以小组为单位进行热烈的讨论并得出了破解问题的步骤:①第一个座位5个人都有坐的机会②第二个座位只有4个人中的任一个有坐的机会(一个人不能同时坐两个座位)③第三个座位只有3个人中的任一个有坐的机会④第四个座位只有2个人中的任一个有坐的机会⑤第五个座位只有1个人有坐的机会⑥计算:5×4×3×2×1=120⑦得出结论:需要吃120次才有可能吃上免费午餐。
【问题二】有三个和尚和三个妖怪过河,只有一条能装下两个人的船,在河的任何一方或者船上,如果妖怪的人数大于和尚的人数,那么和尚就会有被吃掉的危险。你能不能找出一种安全的渡河方法呢?请写一写你的渡河方案。学生:学生讨论回答。〖展示步骤〗
①两个妖怪先过河,一个妖怪回来; ②再两个妖怪过河,一个妖怪回来; ③两个和尚过河,一个妖怪和一个和尚回来; ④两个和尚过河,一个妖怪回来; ⑤两个妖怪过河,一个妖怪回来; ⑥两个妖怪过河。
【Flash动画展示】通过讨论和动画展示,我们可以知道,计算机解决问题和人解决问题一样需要有清晰的解题步骤。算法就是解决问题的程序或步骤。
(二)【课件展示】算法的概念:
1、广义的算法是指完成某项工作的方法和步骤,在我们日常生活中也经常使用算法,只是没意识到罢了。如:洗衣机的使用说明书是操作洗衣机的算法,菜谱是做菜的算法等等。
2、在数学中,现代意义的算法是指可以用计算机来解决的某一类问题的程序和步骤,这些程序或步骤必须是明确和有效的,而且能够在有限步之内完成。
【小试身手】按照这样的理解,我们可以设计出很多由具体数学问题解决一类数学问题的算
法.下面看一个例子:(要求学生自己考虑并写出具体的算法)
鸡兔同笼问题。一个笼子里有鸡和兔,现在只知道里面一共有17个头,48只脚,鸡和兔各有多少只?试设计一个求解的算法。
【设计意图】求解鸡兔的问题简单直观,却包含着深刻的算法思想。应用解二元一次方程组的方法来求解鸡兔同笼问题。
第一步:设有小鸡x只,小兔y只,则有
第二步:将方程组中的第一个方程两边乘-2加到第二个方程中去,得到,得到y=7; 第三步:将y=7代入(1)得x=10。
【变一变】在笼中有鸡、兔若干,已知有头a个,有脚b只,求各有多少只鸡和兔。
【师生合作】老师带领学生共同书写规范的算法的具体步骤,最后引出算法使用的范围:能解决一类问题,并且能重复使用。
(三)【课件展示】算法的基本特征
①有穷性 ②确定性 ③不唯一性 ④有效性(逻辑性)
1、有穷性:一个算法应该包含有限个操作步骤,而不能是无限的。
2、确定性:算法的每个步骤都应该是明确无误的,不能含义模糊,使执行者无所适从。
3、有零个或者多个输入,有一个或者多个输出
4、有效性:算法中的每一步都应该能有效地执行,执行算法最后应该能得到确定的结果。
【教学总结】
1、本节课通过一些生活中看似简单问题的解决方法和步骤,使学生比较轻松的接受了生活算法的概念,进一步理解了计算机算法的概念。
2、课堂教学的效益取决于学生对所学知识理解了多少,能否用所学知识来解决一些实际问题。本节课的设计突出讲与练的结合,培养学生的动手能力,并且引出学生对下一节课的内容的思考,比较顺利的完成了本节课的教学任务。
3、如何优化算法,找到算法的形式和用算法解决问题的效益的最佳结合点,还尚需探讨。
第五篇:算法与程序设计
《算法与程序设计》教学中实施研究性学习探步
作者:赵濮民
摘要:研究性学习是教育科研领域中一个崭新的课题。信息技术教学作为以培养创新精神、研究能力和实践能力为目标取向的必修课程,它强调让学生通过研究性学习,提出问题,收集材料,对研究性课题进行探索、分析、研究,最后基于问题解决模式,在实践操作中培养学生科学的态度和价值观以及创新精神、创新思维、创造能力,并学会解决生活中与信息技术学习有关的实际问题。职业学校的学生,不仅应具有独立接受知识的能力,更应具有独立探索知识的能力,由“研究性学习”补充原有的“接受式学习”,使学习方式更趋完善,只有当这两种学习方式结合起来,优势互补,才能使基础教育适应时代对人才培养的要求。
关键词:程序设计;研究性学习;求真;求全;求变;求新;优势互补
《算法与程序设计》是职业学校信息技术教学中的一个重点,也是难点。传统的程序设计教学以老师讲授型为主,由于算法与程序设计的内容逻辑性强,普遍认为在程序设计教学中难以实施研究性学习。
研究性学习是以“培养学生具有永不满足、追求卓越的态度,培养学生发现问题、提出问题、从而解决问题的能力”为基本目标,以学生从学习中获得作品设计与制作方法的困惑为方向,以在提出问题和解决问题的全过程中学习到算法与程序设计为学习方法的课程。经过反复研究,我们认为研究性学习可以应用于程序设计教学中。实施研究性学习的关键是要确定一个目标,要鼓励学生主动地发现问题,并且通过探究或实践活动去试图解决问题。在课题研究的过程中采用分组交流讨论、查阅资料、协作探究、归纳总结等方式,一步步引领学生深刻掌握算法与程序设计的精髓。
一、通过研究性学习,重构算法知识体系,要求真 研究性学习是学生在老师的指导下,结合真实生活,选定主题,然后搜集相关材料,对材料进行归纳、加工处理、分析、总结,得到相应结论的学习活动。在《算法与程序设计》教学中,根据教学内容,经过反复研究,确定了研究主题《搜索算法的应用研究》和《动态规划算法的解题应用研究》,并根据学生的自愿报名成立了两个研究小组。然后各小组根据自己研究的算法,重新整理相应的知识,对知识进行认知、归纳、总结。如《搜索算法的应用研究》小组,对搜索算法从以下几方面进行整理:
1、搜索算法的算法思想、分类;
2、深度优先搜索的算法思想与算法结构;
3、广度优先搜索的算法思想与算法结构;
4、深度优先搜索的优先策略;
5、广度优先搜索的优化策略;
6、深度优先搜索与广度优先搜索的异同。学生通过对搜索算法知识进行整理、分类、小结,加深了对搜索算法的理性理解与感性认知。
二、通过研究性学习,同学之间取长补短,要求全
每个学生都有所长,也有所短,研究性学习一个重要的特点就是:分工合作,共同讨论,共同提高,使参与的学生全面发展。我们的“搜索算法的应用研究”小组共有五个成员,根椐学生的特点、特长,对他们进行分工,每位学生研究上述其中一个问题,然后整个小组一起讨论,每位学生介绍自己的研究情况、研究成果,然后其他同学进行补充,发表自己的见解,这样每个同学都使自己的研究内容得到补充,同时也学习到了其他同学研究方面的知识,可以取长补短,共同提高,得到全面发展。
三、通过研究性学习,总结算法的应用规律,要求变
研究性学习的目的,是要求学生搜集与主题有关的资料,归纳整理相关资料,根据相关材料和知识,对主题进行研究,提出自己的观点或结论。我们在程序设计教学中进行算法专题研究也是这样,除要求学生归纳、整理专题算法知识外,还要总结出算法的应用规律、应用算法解题的步骤和算法的框架,能根据实际情况,随机应变。如在“动态规划的应用研究”中,学生总结出:动规划是解符合“无后效性原则”的最优问题的一种算法思想;用动态规划解题的一般步骤是:(1)判断题目是否为求最优问题,是否符合“无后效性原则”;(2)确定如果划分阶段;(3)确定每个阶段有几种状态;(4)找出状态转移方程和边界条件;(5)用算法语言实现算法过程。又如在“搜索算法的应用研究”中,研究小组的同学总结出:(1)广度优先搜索算法通常应用于解最少步数问题,而深度优先搜索算法则通常用来解所有路径问题;(2)深度优先搜索和广度优先搜索都是搜索算法,前者时间复杂度较大,而后者则占用的内存较大;(3)深度优先搜索在实现时用递归或用堆栈来实现,而广度优先搜索是用队列来实现,实现两种算法所用的数据结构不同;(4)深度优先搜索和广度优先搜索都是搜索算法,但两者的算法结构有较大的不同。学生通过自己对算法应用规律的总结,对算法的应用得到升华,进一步提高算法的应用能力和程序设计能力。
四、通过研究性学习,提高分析、归纳和综合能力,要求新
对算法的专题研究,不仅要对算法理论进行总结,算法应用的研究也是很重要的一方面,通过算法的解题应用,既提高了学生分析问题的能力,也加深了学生对算法的理解,提高了学生的算法应用能力,进而得到对学生创新能力的培养。另外,我们在算法研究过程中,要求学生透切理解算法内容,用算法语言准确描述算法,通过这种途径,进一步加深学生对算法的理解,同时也提高了学生的算法表达能力和归纳、总结的能力。
通过对算法进行专题研究,可以进一步加深学生对算法知识的理解,也可以提高学生的算法应用能力和程序设计能力。实践告诉我们:在整个研究过程中要注意以下几个问题:
1、课题不宜太大。研究课题的确定是研究性学习实施过程中重要的一环,课题选择恰当与否,直接关系到整个课题研究的成败。在程序设计教学中进行研究性学习活动,选题要遵循下面的原则:(1)课题的范围不宜太大;(2)有一定的应用价值;(3)结合学生的实际。一个好的开始是成功的一半,在研究性学习活动中也是如此。
2、要理论研究与算法应用相结合。对算法的专题研究,算法应用是重点。在算法知识归纳总结的基础上,重点应研究算法应用的一般规律、算法结构、应用算法解题的一般步骤等。不应该只是对算法理论的空洞论述,否则效果不好、意义也不大。
3、充分发挥教师的引导作用、学生的主体作用。在算法研究活动中,应充分发挥教师的引导和指导作用,既不能放任自由,也不能包办代替,要充分发挥学生的主体作用。当学生遇到问题和困难时,老师应当引导和启发学生,让学生去探索和研究,而不是直接告诉学生答案,老师始终是学生的引导者,学生是真正的参与者,使学生通过算法研究,加深对算法的理解,提高算法应用能力和程序设计能力。
职业学校的学生,不仅应具有独立接受知识的能力,更应具有独立探索知识的能力,由“研究性学习”补充原有的“接受式学习”,使学习方式更趋完善,只有当这两种学习方式结合起来,优势互补,才能使基础教育适应时代对人才培养的要求。