首页 -> 2007年第11期
欧洲高等院校计算机学科形式化方法教育探析
作者:古天龙
(CSP)、π演算(PiC)、Petri网(Petri)、有限状态进程(FSP)、消息顺序图(MSC)、LOTOS、增强LOTOS(ELOT)、Estelle、Unity、系统描述语言(SDL)等;
FM14:声明式程序设计的知识点,包括函数式程序设计(FP)、Haskell、标准ML语言(SML)、扩展ML语言(EML)、CAML语言(CAML)、面向对象CAML(Ocaml)、Prolog等:
FM15:其它知识点,包括算法及复杂性(AL)、软件体系结构(SA)、Java建模语言(JML)、安全性分析技术(Safety)等。
三、总结
1.形式化方法的工业应用需求和教学过程实践的经验积累,已越来越体现出形式化方法教育的必要性和可行性。但是,国内计算机学科相关专业的形式化方法教育还相对薄弱,尚未在高等院校得到有效推广和实施。目前,国内形式化方法教育面临如下几个方面的困难:
(1)应用环境缺乏。软件工程是形式化方法的主要工业应用领域。国内软件企业近些年有很大的发展,但相当一部分企业仍然停留在个人英雄时代,很少需要团队合作或者是不需要大规模的合作。所以形式化方法在这里无法真正得到推广,结果一些大的企业也只有从国外引进人才或者引进人才后再进行培训。
(2)课程教材稀缺。目前国内仅有数种形式化方法相关教材,且基本上都是针对某种表示或方法,如z、B、Petri网等。涉及形式化方法的软件工程、硬件设计方面的教材/专著也不过两三种。这些极大地制约了教师对形式化方法的全面了解和把握。
(3)支撑工具匮乏。在形式化方法的教育中,为了提高学生学习的兴趣和课程教学的效果,形式化方法支撑工具是必不可少的,但我们却很难发现有价值的支撑工具。主要原因在于这些工具从认识到使用都需要花费很大的精力,当然开发相应的教学支撑工具也是需要花费较大的精力。
(4)实验环境缺少。形式化方法对于大规模应用系统开发尤为重要,教学单位一般只能提供小规模的教学实验环境,远远不及现实中的大规模系统。学生又缺乏到大型企业中实践和实习的机会,不能很好地使学生对形式化有一个感性的认识。
2.形式化方法教育得到欧美国家高等院校的重视和大力推广不过近十余年的时间,建立完善的知识体系和课程教学内容还需要进一步的努力。从欧洲58所高校的课程开设情况,结合CC2005以及计算学科的特点,可以看出形式化方法教育可能采取的途径为:专门语言/方法教学、综合内容课程教学、分散知识点教学。
(1)专门语言/方法教学: 仅仅围绕一些特殊或专门的形式化方法/语言进行教学,例如,Z语言、B方法、VDM语言、Petri网、逻辑及程序证明等。此方法可以对低年级学生实施教学,课程教学的目的在于培养学生能将形式化方法知识融会到其它后续课程的学习中,并逐步锻炼学生在计算机软、硬件系统的开发活动中使用形式化方法的能力。不足之处在于教学计划中仅仅包含了单一的方法/语言,学生不可能对形式化方法有广泛的认识和全面的了解。同时,由于商业软件所采用形式化方法的多样性,很难保证接受教育的学生达到学以致用,教学与实践的偏差难免太大。
(2)综合内容课程教学:围绕某一个主题或知识单元,开展多种形式化方法/语言的教学。例如:软件开发中的形式化方法、形式化规格、程序验证技术、协议工程等。此模式的优点在于不会使学生陷入仅仅学习几种形式化方法的思维中,同时也能很好地使学生从众多的方法中筛选对自己有用的方法并运用到实际的计算机软、硬件系统开发中去。但是,由于课程内容覆盖面广,方法的基本理论和基本原理的深度不够,学生仅仅掌握和了解的是方法的一些符号和粗浅的技术。这样,容易使学生产生误解,认为形式化方法仅仅是认识事物的一种符号表示方法,难以把形式化方法与计算机软、硬件系统的实际开发过程联系起来。
(3)分散知识点教学:将形式化方法的知识点融入到相关课程分散教学。例如在离散数学、数据结构、软件体系结构、软件工程、编译原理、人工智能、数字电路设计、计算机网络等课程中增加相关内容。优点在于把形式化方法贯穿在计算机学科的教学过程中,逐步渗透、循序渐进,培养学生的形式化方法思维能力和利用形式化方法实践计算机软/硬件系统开发的能力。这种模式的挑战在于需要大范围的修订计算机学科中各相关课程的教学内容,对授课教师也提出了更高的要求。
[责任编辑:余大品]
[1]