新工科背景下编译原理课程工程案例设计
2020-12-29谌志群王荣波黄孝喜
谌志群 王荣波 黄孝喜
摘 要: 新工科的迅猛发展对各高校专业建设和课程建设提出了新要求。以“编译原理”课程为例,讨论了新工科背景下课程改革的方向及途径。提出以工程案例作为课堂教学与产业需求之间的触点,将课程知识点融入到工程案例中,使学生理解、掌握课程知识和促进创新实践能力并进。详细介绍了一个经典理论与新兴产业需求相结合的工程案例,讨论了案例式教学的特点及其对新工科建设的促进作用。
关键词: 编译原理; 新工科; 教学研究; 工程案例; 有限自动机
中图分类号:G642.0;TP314 文献标识码:B 文章编号:1006-8228(2020)12-91-03
Abstract: The rapid development of New Engineering has put forward new requirements for specialty construction and curriculum construction in colleges and universities. Taking the course of compiler principle as an example, the direction and approach of the course reform for New Engineering are discussed. The project case is proposed as the interface between classroom teaching and industrial demand, and integrating the course knowledge into the engineering case can make students understand and master the curriculum knowledge, and promote innovation and practice abilities simultaneously. This paper introduces an engineering case combined the classical theory with the demand of emerging industries, and discusses the characteristics of case teaching and its promoting effect on the construction of New Engineering.
Key words: compiler principle; New Engineering; teaching research; engineering case; finite automation
1 新工科發展对专业及课程建设的新要求
为了应对新一轮国际科技革命和产业变革,加快培养新兴领域工程技术人才,主动布局未来战略必争领域人才培养,教育部从2017年2月开始在全国高校大力推动新工科建设,先后发布了《关于开展新工科研究与实践的通知》、《关于推荐新工科研究与实践项目的通知》等文件,积极探索工程教育的中国模式和中国经验,助力我国高等教育强国战略的实施[1-2]。专业建设和课程建设是新工科建设的“重中之重”,2018年9月,教育部、工信部、工程院联合发布《关于加快建设发展新工科 实施卓越工程师教育培养计划2.0的意见》,推动各地着力建设一批新型高水平理工科大学、一批产业急需的新兴工科专业、一批体现产业和技术最新发展的新课程[3]。新工科专业既涉及计算机科学与技术、物联网工程、数字媒体技术等已有的传统工科专业,也包括新兴产业催生的新的工科专业,如数据科学与大数据技术、人工智能等。“增量优化、存量调整”是新工科专业建设的指导方针[4]。新工科专业建设应主动与新技术、新产业、新业态的需求相衔接,各高校在主动谋划设置“增量”工科专业的同时,要对“存量”工科专业的课程体系和课程内容进行积极调整,将产业和技术的最新发展、行业对人才培养的最新要求引入教学过程,积极引导教师将产业界的最新应用研究成果引入到课堂中。在具体的课程建设中,需要将培养学生的工程思维能力、设计思维能力和数字化思维能力等创新发展能力作为重要的培养目标纳入教学计划。
2 新工科背景下“编译原理”课程教改方向与实现途径
计算机科学与技术是新工科的重点建设专业,“编译原理”是计算机相关专业学生必修的一门专业基础课。“编译原理”主要讲授编译器构造的基本原理和经典算法,是一门公认的理论性较强的课程[5]。该课程涉及形式语言与自动机理论以及由此衍生出的一系列相关技术和算法,内容比较抽象难懂。另外由于毕业后很少有人会从事编译器的设计和开发工作,因此学生对学习这门课程的积极性普遍不高。但其实编译器大部分的实现技术不仅仅只能应用在编译器的开发上,这些技术在解决多个其他应用领域的工程问题时也能得到广泛应用。
美国哥伦比亚大学的Alfred V.Aho教授在其经典名著《编译器:原理、技术与工具》前言部分写道“编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,该书中的原理和技术都会反复被用到”[6]。对于学习“编译原理”这门课的学生来说,除了可以通过课程学习掌握一些具体的基本理论、技术和算法之外,还能培养学生计算机学科通用的问题求解和系统设计能力,如问题抽象与形式化描述、复杂问题算法分析与设计、自顶向下逐步求精、自底向上分步求解等。我们认为在新工科发展形势下,“编译原理”课程教学应改变以往过于重视理论教学、相对忽视工程应用的倾向,应以新工科建设为契机,重新梳理课程教学内容,提取与当前新兴产业工程应用紧密结合的知识点,并围绕这些知识点设计新的教学方案。针对“编译原理”课程理论性强的特点,新的教学方案可以以工程案例为载体,通过设置各种工程情境,将知识点融入到一个个的工程项目中,并指导学生从工程师的视角体验和看待工程。这样一方面可以加深学生对知识点的理解掌握,另一方面还可以激发学生的创新思维能力。这种基于案例的教学方法在提高学生学习兴趣的同时,还可以培养学生理论联系实际和解决复杂工程问题的能力,而这正是新工科建设对人才培养的基本要求。
3 “编译原理”课程工程案例设计示例
高级语言编译过程分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个步骤。在教学实践中,我们为编译重要环节和关键知识点都设计了工程案例,下面介绍我们设计的词法分析部分的案例。
词法分析是编译的第一个阶段,词法分析器的构造是建立在描述高级语言单词符号识别过程的有限自动机的基础上的。有限自动机是一种数学模型,分为非确定的有限自动机(NFA,Nondeterministic Finite Automata)和确定的有限自动机(DFA,Deterministic Finite Automata)。有限自动机作为一种形式化工具,在多个工程领域得到广泛应用[7]。我们设计的案例是采用DFA来对网上购物平台的购物过程进行形式化描述。
近些年来“网购”已成为一种新的生活方式,天猫、京东等网上购物平台已成为很多人日常生活中不可或缺的组成部分。网上购物平台的异步交易方式与传统实体商店的面对面交易模式不同。通过网上购物平台进行交易首先要解决一个买方和卖方彼此不信任的问题。这个问题通常借助一个独立可信的第三方平台来解决。这个第三方平台以自身的信用确保买卖双方的货款和货物的交易安全,同时解决网上支付问题,因此这个第三方平台又是一个网上支付平台,典型的平台有支付宝和微信支付。基于第三方支付平台的网上购物交易流程如图1所示。
网上购物的具体步骤如下。①商品浏览:买家向卖家网站发送商品浏览请求。②商品推送:卖家网站向买家推送商品信息。③订单确认:买家选定商品并下单,同时选择第三方支付平台。④订单提交:卖家网站生成支付订单并提交给第三方支付平台。⑤货款支付:买家登录第三方支付平台,确认为订单支付货款。⑥支付响应:第三方支付平台把支付成功信息发送给买家和卖家。⑦发货确认:卖家发货,提交发货信息。⑧收货确认:买家收到货物,向第三方支付平台发送收货确认信息。⑨交易完成:第三方支付平台把货款转移至卖家的账号中。
在交易中涉及买家、卖家(网站)、第三方支付平台及与第三方支付平台签约的银行、发送货物的物流/快递等主体。在交易过程中还可能出现取消订单、退款等操作。用一个形式化方法来描述整个交易过程,是开发网上购物平台的基础。交易过程中存在若干个状态,完成某个操作或者发生某个事件之后可触发当前状态转换到另一个状态,整个交易过程可以使用一个确定的有限自动机(DFA)来描述,如图2所示。
有限自动机由McCulloeh和Pitts在1943年提出,距今已有70多年,可以說是一种很“古老”的数学模型,而网上购物平台是近些年兴起的“新生事物”。我们从这个案例中可以看到,貌似过时的理论同样可以在新兴领域焕发出新的生机。
除了以上DFA的应用案例,我们还设计了广义LR分析方法在自然语言语法分析中的应用、属性文法在句法模式识别中的应用等案例。有些案例是启发式的,利于引导学生作进一步的深入探索。这些案例以互联网和工业智能为核心,与传统产业的转型升级密切相关,与新工科的人才培养需求深度契合。案例式教学实质上是一种启发式和探究式教学方法,它使得教学过程从封闭走向开放,从填鸭式教学转变为学生主动参与型教学。通过一个个的案例,学生除了掌握课程要求的基本知识之外,还激发了兴趣、开阔了视野、培养了创新思维能力。这种案例式教学方法在我们实际的教学过程中取得了令人满意的效果。
4 结束语
专业和课程是新工科建设的基石。在“问产业需求建专业、问技术发展改内容”这一新工科专业与课程建设行动纲领指引下,各高校及产业界正将我国的新工科建设推向一个新的更高的阶段。新工科背景下的专业建设和课程改革,要以促进学生核心素养发展、培养新一代创新型工程师为根本目标,而实践应用教学是连接理论与应用的桥梁,是培养学生创新发展能力的重要途径。实践教学的最佳载体是工程案例,我们认为可以将工程案例作为课堂教学与产业需求之间的触点,精心设计工程案例并纳入课程教学,激发学生的学习兴趣和探索意识,培养学生的创新实践能力。工程案例的设计既要与课程重要知识点相结合,又要与最新的产业化需求相结合。工程案例可以是启发式的,不必面面俱到描述所有的工程细节。基于工程案例的教学模式是培养适应新兴产业发展的、创新实践能力强的高素质新工科人才的可行途径。本文以计算机科学与技术专业的“编译原理”课程为例,介绍了一个工程案例的设计过程,并讨论了案例式教学的优点以及对新工科人才培养的作用。希望本文的探索能为新工科背景下的其他传统工科专业的课程建设提供参考和借鉴。
参考文献(References):
[1] 教育部.关于开展新工科研究与实践的通知[EB/OL].[2017-02-20].http://www.moe.gov.cn/s78/A08/A08_gggs/A08_sjhj/201702/t20170223_297158.html.
[2] 教育部.关于推荐新工科研究与实践项目的通知[EB/OL].[2017-06-21].http://www.moe.gov.cn/srcsite/A08/s7056/201707/t20170703_308464.html.
[3] 教育部,工业和信息化部,中国工程院.关于加快建设发展新工科实施卓越工程师教育培养计划2.0的意见[EB/OL].[2018-10-17].http://www.moe.gov.cn/srcsite/A08/moe_742/s3860/201810/t20181017_351890.html.
[4] 吴爱华,杨秋波,郝杰.以“新工科”建设引领高等教育创新变革[J].高等工程教育研究,2019.1:1-7,61
[5] 蒋宗礼.“编译原理”教学设计[J].计算机教育,2008.3:26-30
[6] Alfred V. Aho, Monica S. Lam,Ravi Sethi,et al.赵建华,郑滔,戴新宇译.编译原理[M].机械工业出版社,2009.
[7] 习仲坚,巫明.有穷自动机理论在自动化控制方面的应用[J].自动化与仪器仪表,2012.6:105-108