当前位置:首页 > 申请书大全 > [编译原理教学中创造性心思维能力的培养] 如何培养和提高思维能力
 

[编译原理教学中创造性心思维能力的培养] 如何培养和提高思维能力

发布时间:2019-01-04 04:15:03 影响了:

  摘要:阐述了在编译原理教学中,从调动内驱力、提倡发散思维、提倡探究学习、培养抽象思维四个方面入手,加强学生创造性思维能力的培养,给出了教学实施的具体步骤和方法。多年的教学实践证明,达到了预期的目的。
  关键词:编译原理教学;内驱力;发散思维;探究学习
  
  0 引言
  
  培养创新型人才,高等学校责无旁贷,培养出来的大学毕业生必须掌握科学的思维方法,具有强烈的创新意识,能够敏锐地发现问题、正确地分析问题和创造性地解决问题。这里所谓的“创造性”,并不是指像物理学家那样的发现和创造。美国心理学家布鲁纳曾经论述过,科学家的工作是发现,学生的学习同样也是一种发现,都是创造性的智力活动,只是程度深浅不同。一个人的创造性思维能力的形成和发展,除了个人努力以外,还依赖于教育的作用和环境的影响,即取决于内因和外因两方面的因素。在编译原理教学中,我们紧紧围绕高校人才培养总目标,从调动内驱力、提倡发散思维、提倡探究学习、培养抽象思维四个方面入手,加强学生创造性思维能力的培养。本文简要论述具体做法和体会。
  
  1 调动内驱力
  
  内驱力是指在需要的基础上产生的一种内部推动力,对学生而言就是产生对知识的渴望,对学习的热情。许多杰出人才的成功之路说明,内驱力对于一个学生走上成才之路是非常重要的条件。教育家们始终把激发、引导和发展学生的内在动力摆在教学的首位。教育家苏霍姆林斯基说得好:学生带着一种高涨的激动情绪从事学习和思考,对面前展示的真理感到惊奇和震惊;在学习中意识和感觉到自己的智慧力量,体验到创造的欢乐,为人类智慧和意志的伟大感到骄傲。
  对任何一门课程而言,在第一堂课就把学生的内驱力调动起来,激发起他们学习的兴趣是至关重要的。编译原理课程由于理论性强,内容抽象、繁琐,更需要有学生的学习热情作为支撑,所以精心设计概述课尤为重要。概述课要解决三个问题:
  第一,明确课程目标。首先可以通过提问引起学生的兴趣:编译程序用过吗?何时用的?怎么用的?利用熟悉的程序执行过程引导学生概括出编译的作用,即完成计算机高级设计语言程序的翻译。接着可再提问:翻译是如何实现的?复杂吗?由此明确本课程的教学目标――介绍编译的过程、支撑的理论基础以及具体的实现方法。
  第二,理解编译的过程。编译过程是贯穿课程的主线,是概述中最主要的内容。我们从自然语言的翻译出发,如英译汉,发挥学生的主观能动性,启发学生自己分析英语翻译的详细过程:字母→单词(构词法)→语句(语法)→翻译,并思考高级程序设计语言翻译与英语翻译的关系,得出“本质上一致”的结论,从而整理出编译的过程:词法分析→语法分析→语义分析→翻译(包括中间代码生成、中间代码优化、目标代码生成)(文献[1])。这种类比的方式使学生自然地、自主地接受了新的知识。
  第三,掌握研究方法。对编译过程每一个环节的研究,遵循软件研究的共同规律:明确目标→分析需解决的主要问题→寻找解决方法→具体实现。同时编译具有自己的特性:必须对具体的语言进行抽象,用形式化的方式加以描述,因此要研究相关理论,如形式语言理论、自动机理论等,而最终抽象的理论又要用于具体的语言翻译,所以要掌握“从具体到抽象再到具体”的研究方法。
  通过这样的一堂概述课,一开始就会使学生感到有一个新的学科领域需要去探索研究,对该课程产生了强烈的好奇心和兴趣,从而会带着求知的渴望去学习。当然要使学生产生持久的兴趣,教师还必须在认真钻研教材和深入了解学生的基础上,精心安排和讲好每一堂课,用生动、形象的语言去拨动学生的心弦,激发学生积极思维。
  
  2 提倡发散思维
  
  古代教育家孔子说:学而不思则罔。孟子说:心之官则思,思则得之,不思则不得也。两位先师都强调思的重要性。思维能力不仅仅是指积累知识的聚合思维能力,更重要的是创造性的发散思维能力。发散思维又称“多向思维”、“扩散思维”或“求异思维”,是指从一个目标出发,沿着各种不同的途径去思考,探求多种答案的思维。发散思维具有不依常规,寻求变异,探索多种答案的特点。具有良好发散思维的人,一般对新事物都很敏感,而且具有回避老一套解决问题的强烈愿望。对学生发散思维的培养就是要启发学生自己发现、分析和解决问题。遇到难点,教师不能简单地奉送结论和答案,而应该提供“中介”。让学生去独立感知和理解。
  例如,上下文无关文法是编译教学中的一个难点,文法的实质是将具体问题抽象出来,用形式化的方法加以描述。当给出一个语言的描述(集合描述或自然语言描述)并要求学生写文法时,初次接触的学生往往会感到无从下手,这时教师应带领学生分析语句的组成结构,提问学生:该语言的句子是由几个部分连接而成的?每个部分又是怎样的结构?让学生先写出每个局部的文法,然后自然而然地导出该语言的完整文法。采用这种分而治之的思想将难点化解,既训练了学生解决问题的方法,又培养了学生抽象思维的能力。值得重视的是,在完成语言的一个文法后,应及时给学生提一个问题:该语言的文法有没有另一种写法?或在发现学生对同一语言写出了不同的文法时。应立刻将它们拿出来展示,提出问题:两个文法是不是有―个错了,还是它们都对?通过这种“一题多解”的方法既说明了语言文法的不惟一性,又活跃了思路,发展了学生的求异思维。
  又如,在学完自顶向下语法分析方法后,欲介绍自底向上语法分析方法时,可以先抛给学生以下问题:自顶向下的推导方法可以完成语法分析,那么换一种思路,倒过来做(自底向上)行不行?是否困难?学生多半会感觉“应该可以,但可能比较困难”,这时,教师可以举一个实例,对某个具体文法的一个终结符串进行分析,带领学生一步步寻找可归约串进行归约,直到归约出开始符号,从而展示出自底向上语法分析应有的过程,并总结出其中应解决的主要问题――句柄如何确定?进而探讨句柄的特征,最终找出具体的解决方法。通过这种换思路、寻找不同解决方案的求异思维方法,能够激发学生的观察力、好奇心、想象力及主动性,从而培养学生的创造性思维能力。
  
  3 提倡探究学习
  
  教学过程应具有探索性,学生在课堂中的学习更多的应是发现学习,而不是接受学习;不是现成结论的简单展示,而应是教师引导下的探究学习、试误学习、自主学习(文献[2])。欲使学生学习知识的过程成为有指导的个人发现新知识的过程,关键在于从学生已有知识出发,提出问题,引而不发,让学生产生要求解决和必须解决问题的“愿望”,使学生处于积极思维的状态中,独立地寻找解决问题的途径,从而达到“发现新知识”或“解决新问题”的目的。
  例如,在理解了自顶向下语法分析方法后,介绍LL(1)分析算法时,虽然算法是现成的,但教师不应直接拿出来讲解,而应让学生独立思考和设计。在设计过程中学生会提出各种问题,如输入串如何存储?LL(1)分析表如何建立?错误如何 处理?等等。而最主要的问题是:采用什么样的数据结构存放产生式,以便于进行文法与输入符号从左到右的有序匹配?对此,教师可以提示学生回忆“数据结构”中的内容,提出用队列或用栈的可选择方案,如果学生得出结论是用栈,再提出如何用栈(即产生式如何进栈)的问题,引导学生想出“将产生式右部倒序进栈”的办法,最后将书上的算法拿出来梳理思路(也可让学生自己去读或写完整的算法)。事实证明,这样做不仅能使学生领受到探索知识的兴奋和愉快,而且可以使他们亲历如何发现知识的过程,受到“发现知识”的训练,同时又可使新老知识融会贯通,这对培养创造性思维能力是大有益处的。有同学说,通过这个算法的学习,不但巩固了旧知识,学到了新内容,掌握了分析、解决问题的方法,还大大增强了自信心,原来这样的算法自己也是可以设计出来的。感到非常开心。
  实践证明,在教学中教师给学生的不应该是“饼干”,而应是“猎枪”。饼干需长吃长给,有了猎枪,学生则可以自己获取猎物。在学习期间,学生需要获得知识,更需要培养探究能力,因为后者能使学生终身奋发,一生受益。
  
  4 培养抽象思维
  
  编译课程的教学内容本身针对性很强,解决如何构造编译程序的问题。由于只有极少数学生将来可能从事这项工作,因而学生往往会产生疑惑:学这些理论和方法有用吗?
  大学的教育应该是开放性的,教师不能为教而教,学生也不能为学而学,“知识既是目的,也是手段”(文献[3]),获得知识并提高能力才是完美的学习。当然,掌握知识就意味着能够运用,但这里所谓的运用并不一定就是直接地运用。有些知识,看似不会用到,但通过对它的学习,一方面可以学到解决问题的普遍方法、训练科学的思维方法;另一方面也是一种储备,当需要的时候就可以联想它,调用它,而调用知识、运用知识就是能力了。因此,学习编译原理,从某种意义上说,它是掌握知识的过程,也是运用形式思维,培养抽象思维的过程。
  对此,我们应该让学生充分感受到编译课程的作用:
  (1)通过本课程的学习培养抽象思维能力。抽象思维是思维的高级形式,是利用科学概念和理论,借助言语符号进行思维的方法。抽象思维的主要特点是通过协调运用分析、综合、概括等基本方法,揭示事物的本质和规律性联系。编译原理的一大特点就是抽象,如高级程序设计语言描述用到的形式理论,词法分析、语法分析用到的自动机理论等。这些理论都很抽象,但通过它们能将需要解决的问题的实质抽取了出来,并找到了适当的工具加以解决。笔者认为这种从本质上认识问题解决问题的思维方法正是大学教育需要教给学生的,培养学生的抽象思维能力是学习编译原理的重要目的之一。
  (2)编译技术本身的应用也是相当广泛的。可以让学生进行充分的联想,找出他们认为可能用到编译技术的工具,如有的学生可能用过“结构化编辑器”,也有的可能用过“程序格式化工具”、“软件测试工具”等,进而提示学生“关乎识别、翻译的问题往往与编译技术有关”,由此使学生感受到编译技术应用的广泛性。事实上,编译技术的应用甚至不局限于语言、翻译,还大量应用于一些看似与编译程序无关的地方,如搜索引擎中的分词处理、人工智能领域等(文献[4])。这种知识拓展将使学生感到学习编译理论和方法的重要性,从而产生对编译知识的深深渴求,增强学习和探索的强烈欲望。
  
  5 结束语
  
  总之,创造性思维能力的培养应贯穿编译教学的全过程,并渗透于教学内容的每一个知识点、每一个算法之中。经过多年的教学实践,我们发现在编译原理这门课程的教学过程中强调创造性思维能力的培养,对发挥学生在教学中的主体地位,调动学生参与教学活动的积极性、主动性和创造性,激发学生的求知欲望,保护学生的求异、求新热情等方面发挥了极其重要的作用。编译原理的教学还需要不断探索。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3