|
(6)强调理论指导下的实践,提升算法设计和程序设计能力
“编译原理”面对明确的、便于抽象的问题,有较成熟的理论做支撑,通过限定语言的复杂度来限定系统规模,以便于学生在有限时间内在相应理论指导下进行实践,进一步学习和掌握其中的一些基本的问题求解方法、处理问题的思路。所以,“编译原理”课程的实践,必须在理论指导下进行。要求学生在学习了基本的理论之后,进行实验系统的设计与实现。要求教师在掌握系统总体构成和基本原理和方法的基础上,提出实验的最基本要求。鼓励学生选择适当的方法进行系统的设计,包括选择自动化生成的方法。为了取得相应的效果,强调学生一定要先完成设计,再进入实现阶段,以培养学生对复杂问题的求解能力。
另外,由于对问题的形式化描述及其系统的复杂性,许多理论知识需要在实践教学中得到印证,只有这样,才能使学生更好地掌握这些内容,就像吃梨子一样,亲自尝尝使用这些“一辈子都会不断使用的方法”的“味道”。通过实践使学生感受成功的乐趣,激发其学习兴趣,促进其对理论知识的理解,培养理论联系实际的能力。
(7)总体设计下的系统设计与实现,提升系统和程序实现能力
编译系统作为一个经典的、很成熟的系统,它的构建涉及多方面的内容,既有分析,又有综合,对于培养学生的4大学科基本能力非常重要。无论从其复杂度还是技术含量上说,都是很适合教学的系统。
考虑到在课程的第一章就讲授了编译系统总体结构,可以在总体结构指导下,将实验系统分解为“词法分析器设计与实现”、“语法分析器设计与实现”、“语义分析与中间代码器设计与实现”,每个程序将利用前一个程序的结果,最终形成一个简单的编译系统。这样一来,实现采用功能递增的方式,对实验进行引导性划分,使得学生在学了词法分析的内容时,就可以着手进行相关的设计,随着教学的开展和教学内容的深化,组织系列化的上机实验,使学生逐步完成词法分析器的设计与实现、语法分析器的设计与实现,优秀的学生进一步完成语义分析与中间代码生成器的设计与实现。在最后一个实验完成后,学生已经开发出一个满足要求的程序变换程序,从而完成了整个系统的构建。
5.积极引导学生探索未知
教学讲究以学生为主体,以教师为主导,教师与学生分别是教与学各自的主角。角色的转换无疑会给教学工作带来好处,这里的主要问题是教师如何在“研究为本的学习”中发挥“教方”的作用,学生如何下意识地将自己培养成创造型人才而充分发挥内因的作用。
鼓励教师跳出知识的圈子,强化能力培养的意识。了解专业/学科对相应人才的知识、能力、素质的基本要求;掌握相应的学科方法和方法学的有关内容;把握教学计划的总体思想及自己所授课程在整个人才培养中的地位与作用;明了如何通过该课程的讲授,除课程的基本知识外,还应向学生传授什么内容;努力探索如何激发和引导学生以一定的思维方式和途径(可能是具有明显的学科特征的)不断地探索、发现,探讨如何安排教学内容,使其成为学科所需要的能力提高与素质培养的载体。
大学前的教育与大学教育之间存在较大的差异。大学教育少了许多“保姆”式的呵护,特别是在学生进入大学伊始,管理和教学的方式方法的突然改变,造成学生的盲从期与断奶期的重叠,而此时也正是学生激情四溢,对专业的好奇、渴望在专业上有所建树的时期,如何有效地利用这种好奇心,如何利用他们对学有所成的渴望,“建立探索为本的新生年”,激发他们一步一步地走入“理智的”探索空间是非常重要的。
必须大力在学生中倡导学科上的好奇心和批判精神,树立在学业上的自信,特别注意将独生子女们在日常生活中表现的那种自信、自负等引导到对学科问题的探索上,鼓励和引导他们实现研究为本的学习。对课程、对问题,要多问为什么,要挖掘深层的东西,要通过追究老师的解题思路去培养自己的探索兴趣与能力,要有意识地去培养自己爱科学、爱学科、爱专业的精神和踏实的科学态度。在这个过程中,不断地、由小到大地体验创新的乐趣,不断强化其创新的信心、气魄,提高其创新能力。
要注意保护优秀学生。当我们鼓励学有余力的学生在有了一定的基础后,深入到课题组参加实际的科学研究时,一定要告诫他们摆正科研与学习、局部与系统、设计与实现等关系,要鼓励他们将眼光放得远一些。实际上,如果过早地让优秀的学生陷于很低层次的开发工作,不仅影响他们的发展,而且还会在学生群体中产生一种强烈的误导,引导学生为了追求眼前的东西而忽视未来。
总之,要想培养学生的创新能力,必须重视对学生进行面向未来的基础教育,不仅仅使学生知其然,更要让他们知其所以然,通过对所以然的掌握,使他们更“理性”,创新能力更强,在理论与实践的结合中掌握基本方法、积累经验、树立信心,通过不断探索,在经历创新的艰辛中体验创新的乐趣。
参考文献:
[1] 教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业人才专业能力构成与培养[M].北京:机械工业出版社,2010
[2] 蒋宗礼.以能力培养为导向,提高计算学科教育教学水平[M].中国大学教学,2008(8):35-37
[3] The Joint Task Force for Computing Curricula 2005,Computing Curricula 2005, Sep. 30,2005. http/www.acm.org/education/curricula
|