[推荐学习]高中信息技术 第4章算法与程序设计教案 选修1
- 格式:doc
- 大小:16.81 KB
- 文档页数:4
一、教材分析
1、本章的作用和地位
本章是算法与程序设计模块的重点。
学生在必修模块中对程序设计的概念有了初步的了解,然后在本模块前面的章节加深了对程序设计语言VB的认识,对设计程序解决问题作了一些实践,积聚了初步的编程经验,本章把这些原始的编程经验上升到“算法”的高度,把以模仿为主的编程实践过渡到以创造为主的程序设计过程。
算法在程序设计中占有重要的地位,算法是程序设计的核心,被比作程序设计的灵魂。
算法强调按照逻辑顺序进行程序设计的过程和步骤,因此,算法的学习和掌握,有利于培养学生的逻辑思维能力。
程序设计在计算机应用中处于比较高端的位置,要纯熟掌握自由主义的技巧去解决问题,需要一个不断学习、总结的过程。
因此,学习程序设计,除了本身的价值外,对于陪养终生学习的习惯和建立正确的学习方法将起到很好的作用,为学生形成良好的学习惯奠定基础。
2、本章主要内容介绍
掌握编程技术是信息社会的建设者的基本素质。
本章通过解决具体的问题方式,介绍了一些常见的算法。
但本章所介绍的算法仅仅是算法的一部分,实际上,算法的种类远不止这几种。
而且,问题的解决并不都是依靠单独的一种算法就能完成的,多数情况是,需要配合使用几种算法才能达到整个目的。
也就是说,算法存在多样性、复杂性等特征,这些特征有利于学生形成对算法的正确认识,从而提高利用算法来解决问题的能力,所以,在实际教学中需要对这些内容给予关注。
本章设置了6节内容。
“4.1 用解析法设计程序”。
本节介绍了主要靠列出解析式来解决问题的方法。
这种得法对工程技术界是常见的。
解析式的导出可能需要专门的知识,本节只探讨了一些在程序设计中常见的问题解析解法。
更深入的探究可能需要“计算方法”的专门学问。
“4.2 用穷举法设计程序”。
本节介绍的算法是比较容易理解,算法也相对直观。
人们解决问题时,通常都会考虑用穷举法,但没有计算机帮助时,穷举法所需要的计算量往往令人望而生畏,但应用穷举法设计程序解决问题,则显得游刃有余。
应用计算机作穷举法,关键是穷举过程的设计。
“4.3 查找得法设计”。
本节介绍了顺序文件查找的思路,还介绍了一种非常有用的数据结构――数组。
从这一节开始,我们有意识地留下一些在进行程序设计实践时常常会遇到的问题让同学们自己解决,有时例子中给出的程序亦非尽善尽美,我们希望在教师的引导下,同学们能够通过讨论和探索找到解决问题的途径。
这种发现和排除错错误的能力,是进行程序设计所必不可少的。
“4.4 排序算法设计”。
本节介绍了选择排序和拖入排序两种常见的排序算法。
这两种排序算法是庞大的排序算法家族比较粗浅的,效率不高,但比较容易理解,因此在数据量不太多的场合,应用还是很广泛的。
“4.5 递归算法与递归程序”。
本节介绍的是一种直接或间接地调用自身程序段的算法,这是本章介绍的算法中比较抽象的。
递归算法一般并不直接给出问题的解答,而是只在最初的简单情况下给出了解答,然后通过自身的调用,把所有的情况都归结到最初的情形。
必须注意的是,递归程序中对自身的调用一定是有条件的,否则递归过程不可能正常结束。
“4.6 问题求解综合活动”。
算法不是孤立的,更不是静止的,要设计程序解决实际问题,往往需要整合多种算法并且加以创新。
本节进行了一个综合实践活动,以期让同学们在学习了一定的算法基础知识之后,了解这个整合和创新的过程,加深对算法的认识。
这里选择了一个很有实用价值也有一定难度的问题――两个很大整数的如何相乘。
本节给出了解答的过程,但本节最后得出的程序却并非尽善尽美的,因为我们想留有一些空间让同学们发挥,以增加他们发现错误和排队错误的能力。
本章是在同学们对算法语言和程序设计有了基本的认识之后进行的,在问题提出→问题分析→寻找算法→设计各种程序→调试(测试)程序的问题求解过程中突出了算法的主线。
在算法的主线之下,本章对VB语言在语法方面的知识也作了必要的补充。
这些语法知识主要是顺序文件和数组。
然而,这些是程序设计中十分有用的内容,在教学过程中必须充分注意。
3、重点难点分析
教学重点:
(1)理解算法的思想。
了解寻找恰当的算法在问题求解的过程中的作用和地位。
学会在算法层次加深对问题的理解。
(2)掌握解析法、穷举法、顺序查找和对半查找法、比较排序和插入排序法、递归等算法的基本思路,算法思想应用于程序设计实践之中。
这是学习程序设计的一个十分重要的步骤。
(3)学会以顺序文件为代表的文件操作。
与各种文件打交道,是计算机应用于实际的重要途径。
(4)理解数组的概念,能够在程序设计中熟练应用数组。
数组是一种重要的数据结构,在许多算法语言中,它还是实现栈、队列、链、表、指针等其他数据结构的工具。
运用数组的熟练程度,一定程度上体现了程序设计的水平。
教学难点:
(1)建立抽象的算法设计和具体的程序代码之间的联系,使学生形成一个正确的设计程序解决问题的方法,是本章的一个很重要的目标。
但这个过程比较抽象,从而也就相当困难。
(2)查找算法、排序算法、递归算法在理解上都会有一些困难,讲述过程不要操之过急,要让学生真正理解算法的过程。
(3)过程中量的作用域,形参与实参之间值的传递方式,这是过程调用中必然出现的问题,也是一个容易隐含错误的地方,务必加以充分的注意。
(4)最后一节的问题求解综合活动是比较困难的,在面上教学时要把握难度。
但对于选修“算法与程序设计”模块的同学,他们对程序设计有较浓厚的兴趣和较高的期望,应当帮助他们克服困难,帮助他们完成这个综合活动,使他们的程序设计能力有较大的提升。
二、教学建议
本章内容多,要求高,但课时也相对较多。
因此要求循序渐进地把各环节的内容都讲好,让学生真正掌握这些算法的思想,提高设计程序求解问题的能力。
1、学情分析
一般来说,学生在必修模块第一次接触程序设计的概念,然后在本教材前面的章节中对VB语言有了更多的了解,也学习了设计程序求解问题的基本方法,掌握了一些设计程序的技能,对程序设计有了初步的兴趣。
但很有可能的是,同学之间出现了的差异,特别是在一个班的同学中可能有的同学在初中甚至小学阶段就学习过程序设计的知识,其设计程序有了相当的能力;但可能有一些同学只在本教材中才首次接触程序设计这回事,对一些稍有难度的问题,设计程序总有些力不从心。
因此,本章的教学过程必须注意同学的反应,及时调整教学策略。
2、教学策略
学生在编程技术领域的学习中,由于经验、悟性等原因,谢谢会表现出较大的差异。
而且,算法本身也是一个比较抽象的内容,算法设计带有较强的创造性,这样会给教学造成许多困难。
在实际教学中,教师应当采取一些有效的办法(如课前让学生填写调查问卷、与个别学生访谈或者课堂上注意收集学生的反馈等等),关注学生群体的和个体的学习特点,在保证全体学生达成基本目标的基础上,教师可以根据学习内容设立多级学习目标和多样的学习方式,让学生在参与合作中相互学习并发挥自己的优势和特长,学有所得。
并且,老师在具体的教学过程中,尽量在教学的直观性上有所创新、有所突破,让学生听得明白学得懂。
(1) 教师可以围绕教学目标进行创设情景、使用教具、编制程序演示算法的细节和先进步骤,让学生在容易理解的情景中充分理解教材中内容和算法的基本思路,学习到算法的精髓。
(2) 由于算法的抽象性和思辨性,教学过程更加强调学生的主动参与。
老师应在教学活动中注意激发学生学习的热情,注意把自主学习、合作探究、研究性学习等方式引入课堂教学。
教师要引导学生通过讨论、分析、思考和探索等方式,结合视频教学、案例学习、问题驱动及交流展示等教学活动,帮助学生理解和把握算法的基本思路,让学生领略其内涵。
当发现学生的程序出现错误,老师应当善于利用,引导学生找出错误产生的原因和改正错误的方法,这往往会有事半功倍的效果。
(3)本章正文内容设置了多个栏目,如:“任务”、“交流”、“探究”等,是依据认知活动过程设置的,意在帮助学生理清学习线索,有助于教师组织教学活动。
教师可以参考这些栏目设置展开教学活动,引导学生阅读和理解所学内容并参与活动。
三、教学评价
本章学习评价主要针对对算法思路的理解和转化为程序代码的能力,兼顾对VB语法的掌握和程序的调试能力。
四、课时分配建议
教学内容建议课时数
第一节用解析法设计程序 2
第二节用穷举法设计程序 2
第三节查找算法设计 2
第四节排序算法设计 2
第五节递归算法与递归程序 2
第六节问题求解综合活动 2。