算法与程序设计模块

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法与程序设计模块的教材介绍
一、教材的编写思路
“算法与程序设计”模块是普通高中信息技术课程的选修模块,是作为计算机应用的技术基础设置的。

本教材的编写是以教育部《普通高中信息技术课程标准》为依据,为教师和学生的信息技术教学活动提供指导,目的是使学生在掌握与使用计算机技术解决问题的过程中,以“算法和程序设计”为主线,从遇到的问题出发,进而分析问题、发现问题的本质,选择和设计相应的算法,介绍程序设计语言,编写程序,最终解决问题。

在整个程序设计的过程中,问题的解决是按照一定的步骤、一定的逻辑思维方式和方法来进行的,其中体现了软件工程的基本思想。

虽然在课程标准中没有体现软件工程的思想,但在教材编写中,加强了对这种系统思想的关注。

二、教材的内容特色
本教材的教学内容结合了高中学生的生活和学习实际设计问题,让学生在活动过程中掌
握应用信息技术解决问题的思想和方法;然后进一步体验算法思想,了解算法和程序设计在
解决问题过程中的地位和作用;能从简单问题出发,设计解决问题的算法,并能初步使用一
种程序设计语言编制程序实现算法解决实际问题。

1.从解决学生实际生活中遇到的问题入手,由浅入深,注重解决问题的一般过程。

以学生实际解决生活中遇到的问题入手,由浅入深,建立分析问题和解决问题的一般思路。

第一单元以搭乘计程车为例,从分析问题到设计算法,从自然语言到伪代码和流程图的实现,掌握解决问题的一般方法和步骤。

教材采取了两种互相交替的内容编列策略:一是知识引领,活动穿插,在学习知识原理中安排一些小型活动来练习技能;二是任务引领,知识渗透,在解决问题的过程中适时地学习方法和技能。

这两种策略的有机结合有助于提高课程教学的整体成效,做到学习效率与效果的有机统一。

2.以过程和方法引领,发展信息技能的应用迁移能力
信息技术教学的核心应该是培养信息素养与发展技术能力,而不是对具体某一工具操作的训练,因此本教材注意以过程和方法引领,利用浅显、生动的例子介绍Java程序设计语言为示范,强调算法思想以及应用程序解决问题的方法,鼓励师生根据实际条件选择合适的程序设计语言,有助于发展信息技能的应用迁移能力。

本书的前两单元,应用算法简单、程序结构也比较简单,例如,学习语法之前先让学生运行一个用记事本编好的计程车计费程序,先看运行结果,再进一步深入学习。

然后,运用Textpad 软件界面调试运行简单的Java程序,由浅入深,将入手困难的Java语言,用浅显、生动的例子串起来,让学生学起来感觉很轻松。

对于已经具有VB、VFP或Qbasic使用经验的教师来说也不困难。

后面关于算法的内容,注重的是算法分析和算法设计的方法,无论选择哪种程序设计语言并不重要,有了算法,只要熟悉一种编程语言就可以很快迁移到其他语言环境中。

3.加强学科之间的联系,为信息技术与学科教学融合服务
我国中小学正在开展以实施新课程标准为特征的课程教学改革,普遍提出了与信息技术
整合的要求,本教材力图为信息技术与学科教学融合服务,积极与其他学科教学相呼应,并
进行适当渗透。

一方面,以其他学科知识作为信息技术学习的任务情景,另一方面,注意引
导学生将新学的信息技术即时应用、迁移到其他学科学习中,帮助学生在信息技术与学科学
习的有机整合中协调发展。

例如教材第二单元,结合数学、物理等学科的有关内容,提供了方程求解、数列求和、自由落体问题等小案例,帮助学生理解模块化程序设计的基本思想,了解顺序、选择、循环三种基本结构及其作用,学会使用一种面向对象程序设计语言,初步掌握程序调试、运行的方法。

第三单元中,根据课标提出的几个经典算法,对学生来说枯燥乏味,本教材尽量将经典问题用现代案例引入,赋以学生感兴趣的内容。

如生活中常遇到的储蓄利息、个人所得税征收、校园歌手大奖赛、画一个五角星、运动会成绩排名、分析奥运会乒乓球比赛规则变化的影响、“最受关注的竞赛项目”投票等。

帮助学生了解算法的基本概念,通过查找、排序及递归等算法的分析和应用,探讨待解决的问题与算法之间的关系,尝试归纳算法与程序设计应用的一般规律,引导学生将所学的信息技术应用、迁移到解决实际问题当中。

4.以综合性、实践性的问题解决为教学和学习线索,落实课程的培养目标
本教材以实际案例和面向实际的问题情景作为教学和学习的线索,将学生的信息技术学习与应用有机融合到实际问题解决过程中,实现学生问题解决的认知过程、信息活动过程和技术应用过程的有机结合。

引导学生在动手操作、自主探究和解决问题的过程中把“学技术”与“用技术”融合在一起,主动理解知识、掌握技能、发展能力,全面提升学生的信息素养。

教材以建立北京2008奥运这一主题网站为主线,贯穿全书。

在全书各章节中都渗入“科技奥运”的主题任务,如奥运比赛成绩分析、比赛分组、运动会成绩排名、体育场馆人员疏散问题、你最喜欢的奥运项目投票等。

最后一个单元以奥运主题网站作为开发软件项目的尝试,把前面几个单元中已经学过的算法和程序设计案例就顺理成章地运用到项目中来,同时激发学生对Java特效网页的创作热情,在网页中嵌入从网上下载的Java倒计时显示、时间特效、奥运图片相册,以及参加奥运国的国旗、国歌等现成的小程序。

在软件开发的过程中,用规范的思想加以指导,让学生经历软件开发的全过程,通过问题分析体验算法思想,最终学会有效解决复杂的实际问题,既巩固和提高了程序设计语言的使用,又鼓励学生的个性化特点和创新精神,培养了学生运用算法分析和高级语言设计程序来解决问题的能力。

三、教材的单元分析
第一单元走进编程
学习目标
1.知识与技能
(1)了解利用计算机解决问题的基本过程,即经历分析问题、确定算法、编程求解,从而认识算法和程序设计在其中的地位和作用。

(2)初步掌握使用自然语言、流程图或伪代码等描述算法的方法。

(3)了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。

(4)了解程序设计语言、编辑程序、编译程序、连接程序以及Java程序开发环境等基本知识。

2.过程与方法
(1)学会分析哪些问题需要编写计算机程序来解决,并初步经历计算机解决问题的基本过程。

(2)通过观看演示程序、解析一个完整程序的实践等环节,逐步探索使用计算机解决实际问题的过程与方法。

3.情感态度与价值观
(1)体验程序设计的内涵及魅力,产生对程序设计的求知欲,形成积极主动地学习算法与程序设计的态度。

(2)逐步养成严谨、科学的程序设计思想。

(3)能遵守与程序设计相关的伦理道德与法律法规,负责任地使用信息技术。

体系结构
本单元分为四节。

首先,结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。

其次,在经历用自然语言、流程图或伪代码等方法描述算法的过程后,能通过模仿、探究等方式,了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。

在此过程中,了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。

本单元的体系结构如表1-1所示。

表1-1 第一单元的体系结构
本单元教学为5学时,建议学时分配为:第一节1学时,第二节2学时,第三节1学时,第四节1学时。

根据教学内容的不同可适当采用不同的教学方法。

第一节解决问题的一般方法
首先从解决问题的一般方法出发,通过带领学生对于若干问题的分析,帮助学生了解使用计算机解决问题的三种方法,即使用计算机现有的工具软件解决、编程解决以及利用人工智能技术解决,从而引出算法的思想与程序设计的概念。

学生经过学习,能够确定哪些问题需要编写计算机程序解决,并通过经历计算机解决问题的基本过程,理解程序设计的含义。

第二节解决问题的算法设计
通过一个生活中的实例,即计程车计费问题,从提出问题入手,带领学生分析该问题,学习如何设计算法并使用自然语言、伪代码和流程图等方法描述算法。

通过知识回顾的方式,强调面向过程的三种结构(顺序结构、分支结构、循环结构),实现与信息技术基础模块相关知识的衔接。

第三节算法的程序实现
以面向对象的程序设计语言Java为例,实现第二节中计程车计费的程序设计。

通过详细介绍完成程序的一般流程(编辑、编译、调试、运行),使学生经历一个完整的通过编程实现问题求解的过程。

在此过程中,介绍Java程序开发环境的一些基本知识、编辑软件TextPad的使用等。

第四节程序设计语言简介
首先介绍计算机程序设计语言的发展历程,以及常用高级程序语言的特点,继而提出选
择合适的程序设计语言的原则。

由于人们对于网络应用程序的要求越来越高,特别是需要能在不同的操作系统上运行的应用程序,而Java的出现正迎合了这种跨平台应用程序的需求,由于Java众多特性使得它成为当今最具活力且最具有网络应用优势的编程语言。

这也正是本教材选择Java作为编程示例语言的原因。

第二单元程序设计基础
学习目标
1.知识与技能
(1)掌握Java程序的组成结构,能熟练编辑、运行、调试Java程序。

理解常量、变量、数据类型等概念,熟练使用运算符书写表达式。

(2)会使用Java语言实现顺序、选择、循环三种控制结构。

(3)理解模块化程序设计的基本思想,能运用这一思想解决问题。

(4)熟悉对象、属性、事件、事件驱动等概念并学会运用,掌握面向对象程序设计的基本思想和方法。

掌握运用Java语言绘制简单图形的基本方法。

2.过程与方法
(1)通过编程,学生掌握设计程序的过程,即根据任务确定算法,再编写程序并调试。

(2)学生在教师的引导下,完成几个较复杂的程序设计,从而对设计程序的方法有更深刻的理解。

(3)通过对自己和他人设计的程序进行评价,开拓设计思路。

3.情感态度与价值观
(1)对程序设计的方法、过程及思想体系有一个感性认识,感受程序设计的巨大内涵,激发学习兴趣。

(2)对计算机程序的组成、编译、运行形成正确的认识,形成良好的程序设计思想,养成正确的程序设计习惯。

体系结构
本单元分为七节,主要介绍了程序设计的基础知识,包括Java程序的组成结构、数据类型、变量、常量、表达式,以及三种程序控制结构语句(顺序、选择、循环),给出模块化程序设计、面向对象程序设计的基本思想,引出了对象、属性、事件、事件驱动等概念。

本单元体系结构如表2-1所示。

表2-1第二单元的体系结构
本单元教学为16学时,建议学时分配为:第一节1学时,第二节2学时,第三节2学时,第四节3学时,第五节2学时,第六节3学时,第七节3学时。

根据教学内容的不同可适当采用不同的教学方法。

第一节数据及其运算
本节主要涉及概念性的知识。

通过学习,学生应掌握Java程序的基本组成结构,理解常量、变量、数据类型的概念,正确书写表达式,能为程序中的数值数据选择正确的数据类型。

第二节顺序结构
顺序结构是最基本的程序控制结构,本节通过对程序的分析,使学生了解程序包括输入、处理以及输出三部分。

学会使用几种数据输入与输出的方法。

第三节分支结构
本节从一个判断正整数奇偶性的实例出发,引出分支结构。

要求学生掌握Java语言中
的两种分支语句(if语句、switch语句)的使用方法。

要求学生根据不同情况,采用合适的分支语句,以及会使用条件运算符。

第四节循环结构
分支使程序中的某一部分语句不被执行,而循环却使某些语句执行多次。

通过本节的学习,学生学会使用for语句、while语句、do…while语句实现循环。

能针对具体问题,选择适当的循环语句加以解决。

本节还涉及到了二维数组、字符串和随机函数等知识。

第五节方法与模块化程序设计
结构化程序设计是程序设计领域中的一个重要思想,Java语言虽然是面向对象的,但人们在具体进行程序设计时,仍能见到结构化程序设计的身影。

结构化程序设计的核心思想就是问题分解,即将问题分解成相对独立的小任务(模块),最后组合在一起。

模块与模块之间通过参数传递数据。

本节首先要让学生理解模块化的编程思想,然后学习在Java语言中
如何定义并调用方法。

第六节面向对象程序设计初步
Java是一种面向对象的程序设计语言。

在面向对象的程序设计中,一切事物都是对象,每个对象都属于某种类型。

本节通过实例介绍面向对象程序设计的基本步骤,让学生体验面向对象设计程序的基本思想,领悟面向对象程序设计的基本方法。

第七节图形用户界面的程序设计
本节首先介绍有关利用Java处理图形与图像的基本知识以及绘制图形、显示图像的步骤和方法,然后介绍Java处理事件的基本方法和利用线程编程的一般步骤,最后通过实例介绍实现Applet特效的基本方法。

图形界面的程序设计内容丰富多彩,能很好地实现人机交互,开发出的应用程序也比较生动、能吸引人。

尽管利用Java开发基于图形界面的程序技术要求较高,教材还是增加了这方面的内容,希望能引起学生学习程序设计的兴趣。

第三单元算法与问题解决
学习目标
1. 知识与技能
(1)了解解析法的基本概念及用解析法设计算法的基本过程。

能够用解析法分析简单问题,设计算法,编写程序求解问题。

(2)了解穷举的基本概念及用穷举法设计算法的基本过程。

能够根据具体问题的要求,使用穷举法设计算法,编写程序求解问题。

(3)了解递归的基本概念及使用递归法设计算法的基本过程。

能够根据具体问题的要求,使用递归法设计算法、编写递归函数、编写程序、求解问题。

(4)掌握使用数组存储批量数据的基本方法。

(5)初步掌握使用数据查找算法与排序算法设计程序解决问题的方法。

2. 过程与方法
(1)经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法在其中的地位和作用。

(2)能从日常生活、学习中发现或抽象出可以利用算法与程序设计来解决的问题,归纳利用算法与程序设计解决问题的一般规律。

(3)能对自己和他人设计的算法与程序进行优化,开展合作,运用算法与程序设计解决实际问题和进行创造性探索。

(4)在问题解决中体会算法多样性与复杂性,培养算法思维与批判思维,感悟使用程序设计解决问题的优势和局限性。

3. 情感态度与价值观
(1)体验算法蕴含的文化内涵与人文精神,激发和保持对程序设计的求知欲,形成积极主动地学习和使用算法与程序设计以解决实际问题的态度。

(2)感受算法思维这一人类与计算机世界互通的主要思维形式,辩证地认识算法对社会发展、科技进步和日常生活的影响。

体系结构
问题解决的关键是通过对问题的深入分析,将复杂问题简化、抽象,然后构建合理的数学模型,并选择适当的算法加以实现。

本单元教材内容从最基本的算法——解析法入手,通过实例介绍利用解析算法、穷举算法、递归算法以及排序与查找算法解决问题的方法步骤,让学生经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,从而培养学生的算法思维,提升学生的信息素养。

本单元内容分为四节,其体系结构如表3-1所示。

表3-1 第三单元的体系结构
教学建议
通过问题解决学习算法是学习程序设计的主要途径之一。

在教学中建议从问题解决出发,让学生亲历分析算法、编写程序、相互合作的过程。

教师可以在教学过程中设置认知冲突,让学生自己从学习、生活或社会实践中发现问题、提出问题并提出解决问题的方案;让学生亲身经历分析算法、编写程序、相互合作解决问题的过程;引导学生通过交流,评价和反思问题解决的各环节及效果,在“做中学、学中做”的过程中培养学生的算法思维和批判性思维,培养他们利用程序设计解决问题的能力。

在课堂上引导学生根据学生自己的分析,用所熟知的方式描述算法,编写程序,并上机调试、编译、运行。

在学生上机编程过程中,教师注意巡视,随时解决发现的问题以及学生提出的问题。

教师对学生提出与教材中不同的算法应加以肯定,鼓励他们的创造性。

本单元教学为 10 学时,建议学时分配为:第一节3学时,第二节2学时,第三节2学时,第四节3学时。

根据教学内容的不同可适当采用不同的教学方法。

第一节解析法与问题解决
解析法是最简单、也是最基本的算法。

生活中许多问题都可以归结为用解析式(或公式)来解决。

本节通过几个任务的解决,初步掌握利用解析算法解决问题的过程和方法。

本节的教学重点是对那些适合利用解析法求解的问题,进行深入分析,将复杂问题简化,然后构建合理的数学模型,并编程加以实现。

第二节穷举法与问题解决
本节通过“韩信点兵”以及逻辑推理两类问题的求解,介绍利用穷举算法解决问题的基本思路和设计方法。

第三节递归与问题解决
递归算法作为计算机程序设计中的一种重要的算法,是较难理解的算法之一。

教材通过“计算阶乘”和“梵塔问题”的求解来说明利用递归算法解决问题的方法和步骤。

第四节排序与查找
教材以学校春季体育运动会100米短跑成绩为例,说明排序算法与查找算法的实现方
法。

在教学中,也可以利用其他和学生学习、生活以及社会实践紧密相关的数据来进行处理。

第四单元 尝试软件开发
学习目标
第四单元以解决生活中的实际问题为线索,综合运用本模块所学的知识,尝试用规范的思想指导软件的开发。

1.知识与技能
(1)理解软件开发的基本思路和过程,了解项目策划与项目实现的各个环节。

(2)能根据软件开发的思想,制订各种文档材料。

(3)能选用合适的网站开发工具和恰当的Applet 程序特效,合作开发主题网站。

2.过程与方法
(1)亲历项目开发的全过程,运用软件开发的思想规范网站开发制作的工作流程,形成“分而治之”解决复杂问题的思想方法。

(2)能根据项目策划阶段的文档资料,在网站建设过程中调整自己的工作节奏,学会各尽所能地承担项目小组的分工,掌握合作完成任务的有效工作方法。

(3)能围绕主题收集相关的信息材料,熟练使用网站开发的不同技术,创造性地使用Applet 小程序进行网页动态效果的修饰。

(4)能够理解并学习制定评价量规,对自己的作品和他人的作品进行客观评价。

3.情感态度与价值观
(1)形成积极协作的工作态度,共同完成小组的任务。

(2)学会客观、正确地评价自己与他人的作品,养成辩证的信息评价与认识观。

体系结构
本单元以一个主题网站作为开发软件项目的尝试,以分小组完成任务的形式,让学生经历软件开发的全过程。

按照软件工程的思想,将项目开发分为六个主要环节,即:项目管理、需求分析、系统设计、程序设计、测试与维护等,并以规范的思想指导软件的开发,最终学会有效解决复杂的实际问题。

最后各组要进行作品展示,通过评价与交流,使每个人的信息素养都能得到提升。

图4-1 软件项目开发过程示意图
把网站开发做为一个比较完整的软件项目来开发,“项目策划”,首先要让学生了解项目开发的全过程。

其次,教师指导学生运用项目管理、需求分析、系统设计的方法进行项目策划。

具体到实施环节的工作,则包括项目管理部分的项目立项、成立项目小组、制定项目规划、确定如何进行质量检查等;需求分析部分的提出需求、编制需求分析报告等;系统设计部分的总体设计规划书、详细设计等。

“项目实现”是学生分工协作共同完成项目的部分。

具体到实施环节,学生要经历程序设计部分的网站设计、Java 代码设计等具体的设计工作,并完成最终的调试,并分小组汇报演示。

网站项目的开发过程,主要分为项目策划和项目实现二部分,第四单元第一节主要列举了“项目管理”“需求分析”“系统设计”三个项目策划阶段的主要工作,而这三个部分又是环环相扣的,项目管理是分工合作的开始,需求分析是整个工作的起始点,有了需求才有行维护
软件项目的开发过程 项目管理 需求分析 系统设计 程序设计 测试
项目策划
项目实现
动,而系统设计则是在需要的基本上,指导后面项目实施阶段的重要文档。

以主题网站的开发做为软件开发的实例,各小组可以选择不同的主题进行立项,按照规范的管理模式分解任务,让学生亲历项目管理、需求分析、系统设计三个过程,对项目进行统筹策划。

在第四单元第二节的学习中,小组成员应本着团结、协作的精神,通过程序开发、测试与完善这两个过程来让学生经历项目的实现阶段。

程序开发过程中要注意“分而治之策略”和“代码重用策略”。

在程序开发过程中,学生需将所学知识技能综合运用,将技术、艺术与创造力结合,并通力合作完成自己小组的网站项目,体现了信息素养的全面提升。

教学建议
本单元建议使用6学时。

第一节“项目策划”1学时,第二节“项目实现”5学时,其中最后的1个学时进行综合评价与总结。

建议采用自主式学习与小组协作式学习相结合的方式。

第一节项目策划
教材中详细介绍了软件项目开发过程的六个环节,本节内容侧重组织学生通过分组讨论、磋商等方式,了解并体验项目管理、需求分析、系统设计等开发过程的具体环节,掌握各环节文档资料的产生,并按项目小组做好项目实现之前的所有准备工作。

本节的重点是教师应引导各小组展开项目策划的各项具体工作,并形成基本的项目文档,体会软件工程与项目开发的内在意义,养成遇到问题能够积极分析、策划、解决问题的习惯。

第二节项目实现
在项目实施的过程中,要充分发挥项目经理的协调与组织作用,引导各组成员协同工作,并监督其做好文档整理工作。

相关文档
最新文档