|
4.专业能力培养与课程教学
在本科专业教育中,这些能力的培养需要通过一系列的教学活动来实现。而课程作为本科教育最系统、最基础、最重要的部分,在能力培养中起着关键的作用。所以,需要按照专业基本能力培养的需要组织课程体系和各门课程的内容,探讨如何将专业能力的培养落实到课程中,是提高教育水平的重要方面。
例如,“编译原理”课程,作为计算机专业的一门传统课程,当它的课性从专业课变成专业技术基础课后,就应该更好地发挥专业能力培养的作用。从课程体系总体设计看,编译原理课程的主要教学目标之一是使学生在系统的级别上重新认识算法和程序,提升学生的系统能力。实际上,除了这些之外,还在于进一步培养学生的形式化描述能力:如何给出问题的形式化描述,基于这种描述设计出自动化处理的过程,最后实现“自动计算”。
虽然“编译”课程(通常称为编译原理、编译方法、编译技术等)是计算机专业重要的经典课程,但是随着进入高等教育大众化,对计算机专业是否需要开设“编译”课程出现了疑问,特别是该课程的基本内容涉及一些重要理论基础的抽象性,使得对其理解产生了较大的困难,加上认为毕业生很少有人将设计与实现编译系统,使得该课程的“重要性”、“经典型”受到了怀疑。课程的设置虽然要看知识的“直接有用性”,但更要考虑专业能力培养的重要性。如果忽视了本科教育培养学生基本专业能力、可持续发展能力这一基本目的,课程设置就是不恰当的。实际上,计算机科学与技术专业的本科生是否要开设“编译”课程,要考虑具体的培养目标等因素,要从总体目标的需求上考虑,在总学时的限制下,是否是实现总目标的最佳课程。
除了知识外,还含有基本问题求解的典型思想、技术和方法。所以,该课程的内容对于培养学生的计算思维、程序设计与实现、算法设计与分析、计算机系统的认知与开发利用等四大学科基本能力非常重要,是在程序设计、数据结构与算法等课程中受到一定的锻炼后,从系统的级别上对程序、算法的认识进行再提高,通过课程进一步提升学生的计算机问题求解的水平,增强系统能力,体验实现自动计算的乐趣。Alfred V.Aho在《编译原理》的开篇曾写道“编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,本书中的原理和技术都会反复用到”。所以,鼓励有条件的计算机专业为本科生开设“编译”课程,并通过强调课程恰当的形态内容达到与专业培养目标吻合的课程教学目标。
总体上,可以将课程目标定义为:掌握“编译原理”中的基本概念、基本理论、基本方法,在系统级上再认识程序和算法,提升计算机问题求解的水平,增强系统能力,体验实现自动计算的乐趣。具体地从如下几方面实现对学生能力的培养。
(1)掌握程序变换基本概念、问题描述和处理方法
这些方法主要有:自顶向下、自底向上、逐步求精、递归求解,目标驱动,问题分析、问题的抽象与形式化描述、算法设计与实现、数据结构的选择与使用、系统构建、模块化等方法。这些都是本学科最经典、最常用的问题求解和系统设计方法。
(2)实现“问题、形式化描述、计算机化”修养
修养“问题、形式化描述、计算机化”这一典型的问题求解过程,推进从“实例计算”到“类计算”和“模型计算”的跨越。
计算机学科发展到今天,早已经从一些单一的具体问题的求解发展到对一类问题的求解,也就是寻求一类问题的系统求解。完成单一的具体问题的求解的计算称为“实例计算”;完成一类问题系统求解的计算称为“类计算”。当然,在“类计算”中,一大部分高层次的计算是“模型计算”。这是区分于其他专业的学生的重要方面之一。学生的培养,通常都是从“实例计算”开始,逐渐推进到“类计算”,实现学生“计算”理念的跨越。
(3)增强理论结合实际的能力,获得更多的“顶峰体验”
这里有语言的形式化描述、FA、PDA、LR、LL、属性文法等变换模型,要完成具体语言翻译系统及其构建。所以,“编译原理”是理论和实践结合最好的计算机课程之一,不仅含有恰当的理论知识,而且直接涉及这些理论的实践,让学生亲历理论结合实践的乐趣,使优秀的学生获得更多的“顶峰体验”,培养他们理论结合实际的能力。
(4)从宏观到微观、从微观到宏观,培养系统能力
站在系统的全局去看问题、分析问题和解决问题,并实现系统优化。经验表明,培养学生以系统的观点去看问题,是非常重要的,也是比较困难的。另一方面,系统又是由一段段的程序构成的。所以,引导学生在总体结构的指导下,分层逐渐地进入到具体的算法和程序中,同时为了完成总任务协调这些算法和程序。
“编译系统”虽然是一个相当规模和相当复杂度的系统(含总体结构),但对问题本身的分析和处理非常清楚,使得其规模和复杂度可控,宜于让学生掌握,通过教师的引导,容易实现从程序实现到系统构成、从系统构成到程序实现的交互,促进学生系统能力的培养。
(5)不断探索未知,培养创新能力
开展研究型教学,挖掘知识背后的内容,通过讲授思想、方法,模拟大师们的创新思维,培养学生的创新意识和创新能力。
|