资源描述
表3-1 主题单元设计模板
主题单元标题
揭开计算机解决问题的神秘面纱
学科领域 (在内打√ 表示主属学科,打+ 表示相关学科)
思想品德
音乐
化学
√信息技术
劳动与技术
语文
美术
生物
﹢ 科学
﹢ 数学
外语
历史
社区服务
体育
物理
地理
﹢ 社会实践
其他(请列出):
适用年级
高中二年级上学期
所需时间
3课时
主题学习概述(对主题内容进行简要的概述,并可附上相应的思维导图)
(设计本单元的背景和意图、简要说明单元实施的构想、希望单元学习学生达成的成果)
“算法与程序设计”是高中信息技术课程的选修模块,本单元是该模块的第一单元,主要是以问题解决与程序设计为主线,揭示利用计算机解决问题的过程。学生在高一已经学习了“信息技术基础”模块并在数学课里学习过算法的基本思想和初步知识,本主题可以结合数学课程中算法这一部分知识,让学生进一步了解算法,学会用不同的方法描述算法,了解算法、程序、程序设计语言之间的关系,认识算法和程序设计的地位和作用。
让学生亲身感受计算机程序解决问题的过程,了解用高级语言编程工具解决问题的基本方法,感悟计算机程序设计的思想,了解计算机程序设计的基本流程,激发学生对信息技术的求知欲,提高其学习兴趣,形成积极主动学习信息技术的态度,将信息技术应用到其它学科而解决其问题的方法,本主题是整个模块学习的引入,为过渡到其它主题的学习打下基础。
主题学习目标(描述该主题学习所要达到的主要目标)
知识与技能:
1.了解使用计算机解决问题的一般过程。
2.理解掌握算法的概念及其特点, 学会用自然语言来准确地描述算。
3.学会使用示意性程序表示算法步骤。
4.了解程序设计的三种基本结构。
过程与方法:
1. 通过从问题出发,分析问题,发现问题的本质,探求问题解决与算法和程序设计结合的方法。
2. 学会不同的问题选择设计相应的不同算法,并能够选择一种相适应的语言,通过编写程序,最终实现问题的解决。
3.在整个程序设计的过程中,问题的解决是按照一定的步骤、一定的思维方式和方法来进行的,体现了软件工程的基本思想。
情感态度与价值观:
1. 通过本单元的学习,了解计算机的神奇奥妙所在。
2. 开阔学生的眼界,激发学生热爱科学的情感和学习科学、探索科学奥秘的兴趣。
3. 通过算法设计的实现,能使学生从中体验计算机程序设计蕴含的文化内涵,吸取人类精神文明的养分,激励学生奋发向上,在求索和创新中让生命大放异彩。
对应课标
1. 使学生进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;
2. 能从简单问题出发,设计解决问题的算法,并能初步作用一种程序设计语言编制程序实现算法解决问题。
主题单元问题设计
1. 如何利用计算机解决实际问题?
2. 什么是算法?算法有哪些特征?
3. 什么是程序?如何进行程序设计?
专题划分
专题一:《计算机解决问题的过程》
专题二:《算法和算法的描述》
专题三:《程序与程序设计语言》
专题一
《计算机解决问题的过程》
所需课时
1课时
专题一概述 (对专题内容进行简要的概述,并可附上相应的思维导图)
《计算机解决问题的过程》专题旨在呈现人是如何利用计算机解决问题,解决问题需要经历哪些基本过程。教学中要注意让学生结合生活与学习提出问题,从身边简单问题入手亲历分析问题、设计算法、编写程序、调试程序解决问题的过程。
本专题学习目标 (描述该学习所要达到的主要目标)
1.结合生活与学习的实例说明利用计算机解决问题的必要性。
2.了解利用计算机解决问题的基本过程,了解问题分析与算法设计间的关系。
3.了解计算机解决问题的神奇奥妙所在,激发学生探索未知世界的兴趣,培养学生的创新精神。
4.通过课堂合作、探究以及研究性学习,培养学生的探究精神和创新能力。
对应课标(本专题所达到的课程标准)
结合实例,经历分析问题、确定算法、编程求解等用计算机解决问题的基本过程,认识算法和程序设计在其中的地位和作用。
本专题问题设计
1. 为什么要用计算机解决问题?
2. 人在计算机解决问题过程担任什么样的角色?
3. 如何利用计算机解决问题?利用计算机解决问题的优势是什么?
4. 利用计算机解决问题与人解决问题有何区别?
所需教学材料和资源(在此列出学习过程中所需的各种支持资源)
信息化资源
计算机及相关网络
常规资源
多媒体课件和网络资料
教学支撑环境
多媒体计算机室
其 他
学习活动设计(针对该专题所选择的活动形式及过程)
一、导入课题,激发兴趣
教师:“在科技发达的今天,我们到处都可以看到计算机的踪影,感受到计算机给学习、生活带来的方便。然而,在惊叹计算机的神奇和享受的欢乐的时候,你是否了解计算解决问题的基本过程?有没有思考过其中的奥妙呢?下面我们先看一个古典的问题:”
学生观看约1分钟的电视剧《汉刘邦》片断,内容大致如下:
“韩信是我国西汉初著名的军事家,刘邦得天下,军事上全依靠他。韩信点兵,多多益善,不仅如此,还能经常以少胜多,以弱胜强。在与楚军决战时韩信指挥诸侯联军,在垓下十面埋伏,击败楚军,楚霸王项羽因此自杀。”
片断结束时屏幕出现“韩信点兵”问题:“相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人……。刘邦茫然而不知其数。你呢?”
二、讲授新课
1.人是如何解决这个问题的。
展示 [ 问题1]:
今有物不知其数:三三数之余二,五五数之余三,七七数之余二,问物几何 ?
把全班分成8个学习小组,每个小组的同学一起探究、讨论问题。利用已学过的数学知识找出题目的已知条件和未知条件、明确已知条件和未知条件之间的关系并写出解题步骤。并填写附表。
表1“探究问题记录表”。
分析问题(找出已知和未知条件、列出已知条件和未知条件之间的关系)
写出解题步骤
结果
给学生5分钟的时间讨论,教师在这个过程中深入到各学习小组中,引导个别小组分析问题,写出解题步骤。教师提问2~3 个同学,从中逐渐引导出如下的分析问题和解决问题的步骤,并给出算法的概念。
分析问题(找出已知和未知条件、列出已知条件和未知条件之间的关系)
写出解题步骤
设所求的数为X,则X应满足,
X整除3余2
X整除5余3
X整除7余2
1. 令X为1。
2. 如果X整除3余2,X整除5余3,X整除7余2,这就是题目要求的数,则记下这个X。
3. 令X为X+1(为下一次计算作准备)。
4. 如果算出,则结束;否则跳转2。
5. 写出答案。
解释第3步“ 令 X 为 X+1 ”,并指出它与数学表述形式的区别,然后从上面的解题步骤中总结出穷举的算法。
引出 [ 问题2]:“刚才有些同学把题目解出来了,答案是 23,韩信作为大将军,统率的士兵当然不止 23 人,下面我们来解决一个数据量稍大的问题。”
展示 [ 问题2]:
求整除3余1、整除5余2、整除7余4、整除 13 余6、整除 17 余8的最小自然数。
提问:“上面的结果超过1万,人工计算要很长时间,在科技发达的今天,你想到什么?”(学生回答用计算机解题。)
给学生2分钟时间分析上述问题并写出算法,不用真的去计算。
问题从易到难,源自学生已有的知识与经验,并能与后继内容的学习形成呼应。
学习活动设计(针对该专题所选择的活动形式及过程)
2.计算机解决问题的过程。
向学生讲授用计算机解决问题同样要经过分析问题、设计算法两个步骤,并在讲授过程中展示人工解题中分析问题和设计算法这两个步骤。
分析问题(找出已知和未知条件、列出已知条件和未知条件之间的关系)
写出解题步骤
设所求的数为X,则X应满足,
X整除3余1
X整除5余2
X整除7余4
X整除13余6
X整除17余8
1.令X为1。
2.如果X整除3余1,X整除5余2,X整除7余3,X整除13余6,X整除17余8,这就是题目要求的数,则记下这个X。
3.令X为X+1(为下一次计算作准备)。
4.如果算出,则结束;否则跳转2。
5.写出答案。
引出程序设计语言的概念:但是上面用自然语言描述的算法,计算机不懂,必须翻译成计算机语言,也就是程序设计语言。与用 Visual Basic 语言编写的程序作对照,简单解释变量 Y 的作用,并提示学生程序设计语言是我们以后学习的重点。
3.演示观察。
教师演示运行调试程序的操作步骤:启动 Visual Basic 软件,输入前面编写的程序代码,进行调试,最后得到运行的结果。
4.讨论交流。
提问: “前面我们学习了用计算机解决问题的过程,它和人求解问题有什么关系呢?
关于求解问题的方式讨论记录
求解问题的方式
相同点
不同点
人工求解问题
用计算机求解问题
5.小结、布置实践和练习。
根据各小组的讨论结果,总结出人工求解问题和用计算机求解问题的相同点和不同点。小组合作,进行深入学习。
求解问题的方式
相同点
不同点
人工求解问题
分析问题、设计算法、
得出结果、验算结果等
对题目进行解答、运算速度慢、不需要计算机等。
用计算机求解问题
编写程序、调试程序、运算速度快等。
教学评价
1.突出了学生的主体地位,强调学生的自主、合作、探究学习。
2.着力于优化教学过程,教学环节的安排有助于学生由浅入深,由表及里逐步深入理解利用计算机解决问题的过程,较好地达成教学目标。
3.注重课内外结合,重视培养学生的实践能力,有利于学生在感兴趣的自主活动中全面提高信息素养。
专题二
《算法和算法的描述》
所需课时
1课时
专题二概述 (对专题内容进行简要的概述,并可附上相应的思维导图)
《算法和算法的描述》本节是信息技术新课标“算法与程序设计”模块中的亮点,以往程序设计课程过多重视程序设计能力和编程技巧,新课标则重视程序设计的整体结构及思想方法。学生通过第1节的学习和实践,初步掌握了编程方法,但更多的是处于模仿编程阶段。算法是程序设计的灵魂,通过本节的学习和简单的程序实现,使学生的程序设计能力从模仿为主过渡到创造为主,创造性地运用已有的知识,构造算法解决实际问题。在进一步理解程序设计基本知识基础上,帮助学生“建立尽可能合理的算法与程序设计的认知结构,学会用程序设计的思想方法解决问题,培养学习程序设计的兴趣爱好,为学生将来的发展提供该领域的知识与能力准备。”
本专题学习目标 (描述该学习所要达到的主要目标)
知识与技能:
1.理解算法的概念;
2.能初步利用算法解决简单的问题。
3.了解算法特征在解决问题过程中算法选择的作用。
4. 能够使用自然语言、流程图、伪代码描述算法。
过程与方法:
1. 通过从问题出发,运用解析法分析问题,寻找问题中各要素之间的关系,用数学表达式表示它们的关系。
2. 能用自己的语言描述算法与程序设计间的关系
情感态度与价值观:
1. 引导学生对编程的兴趣,理解算法的概念和如何科学合理的选择和设计算法,激发学生的编程兴趣,为程序设计打好基础。
2. 培养学生的理论联系实际能力和动手操作能力。
对应课标(本专题所达到的课程标准)
1. 进一步体验算法思想,了解算法和程序设计在解决问题过程中的地位和作用;
2. 能从简单问题出发,设计解决问题的算法;
3. 能初步使用一种程序设计语言编制程序实现算法解决问题。
本专题问题设计
1. 什么是算法
2. 算法是如何描述的?
3. 算法在解决问题中的地位和作用是什么?
所需教学材料和资源(在此列出学习过程中所需的各种支持资源)
信息化资源
计算机及相关网络
常规资源
多媒体课件和网络资料
教学支撑环境
多媒体计算机室
其 他
学生用笔、纸
学习活动设计(针对该专题所选择的活动形式及过程)
一、创设情景、引入新课
有一个牧羊人带着一头羊,一只狼和一颗大白菜准备过河,他找到一只很小的
船,每次只能带一样东西过去,可是如果让狼与羊单独在一起,狼会吃羊,让羊与白菜单独在一起,羊会吃白菜,牧羊人应如何过河?
要求:现在请同学们来设计一个方案,把3样东西安然无恙的带过河。
教师针对问题一的过河方案,提出以下问题:
问题1:这个方案总共有多少步?
问题2:刚才同学们把第二步和第三步可以改变先后顺序,其它顺序还能不能颠倒,比如说:第一步先过狼?
问题3:通过以上例子,我们能不能总结出什么是算法?进而引出新课算法的概念。
二、讲解新课内容
1.算法概念
归纳上述的问题讲解算法就是解决问题的方法和步骤,而且步骤是有限的。在以后的编程中也要记住了,有些步骤是可以颠倒的,不影响程序的结果;但是有些一但颠倒了那最终的结果也就全变了。
2.算法的描述
问题4:在【问题一】中,我们是用什么来描述算法的?
问题5:还有什么其他的方式吗?
教师展示流程图的基本图形及其功能
程序框
名称
功能
开始/结束
算法的开始和结束
输入/输出
输入和输出信息
处理
计算与赋值
判断
条件判断
流程线
算法中的流向
演示【求两个自然数的最大公约数】算法的三种描述方式,学生根据【求两个自然数的最大公约数】算法的三种描述方式,说出哪一种方式更好,好在哪里,哪一种方式更不好,不好在哪里。
算法描述方式
优势
不足
自然语言
通俗易懂
歧异性,语句太长,循环和分支难表达等
流程图
描述清晰简洁,不依赖计算机
伪代码
书写方便,格式紧凑,便于翻译
由于语言种类多,不容易规范等
③算法具备特征:有穷性、确定性、有输入与输出、可行性;
④程序设计的过程实质上是算法设计的过程,程序只不过是选择某个特定的计算机语言表达算法;
⑤解决同一个问题的算法不是唯一的,选择不同的算法编写的程序,计算机运行的效率会有很大的差异。
2.组织学生开展探究活动,了解算法在解决问题过程中的地位和作用,如探究分析例题中解决同一问题的两个算法程序的不同效率等。
分析:案例通过学生非常熟悉的 “求两个正整数的最大公约数” 问题,引出前人研究的两种经典算法。没有让学生自己去推导算法,一则降低了学生学习的难度,二则让学生了解了算法思想。并让学生通过比较两种算法程序的运行效率,体验算法的特征。将教学准确定位在让学生通过对算法的体验来了解算法思想与特征。
3.算法的设计
【问题二】:写出求1+2+3+4+5的一个算法(用自然语言描述)。
在学生设计算法的过程中,指导学生完成。
针对学生所用的设计算法,提出以下问题给学生思考:
问题6:通过对问题二的算法的思考,你认为问题的算法是唯一的吗?
问题7:对于同一个问题的不同算法,它们的效率一样的码? 为什么?
问题8:我们如何设计并选择一个好的算法呢?如何评价一个算法的好与坏?
问题二的设置,在于让学生通过实践,理解问题的算法不是唯一的
通过问题的设置与回答,引出下一个教学环节,如何选择算法。
4.算法的选择
【问题三】:求两个自然数n,m的最大公约数。
常用的有以下两种算法:
同学甲的算法:(辗转相除法)
同学乙的算法:(穷举法)
任务:分别用两种算法对测试数据(9147485和5147480)进行测试,比较它们的运行时间。
问题9:哪一种算法运行时间少?哪一种算法较好?为什么?
教师小结:对于运行时间少的算法它的效率较高,我们在设计算法时,就选择运行时间少的算法。
【问题四】:两个自然数n,m相乘,输出乘积的后三位数。
常用的有以下两种算法:
算法一:两个自然数相乘后取后三位。
算法二:先取两个自然数的后三位,再取它们相乘的结果的后三位。
教师提供两组测试数据:
测试数据1:12 12
测试数据2:123456 123456
请同学用两组测试数据对两种算法进行测试,并汇报测试结果。
算法甲都可以很快得到结果,但算法乙在测试数据2时出错。
问题10:算法乙在测试数据2时为什么会出错?哪一种算法较好?为什么?
问题三的提出主要是针对算法的时间效率;
问题四的提出主要是针对算法的通用性;
选择算法的标准是算法的效率高低及通用性如何
三、教师小结:
1.如何定义算法的概念?
2.算法的描述有哪几种方式?
3.如何判断一个算法的优劣?
教学评价
1.突出了学生的主体地位,强调学生的自主、合作、探究学习。
2.着力于优化教学过程,教学环节的安排有助于学生由浅入深,由表及里逐步深入理解利用计算机解决问题的过程,较好地达成教学目标。
3.注重课内外结合,重视培养学生的实践能力,有利于学生在感兴趣的自主活动中全面提高信息素养。
专题三
《程序与程序设计语言》
所需课时
1课时
专题三概述 (对专题内容进行简要的概述,并可附上相应的思维导图)
本专题主要描述程序概念和解释程序的作用,结合实例描述顺序、选择、循环三种基本结构的单步程序执行方式,在利用计算机解决问题各个环节中,编写程序是其中一个关键的环节.。本节核心问题是:如何设计程序实现算法以解决问题?同时介绍了程序设计语言的产生与发展。
本专题学习目标 (描述该学习所要达到的主要目标)
知识与技能:
1.理解程序的概念。
2.明确算法和程序间的关系。
3.掌握程序设计的三种基本结构。
4. 了解程序设计语言产生与发展过程。
过程与方法:
1. 通过从问题出发,运用解析法分析问题,寻找问题中各要素之间的关系。
2. 能用自己的语言描述算法与程序设计间的关系。
情感态度与价值观:
1. 引导学生对编程的兴趣,理解程序的概念,激发学生的编程兴趣,为以后程序设计的学习打好基础。
2. 培养学生的理论联系实际能力和动手操作能力。
对应课标(本专题所达到的课程标准)
1. 在使用计算机解决实际问题的过程中,通过观看演示、模仿、探究、实践等环节,了解顺序、选择、循环三种基本结构及其重要作用,掌握计算机程序的基本概念,能解释计算机程序执行的基本过程。
2. 了解程序设计语言、编辑程序、编译程序、连接程序以及程序开发环境等基本知识。
本专题问题设计
1. 计算机是如何实现信息的自动处理呢?
2. 为什么要学习程序设计?
3. 常用的程序设计语言有哪些?
4. 程序设计的基本结构是什么?
所需教学材料和资源(在此列出学习过程中所需的各种支持资源)
信息化资源
计算机及相关网络
常规资源
多媒体课件和网络资料
教学支撑环境
多媒体计算机室
其 他
学生用笔、纸
学习活动设计(针对该专题所选择的活动形式及过程)
一、 导入新课
通过复习1.2算法和算法的描述,引入算法的计算机实现。
教师:上节课我们设计的过河算法,课后有些同学问这个能在计算机上实现了吗?怎么才能让计算机运行呢?
学生活动:学生分小组讨论。
设计理念:通过这一问题设计,引起学生的学习积极性,让学生很快的进入学习状态。
计算机是如何实现信息的自动处理呢?
二、 讲授新课
1. 程序和程序设计
(1) 引出程序的概念:将我们要完成的任务通过一系统的指令去描述,这一指令组称为程序。
给出过河算法的程序设计
活动:学生分组讨论总结计算机进行信息处理的过程。
教师给出总结概述。
(2) 提出问题:为什么要学习程序设计?
活动:学生分组讨论交流,各小组分别论述自己的观点。
学生回答教师的问题,通过问题的回答,总结出程序设计的概念:
2.程序设计语言的产生与发展
(1)设问:常用的程序设计语言有哪些?除了教材中所介绍的之外,是否还有别的?它们各有什么特点?
活动:阅读教材中有关部分,并可以通过因特网或其他途径,查阅有关程序设计语言的资料,最后可以选择一种作为体验用语。
(2)设问:写出你所选择的计算机程序设计语言的最基本的语句:输入、输出、赋值、分支和一种循环语句。
活动:学生合作查阅资料。体验顺序结构的程序、分支结构的程序、循环结构的程序
3.程序的编辑和翻译
1)程序的编辑
这部分教学内容以演示为主,打开VB的IDE,在其中书写过河程序,给学生形象的介绍如何编辑、保存程序。
2)程序的翻译
教师:计算机程序是我们将自然语言翻译成计算机能够理解的语言,就像我们如果没学习过英语,听不懂美国人说话是一样的道理。我们翻译英语可能通过软件或其他途径,那么计算机想要理解人类的自然语言,应该怎么做呢?
学生活动:让学生尝试使用VB编辑器编译程序,如何运行。
教师:总结计算机是如何理解高级语言的。
三、小结:
教师:1.如何定义程序的概念?
2.程序设计语言的基本语句有哪些?
学生活动:让学生思考反馈本节课所学的知识
设计理念:帮助学生形成系统的知识体系
四、课后交流:
比较编译型语言和解释型语言的优势与不足,填写在表中,并进行交流
语言种类
优势
不足
编译型语言
解释型语言
五、作业:以程序设计语言的发展过程为主题进行调查,写一篇调查报告。
教学评价
1. 采用“问题解决教学法”展开本节的教学,在问题的选择上,选择学生能够通过已有的知识和经验分析出解决方法和得到算法步骤的问题;
2. 在程序设计上,注意对照算法的方法和步骤编写;在练习的选择上,注意从模仿例题开始,以降低学习难度,逐步过渡到让学生能够面对问题独立设计算法和程序,从而具备程序设计基本能力。
展开阅读全文