资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,高中信息技术算法与程序设计教材分析,德化一中施志聪,一、引言,开设目的:深入体验算法思想,理解算法和程序设计在计算机处理问题过程中的地位和作用;能从简朴问题出发,设计和描述处理问题的算法;能初步使用一种程序设计语言编制程序实现算法(处理问题)。,从本模块的开设目的看,在高中阶段学习程序设计毕竟不一样于专业训练,并且程序设计语言的变化也非常快,因此只要掌握程序设计的基本知识与一般规律。当然,我们也要注意发现和培养对程序设计有特殊才能的学生,给他们提供充足的发展空间。,二、选修算法与程序设计的优势,不需要增长硬件投入;,部分学生在初中时学习过,有一定的基础;,教师教学有一定经验比其他模块要得心应手某些;,原本高中数学算法必修模块是高中信息技术“算法与程序设计”模块前开设的,只可惜本市把数学的这一模块调至背面了,这是一种遗憾。,三、三个主题:计算机处理问题的基本过程、程序设计语言初步、算法与问题处理,分四个阶段实行教学:,体验编程,体会算法,掌握一种程序设计语言,掌握几种常用算法,个性发展与提高,尝试软件开发。,第一阶段:体验编程,体会算法。,内容构造:,程序设计语言产生与发展,问题的认识和形成,算法的概念、特征与作用,算法的描述,程序和程序设计,算法与程序设计关系,利用计算机解决问题的基本过程,问题和算法,算法和程序,程序和程序设计语言,问题的分析与算法设计,学习目的:,激发学习的爱好,明确学习的内容,理解计算机处理问题的过程;体会算法的含义,明确算法对于计算机解题的重要性,掌握算法的基本知识。,体会计算机的工作原理;,理解计算机处理问题的过程(提出问题问题分析设计算法编写程序调试程序输出成果),与人处理问题的过程比较;,明白什么是程序;,明白程序设计是怎么回事;,明白计算机语言和程序设计语言;,掌握什么是算法;,体会算法的重要性,程序=算法+数据构造;,理解对于同一问题也许有多种不一样的算法(算法多样性);,理解算法的评价及优化;,掌握算法的特性:有穷性、确定性、一定有输出、不一定有输入、可行性;,会用多种措施描述算法(自然语言、伪代码、流程图);,理解程序的三种基本构造(构造化程序设计的基本知识,次序构造、分支构造、循环构造),实行教学过程:,通过例举生活与学习中需要用计算机处理的问题,如有关数值、逻辑等方面的问题,让学生认识问题,形成问题意识,感受运用计算机处理问题的必要性。,我们从常用的几种小程序,“抽签程序”、“画函数图像”和“简朴的运算器”等引入可用计算机语言处理实际问题。从“互换两杯不一样液体”为例,简介用计算机处理互换问题的算法。用形象的比方“打擂台”的措施,简介计算机处理求最大值、最小值的问题的算法。并把这几种问题的算法通过不一样形式描述出来,让学生体会算法描述方式的多样性,和优缺陷。让学生纯熟掌握流程图描述算法的措施。通过一种求“三角形面积”的简朴问题,得出计算机算法的某些特性。让学生明白一种算法若用一门计算机语言描述出来即是程序。简朴简介计算语言的历史、发展及趋势。,这一阶段,要让学生理解人在程序设计中担任的是设计计算机解题的算法,理解人与计算机解题的区别,让学生理解用计算机解题的优势(通过举大数据量处理来阐明)。当然在这一阶段,要让学生完全明白哪些问题适合计算机编程处理是不也许的,只有在后来的教学和不停的训练当中去体会。,这一阶段,提议对某些常用问题的计算机算法让学生去上网搜索,包括历史上某些有名的算法,重视培养学生用流程图描述算法的能力。(如“韩信点兵”,“更相减损术”、“秦九韶算法”和“割圆术”等),第二阶段:掌握一种程序设计语言,明白程序的构造和某些基本概念,学会编写简朴的程序。,内容构造:,程序开发工具,程序开发环境,编程的一般步骤,数据表示与处理,变量、常量、数据类型,运算符、函数、表达式,程序基本结构的实现,顺序结构程序设计,选择结构程序设计,循环结构程序设计,程序设计语言基础,程序的编辑和翻译,程序的编辑和翻译,学习目的:,理解并掌握一种程序设计语言的基本知识,包括语句、数据类型、变量、常量、体现式、函数。学会使用程序设计语言实现次序、选择、循环三种控制构造。掌握使用数组存储批量数据的基本措施。初步掌握调试、运行程序的措施。理解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。,量:常量、变量(三要素:变量名、类型、值,命名规则),数据类型:含义及存储,系统原则函数:作用、函数名、参数,运算符:算术运算符(+,-,*,/,mod,),关系运算符,逻辑运算符,优先级,体现式:括号、值,字符串运算符(+或&)及字符串处理,ASCII码知识,语句:输入、输出、计算、交互和赋值、分支、循环,构造化程序设计的知识,数组的知识(定义,存储,输入与输出等),程序的编辑、保留、打开、调试、编译、运行,面向对象的程序设计基本知识:对象、属性、事件及事件驱动,实行教学过程:,这一阶段由于要简介一门计算机语言,若只是单纯的去讲多种格式和关键词,学生很轻易产生厌烦心理,必然达不到理想效果。程序设计的学习,不可防止需要使用程序设计开发环境,程序设计开发环境的教学一般安排在“程序设计基础”的第一堂课,应重视让学生在实践中掌握计算机语言的编辑环境的使用,注意承上启下激发爱好。,在学习语言基础前,应让学生掌握面向对象程序设计的某些基础知识,重点要让学生理解对象三要素(属性、措施与事件),以及响应对象的什么事件就是执行该事件中对应的程序代码(即事件驱动)。在本阶段就要让学生掌握编写VB程序时的环节:设计界面设置对象的属性编写程序代码程序的运行和调试保留文献。我们认为该阶段的每一部分内容都要结合界面与对象的对应属性来进行学习。,界面设计只要学生掌握工具箱中常用的几种控件,通过拖动法即可在界面面中画出。,对于对象属性修改不仅要掌握用属性窗口去修改对象常用属性,还要掌握用赋值语句修改对象属性。,对于对象的措施不适宜在刚开始时详细简介,提议在背面波及届时再重点简介,如窗体的print措施。,对于事件,要让学生重点掌握某些常用对象的常用事件。如编写“调色器”程序。,对于常量、变量、原则函数、体现式、对象的属性、赋值语句等要结合起来使用。对于数据的表达与处理要有一种过程,教师在教学中要耐心的简介它们的格式与应用。如:对于初学者也许对“赋值号”和关系运算符“等于号”就不能辨别开来,教师就要讲清其原理及作用。,交互函数中的inputbox的格式相对简朴些,只是要让学生一定要记住运用Inputbox函数输入的内容是字符型的数据类型,在使用中常常要与Val函数结合使用。对于msgbox函数,格式就要复杂得多,并且有诸多内部常量,提议学生不需要记住内部常量详细代表多大数字,只需记住内部常量的符号名称即可。,通过多种例题让学生掌握构造化程序设计的三种构造:次序、分支和循环。次序构造、选择构造、循环构造程序设计是计算机程序设计基础,学生必须纯熟掌握。在简介循环构造时可增长简介时间控件的作用,并在此时着重简介一下全局变量和作用域。例如,可运用时间控件让学生编写“计时器”、“星星闪烁”、“文字移动、变化”等程序。并且可把分支构造的“浏览图片”程序放在循环构造时举例,我们认为在此处简介会让学生更轻易理解某些。,在学习分支构造时,举了一种“密码验证”程序。还举了一种能让程序自动判分并给出评语的一种“简朴运算”程序,并且做错不能超过三次,否则退出程序。一定要把行IF格式和块IF格式辨别。本节内容有诸多练习题,如:超市打折、一元二次方程求解等。,这一阶段是学习一门新语言,对学生要耐心,尤其是某些语句的格式,要反复强调。在举例或练习时,尽量结合学生学习和生活中碰到的和熟悉的问题,也可以多联络某些数学和其他学科方面的知识,培养学生理论结合实践的能力和综合应用能力。在此阶段对于某些学有余力的学生,在设置任务时尽量的增长某些附加题,培养他们深入探索的能力。,在学习循环构造时,要把几种循环构造的格式结合起来使用。同一例题,用不一样的循环语句来解题,比较它们在编写时的异同点。从最简朴的“累乘”、“累加”程序到“输出裴波那契数列”、“约分”、“最大公约数和最小公倍数”、“筛选法求素数”等程序。,学习数组时,掌握数组的定义和存储方式,重点掌握一维数组应用和简朴的二维数组的运用。掌握有规律数据的数组的赋值措施,输出格式的控制等。这一节学习时,还要让学生掌握几种常用的解题思绪:递推、数的分离等。如“倒序输出裴波那契数列的前N项”、“数制转换”等。,第三阶段:掌握几种常用算法,能综合运用并能处理某些实际问题。,解析法,穷举法,查找与排序,递归法,解析法基本概念,解析法与问题解决,穷举法基本概念,穷举法与问题解决,排序算法,查找算法,递归概念,递归法与问题解决,算法及程序实现,内容构造:,学习目的:,理解解析法的基本概念及用解析法设计算法的基本过程,可以用解析法分析简朴问题,设计算法,编写程序求解问题;,理解穷举法的基本概念及用穷举法设计算法的基本过程,可以根据详细问题的规定,使用穷举法设计算法,编写程序求解问题;,通过实例,掌握使用数据查找算法设计程序处理问题的措施,通过实例,掌握使用排序算法设计程序处理问题的措施;,理解使用递归法设计算法的基本过程;可以根据详细问题的规定,使用递归法设计算法、编写程序、求解问题。,实行教学过程:,算法的设计,可以说是对某一类问题进行归类总结。这一阶段的举例也许会波及到第二阶段时的例题。,解析法重在分析,找出解析式或递推式。如:“已知周长为L,面积为S,求矩形”、“钻石图案”、“函数图像”、“模拟汽车客运量”等。学生的练习内容也较多,如“二元一次方程组求解”、“根据公式求圆周率”等。,穷举法,可以说是计算机处理问题时用得最多,也是我们最易理解的一种算法,它是充足运用了计算机运算速度快的特点。它的算法特点是根据题目的已知条件,确定答案的大体范围,在此范围内对所有也许的状况逐一验证。如:“韩信点兵”、“鸡兔同笼”、“百钱买百鸡”、“水仙花数”等。学生练习题也诸多,如“在某一整数范围中找出所有的回文数”、“判断两个数与否互质”等这一类题目。,处理同一种问题,可以有不一样的算法;同一种算法稍加改造,可以用于处理不一样的问题。对算法的优化或改造,是协助学生理解算法的通用性、有效性等的良好素材。,递归法,可以说是学生最难理解的一种算法,最佳是把递归的原理栈的知识简介一下,举例时也不适宜太难,只能是简朴的题型。运用递归算法,实质上是“大事化小,小事化了”这一原则。即大问题化为小问题,当化到一定规模的小问题时,可以直接求解的这种算法。不是所有问题都能用递归。要符合两个条件:一是大问题题能化为相似性质的小问题,二是存在结束递归的条件。对于这一算法可举例简介“累乘”、“累加”。对于著名的“汉诺塔”问题,我们认为也不必去做更详细的分析。,对于查找与排序,只是我们必须掌握的一种操作,严格上讲,不是一种算法。查找要让学生掌握“次序查找”和“二分查找”。排序要让学生掌握“选择法排序”和“冒泡法排序”。对于这两种排序措施,要知其源,才能让学生纯熟运用。,第四阶段:个性发展与提高,尝试软件开发。,内容构造:,结构化程序设计历史背景,结构化程序设计的思想方法,面向对象程序设计思想,面向对象程序设计的基本概念,面向对象程序设计的基本特征,结构化程序设计,面向对象程序设计,程序设计思想与方法,项目策划,项目实现,尝试软件开发,学习目的:,理解模块化程序设计的基本思想,初步掌握其基本措施;在使用某种面向对象程序设计语言处理问题的过程中,掌握面向对象程序设计语言的基本思想与措施,熟悉对象、属性、事件、事件驱动等概念并学会运用。,面向对象的程序设计深入(语言深入学习、理解愈加深入),软件开发的基本知识,任务分析:问题定义可行性分析需求分析形成设计文档,系统设计:模块化,代码编写与调试:设计界面编写代码调试与跟踪生成可执行文献,软件测试与维护,实行教学过程:,这一阶段,我们认为只要简朴简介一下软件开发的一般环节,详细的怎样去开发,没有必要详细的简介。这一阶段是对编程具有特殊才能的学生而言的,当然我们对于这一类学生也要重视培养,提供他们的发展空间。,四、教学困惑(有待处理的问题),1、高中信息技术课的课时有限,而课程内容对学生来说较难理解,怎样在相对有限的课时内,协助学生理解程序等较为复杂抽象的内容,也是教师面临的难题。,2、教学过程中,由于教师要讲课内容较多,往往留给学生交流讨论的时间较少,对学生的作品评价也很难到位。,3、实行本模块内容教课时,学生差异往往较大,怎样处理,并能分层次教学也有待深入处理。,4、信息技术每周两课时,我校两课时是分开的,怎样有效合理运用每课时教师必须下一定的功夫。,5、让学生综合运用所学的算法与程序设计基本知识和技能,综合运用程序设计思想与措施,尝试一种微型项目的开发,体验软件的开发过程,是一种很故意义的研究性学习活动,怎样让学生合理地构成小组,怎样指导学生选择恰当的项目,怎样让学生在完毕项目的过程中提高水平等等都是教师在教学中需认真考虑与组织。,请多指教!,
展开阅读全文