论文部分内容阅读
摘要:编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。针对高等师范院校的计算机专业师范生普遍对编译原理课程学习兴趣不高且无法获得良好的学习效果等问题,通过考察计算机专业师范生的特点,深入分析了教材、教学对象、教学目标和教学过程等问题,设计了计算机专业师范生编译原理课程的教学和实验改革措施。通过措施的开展,使得学生能够理解掌握并能清楚讲解编译原理主要理论,加深学生对编译原理基本课程理论的理解与把握,提升学习效率。
关键词:计算机专业师范生;编译原理;教学方法;改革探索
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)36-0121-03
引言
2007年,国务院决定在教育部直属师范大学实行师范生免费教育。陕西师范大学作为教育部直属6所师范大学之一,经过近十年的努力,在师范生免费教育上获得了突出的成绩。编译原理作为计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。在陕西师范大学计算机科学学院,对于计算机科学与技术专业师范生,该课程开设在第五个学期。该课程讲授内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成[1]。Alfred V.Aho在其名著《编译原理》的开篇写道,“编译编译器的原理与技术具有十分普遍的意义,以至于每个计算机科学家的研究生涯中,本书中的原理与技术都会被反复使用”[2],表明了编译原理在整个程序设计教程中担负着重要作用。
虽然编译原理在计算机教学中担任着重要的角色,但是作为一名计算机专业大三学生,尤其计算机专业师范生,在学习这门课程时普遍存在以下问题:(1)该课程对计算机专业师范生未来从事中小学教师职业帮助不大,且无法得知是否可以对今后的学习与工作产生有利的影响;(2)编译原理课本中存在大量的理论知识,内容抽象枯燥且不易理解,很难完整全面地把握知识并形成相应的理论体系;(3)很多人认为只要掌握了如何使用编译器就可以了,何必掌握这个编译器是怎么来的呢,又为何要学习如何编译一个编译器呢?也因为这样的原因,大多数计算机专业师范生对编译原理的学习兴趣不高甚至于根本没有学习兴趣。因此我们不得不采取措施转变教学观念,改革编译原理的传统教学和实验方法,研究新型教学和实验模式,使同学们纠正自己的错误认识,端正学习态度,提高学习编译原理的积极性与热情,更好地理解与掌握编译原理的相关知识。同时,也能够使教师在授课的过程中更加用心,最终使教师与学生共同进步。
一、对计算机专业师范生的编译原理理论知识的教学改革
在传统教学方法中,习惯使用填鸭式教学法,即教师对知识进行系统的讲解,学生在短时间内掌握大量知识。但是这种方法以教师为主体,学生的听课效率不高,并且这种教学方法多以书本为主,很少考虑学生的主体意识。此外,编译原理知识的晦涩枯燥使学生们的学习兴趣大大降低,且教师与学生间的互动相对来说比较少,教师难以把握学生学习状况,不利于教学的展开[3]。此外,计算机专业的师范生未来的工作多为中小学信息技术老师,编译原理课程在其未来的工作可能不再会涉及,使得他们对该课程的学习不够重视,并且学生遇到问题时不愿意独立思考、动手实践。针对计算机专业师范生编译原理课程学习中出现的问题,结合学生和编译原理课程的特点,转变教学模式,精心设计任务教学任务。
(一)启发式教学法
启发式教学就是根据教学目的、内容、学生的知识水平和知识规律,运用各种教学手段,采用启发诱导办法传授知识,使学生积极主动地学习,以促进身心发展。例如:学习词法分析时,怎样完成单词的识别呢?可以让学生思考人类语言的结构,按照从左到右的扫描顺序,一个一个解读每个单词,寻找规律并发现不同的单词。最后,按照开始符号的不同,识别不同的单词,拼写单词直到遇到非法符号即可。
(二)任务驱动教学法
任务驱动教学法是学生在任务的驱动下,借助教师的帮助,利用学习资源,通过课堂上的自主、合作、探究学习获得知识意义的建构和能力提高的一种教学方法。它以任务为主线、教师为主导、学生为主体,是新课程改革实践中出现的一种新教法、新模式,体现了新课程改革“自主—合作—探究”的学习理念。词法分析的任务和功能以及有限自动机等分析工具的内容比较抽象,是教学的重点和难点。采用任务驱动法能够取得较好的效果[4]。词法分析是编译的第一阶段,该阶段的任务是从左到右逐个字段对源程序进行扫描,产生一个个单词序列,用以进行语法分析。直白的说就是输入源程序,输出单词符号。具备了正规文法知识,讲解形式语言和自动机理论知识就比较容易被学生接受。
(三)案例教学法
案例教学是一种开放式、互动式的新型教学方式。通常,案例教学要经过事先周密的策划和准备,要使用特定的案例并指导学生提前阅读,要组织学生开展讨论或争论,形成反复的互动与交流。算法优先分析是编译原理过程中的一个重要的自上而下分析算法,在讲解词算法时,首先要引入3个概念:算符文法、终结符间的优先关系及算符优先文法。我们首先从“算符优先算法”几个字入手,先了解这种算法是借助于“字符间的优先关系”进行的一种语法分析方法,告诉学生优先关系有3种,然后给出3组小实例,从而使得学生能够很自然地理解这里的优先关系与數字间的大小关系是完全不同的,它是指左结合下的算法表达式中算符计算的先后顺序。然后在黑板上给出小实例,如“3 4*52-6”,并在写的过程中告诉学生这个表达式很长,在写中间过程“3 4”、“3 4*”、“3 4*52”、“3 4*52-”的时候,询问学生表达式还未结束是否可以计算,因此让学生自己总结出这里的优先关系是指前一个算符和后一个相继出现的算符的关系,并强调两点:首先,(a,b)和(b,a)是两种不同的关系;其次,当a,b前后相继出现时才会用到(a,b)。最后,把算符扩充到终结符。根据上述案例教学,很容易让学生理解算符文法和算法优先文法的概念。 (四)讨论式教学法
讨论式教学法强调在教师的精心准备和指导下,为实现一定的教学目标,通过预先的设计与组织,启发学员就特定问题发表自己的见解,以培养学员的独立思考能力和创新精神。讨论式教学的环节大致包括:设计问题、提供资料、启发思路、得出结论。
在讲授编译原理语法分析单元中的算符有限分析法时,设计了一个计算器的应用程序,传统的计算器是按照输入表达式的顺序进行运算,而这里的设计包含括号的计算器,按照先括号后乘除最后加减的方法进行运算,当输入表达式后通过按钮控制结果的输出。演示完毕后,由同学讨论计算机是如何完成的。最后给出采用两个栈存放操作数和运算符,通过按钮来控制进栈和出栈。这样引出了算符优先分析法的内容。这种讲解法激发了学生的学习兴趣,对接下来的内容充满了好奇,有利于对知识的学习。
(五)Blackboard信息化教学平台的使用
陕西师范大学已于2013年引入Blackboard信息化教学平台,引导各教学单位和广大教师开展基于Blackboard教学平台的信息化课程建设及教学方式改革。该信息平台可以提供比较丰富的教学资源,如教学大纲、教学计划、电子教案、电子课件和教学视频等,方便学生自主学习。网络教学平台及资源在本课程的教学中已经发挥了关键的作用,课程教学组成员负责网站的日常维护和教学资源更新,学生每天的正常学习都要在这个平台上进行,课后师生也经常利用这个网络平台进行在线交流、答疑等。通过利用该教学平台,使用混合式教学,将传统教学的优势和数字化教学的优势结合起来,二者优势互补,从而获得更佳的教学效果。
二、针对计算机专业师范生的编译原理实验部分改革
对于计算机学科来说,实验是其重要的组成部分。如果掌握了理论知识而不动手实践,就如同将军纸上谈兵。对于编译原理来说,通过实验可以更好地掌握其理论知识,当我们做完试验后再回头看书,我们会发现原来编译原理并没有那么难理解。通过实验,学生可以对自己所学知识进行检测,及时发现自己存在的问题与漏洞,及时改正与复习,同时也避免了丢开课本就忘的情况。计算机专业师范生因以后多从事教师行业,大多对自己的理论知识要求较高,而在实验环节要求一般,做具体实验时会感觉比较难,动手实践能力较差,因此教师可以以学生了解实验原理作为实验目的与要求。因此针对计算机专业师范生,对编译原理课程实验部分改革的具体内容为:(1)词法分析器设计:主要目的为熟悉词法分析的基本原理、词法分析的过程以及词法分析中要注意的问题。实验内容是使用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。(2)语法分析程序设计(一):加深对语法分析器工作过程的理解,能够采用C语言实现简单的语法分析程序,能够使用自己编写的分析程序对简单的程序段进行语法翻译。这里可以设计使用预测分析法来编制语法分析程序,通过对语法规则的明确定义,编写有效的分析程序并对词法分析器实验中得到的结果进行正确的语法分析。(3)语法分析程序设计(二):由于后续语法分析原理比较复杂,针对计算机专业师范生,为了加强学生对算符优先分析法、递归下降分析法和LR(1)分析法的理解,将现成的程序让学生阅读理解,并组织分组讨论和讲解,实现语法分析程序的掌握。
通过上述的实验改革,计算机专业师范生提高了学生对编译原理实验的兴趣,在原有的基础上加深了对原理的掌握,同时提高了自己阅读和理解程序的能力。
三、总结与展望
该论文旨在对师范院校计算机专业师范生的编译原理教学与实验改革部分进行阐述,使教师和学生转变教学思想,端正学生学习态度,提升学生对编译原理的学习兴趣,加强对编译原理相关知识的理解与把握能力,从而提升其创新精神与创造能力。通过介绍编译原理在计算机中的重要性、对编译原理进行教学改革的原因,结合计算机专业师范生的学习特点,对编译原理教学进行改革所采取的新式教学和实验方法策略。希望此论文可以为计算机专业师范生的编译原理教学提供帮助。
参考文献:
[1]陳火旺,刘春林,谭庆平,等.程序设计语言编译原理[M].北京:国防工业出版社,2009.
[2]张素琴,吕映芝,蒋维杜,等.编译原理[M].北京:清华大学出版社,2005.
[3]徐晶.研究型教学在编译原理课程中的应用探索[J].现代教育技术,2009,19(S1):62-63.
[4]袁彩虹,周星.编译原理课程案例教学研究[J].计算机教育,2013,(9):27-29.
关键词:计算机专业师范生;编译原理;教学方法;改革探索
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2017)36-0121-03
引言
2007年,国务院决定在教育部直属师范大学实行师范生免费教育。陕西师范大学作为教育部直属6所师范大学之一,经过近十年的努力,在师范生免费教育上获得了突出的成绩。编译原理作为计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。在陕西师范大学计算机科学学院,对于计算机科学与技术专业师范生,该课程开设在第五个学期。该课程讲授内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成[1]。Alfred V.Aho在其名著《编译原理》的开篇写道,“编译编译器的原理与技术具有十分普遍的意义,以至于每个计算机科学家的研究生涯中,本书中的原理与技术都会被反复使用”[2],表明了编译原理在整个程序设计教程中担负着重要作用。
虽然编译原理在计算机教学中担任着重要的角色,但是作为一名计算机专业大三学生,尤其计算机专业师范生,在学习这门课程时普遍存在以下问题:(1)该课程对计算机专业师范生未来从事中小学教师职业帮助不大,且无法得知是否可以对今后的学习与工作产生有利的影响;(2)编译原理课本中存在大量的理论知识,内容抽象枯燥且不易理解,很难完整全面地把握知识并形成相应的理论体系;(3)很多人认为只要掌握了如何使用编译器就可以了,何必掌握这个编译器是怎么来的呢,又为何要学习如何编译一个编译器呢?也因为这样的原因,大多数计算机专业师范生对编译原理的学习兴趣不高甚至于根本没有学习兴趣。因此我们不得不采取措施转变教学观念,改革编译原理的传统教学和实验方法,研究新型教学和实验模式,使同学们纠正自己的错误认识,端正学习态度,提高学习编译原理的积极性与热情,更好地理解与掌握编译原理的相关知识。同时,也能够使教师在授课的过程中更加用心,最终使教师与学生共同进步。
一、对计算机专业师范生的编译原理理论知识的教学改革
在传统教学方法中,习惯使用填鸭式教学法,即教师对知识进行系统的讲解,学生在短时间内掌握大量知识。但是这种方法以教师为主体,学生的听课效率不高,并且这种教学方法多以书本为主,很少考虑学生的主体意识。此外,编译原理知识的晦涩枯燥使学生们的学习兴趣大大降低,且教师与学生间的互动相对来说比较少,教师难以把握学生学习状况,不利于教学的展开[3]。此外,计算机专业的师范生未来的工作多为中小学信息技术老师,编译原理课程在其未来的工作可能不再会涉及,使得他们对该课程的学习不够重视,并且学生遇到问题时不愿意独立思考、动手实践。针对计算机专业师范生编译原理课程学习中出现的问题,结合学生和编译原理课程的特点,转变教学模式,精心设计任务教学任务。
(一)启发式教学法
启发式教学就是根据教学目的、内容、学生的知识水平和知识规律,运用各种教学手段,采用启发诱导办法传授知识,使学生积极主动地学习,以促进身心发展。例如:学习词法分析时,怎样完成单词的识别呢?可以让学生思考人类语言的结构,按照从左到右的扫描顺序,一个一个解读每个单词,寻找规律并发现不同的单词。最后,按照开始符号的不同,识别不同的单词,拼写单词直到遇到非法符号即可。
(二)任务驱动教学法
任务驱动教学法是学生在任务的驱动下,借助教师的帮助,利用学习资源,通过课堂上的自主、合作、探究学习获得知识意义的建构和能力提高的一种教学方法。它以任务为主线、教师为主导、学生为主体,是新课程改革实践中出现的一种新教法、新模式,体现了新课程改革“自主—合作—探究”的学习理念。词法分析的任务和功能以及有限自动机等分析工具的内容比较抽象,是教学的重点和难点。采用任务驱动法能够取得较好的效果[4]。词法分析是编译的第一阶段,该阶段的任务是从左到右逐个字段对源程序进行扫描,产生一个个单词序列,用以进行语法分析。直白的说就是输入源程序,输出单词符号。具备了正规文法知识,讲解形式语言和自动机理论知识就比较容易被学生接受。
(三)案例教学法
案例教学是一种开放式、互动式的新型教学方式。通常,案例教学要经过事先周密的策划和准备,要使用特定的案例并指导学生提前阅读,要组织学生开展讨论或争论,形成反复的互动与交流。算法优先分析是编译原理过程中的一个重要的自上而下分析算法,在讲解词算法时,首先要引入3个概念:算符文法、终结符间的优先关系及算符优先文法。我们首先从“算符优先算法”几个字入手,先了解这种算法是借助于“字符间的优先关系”进行的一种语法分析方法,告诉学生优先关系有3种,然后给出3组小实例,从而使得学生能够很自然地理解这里的优先关系与數字间的大小关系是完全不同的,它是指左结合下的算法表达式中算符计算的先后顺序。然后在黑板上给出小实例,如“3 4*52-6”,并在写的过程中告诉学生这个表达式很长,在写中间过程“3 4”、“3 4*”、“3 4*52”、“3 4*52-”的时候,询问学生表达式还未结束是否可以计算,因此让学生自己总结出这里的优先关系是指前一个算符和后一个相继出现的算符的关系,并强调两点:首先,(a,b)和(b,a)是两种不同的关系;其次,当a,b前后相继出现时才会用到(a,b)。最后,把算符扩充到终结符。根据上述案例教学,很容易让学生理解算符文法和算法优先文法的概念。 (四)讨论式教学法
讨论式教学法强调在教师的精心准备和指导下,为实现一定的教学目标,通过预先的设计与组织,启发学员就特定问题发表自己的见解,以培养学员的独立思考能力和创新精神。讨论式教学的环节大致包括:设计问题、提供资料、启发思路、得出结论。
在讲授编译原理语法分析单元中的算符有限分析法时,设计了一个计算器的应用程序,传统的计算器是按照输入表达式的顺序进行运算,而这里的设计包含括号的计算器,按照先括号后乘除最后加减的方法进行运算,当输入表达式后通过按钮控制结果的输出。演示完毕后,由同学讨论计算机是如何完成的。最后给出采用两个栈存放操作数和运算符,通过按钮来控制进栈和出栈。这样引出了算符优先分析法的内容。这种讲解法激发了学生的学习兴趣,对接下来的内容充满了好奇,有利于对知识的学习。
(五)Blackboard信息化教学平台的使用
陕西师范大学已于2013年引入Blackboard信息化教学平台,引导各教学单位和广大教师开展基于Blackboard教学平台的信息化课程建设及教学方式改革。该信息平台可以提供比较丰富的教学资源,如教学大纲、教学计划、电子教案、电子课件和教学视频等,方便学生自主学习。网络教学平台及资源在本课程的教学中已经发挥了关键的作用,课程教学组成员负责网站的日常维护和教学资源更新,学生每天的正常学习都要在这个平台上进行,课后师生也经常利用这个网络平台进行在线交流、答疑等。通过利用该教学平台,使用混合式教学,将传统教学的优势和数字化教学的优势结合起来,二者优势互补,从而获得更佳的教学效果。
二、针对计算机专业师范生的编译原理实验部分改革
对于计算机学科来说,实验是其重要的组成部分。如果掌握了理论知识而不动手实践,就如同将军纸上谈兵。对于编译原理来说,通过实验可以更好地掌握其理论知识,当我们做完试验后再回头看书,我们会发现原来编译原理并没有那么难理解。通过实验,学生可以对自己所学知识进行检测,及时发现自己存在的问题与漏洞,及时改正与复习,同时也避免了丢开课本就忘的情况。计算机专业师范生因以后多从事教师行业,大多对自己的理论知识要求较高,而在实验环节要求一般,做具体实验时会感觉比较难,动手实践能力较差,因此教师可以以学生了解实验原理作为实验目的与要求。因此针对计算机专业师范生,对编译原理课程实验部分改革的具体内容为:(1)词法分析器设计:主要目的为熟悉词法分析的基本原理、词法分析的过程以及词法分析中要注意的问题。实验内容是使用C语言编写一个PL/0词法分析器,为语法语义分析提供单词,使之能把输入的字符串形式的源程序分割成一个个单词符号传递给语法语义分析,并把分析结果(基本字,运算符,标识符,常数以及界符)输出。(2)语法分析程序设计(一):加深对语法分析器工作过程的理解,能够采用C语言实现简单的语法分析程序,能够使用自己编写的分析程序对简单的程序段进行语法翻译。这里可以设计使用预测分析法来编制语法分析程序,通过对语法规则的明确定义,编写有效的分析程序并对词法分析器实验中得到的结果进行正确的语法分析。(3)语法分析程序设计(二):由于后续语法分析原理比较复杂,针对计算机专业师范生,为了加强学生对算符优先分析法、递归下降分析法和LR(1)分析法的理解,将现成的程序让学生阅读理解,并组织分组讨论和讲解,实现语法分析程序的掌握。
通过上述的实验改革,计算机专业师范生提高了学生对编译原理实验的兴趣,在原有的基础上加深了对原理的掌握,同时提高了自己阅读和理解程序的能力。
三、总结与展望
该论文旨在对师范院校计算机专业师范生的编译原理教学与实验改革部分进行阐述,使教师和学生转变教学思想,端正学生学习态度,提升学生对编译原理的学习兴趣,加强对编译原理相关知识的理解与把握能力,从而提升其创新精神与创造能力。通过介绍编译原理在计算机中的重要性、对编译原理进行教学改革的原因,结合计算机专业师范生的学习特点,对编译原理教学进行改革所采取的新式教学和实验方法策略。希望此论文可以为计算机专业师范生的编译原理教学提供帮助。
参考文献:
[1]陳火旺,刘春林,谭庆平,等.程序设计语言编译原理[M].北京:国防工业出版社,2009.
[2]张素琴,吕映芝,蒋维杜,等.编译原理[M].北京:清华大学出版社,2005.
[3]徐晶.研究型教学在编译原理课程中的应用探索[J].现代教育技术,2009,19(S1):62-63.
[4]袁彩虹,周星.编译原理课程案例教学研究[J].计算机教育,2013,(9):27-29.