《2019-2020年高中信息技术 教材教学指导用书 算法与程序设计 广东版选修1.doc》由会员分享,可在线阅读,更多相关《2019-2020年高中信息技术 教材教学指导用书 算法与程序设计 广东版选修1.doc(33页珍藏版)》请在装配图网上搜索。
2019-2020年高中信息技术 教材教学指导用书 算法与程序设计 广东版选修1
“算法与程序设计”是高中信息技术课程的选修模块,以问题解决与程序设计为主线,揭示利用计算机解决问题的过程。学生通过本模块的学习“体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一种程序设计语言编制程序实现算法、解决问题。” ① 中华人民共和国教育部. 普通高中技术课标准(实验). 人民教育出版社,2003,19页
“本模块的教学,应注意与数学课程中有关内容的衔接,要强调理论与实践的结合,引导学生注意寻找、发现身边的实际问题,进而设计出算法和计算机程序去解决这些问题。教师要注意发现对程序设计有特殊才能的学生,根据具体情况为他们提供充分的发展空间。本模块强调的是通过算法与程序设计解决实际问题的方法,对程序设计语言的选择不作具体规定。” ② 同上,1页
课程标准中,本模块主题组成结构如下:
程序设计语言初步
算法与程序设计
计算机解决问题的基本过程
算法与问题解决例举
图2.1 “算法与程序设计”主题结构图
本教学指导在沿用课程标准中主题内容的前提下,为进一步增强对实际教学的指导作用,对主题结构作了些调整,两者的关系如图2.2所示。
利用计算机解决问题的基本过程
算法与程序实现
程序设计基础
程序设计思想和方法
计算机解决问题的基本过程
程序设计语言初步
算法与问题解决例举
图2.2 调整前后主题间的关系图
调整后的模块由四个主题组成,四个主题在知识结构上以螺旋上升方式展开。
“利用计算机解决问题的基本过程”主题旨在呈现人是如何利用计算机解决问题,解决问题需要经历哪些基本过程。教学中应注意让学生结合生活与学习提出问题,从身边简单问题入手亲历分析问题、设计算法、编写程序、解决问题的过程。应注意结合数学课程中算法这一部分知识,让学生进一步了解算法,学会用不同的方法描述算法,了解算法、程序、程序设计语言之间的关系,认识算法和程序设计的地位和作用。本主题是整个模块学习的引入,为过渡到其它主题的学习打下基础。
“程序设计基础”主题旨在呈现如何用计算机语言进行程序设计。教师可以根据学生需要选择一种语言,并以该语言为载体,让学生理解数据在计算机中是如何表示与处理的,了解程序设计基本方法,初步掌握顺序、选择、循环三种基本结构,体验程序设计的实践过程,同时了解程序设计语言的编译程序、连接程序等基本知识。
“算法与程序实现”主题旨在通过解析法、穷举法、排序和查找、递归等常用算法的程序实现,让学生进一步理解算法,进一步掌握程序设计基础知识,在体验算法思想与程序设计过程中,培养逻辑思维能力,塑造良好的认知结构。可以组织学生探讨需解决的问题与其相应算法之间的关系,尝试归纳算法与程序设计应用的一般规律,讨论使用计算机程序设计解决问题的优势和局限性等。
“程序设计思想和方法”主题是对前三个主题内容的提升,旨在引导学生理解结构化程序设计思想,探究如何用结构化程序设计方法解决问题。了解面向对象程序设计的思想、方法和关键技术。通过引导学生亲历软件的开发过程,对算法与程序设计的思想与方法形成一个相对完整且比较准确的认识,为将来的学业发展奠定基础。
在教学过程中,应注意“知识与技能”、“过程与方法”、“情感态度与价值观”三维课程目标的相互联系与相互渗透,进而提升学生的信息素养,促进学生信息技术能力的立体发展。
第一节 利用计算机解决问题的基本过程
课程内容标准
1.结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。
2.经历用自然语言、流程图或伪代码等方法描述算法的过程。
3.在使用计算机解决实际问题的过程中,通过观看演示、模仿、探究、实践等环节,了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。
程序设计语言产生与发展
问题的认识和形成
算法的概念、特征与作用
算法的描述
程序和程序设计
算法与程序设计关系
利用计算机解决问题的基本过程
问题和算法
算法和程序
程序和程序设计语言
问题的分析与算法设计
一、 内容结构图
图2.3 “利用计算机解决问题的基本过程”主题内容结构图
二、学习目标细目表
学习内容
学习结果的行为指标(当学生获得这种学习结果时,他们能够)
问题的认识和形成
结合生活与学习的实例说明利用计算机解决问题的必要性
从已有的知识与经验中例举出人工解决困难而利用计算机能够快捷解决的问题
问题的分析与算法设计
了解利用计算机解决问题的基本过程
了解问题分析与算法设计间的关系
模仿分析简单问题的已知条件、要解决的问题以及问题与条件之间的关系,写出输入、求解、输出过程的步骤
算法的概念、特征与作用
结合数学课程中学习的算法知识,说出自己对算法的理解
说出算法的五种特征,举例说明算法特征的含义
了解算法特征在解决问题过程中算法选择的作用
算法的描述
结合数学课程中学习的算法知识,用自然语言、流程图、伪代码描述算法
算法与程序设计关系
用自己的语言描述算法与程序设计间的关系
程序和程序设计
描述程序概念和解释程序的作用
结合实例描述顺序、选择、循环三种基本结构的单步程序执行方式
画出三种程序基本结构的流程图
程序设计语言产生与发展
说出程序设计语言产生与发展过程
了解程序设计语言的功能,针对简单问题设计一套可以解决该问题的人工语言(不超过5条指令)
例举出三种以上高级语言的名称
三、重点难点分析
(一)重点分析
1. 利用计算机程序设计解决问题的必要性,建立问题意识。
程序设计是运用计算机解决问题的一种方式,有些问题,如:数值、逻辑等问题适合于通过程序的方式解决。教学中应注意引导学生从生活与学习实例出发,认识与举证可以通过运用计算机程序设计得到高效解决的问题,让学生深切地感受利用计算机程序设计解决问题的必要性,引发学习本模块的兴趣和动机。
2. 利用计算机解决问题的过程。
提出问题
分析问题
设计算法
编写程序
调试程序
得到结果
图2.4 利用计算机解决问题流程
利用计算机解决问题流程如图2.4所示,教学中选择一个学生运用已有知识能够解决的实例,教师通过演示等手段协助学生亲历实例问题的分析、设计算法、把所要解决的问题转化成的程序输入到计算机、经调试后让计算机执行这个程序,最终达到利用计算机解决问题的过程。让学生了解和体会流程中每一步骤的含义,为展开整个课程学习打下基础。
3. 算法的基本概念,使用自然语言、流程图、伪代码描述算法。
学生通过高一数学知识的学习,已有算法知识的储备,结合计算机工作方式,让学生进一步了解算法,进一步学会使用自然语言、流程图、伪代码描述算法。
4. 程序的基本结构
学生通过高一数学知识的学习,已经了解了算法的三种逻辑结构和流程图,程序的基本结构与之相对应,是程序设计的基础。让学生尝试体验程序三种结构的计算机执行方式,加深对三种基础结构的了解。
5. 程序设计语言
程序设计语言是人利用计算机解决问题的载体,让学生充分认识程序设计语言,通过计算机语言的发展历程,感受计算机技术的发展。
(二)难点分析
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)提出问题:求两个正整数的最大公约数。
“更相减损之术”算法程序
Private Sub Form_Click()
Dim m As Long, n As Long, r As Long
m = Val(InputBox("输入整数1"))
n = Val(InputBox("输入整数2"))
If m < n Then r = m: m = n: n = r
r = m - n
Do While r <> 0
If r < n Then
m = n
n = r
Else
m = r
End If
r = m - n
Loop
Print "最大公约数为:"; n
End Sub
给出两个正整数12、16,如何求它们的最大公约数?大家可以口算出最大公约数是4,如果给出的两数是2678945、465,又如何求呢?
(2)通过介绍解决问题的经典算法,让学生体验算法思想
“更相减损之术”及其算法思想:我国古代数学家对公约数求解问题进行了研究并提出了算法,称之为“更相减损之术”,其方法是以两数中较大的数减去较小的数,获得的差与原先较小的数构成新的一对数,再以大的数减去小的数……如此循环,用同样的方法操作,直至产生一对相等的数,该数即为最大公约数。
以求12、16这两个数的最大公约数为例,具体操作如下:
(12,16)(12,4)(8,4)(4,4)
4是12和16的最大公约数。
“辗转相除法”及其算法思想:古希腊数学家对公约数求解问题研究提出的算法称为“辗转相除法”(欧几里得算法)。具体方法是用较大的数除以较小的数,余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则较小的数就是最大公约数。
“辗转相除法”算法程序
Private Sub Form_Click()
Dim m As Long, n As Long, r As Long
m = Val(InputBox("输入整数1"))
n = Val(InputBox("输入整数2"))
r = m Mod n
Do While r <> 0
m = n
n = r
r = m Mod n
Loop
Print "最大公约数为:"; n
End Sub
以求288和123的最大公约数为例,具体操作如下:
(288,123)(42,123)(42,39)(3,39)
3是288和123的最大公约数。
(3)引导学生用自然语言描述完成两种算法的思想
设给定的两个正整数为m和n,“更相减损之术”算法描述如下:
①输入两个正整数m和n;
②若m
4800 Then
Label1.Left = -xx
End If
End Sub
②调色器
图4-6 调色器
Private Sub HScroll1_Change()
Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)
End Sub
Private Sub HScroll2_Change()
Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)
End Sub
Private Sub HScroll3_Change()
Picture1.BackColor=RGB(HScroll1.Value,HScroll2.Value,HScroll3.Value)
End Sub
③正弦曲线
Private Sub mand1_Click( )
Scale (-5,5)-(5,-5)
For x= -5 to 5 step 0.01
Y=sin(x)
Pset (x,y),vbBlue
Next
End Sub
3.通过程序的操作过程,总结出可视编程的一般步骤,为后继程序设计的学习奠定操作基础。
分析:案例采用实践教学法,让学生输入与制作曾经解决过问题的程序及其界面,熟悉程序设计开发环境的使用,了解可视编程的一般步骤。突出程序设计理论与实践相结合的特色。同时选择一些趣味性的程序,激发学生兴趣与探索的欲望。
(二) 数据的表示与处理是程序设计中的重要环节,但初学者很难比较快的理解与掌握,需要一个过程。教师可以结合计算机的工作原理,讲解数据类型的含义;比较常量、变量与数学课程中相关概念的异同,以及数学运算符和表达式与程序中的运算符和表达式的异同;常用函数的使用方式,让学生初步了解概念,并通过后续的程序设计学习过程逐步深化理解与正确使用。
教学参考线索:数据类型常量与变量运算符与表达式常用函数。
(三)顺序结构、选择结构、循环结构程序设计是计算机程序设计基础,是学生程序设计学习必须通过的一道关卡,教学方式可以采用问题教学法。教学中应时时关注不同基础的学生,设计不同难度的问题,使不同基础的学生都有自己的收获,让每一个学生都能体验用程序设计方式解决问题的过程与快乐。
三种结构教学参考线索:
顺序结构:问题引领顺序结构程序设计思想赋值语句、输入输出语句顺序结构程序实现实践解决问题。
选择结构:问题引领选择结构程序设计思想条件语句、多重选择语句选择结构程序实现实践解决问题。
循环结构:问题引领循环结构程序设计思想FOR循环语句、DO循环语句循环结构程序实现实践解决问题。
案例2.5 循环结构程序设计教学
1.通过一个比较简单的又能体现循环思想问题。将教学重点放在循环结构的程序实现方式,让学生能够比较轻松地接受循环结构程序设计思想。
例:假如你从今年开始,1月份为“希望工程”存入1元钱,2月份存入2元钱,3月份存入3元钱……依次类推,问:两年时间你将为“希望工程”存入多少钱?
教师:让学生分析问题,写出问题求解的步骤;
教师:分析问题求解步骤中的循环结构,引出FOR循环语句的格式;
教师、学生:用FOR循环语句编写程序,实现问题的解。
教师:变换问题,如果要计算多少月“希望工程”储蓄才能多于500元,该怎样办?引出DO While/Loop语句的使用。
学生:用DO While/Loop语句编写实现程序。
2.通过一个有一定思维难度的问题,让学生进一步体会循环结构的算法与程序设计思想。
例:菲波拉契数列表示的是这样一列数:0,1,1,2,3,5,……,后一项等于前两项的和,输出这个数列的前30项。
教师:引导学生分析问题
设置30个变量:A1,A2,A3,……,A30,表示菲波拉契数列的前30项,设Ai-2,Ai-1,Ai分别表示数列中连续的三项,则
Ai=Ai-1+ Ai-2
由这个递推关系式可知,只要已知这个数列的前两项,就能输出后面的所有项。
教师:引导学生进行算法设计,变量类型的定义,逐渐让学生理解程序设计中变量类型的概念。
解法1:思考使用3个简单变量求得数列各项的值,分析变量初值设置,哪些操作需要反复执行。
解法2:思考使用数组变量存放数列各项,引入数组的使用,分析算法步骤。
学生:画出算法流程图
教师、学生:进行两种算法的程序设计,比较简单变量与数组变量的使用区别,比较两程序实现上的差异及各自程序的优缺点,同一算法思想可以有不同方式的程序实现,每人可以有自己的程序设计风格,激发学生的创新意识。
解法一程序:
Private Sub mand1_Click()
Dim a1 As Long, a2 As Long, a3 As Long, i As Integer
a1 = 0
a2 = 1
List1.AddItem a1
List1.AddItem a2
For i = 3 To 30
a3 = a1 + a2
List1.AddItem a3
a1 = a2
a2 = a3
Next i
End Sub
解法二程序:
Private Sub mand1_Click()
Dim a(50) As Long, i As Integer
a(1) = 0
a(2) = 1
List1.AddItem a(1)
List1.AddItem a(2)
For i = 3 To 30
a(i) = a(i - 1) + a(i - 2)
List1.AddItem a(i)
Next i
End Sub
教师:引导学生进行简单界面设计如图,为了能利用滚动条拉动查看结果,引入listbox控件的使用。
3.学生上机实践程序,解决问题。
分析:案例通过难易不同的两道例题展开循环结构程序设计的教学,既让学生掌握了循环语句的使用,又让学生掌握循环结构程序设计思想。顺序结构与选择结构的教学也可以借鉴这种教学方式。
(四) 设计多种形式的课内外活动,帮助学生理解程序,学习程序设计。教学中可以适当分层,使每一个学生都树立学习的信心。
例1:通过阅读程序,写出程序运行结果,说明程序的功能,上机实践,理解程序。
例2:通过给出问题的算法分析与部分流程图,补充完善流程图与程序,熟悉程序设计过程。
例3:设计与课堂类似问题,模仿分析,设计程序。
例4:对学生的要求,允许有不同层面的掌握:(1)理解三种基本结构程序设计思想与方法;(2)设计程序解决简单的问题;(3)能够透过已有的经验,分析解决较复杂的问题。
课程内容标准
1.解析法与问题解决
(1)了解解析法的基本概念及用解析法设计算法的基本过程。
(2)能够用解析法分析简单问题,设计算法,编写程序求解问题。
2.穷举法与问题解决
(1)了解穷举法的基本概念及用穷举法设计算法的基本过程。
(2)能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。
3.查找、排序与问题解决
(1)了解数组的概念,掌握使用数组存储批量数据的基本方法。
(2)通过实例,掌握使用数据查找算法设计程序解决问题的方法。
(3)通过实例,掌握使用排序算法设计程序解决问题的方法。
4.递归法与问题解决
(1)了解使用递归法设计算法的基本过程。
(2)能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。
第三节 算法与程序实现
一、内容结构图
解析法
穷举法
查找与排序
递归法
解析法基本概念
解析法与问题解决
穷举法基本概念
穷举法与问题解决
排序算法
查找算法
递归概念
递归法与问题解决
算法及程序实现
图2.6 “算法与程序实现”内容结构图
二、学习目标细目表
学习内容
学习结果的形为指标(当学生获得这种学习结果时,他们能够)
解析法基本概念
理解解析法基本思想,结合实例说明用解析法设计算法的基本过程
解析法与问题解决
运用解析法分析问题,寻找问题中各要素之间的关系,用数学表达式表示它们的关系
写出解决问题的解析步骤,编写程序实现,并能通过运行程序求得问题的正确解
穷举法基本概念
列举出能够用穷举法解决的问题的特点
穷举法与问题解决
分析穷举问题的枚举主线,设计恰当的变量与循环结构进行枚举,正确写出符合问题解的条件判断语句
分析不同穷举方案的效率,选择效率高的方案,设计算法、编写程序,求得问题的全部解
查找算法
掌握使用数组存储批量数据的基本方法
理解顺序查找思想,写出顺序查找算法步骤,使用顺序查找算法编写程序解决查找问题
理解二分查找算法思想,写出二分查找算法步骤,例举出能够用二分查找法解决的问题并编写程序解决之,如:猜数、求一定范围内方程解等问题
比较顺序查找算法与二分查找算法所解决问题的特点
排序算法
描述了解一到两种经典排序算法及其排序步骤,如:冒泡排序、插入排序、选择排序
至少使用一种经典排序算法,设计程序解决排序问题
递归概念
理解递归思想与递归的数学意义,说明递归程序的执行方式
递归法与问题解决
使用自定义函数与子过程编写程序
掌握递归程序的实现方法,能够使用递归法设计、解决简单递归问题,并能编程实现之
三、重点难点分析
(一)重点分析
1.解析、穷举、排序、查找、递归算法思想
用数学公式描述客观事物间的数量关系,是人们解决问题时最常用的方法之一。解析算法通过分析问题中各要素间的关系,用数学表达式表示它们的关系,找到了这些表达式,问题也就得以解决。解析法是程序设计中最常用的算法之一。
穷举法按问题本身的性质,将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有对象后才能得出问题的所有解。
排序是计算机程序经常要用到的基本算法,也是日常应用问题中经常用到的数据处理方法。排序方法有许多种,如:冒泡排序、选择排序、插入排序。教学中可以选择其中的一种或两种让学生体验其运用过程。
查找是一种查询技术,查找的方法有许多,顺序查找与二分查找是比较简单的查找算法,教学中可以通过日常经验,如:快速猜某一商品价格,理解二分查找思想,推出其算法步骤。
递归算法是一种直接或间接调用自身的算法。在计算机编写程序中,递归算法可以解决一大类问题。
通过这些算法的学习,进一步理解算法与问题之间的关系。
2.解析、穷举、排序、查找、递归算法的程序实现
通过解析、穷举、排序、查找、递归算法的程序实现,使学生进一步掌握程序设计方法,进一步体验算法思想并扩展算法思维,进一步理解问题、算法、程序设计间的关系。
(二)难点分析
1.递归算法的理解与程序实现
通过经典递归问题分析,如:汉诺塔问题,了解递归问题的特点;通过分析递归程序,了解程序应该如何编写;通过递归程序的执行,了解递归程序计算机执行效率。帮助学生体验递归算法程序。
2.算法的延伸
引导学生了解更多的算法,尝试归纳算法与程序设计应用的一般规律。
四、教学活动建议
本节是信息技术新课标“算法与程序设计”模块中的亮点,以往程序设计课程过多重视程序设计能力和编程技巧,新课标则重视程序设计的整体结构及思想方法。学生通过第2节的学习和实践,初步掌握了编程方法,但更多的是处于模仿编程阶段。算法是程序设计的灵魂,通过本节解析、穷举、排序、查找、递归算法的程序实现,使学生的程序设计能力从模仿为主过渡到创造为主,创造性地运用已有的知识,构造算法解决实际问题。在进一步理解程序设计基本知识基础上,帮助学生“建立尽可能合理的算法与程序设计的认知结构,学会用程序设计的思想方法解决问题,培养学习程序设计的兴趣爱好,为学生将来的发展提供该领域的知识与能力准备。”③田俊华、李艺. “程序设计”课程目标的认知结构解析. 《课程教材教法》2005年12期
由于个体经验、悟性、能力等原因,学生在这一部分的学习中会出现差异,教学中应关注学生的个性差异,在达到基本要求的前提下允许差异的存在。同时,一个问题的解决有许多种算法,中学生处于思维最活跃的阶段,教学中应多关注学生的想法,鼓励创造性的分析,创造性地构造算法。教学中多采用多样性的教学方式与手法,如:创设情境、程序演示等,把自主学习、合作探究、研究性学习等方式引入课堂教学,激发学生的学习热情,以兴趣带动学习。
(一)解析法是一种学生熟悉的分析方法,教学应注意从学生已知的问题切入,寻求数学解决方法,从数学的解决方法变换到程序解决是一个需求创造的思维过程。如何使学生在分析中迁移知识,在分析中创新,是教学的一个很有意义的难点。
案例2.6 用解析法解决问题教学设计
教学线索:解析法思想问题引领问题讨论、设计算法编写程序实践程序、解决问题灵活应用
1.从学生熟悉的例子引入解析法概念。如:数学、物理学习中的问题,日常生活中的实例。在教师引导下,让学生举例,体会解析法的核心思想。
2.通过实例完整地体验解析法解决问题、编写程序的过程。
例1:画出如图2.7所示的钻石图案。
学生:分组讨论,探究找出求解问题的解析表达式,给出算法方案,尝试编写程序,提出解决不了的问题或疑问。
教师:让各组同学交流起来,分析各组学生在分析过程中的创新点,解决学生讨论中的问题,指导学生完成算法的设计,编写程序。
分析:该例建立在学生的数学知识基础上,又有一定的趣味性,学生通过原有的知识能够找出描述求解问题的解析表达式,从而达到知识的迁移。
3.让学生实践程序,解决问题。这一过程中,学生可能会遇到各种编程问题、程序错误等,教师应当帮助学生学会纠错,或通过典型的错误的 2.7 钻石图案
讲评,提高学生程序调试能力。
(二)穷举法也是处理问题的常用方法之一。用人工的方式解决穷举的问题,当需要穷举的次数增多时将无法完成。教学中注意选择能够体现计算机优势的穷举问题,让学生强烈地感到该问题只有用计算机才能很好地解决。穷举问题的穷举策略很重要,如何设计恰当的穷举变量,如何设定恰当的变量穷举范围,如何进行判断减少穷举的次数、提高穷举效率,这需要一个循序渐进的学习过程,其间也将迸发出学生的各种创新思维。教师可以多组织小组讨论活动,注意抓住学生思维中的闪光点展开教学。
教学参考线索:穷举法思想问题引领问题讨论、设计算法编写程序实践程序、解决问题灵活应用。
(三)查找问题在生活中很常见,教学应注意从学生的生活经验切入算法的教学。查找算法有许多,顺序查找与二分查找可以作为教学的重点,也可以让学生了解其它查找思想和方法,扩展学生思维。
教学参考线索:数组的定义与使用顺序查找的思想和解决方法二分查找算法查找算法应用探究活动。
(四)排序是司空见惯的问题,如何通过计算机实现呢?学生可能会觉得问题很简单,但却不知如何下手解决。先让学生展开讨论,可以发现现实生活中的排序方法有多种,总结出排序步骤,并迁移到排序程序的设计中。
案例2.7 排序算法
教学线索:分组讨论如何进行排序选择一种排序方法进行详细教学实践排序程序 举例多种排序算法思想。
1.让学生讨论如何进行排序,总结学生提出的排序方法。
2.选择一种排序方法进行详细教学。
例:选择排序算法与程序实现
问题:有n个数,将他们按其值从小到大的顺序输出。
教师:从学生已有的经验入手,引导学生分析问题,推出算法,获取算法设计的经验。
第一步:从小规模数据入手
如有10个数: 5 2 8 12 3 45 1 9 24 10
设10个数存放在:a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) a(9) a(10)
第二步:设a(1)单元存放10个数中最小数,如何完成呢?
学生:一种朴素的想法将a(1)与其后面的a(2)到a(10)数进行比较,记下最小数所在的位置k,交换a(1)与a(k);
第三步:接下来,设a(2)单元存放剩下9个数的最小值,如何完成?
第四步:如此类推……,即可实现排序,此算法思想称为选择排序。
教师:引导学生结合程序设计思维设计能够编程实现的算法步骤。
(1)数据存储设计:设数组a(n)存放n个数,类型为实型;变量t用于数据交换时的过渡变量,类型为实型;变量k用于记录最小数所在的位置,类型为整型;变量i 、j用于循环变量,类型为整型;
(2)设计循环i从1到n-1;
(3)最小值初始位置k=i;
(4)设计循环j从i+1到n;
(5)若a(j)
下载提示(请认真阅读)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
文档包含非法信息?点此举报后获取现金奖励!
下载文档到电脑,查找使用更方便
9.9
积分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
-
2019-2020年高中信息技术
教材教学指导用书
算法与程序设计
广东版选修1
2019
2020
年高
信息技术
教材
教学
指导
算法
程序设计
广东
选修
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
链接地址:https://www.zhuangpeitu.com/p-2360843.html