基于CDIO 工程教育模式的“编译原理”课程教学探索与实践
2023-08-29万伟韬
万伟韬
(南昌师范学院 江西 南昌 330032)
在工程行业人才的国际流动性增强以及中国工程教育专业认证蓬勃推进的大背景下,随着深度学习、区块链等热门研究领域的迅速发展,相应行业内部的竞争日益激烈,对从业人员的综合能力提出了较高的挑战,针对信息技术的教育模式改革与创新也层出不穷。CDIO(Conceptive Design Implement Operate)工程教育模式是一种强调工程与教育融合的新型教学模式,它是一种以“在做中学习”为核心,强调培养学生的实践能力和综合素质的教育理念,在当前计算机工程方面的教学中呈现出无可比拟的优势[1]。“编译原理”是计算机专业本科教育中理论与实践并重的核心专业课程,由于其教材知识内容抽象、算法复杂,对学生运用计算机进行逻辑思维有一定的要求,学生在初次接触时往往会感到难以消化[2]。本文旨在探索和实践CDIO 工程教育模式在“编译原理”课程教学中的应用。
1 现状探析:“编译原理”课程教学现状及问题归因
1.1 理论知识讲解晦涩,学生的学习积极性不足
“编译原理”课程在计算机专业中与“离散数学”“数据结构”以及“数据程序设计原理”等专业课程联系紧密,既属于计算机类专业的基础课程,帮助学生在涉及编程的学习中奠基理论基础,同时也具有相当的实践性。强调学生的抽象逻辑思维,要求学生注重对编程问题的抽象化描述以及分析,并且涵盖设计、实现、维护编译程序等实践技术。作为学生“入行”的基础课程,在理论知识讲解上如不能借助实践,仅停留在理论概念上的认知记忆,就难以产生好的学习效果。
1.2 实验教学片面单一,学生的学习主体地位难以落实
“编译原理”是一项理论与实践相结合的课程,是培养学生分析、设计、维护编译程序的综合素质与能力的重要支撑。为了更好地帮助学生掌握原理,国内各个高校通常会以实验平台教学作为课程学习的重要手段,但由于实验平台设置的局限性,学生在实验学习中会面临众多问题,如实验项目内容涵盖不全、创意不足、脱离课本教学等[3]。此外,受到程序语言设计局限性的影响,学生在用程序语言设计实验过程时,通常也难以有自主性发挥的空间。
1.3 考核评价不灵活,学生学习成果难以呈现
经调查,国外高校中在“编译原理”课程教学中非常重视实验在学生学习中的权重,而国内高校对“编译原理”课程教学的考核大多采取传统的“期末考试”形式,关于考核评价的改革通常仅限于在“一考定总分”的基础上增加一些平时的作业分占比、课堂表现分占比等,实验课的权重占比却鲜少提及。究其原因,是因为多数高校教师将“编译原理”潜意识看作是一项偏理论教学的课程,在实验教学上存在辅助、轻视的教学观念,把“编译原理”变成强记概念的“死课程”。
2 构想明晰:CDIO 工程教育模式运用于“编译原理”教学的探析
基于教学观念的改变,教学模式也要做出相应的调整,作为课程教学改革的主题内容之一,文章从CDIO 工程教育模式理念出发,进一步提出项目驱动教学模式(PBT),是对CDIO 工程教育模式的提炼,在汲取了传统教学模式的优点之外,更加注重学生的主体性地位,强调“做中学”的教育模式。具体模式如下:
培养目标:掌握以编译技术为主的理论与实践知识;学会自主解决开发编译系统过程中遇到的问题。
培养方式:因材施教展开分组教学、考虑学生实际情况;以课堂教学为基础,运用CDIO 工程教育模式。
教学方式:以分组教学结合项目驱动教学构建实践场景;以案例驱动教学法助力学生模仿与提升;编译系统设计中,设置开放性资源获取平台,鼓励学生自主创新;
考核方式:重过程。采用平时成绩占20%,实验成绩占20%,课程设计占60%的考核方式;重主体。组建评审小组,对学生的项目过程进行提问。
通过上述教学模式的改革,将学生在项目实践中的学习活动与学生的学习过程相结合,以完整的项目作为教师授课的主要方向,基于案例的模仿教学,帮助学生高效掌握技能[4]。
3 实践探索:CDIO 工程教育模式运用于“编译原理”教学的探索与实践
当今社会对工科计算机类专业人才的要求在能力与素质上基本以四个方面为主,分别是扎实的专业基础知识及终身学习的素质;实践经验和工程应用能力;能够自主解决问题完成实践创新的能力;能够与他人沟通协作的小组合作能力。结合CDIO 工程教育模式,以培养符合市场需求的专业人才为主要目标,明确以何种课程教学方式、课程教学过程的实施、对学生产生的效果、重构考核评价方式为教学实践探索的思路,从以下多方面进行实践。
3.1 探索以课程分组教学与工程项目导入相结合的教学方式
所谓分组教学,就是指教师依据学生学习能力的不同,将学生分为几个层次,便于教师更具针对性地展开教学。在“编译原理”中应用分组教学,能够为学生的学习提出更具针对性的策略,有助于培养学生的合作精神、竞争意识,还能照顾到学生的不同学习需求,激发学生的主观能动性,促进学生实现个性化发展。
例如,在目标是用C 语言编写一个simple 语言处理系统的项目学习中,基于CDIO模式,学生在该项目中执行的任务包括搜集编译基础理论和技术在计算机应用领域的成功案例,以及搜集开源的编译工具。在构思部分,我们需要清楚地了解客户需求,并考虑技术、企业战略和制度等因素。在这个过程中教师通过将学生分组,结合项目驱动式教学,在教学实施中,教师可以将学生分成若干个子项目组,划分项目的功能模块,指定各个模块的负责人,模拟实际工程项目开发,进行分工协作。相对于传统的课堂教学,这样的分组教学一方面可以活跃课堂气氛,使课堂主体由教师的“教”转向学生的“学”,另一方面,组内学生能够及时提出自己的创意,在互相帮助、交流的过程中提升自我。
3.2 探究以案例为载体、以模仿和提升为主要阶段的教学过程
基于当前各行业的竞争越来越激烈,高校在专业人才培养方式上也做出了多种教学探索,案例教学在经济、法律、教育、医学、公共管理、计算机专业都有广泛应用。
CDIO工程教育模式强调“做中学”,适用于“编译原理”课程的实践教学。以“项目案例”为载体,完善整个教学过程,模拟项目开发的学习环境促使学生尽快进入学习状态,调动积极性,提高学生的反应能力与实践创新能力。以输出一个相对完整的基于C 语言编写出的simple 语言处理系统为例,教师将此系统编译原理的学习分为模仿和提升两阶段,对应CDIO工程教育模式的设计、实施、运作阶段。
模仿阶段的主要目标是以simple 语言处理系统为案例,激发学生对项目学习的兴趣,积极投入身心,引导学生学习编译过程的基础知识,并通过实践掌握基本算法。以现有的simple 语言处理系统为案例,教师可展示用C 语言实现Simple 语言处理系统的案例,要求学生模仿整个实现过程。在实际教学中,教师再通过将现有案例项目开发分为若干项子任务,如:Simple 语言编译程序中词法分析程序、语法分析程序的设计与实现、语义分析和中间代码的生成、符号表的设计与实现、运行时的存储组织、目标代码生成、编译程序各阶段整合运行等子任务,结合分组教学以及项目驱动教学法督促学生完成项目开发。
提升阶段的主要目标是让学生学习自主完成编译器的开发,并且运用编译技术在项目实践中完成开发等相关工作。本阶段分为以下四步骤:
第一,编译器程序设计提高:定义一个待实现的源语言,如simple 语言的扩充或者C 语言的一个子集,要求学生用C 语言实现编译程序。第二,编译技术扩展:引导学生学习面向对象的语言编译技术,如收集整理开源编译器GCC的资料,描述GCC的总体结构、编译流程以及代码组织。第三,编译器实用工具:引导学生使用嵌入式系统编译器及其工具的应用开发,包括C语言和Java语言编译器的开发。第四,引导学生利用编译技术进行项目开发,如设计开发C 语言程序设计自动评分系统。
3.3 以分组形式激发学生的团队协作精神与自主学习能力
杜威的学生中心理论认为:“如果一个学生不能运用一项知识去解决自己遇到的困难,那么他就没有掌握这项知识。”CDIO 工程教育模式同样注重学生主体性的实现,重视学习者个体在精神层面的学习,“编译原理”课程教学的实践性也在培养学习者的团队协作精神上提出要求。学生应当注重融入集体生活,在团队中能与他人共同完成任务,这些都是CDIO 教育理念下的重要教学目标。
例如,在simple 语言处理系统项目教学中,教师通过借助“互联网+”信息资源搜寻现有的关于“编译原理”课程教学的资源,从中提取对本专业学生有益的学习内容,设计出符合CDIO 四个阶段的学习任务,并借用“互联网+”平台共享课程资源,引导学生自主设计、自主实现、自由探索,能够以团队协作的方式共同完成任务。
3.4 重构课程考核评价机制,强化工程实践能力考核
课程考核作为课程教学的重要环节,是一种以实践判断作为基础的检验教学和学习效果的一种手段。要建构以学生为中心的重主体、重过程的考核方式,就要摒弃传统的一纸分数定成绩的评价方法,而多采用过程性的评价方式[5]。基于“编译原理”课程学习的复杂度,教师在平时成绩的考核中可以侧重于学生的学习记录、作业练习以及单元小测的情况;在小组合作的项目中,教师也应当督促学生完成小组活动记录,查看学生在项目实践中的活跃度情况,考核学生在小组协作中的参与度以及发挥的作用。其中平时成绩占20%、实验成绩占20%,课程项目实践设计占60%。课程设计以CDIO 展开评价,分别是系统构思、设计、实现和运作四个部分。
此外,教师可邀请同行教师、校企合作企业代表人物、督导专家等成立评审小组,对学生的项目实践进行提问,提问点要关注在程。
4 实践考量:基于CDIO 工程教育模式的“编译原理”课程教学效果探析
2022 年在“编译原理”课程中实施CDIO 工程教育模式教学实践,其与2021 年的教学效果对比数据见表1。
表1 CDIO 模式应用前后学生学习效果对比
由表1 可见知,2022 年在完成课程项目设计的基础上,学生的学习成绩都有所提高,实践出真知,这充分说明教学模式的改革使得众多学生投入更多的积极性,在课程学习中综合素质与能力都有所提高,因此CDIO 工程教育模式在计算机专业的教学中有一定的推广意义。
5 结语
课程组在“编译原理”课程的教学中探索和实践了CDIO 工程教育模式。CDIO 工程教育模式对提高学生的实践能力和综合素质是有效的。通过设计和实现编译器的实践,学生不仅巩固了自己的理论知识,还锻炼了自己的实践技能和创造力,未来还需要更多的研究来探索CDIO工程教学模式在计算机不同专业中的最佳实践。