程序设计教学中促进高中生创新思维的发展

上传人:痛*** 文档编号:72099496 上传时间:2022-04-08 格式:DOC 页数:8 大小:121.50KB
收藏 版权申诉 举报 下载
程序设计教学中促进高中生创新思维的发展_第1页
第1页 / 共8页
程序设计教学中促进高中生创新思维的发展_第2页
第2页 / 共8页
程序设计教学中促进高中生创新思维的发展_第3页
第3页 / 共8页
资源描述:

《程序设计教学中促进高中生创新思维的发展》由会员分享,可在线阅读,更多相关《程序设计教学中促进高中生创新思维的发展(8页珍藏版)》请在装配图网上搜索。

1、程序设计教学中促进高中生创新思维的发展上海市松江二中 杨晓峰算法和程序设计是上海市高中信息科技教学三个选学模块之一。通过这一模块的学习,高中学生可以体验专业性的算法思想,学习并使用程序设计语言解决一些实际问题。在历届的上海市高中信息科技等级考试中,关于算法和程序设计的内容都超过了50%的比例。另外有两个方面也促进了上海高中生对程序设计的学习热情。首先,享有高考加分政策的上海市高三程序设计竞赛和信息学奥林匹克竞赛(NOI)上海选拔赛,都是以程序设计为比赛形式。这些竞赛吸引了众多高中学生学习程序设计,参加竞赛。其次,在上海的二期课改中,高二的数学教学中专门用一章的内容学习算法并作为高考的考试内容。

2、学习好程序设计对于高中生在高考取得好成绩也是大有帮助的。因此,程序设计在上海的高中生中有着众多的学习者。程序设计教学中应该实现怎样的教学目标是笔者在多年的高中程序设计教学中一直在思索的问题。如果把程序设计学习的目标仅仅定位在获得高考的加分或取得等级考试的好成绩无疑是非常狭隘的。能够在竞赛中脱颖而出的佼佼者毕竟是少数。对于大部分将来并不会从事计算机专业的同学来讲,真正能够让他们受益的是在程序设计学习中促进他们能力的发展。一、 问题的提出上海市中小学信息科技课程标准中指出信息科技课程应该让中小学生“学会利用信息技术发展批判性思维和创造性思维,培养解决真实、开放问题的能力。”高中生的思维活跃,容易打

3、破惯有思维模式的束缚。在学习了必要的专业知识以后,程序设计为他们提供了解决实际问题,发展创新思维的平台。2007年,美国国际教育技术协会颁布了新版“国家学生教育技术标准”(NETSS-2007)。对照中国高中信息技术标准与NETSS-2007的维度对应关系,我们不难发现,我国的高中信息技术标准中缺失了“创造力和创新”这一维度。创新是民族进步的灵魂,我国高中信息技术标准中这一维度的缺失无疑是一大不足。这不仅要求我们高中信息科技教师在日常教学中有意识的进行引导,也为我们在这一方面开展课题研究提供了空间。创新思维通常以流畅性、灵活性、独创性、细致性或发散思维为特征。在高一信息科技的教学中,算法的多样

4、性、程序设计的灵活性,无疑为学生进行独创性的思维活动、编写个性化的程序提供了有效的平台,也为发展他们的创新思维创设了条件。通过国内外相关现状的比较,结合笔者多年一线教学的实践,我将高中程序设计的教学目标定义为促进高中生创新思维的发展。围绕这一目标,我在自己的教学中进行了探索和实践,初步形成了一些行之有效的教学策略。二、 程序设计教学中促进创新思维发展的教学策略1、在专业知识学习阶段应用基于问题的学习方法(Problem-Based Learning,PBL)。程序设计专业知识的学习相对一些计算机应用软件的学习要枯燥很多,尤其需要学生思维主动的、积极的投入。笔者发现高中学生在这一阶段表现得兴趣不

5、大,有了疑问也不愿意主动向老师求解。对于这样的情况,仅仅将原因归咎于学习内容枯燥或学生的“懒”,并不能真正解决问题。通过与学生的访谈,我发现真正的原因在于学生并不清楚学习程序设计的用处在哪里?因此在程序设计知识的讲授阶段,我采用了基于问题的学习方法。在这种方法中,我给出一些学生容易理解、切合实际的问题,然后围绕这些问题开展知识点的教学。基于问题的学习方法具有明确的学习指向性,容易引发学生的学习兴趣,进而产生学习的动力。在求解问题的过程中,学生会提出各种各样的新观点、新想法。(1) 利用简单问题,有效衔接各个知识点。案例1、从分支结构引出循环结构在分支结构的教学中,我首先使用分支结构解决了只允许

6、输入1次的密码验证(见图1)。然后启发学生使用分支结构的嵌套解决了可以输入2次的情况(见图2)。这个时候,我提出了问题:如果允许输入100次,该如何求解?这个时候,学生如果沿着思维的惯性,继续采用分支结构的嵌套,将非常的困难。其解决方案也必定非常的低效。在学生进行了一定时间思考后,我再引出循环结构并利用循环结构方便、轻松了解决了这个问题(见图3)。学生顿时感到豁然开朗,也引发了对循环结构的学习兴趣。 图1 分支结构 图2 分支结构嵌套 图3 循环结构(2) 利用复杂问题,覆盖多个知识点的教学。案例2、验证歌德巴赫猜想我首先引导学生将这个问题定义为:用户输入一个大于6的偶数n,程序给出2个素数x

7、和y,并且x+y的和是n。我将求解这个问题的算法关键步骤细化如下:第1步:找到2个数x和y,并且x+y的和是n第2步:判断x和y是否同时为素数,若是,则输出x和y后退出,否则重复第1步。在具体的教学中,我首先指导学生学习循环结构,解决了“如何判断一个数是否为素数”这个问题。其次在找x和y这两个数时,我指导学生学习了枚举算法。利用枚举算法,学生从1到n/2逐一列举x的值,并利用y=n-x得到y的值。最后,学生通过学习双重循环,在外部循环中通过枚举算法逐一列举x和y,每列举一次,利用循环结构判断x和y是否同时为素数,最终解决了“验证歌德巴赫猜想”这个比较复杂的问题。(3) 活用流程图,实现知识的有

8、效建构通常绘制流程图,一般按照从上向下的画法。这样的画法符合我们平时的书写规律,但并不符合学生思维活动的过程。通过活用流程图,我们可以顺着学生思考的过程去绘制流程图。而这个从无到有的过程,也是学生进行知识建构的过程。案例3、求10个同学分数的总和首先,引导学生如何计算总和。学生回答:输入一个分数x,然后累加,sum=sum+x。这时候,我在黑板上画出这2个关键步骤的流程框图。然后提问:如何把下一个同学的分数也累加上去?学生回答:画流线形成循环。接着提问:这样的循环什么时候结束呢?学生回答:添加判断条件并且类加变量每次增加1。最后,教师补上必要的条件,形成完整的流程图。绘制过程见图4。图4:模拟

9、学生思维活动的流程图绘制过程2、在编程解题阶段,发展学生的批判性思维编写程序、解决问题是学生灵活运用所学习到的程序设计知识进行自由创作的过程。这一阶段是培养学生创新思维的最佳阶段。我以为,这一阶段的学习要注重学生批判性思维的培养。在学生批判错误、纠正不足的时候,一些新颖的个性化的想法正在生成。我在教学中常用的策略如下。(1) 帮助同学改错在学生的课后作业中,挑选具有典型错误的程序在课堂上请同学们判断是否有错误,该如何改进。学生对于纠正别人程序中的错误远比自己编写程序更加热情,尤其是同龄人程序编写中的错误更是引发他们浓厚的兴趣。在纠正他人错误的同时,一些正确的概念在他们的头脑中的印象更深了。需要

10、指出的是,为了避免伤害被选中同学的自尊心,我一般从其他班级选择错误程序,并且隐去学生的真名。(2) 一题多解一题多解有利于学生打破已有思维模式的束缚,容易引发学生个性化的思考,进而推动创新思维的培养。在程序设计教学中,我积极引导学生寻求与老师不同的求解方案。在一题多解的求解过程中,一些新颖的方案冒了出来,学生的发散性思维得到了发展。案例4、求100-1000之间的水仙花数求解水仙花数的关键是将一个三位数整n,提取出其百位数a,十位数b和个位数c。我首先通过传统的求解方式,先用n除以100取整的方法得到a,然后用n除以10取余数的方法得到c,最后在a和c的基础上得到b。具体程序见图5。然后,我要

11、求学生思考其他的求解方法。在经过一段时间的思考以后,一些新颖的解决方案出现了。有些方法是我以前都不曾考虑过的。如图6。 图5:教师程序 图6:学生程序事实证明,在我们教会学生必要的程序设计知识以后,学生就会象童年时“搭积木”一样,编写出很多个性化的程序。这个新想法、新程序不断涌现的过程,同时也是学生积极思考,创新求异的过程。(3) 程序优化促进学生创新思维发展的另一个途径是引导学生对现有的程序进行优化。优化也是要求学生在现有的基础进行改进、创新。成功的优化能够让学生体会到创新的价值,创造新成果的成就感,激发他们不断创新的动力。案例5、对百钱买百鸡问题的优化百钱买百鸡问题:100文钱买100只鸡

12、,公鸡5文钱一只,母鸡3文钱一只,小鸡1文钱三只,问公鸡、母鸡、小鸡各买几只?我首先利用三重循环编写了程序(见图7),其中外部循环列举公鸡数目a:1-100,内部循环列举母鸡数目b:1-100,在内部循环再使用内部循环列举小鸡鸡数目c:1-100。在演示程序、求出正确答案后,我启发学生思考这个程序一共循环了多少次,是否可以进行优化?学生思考后回答,循环了100万次,可以缩小a、b、c的取值范围。从题意上分析a的取值范围是1-20,b的取值范围是1-33,c的取值范围是3-99。经过修改,程序的循环次数降低为65340次,比前面的程序有了明显优化。具体程序见图8。For a:=1 to 20 d

13、oFor b:=1 to 33 doFor c:=1 to 99 doIf (a*5+b*3+c/3)=100and (a+b+c=100) thenWriteln(a,b,c)For a:=1 to 19 doFor b:=1 to 32 doBeginc:=100-a-b;If (a*5+b*3+c/3)=100and (a+b+c=100) thenWriteln(a,b,c);End;For a:=1 to 100 doFor b:=1 to 100 doFor c:=1 to 100 doIf (a*5+b*3+c/3)=100 and (a+b+c=100) thenWriteln

14、(a,b,c)但是我仍不满足,提示学生是否还能够减少循环的次数,可以从a、b、c三个变量的相互关系上去考虑。学生在思考后发现,当a、b两个变量的值确定了以后,其实c的值也就确定下来了。于是改进程序如图9,循环次数降低为608次。图7:原始程序 图8:第一次优化 图9:第二次优化(4) 上机调试学生编写的程序,往往含有比较多的逻辑错误。对于其中比较典型的错误,老师可以挑选出来,引导学生一起纠正。但是如果对所有的错误,老师都要一一纠正不仅占用太多时间而且很不必要。老师可以要求学生将编写的程序输入到计算机,进行上机调试。对于语法上的错误,老师可以帮助解决。对于逻辑上的错误,如得到了不正确的结果,应该

15、让学生独立分析、修正、改进程序。以PASCAL为例,教师可以教会学生如何设置观察变量和程序单步执行。这样学生通过观察程序执行到每一步时,各个变量值的变化,分析出产生错误的原因。上机调试,不仅是学习程序设计的必要技能,也是学生修正自己错误思维的过程。3、构建学习共同体,促进小组合作学习对于较为复杂的问题,可以将学生组成小组,共同解决。在小组合作解决问题的过程中,学生的思维在进行交流、碰撞,更容易在群体智慧的基础上产生创新性的想法。案例6、结构化程序设计思想的内容在以往的教学中,对于结构化程序设计思想的内容往往总是匆匆而过。老师一般感觉这部分内容比较理论化,很难给学生切实的感性体验。我对这部分的教

16、学内容进行了设计,通过教学让学生明确了“合作”和“分工”的重要性,并形成了小组进行合作学习。首先,我引导学生分析举办一次班级文艺晚会的各项工作(见图10),让学生理解在程序设计时采用“自顶向下、逐步求精”的实施方法。然后我引导学生将其中的“评委打分”问题分解成4个模块(见图11)。 图10:文艺晚会的工作安排 图11:“评委打分”问题的4个模块其次,学生形成4人小组。学生之间进行分工,各自完成一个模块。学生完成各自的模块以后,再一起合成完整的程序,解决了这个比较复杂的问题。在这个案例中,学生不仅加深了对结构化程序设计思想的理解,更清楚了程序设计中的“分工”和“合作”的重要性。在以后对于解决相对

17、复杂的问题时,学生也经常以学习小组的形式进行讨论。4、构建课程体系,满足不同学生的学习需要高一的算法和程序设计课程是面向全体学生,主要学习程序设计的一些基本结构、一些基本的算法以及实现这些算法必须的程序设计知识。对于学有余力,并希望对程序设计进行进一步深入学习的同学,我开设了选修课和活动课两个模块。在选修课中,学生系统学习程序设计语言和常用的算法如贪心算法、分治算法、穷举算法等。学生可以解决利用程序设计编程解决一些较为复杂的实际问题。在社团课中,学生学习数据结构等比较专业的计算机知识。这些学生主要是对程序设计具有浓厚兴趣,并准备参加程序设计竞赛的。三、 反馈与统计处理通过一个学年的探索、实践,上述教学策略收到了良好的效果。与平行班相比较,应用了上述教学策略的实验班的考试成绩有了明显的提高,并且实验班同学的解题方案也明显比平行班丰富多样。具体见图12。图12:期末考试中实验班与普通班的比较以上是我在程序设计教学中对促进高中生创新思维发展的一些尝试。我相信,也许多年以后我的学生会忘了程序设计课上学习到的知识,但是学习过程中发展的能力、培养的创新思维一定会让他们从中收益的。8

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!