《算法和程序设计》(浙教版)教材介绍.doc
文本预览下载声明
《算法与程序设计》(浙教版)教材介绍
2007年1月
计算机技术对社会和世界已经产生了深刻的影响。每个公民都要熟知这项技术以及它在家庭、学校、工作场所和社区所起的重要作用。由于这门技术的细节发展日新月异,因此要跟上这些技术的细节是困难的,而且常常是徒劳的。所以,这门课的学习必须注重本领域基本的科学原理和概念。
摘自《ACM高中计算机科学课程规范》
当今的高中计算机教学要么是将计算机作为其他学科的工具(字处理是为学英文,电子表格和数据库是商科的工具,CAD/CAM是技术教学的工具,数学软件包是数学和科学课的工具),要么就是讲授程序设计。这两种讲法都没有抓住计算机科学的本质,尽管两者都包括了训练方面。计算机科学课的学习应由一些最基本的一般概念组成,这些概念超越技术本身,并且是高中教育的一个基本组成部分。正是这些概念使学生们得以了解并有效地参与到现代世界中来。
摘自《ACM高中计算机科学课程规范》
目前,在高中计算机教师队伍中还有不少人是在其他领域里受的教育,他们很少有机会接受计算机科学方面的正规培训,有些完全是自学的。因此在实施具体教学过程之前,其中的大多数人还需接受某种正规培训,以更好地理解和掌握现代计算机科学的理念。
摘自《ACM高中计算机科学课程规范》
在教学过程中,要让学生们学会把一个算法看成是一个活生生的处理过程的一种精确描述,而这种处理可以由计算机、人或某种机器来实现。学生要学会设计简单的算法,并对这种算法的效率能做出粗略评价;要能够说明算法的基本构件,如顺序、选择和重复;也要能够认识算法的许多不同形式的表示,程序设计语言只是许多表示方法中的一种。
摘自《ACM高中计算机科学课程规范》
一、为什么《标准》要将这门课程列为选修模块
1.2003年4月教育部颁布了《普通高中课程方案》,方案强调提高学生“分析和解决问题的能力”。
同年,教育部制订的《技术课程标准》(信息技术部分)在课程目标中提出:“能熟练运用信息技术,通过有计划的、合理的信息加工进行创造性探索或解决实际问题”。要求是比较高的。
怎样培养学生分析问题和解决问题的能力,通过《算法与程序设计》课程的教学是达到这一目标的有效途径之一,这一点在《标准》起草小组中有了共识。
2.信息技术和数学两个《标准》起草小组曾两次在一起讨论,如何加强算法理念的教学。中科院张景中院士等人专门就“算法”列入教学内容提出了看法和建议。
3.算法在问题求解中的地位
问题空间
问题定义
问题定义
模型化
自然语言
伪代码
数学语言
数据结构设计
算法制定
自动数据转换
机器指令
程序设计语言
计算机实现
编码
问题定义
模型化
自然语言
数学语言
计算机空间
4.基于问题求解驱动的算法课程设计的教学模式之一
注:在此处插入图2
二、教材编写思路
早先,在高中计算机课程中,不少学校曾试验过程序设计语言的教学,较多时间介绍该语言所用的符号、语句和规则等,在讲解编程举例时也讲一点算法,用来作为语言应用实例。实际上这是一种本末倒置。为此,我们尝试在教材中强调算法在解决问题过程中的关键地位,得到了教育部评审专家的肯定。审查意见认为:“突出了“算法”的核心地位,有一定特点,可以探索使用。”
1. 尝试新的教材体系
著名的计算机科学家Kunth认为:计算机科学是算法的学习。瑞士科学家Wirth给出公式:算法+数据结构=程序。
算法是程序设计的依据,而程序设计语言只是算法描述的手段之一。为此,我们在教材中花了相当多的篇幅,以问题解决为核心,用较易理解的自然语言和流程图语言来描述算法,让学生充分体验算法的作用,并逐步建立起算法思维的理念和方法。有了上述基础再讲“算法实现(编程、上机)”就比较自然了。
2. 几种常用算法的介绍
枚举(蛮干)、解析、排序、查找、递归。
这几种算法在学习、生活和工作中是大量遇到的。
(1)枚举算法。
教材介绍了两个例子,其中关于“单据”的实例比较有趣,而第二个例子是解不定方程,解不定方程技巧性很强,但用计算机进行枚举搜索却比较容易,学生也易于理解。
(2)解析算法。
将问题归结为数学表达式,并通过计算机来实现问题求解,是学生较易接受的。困难点可能是如何归结出表达问题的数学表达式。
(3)排序和查找算法。
“排序和查找”在学校学习中被大量运用,学生会排序,但不知道如何用计算机来排序;用计算机检索资料对有些学生来说是轻而易举的事,但他们可能不知道资料为什么会这么快被查到。
显示全部