- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在程序设计教学中培养学生创新性思维
在程序设计教学中培养学生创新性思维
摘 要:创新教育是目前人才培养的改革与探索目标,而程序设计教学有着较好的培养学生创新性思维的优势。现从培养思维的变通性、流畅性以及独特性三个方面着重阐述在程序设计教学中如何培养学生的创新思维。
关键词:程序设计;创新意识;创新性思维;变通性;流畅性;独特性
诺贝尔奖获得者贝尔纳说:“创造力是没法教的。所谓的创造力教学,指的是学生要真正有被鼓励展开并发表他们想法的机会,为此,才能发展他们富于创造力的才能。”在教学过程中,教师只是起到激励、引导的作用,而创新思维的培养还是由学生通过不断的思维和实践,伴随着对挫折、成功、愉悦的体验和积累,逐步自主内化、被熏陶出来的。创新性思维的具体过程包含准备、酝酿、实施和验证四个阶段。而程序设计课程的教学过程:从分析问题到确立算法是准备和酝酿阶段。但解决同一个问题的思维方法往往有许多种,各有利弊,对此以创新性的意识去比较、分析、领悟、吸纳,有时就会“灵感一现”,顿悟到新的算法。在确立了算法,完成程序的设计编制后,还要经过不断的修改和优化,此时又有可能出现新的思路,甚至会有再寻捷径的强烈欲望,因此,程序设计教学有助于培养学生的创新性思维。
一、在比较中寻找差异的目标,培养思维的变通性
通过比较,探寻新课题与已掌握的知识间的差异,实现思维的迁移,是培养创新性思维的有效方法之一。我们会发现,程序设计中这种新旧问题之间的差异是各种各样、异彩纷呈的,这就要求教师在教学过程中能积极引导、帮助学生养成通过比较去寻找差异的思维习惯,以逐步提高学生自主思维的变通能力。
例如,输入A,B两个数,交换值后输出。此时大多数同学总是会这样来编写(以A=2,B=3为例):A=B,B=A运行结果:A=3,B=3。当同学们百思不得其解的时候,笔者引导大家借助第三个变量来实现交换。趁机提醒学生思考:如果不通过第三变量,用数学知识应如何解决?最后,学生研究讨论后得出利用两数四则运算解决的方法。此题笔者着眼于数学知识与程序设计思路的迁移,虽然只是简单的思维变通,但在此过程中,学生获得了从寻求差异到开拓新思路的快乐,也尝试了变通思维的一种方法,实现了由固有知识到对新知识的建构。这种变通性的思维新方法将在他们日后的程序设计中,乃至解决某些问题时起到非常大的作用。
二、分解或改编目标,培养思维的流畅性
爱因斯坦说:“提出一个问题往往比解决一个问题更重要。”提出问题不一定局限于借助对诸多因素的分析之后,提出一个隐含着的关键问题,也可以在问题已经明确,但由于一时难以着手解决,而从原有问题的框架中超脱出来,以连贯性的思维和迂回方式逐步加以分析,找出要达到最终目标之关键要素,逐一加以攻克, 从而找到问题解决的最终方案。也就是说,将大目标加以分解,转换到比较明确的小问题上,找到解决这些小问题的具体方法,最后根据大目标的要求,将这些方法优化组合起来。这样由小及大的思维方式,既可以激发新灵感,又有利于保持思维的连续性、流畅性。在程序设计教学中,这种创新性思维方式是较为常用又至关重要的。
例如,对已有的10个整数进行从小到大排序。
从问题本身来说,目标已经一目了然。但如何入手呢?具体要解决些什么问题呢?在教学时,我启示学生将此问题改写成自己认为与题目类似,并且简单到运用已有知识自己能解决的问题。有学生将问题变成:10个人排队,每趟找出个子最矮的同学,将此同学排在最前面,然后再对剩下来的人用同样的方法,最后完成任务。此种方法比较直观形象,而且贴近学生的生活。也有学生将问题改写成:用10张扑克牌来模拟排序,方法类似于排队,此种方法的实现比较简单。
更让笔者感到惊喜的是有组同学利用数组的下标完成了排序:将数组定义成下标从最小值到最大值变化范围,由于VB中变量数值型变量定义后初始值都为零,所以,读入数组值的时候,如果元素值和下标相同,则将该元素值加1,最后输出的时候,以下标作为循环控制变量,输出值不为零的下标值。代码如下:
Dim a(-10 to 1000) as integer‘最小值为-10,最大值为1000
Dim I as integer,j as integer,x as integer
For i=1 to 10’数组元素输入
X=val(inputbox(请输入数组元素值)
A(X)=A(X)+1
Next i
For i=-10 to 1000’从小到大输出数组元素值
For j=1 to a(i)
Print i;
Next j
Next i
上述代码中丝毫没有任何的比较语句,并且巧妙运用了循环语句实现的条件。由此可见,并非是学生不肯动脑筋,他们的创意和智慧是无穷的。
文档评论(0)