第1节 利用计算机解决问题的基本过程
上传: 陈艳艳 更新时间:2012-5-11 12:51:22
第1节 利用计算机解决问题的基本过程
算法与程序设计
“算法与程序设计”是高中信息技术课程的选修模块,以问题解决与程序设计为主线,揭示利用计算机解决问题的过程。学生通过本模块的学习“体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法、解决问题。” “本模块的教学,应注意与数学课程中有关内容的衔接,要强调理论与实践的结合,引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决这些问题。教师要注意发现对程序设计有特殊才能的学生,根据具体情况为他们提供充分的发展空间。本模块强调的是通过算法与程序设计解决实际问题的方法,对程序设计语言的选择不作具体规定。” 课程标准中,本模块主题组成结构如下
图2.1 “算法与程序设计”主题结构图
本教学指导在沿用课程标准中主题内容的前提下,为进一步增强对实际教学的指导作用,对主题结构作了些调整,两者的关系如图2.2所示。
图2.2 调整前后主题间的关系图
调整后的模块由四个主题组成,四个主题在知识结构上以螺旋上升方式展开。
“利用计算机解决问题的基本过程”主题旨在呈现人是如何利用计算机解决问题,解决问题需要经历哪些基本过程。教学中应注意让学生结合生活与学习提出问题,从身边简单问题入手亲历分析问题、设计算法、编写程序、解决问题的过程。应注意结合数学课程中算法这一部分知识,让学生进一步了解算法,学会用不同的方法描述算法,了解算法、程序、程序设计语言之间的关系,认识算法和程序设计的地位和作用。本主题是整个模块学习的引入,为过渡到其它主题的学习打下基础。
程序设计基础”主题旨在呈现如何用计算机语言进行程序设计。教师可以根据学生需要选择一种语言,并以该语言为载体,让学生理解数据在计算机中是如何表示与处理的,了解程序设计基本方法,初步掌握顺序、选择、循环三种基本结构,体验程序设计的实践过程,同时了解程序设计语言的编译程序、连接程序等基本知识。
“算法与程序实现”主题旨在通过解析法、穷举法、排序和查找、递归等常用算法的程序实现,让学生进一步理解算法,进一步掌握程序设计基础知识,在体验算法思想与程序设计过程中,培养逻辑思维
能力,塑造良好的认知结构。可以组织学生探讨需解决的问题与其相应算法之间的关系,尝试归纳算法与程序设计应用的一般规律,讨论使用计算机程序设计解决问题的优势和局限性等。
“程序设计思想和方法”主题是对前三个主题内容的提升,旨在引导学生理解结构化程序设计思想,探究如何用结构化程序设计方法解决问题。了解面向对象程序设计的思想、方法和关键技术。通过引导学生亲历软件的开发过程,对算法与程序设计的思想与方法形成一个相对完整且比较准确的认识,为将来的学业发展奠定基础。
在教学过程中,应注意“知识与技能”、“过程与方法”、“情感态度与价值观”三维课程目标的相互联系与相互渗透,进而提升学生的信息素养,促进学生信息技术能力的立体发展.
二、学习目标细目表
学习内容
学习结果的行为指标(当学生获得这种学习结果时,他们能够)
·结合生活与学习的实例说明利用计算机解决问题的必要性
问题的认识和形
·从已有的知识与经验中例举出人工解决困难而利用计算机能够快
成
捷解决的问题 ·了解利用计算机解决问题的基本过程
问题的分析与算
·了解问题分析与算法设计间的关系
法设计
·模仿分析简单问题的已知条件、要解决的问题以及问题与条件之
间的关系,写出输入、求解、输出过程的步骤
·结合数学课程中学习的算法知识,说出自己对算法的理解
算法的概念、特
·说出算法的五种特征,举例说明算法特征的含义
征与作用
·了解算法特征在解决问题过程中算法选择的作用 算法的描述
·结合数学课程中学习的算法知识,用自然语言、流程图、伪代码描述算法
算法与程序设计
·用自己的语言描述算法与程序设计间的关系
关系
·描述程序概念和解释程序的作用
·结合实例描述顺序、选择、循环三种基本结构的单步程序执行方
程序和程序设计
式
·画出三种程序基本结构的流程图 ·说出程序设计语言产生与发展过程
程序设计语言产·了解程序设计语言的功能,针对简单问题设计一套可以解决该问生与发展 题的人工语言(不超过5条指令)
·例举出三种以上高级语言的名称
三、重点难点分析
(一)重点分析
1. 利用计算机程序设计解决问题的必要性,建立问题意识。
程序设计是运用计算机解决问题的一种方式,有些问题,如:数值、逻辑等问题适合于通过程序的方式解决。教学中应注意引导学生从生活与学习实例出发,认识与举证可以通过运用计算机程序设计得到高效解决的问题,让学生深切地感受利用计算机程序设计解决问题的必要性,引发学习本模块的兴趣和动机。
利用计算机解决问题的过程
图2.4 利用计算机解决问题流程
利用计算机解决问题流程如图2.4所示,教学中选择一个学生运用已有知识能够解决的实例,教师通过演示等手段协助学生亲历实例问题的分析、设计算法、把所要解决的问题转化成的程序输入到计算机、经调试后让计算机执行这个程序,最终达到利用计算机解决问题的过程。让学生了解和体会流程中每一步骤的含义,为展开整个课程学习打下基础。
1. 算法的基本概念,使用自然语言、流程图、伪代码描述算法。
学生通过高一数学知识的学习,已有算法知识的储备,结合计算机工作方式,让学生进一步了解算法,进一步学会使用自然语言、流程图、伪代码描述算法。 2. 程序的基本结构
学生通过高一数学知识的学习,已经了解了算法的三种逻辑结构和流程图,程序的基本结构与之相对应,是程序设计的基础。让学生尝试体验程序三种结构的计算机执行方式,加深对三种基础结构的了
解。
3. 程序设计语言
程序设计语言是人利用计算机解决问题的载体,让学生充分认识程序设计语言,通过计算机语言的发展历程,感受计算机技术的发展。
(二)难点分析 1. 算法的特征
算法的特征对初学者而言较难理解,教学中尽可能通过具体问题的算法分析、程序分析,让学生感悟出算法的特征,为进一步学习分析问题、选择算法打下基础。 2. “好”算法的标准
算法设计除正确性外,还应考虑其高效性、可读性、健壮性,学生在开始时是做不到的,但可以让学生知道需要从不同角度分析问题,才能不断改进算法,并通过实践形成这种良好习惯。 四、教学活动建议
本节是算法与程序设计课程的入门。学生通过对“信息技术基础”部分的学习,已经具备了一定的信息加工、处理与交流的基础,知道使用计算机解决问题的方式多种多样,而程序设计是其中的一种。学生在高一数学课程的学习中,也已经学习了一些算法的基础知识。因此,本节的教学应注意在学生原有知识与学习经验基础上,引导学生进一步学习算法、程序设计的相关知识,体会算法与程序设计在计算机解决问题过程中的地位与作用,比较完整地认识利用计算机解决问题的过程。在教学过程中应注意活动方式的多样性,通过比较、探究、讨论、交流等活动激发学生的学习热情,培养学生的学习兴趣,引导学生学会自主创新学习,培养良好的学习方法与学习能力。
算法与程序设计
一)通过例举生活与学习中需要用计算机解决的问题,如有关数值、逻辑等方面的问题,让学生认识问题,形成问题意识,感受利用计算机解决问题的必要性。 案例2.1 感受计算机解决问题的必要性
教师:提出线性方程组问题,不断增加方程数量,让学生解决。
现象:当方程数量少时,学生能够通过人工方法求解,但随着方程数量的增多,人工求解显得无能为力。
教师:展示计算机高效求解方程组的过程。
教师:提出8 皇后问题,让学生找出符合条件的方案。
现象:学生能找出一些符合条件的方案,但要找出所有符合条件的方案显得无能为力。 教师:展示计算机高效地找出所有方案的过程。
教师:提出生物课中学到的遗传基因问题,为什么生物课人工只分析到第二层或第三层? 教师:展示遗传基因问题的计算机分析过程。
学生活动:尝试从生活与学习提出需要用计算机解决的问题,展开讨论。 教师:回归主题,感受利用计算机解决问题的必要性。
分析:案例中教师没有直面告知学生利用计算机解决问题的必要性,而是通过实例让学生不断地感受人工求解问题的局限性与计算机求解问题的优势,并通过学生的充分讨论,让学生潜移默化地感受到利用计算机解决问题的必要性。
(二)利用计算机解决问题过程的教学是课程入门阶段,教师需要根据学生特点把握好度,为学生后继学习打下基础。教学中要注意的问题是:人在计算机解决问题过程担任什么样的角色;如何利用计算机解决问题;利用计算机解决问题与人解决问题有何区别;利用计算机解决问题的优势是什么;算法与程序设计解决什么样的问题。因此,选择什么样的问题切入是教学成功与否的关键所在。 案例2.2 利用计算机解决问题的过程教学设计参考
教学线索:选择问题à让学生体验利用计算机解决问题的过程->展开讨论
1.选择问题:选择问题的难易程度应根据学生的整体水平,由于是开篇教学,不宜太难,应源自学生已有的知识与经验,并能与后继内容的学习形成呼应。
例1:求一元二次方程ax2+bx+c=0的根。该问题比较简单,利用计算机解决问题过程的每一阶段易于理解。 例2:“韩信点兵”问题,“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1 人、5人一列余2 人、7人一列余4 人、13人一列余6 人……刘邦听后茫然不知其数,你能说出有多少兵士?”该问题能够体现利用计算机解决问题的特点及相对人工解决问题的优势,当条件少时可以人工求出,当条件多时利用计算机解决就显示出其优势。 例3:借助高一学生正在学习函数图像知识的背景,从演示画学生熟悉的y=x2函数图像的程序入手,提出如何利用计算机画各种函数图像的问题。该问题从学生已有的知识和人工画图经验出发,引导学生理解计算机画图的过程,唤起学生的求知欲望和学习兴趣。
分析:对初学者而言,例2、例3利用计算机解决的过程有一定的复杂性,教学中需要循循善诱,把握好教与学的互动关系。
2.让学生体验利用计算机解决问题的过程 (1)引导学生探究
分析问题的已知条件、隐含条件、要解决什么、它们之间的关系,通过分析问题,写出问题的求解过程,将其步骤化,设计算法。
(2)让学生体验利用计算机求解过程
给出对应于算法的程序,引导学生打开并执行程序,体验计算机运行程序的过程。 (3)引导学生画出利用计算机解决问题的流程图。 3.展开讨论
(1)讨论人与计算机在利用计算机解决问题的各个阶段中各自扮演的角色;
(2)讨论编写程序解决问题与使用现成软件解决问题的差别,针对不同问题选择不同的解决手段; (3)讨论生活中解决问题的过程步骤,让算法思想溶于日常生活中。
(三) 对初学者而言,理解算法的概念、特征、作用需要一个过程。可以通过呈现一组比较简单的现成算法,让学生逐步掌握算法的思想。通过一个问题的不同算法的比较,让学生感悟算法的特性。
案例2.3 算法的基本概念
1.算法的概念与特征
(1)提出问题:求两个正整数的最大公约数。
给出两个正整数12、16,如何求它们的最大公约数?大家可以口算出最大公约数是4,如果给出的两数是2678945、465,又如何求呢?
(2)通过介绍解决问题的经典算法,让学生体验算法思想
“更相减损之术”及其算法思想:我国古代数学家对公约数求解问题进行了研究并提出了算法,称之为“更相减损之术”,其方法是以两数中较大的数减去较小的数,获得的差与原先较小的数构成新的一对数,再以大的数减去小的数……如此循环,用同样的方法操作,直至产生一对相等的数,该数即为最大公约数。
以求12、16这两个数的最大公约数为例,具体操作如下 (12,16)->(12,4)->(8,4)->(4,4) 4是12和16的最大公约数。
“辗转相除法”及其算法思想:古希腊数学家对公约数求解问题研究提出的算法称为“辗转相除法”(欧几里得算法)。具体方法是用较大的数除以较小的数,余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则较小的数就是最大公约数