应用型本科进行系统性教学的探索

2022-05-30 11:58朱皖宁洪蕾
电脑知识与技术 2022年29期
关键词:本科生导师制工程教育认证应用型本科

朱皖宁 洪蕾

摘要:在当今新工科背景下,应用型本科更加重视基于面向产出的教学理念。大量工科专业的最终产出是综合利用在大学中学习的全部知识,解决一个复杂工程问题。当前的应用型本科的培养方案是将解决复杂工程问题所需要的全部知识按照递进的原则分成若干门课程进行教学。但是由于课程之间的承上启下以及周期过长等原因,导致学生学到后面忘了前面,以至于到了最终综合的阶段无法真正地解决复杂工程问题。文章提出了使用系统性教学的培养方案,可以更加有效地提高学生的最终产出。

关键词:应用型本科;系统性教学;本科生导师制;面向产出;工程教育认证

中图分类号:G642        文献标识码:A

文章编号:1009-3044(2022)29-0178-00

1 背景及意义

高等教育是向社会输送人才的最重要的教育阶段之一,因此更加偏向培养实践能力的应用型本科应运而生。而高等工程教育又是其中最重要的一部分[1]。当前的工程教育认证核心培养模式是面向学习产出的教育模式(Outcomes-based Education,简称OBE)。对于大量的工科类专业来说,最终的学习产出之一都是解决复杂工程问题的能力[2]。以软件工程学科为例,最终评价学生毕业的重要标准之一是能否针对给定的课题分析、设计、构建并测试一个复杂IT系统。工程教育认证根据最终毕业要求将学生能力分解为十二条一级能力指标,根据能力指标点将能力层层分解,然后设计大量的课程分别支撑若干条指标点,最终可以支撑完整的毕业要求能力[3]。但是大量紧密相关的课程,在实际的教学中显得支离破碎。例如软件工程,大部分学生把相关内容背诵一遍就可以考很高的分数。在对这门课程不断的教学改革中提出了要将课程实践加入其中,但是又带来了学习量过大,而课时量太少,无法完成的问题。数据库、设计语言、网页开发、J2EE、Java等课程的相关性极强,但是在每门课的理论或者实践教学中都很难体现出这一点,例如数据库的课程设计中只要求数据库表的设计,而界面开发的课程中又不要求从数据库中取数据。这就使得学生在学习中缺乏对完整学习体系的认识。一些应用型大学为了解决这一问题,在每学年结束时开一门综合课程设计,试图让学生将所有学过的内容融会贯通,但是教学实践表明此时学生已经忘记了大量“死记硬背”的课程内容。如何能够让学生融会贯通大学期间全部的课程,并能够合理、综合地运用所学解决实际的复杂工程问题就成为急需解决的问题。

为了解决这一问题,大量的教师和学者都提出了一系列的解决方案。周天源等提出了将案例教学的模式融入翻转课堂中,提高了学生学习的兴趣并提升了学生解决复杂工程问题的能力[4]。以布鲁姆模型构建教学设计,并创建基于OBE的课程评价体系[5]。韦卫等还提出了将毕业设计改为Capstone课程,以提高学生的学习、分析、创新和沟通等能力[6]。鞠小林等提出强化校企合作,使用“3+1”式教学模式,即最后一年在企业进行大量的实习,以提高学生的实践能力[7]。但是以上的教学模式都很难解决课程与课程间承上启下的问题,以及前期大量的课程学而不用,到最后一年使用时又得重新学习的问题。因此本文提出使用系统性教学的模式,可以有效地解决以上问题。

2 系统性教学性探索

2.1 系统性教学的定义

系统性教学的教学目标为:让学生通过系统性教学,将所有所学课程融会贯通,对复杂工程实践的认识站在一个比较高的位置并且具备实际动手能力。系统性教学即是指将多门相关的课程进行融合,以解决复杂问题为目标,任务驱动为主要教学手段,分组讨论加大量自学为教学模式,最终提高学生的自学能力、分析能力、调研能力和合作沟通能力。对于软件工程学科来说,系统性教学是非常有必要性的,但是实施非常困难。难点在于:时间短暂却要做比较大型的项目;需要综合性的知识,对学生知识储备要求高;需要学生有极高的学习热情等。

2.2 系统性教学实施方案

要进行系统性教学,首先要让学生清楚地理解每门课在完整的项目开发中起到的作用。从软件分析的角度来说,要做到这一点就要自顶向下逐步分析,也就是说课程的学习应该是先从一个完整的项目开始,逐步学习到项目中用到的一个一个知识点。显然这一学习路线和当前大学开设课程的顺序是完全相反的,而且直接让零基础的学生进行完整项目实践是一件几乎不可能完成的事。因此首先要将能力分为递进的若干级别,以下以软件工程专业为例:

第一学年结束时,学生应当可以在需求确定、设计完备的前提下,独立开发一个完整的小型系统。此系统应包含前端、后端、数据库的一切代码。

第二学年结束时,学生应当可以对一个课题进行调研、分析、设计、构建代码、测试并且可以给出完整的开发文档。

第三学年结束时,学生应当可以就一个复杂的课题进行抽象的建模,做出创新的解决方案,并以团队的形式分工合作,最终实现全部的系统。

第四学年,学生进行毕业设计,使用之前所学解决复杂工程问题。

如图1所示,在每一学期中,除公共基础课以外只开设2-3门递进的课程,即一段时间只有一门融合性的课,其课程目标为下一门课的前置条件。例如在大一第一学期开设程序开发初级和程序开发中级课程。每一门课程同样分解为若干递进式的课程目标,例如程序开发初级:1)能够分析对比顺序、分支、循环三大结构的简单算法优劣,可以定量地对算法进行分析,并进行代码的构建;2)能够分析问题,将问题分解为若干子问题,并进行分别代码构建和组合;3)能够分析线性表问题,对比不同算法处理线性表问题的优劣,并构建代码实现。容易发现此课程是由原有的高级语言编程和算法与数据结构课程融合而成。算法是程序的核心,数据结构是数据组织的方法,编程方法是具體实现的技术,三者本来就是缺一不可的。因此可以在课程里,将所有的教学内容分解成若干个课题,借由课题逐步深入地进行系统性的教学。

2.3教学方法

以程序开发初级课程为例介绍教學方法。为了能够快速地让学生动手,教学方法摒弃了以往的先教半个学期理论,然后上实践课的方案。核心思想是重视实践、强调自学、放弃复杂的和重复的语法知识,使用最小语法集教学。

2.3.1重视实践,强调自学

在长期的教学实践中我们发现,学生在语言类课程考核优秀的前提下,仍然有可能无法编程。其重要的原因就在于以往的语言类课程重视语法教学,几乎不讲算法和程序设计的思路,理论和实践严重割裂。在教学中我们同样发现学生在没有基础的前提下,完全有能力学会基础的语法知识。因此在不进行任何语法理论教学的基础上,可以让学生模仿已有代码直接开始写程序。强调编程思想,程序设计方法和算法,直接从一个学生感兴趣的问题开始,例如:若干个数比大小,让学生在规定时间内说出他认为比较次数最少的方法;画*表示的三角形等。通过具体问题直接开始写程序,让学生仿造程序写类似的程序,然后再说明每个关键词的含义。总的来说,就是全部的语法知识由学生自学,任务驱动式教学,先抛出问题再学习问题解决的方法,再引申到更加深入的问题上交由学生思考。显然在这个教学的过程中,问题的设计是最关键的点。

2.3.2最小语法集教学

在以往的语言类课程中,常常有为了难而难的语法问题,例如求解y=++x+x++这一类的问题。但是在实际的工程实践中,为了可读性往往不会使用特别复杂的语法技巧,因此可以考虑基本不讲任何复杂语法技巧,并且不进行语法知识考核,要求学生用最简单的语句书写程序,务必简单清晰,所有人都看得懂。并且一个实际的项目案例中可能只包含了少量常用的语法知识。如果可以单独将这常用的语法先进行教学,就可以让学生以最快的速度开始项目实践。以往的教学活动认为,必须要系统地学习一门语言的所有语法知识,并且弄清楚这些语法的各种变化才能够写程序,例如:在循环语句的学习中,C语言分为while、do while、for循环,在以往的教学中不仅讨论了3种循环的语法,使用方法,区别,还要讨论这三种循环是如何互相变换的。根据最小语法集理论,循环是写程序必要的结构,但是以上三种语法结构只需要会一种就基本可以写出任意复杂的循环语句,因此让学生按照自己的喜好挑选一种进行学习并直接开始写程序,在随后的实践课程中,学生再慢慢地根据实际需求查漏补缺。通过这种模式,只需要学习以往课程中70%的章节,每一章只需要学习1/3的语法内容就足以让学生开始写程序,并且因为不考查语法知识,大家都使用较为简单的写法,加快了学习的进程。所以才有可能在较短的时间里就能写出需要的代码。总结为不重视语法,重视实际的编程能力,在不影响程序运行效率的基础上,代码要尽可能地简单,语法要尽可能地少。

2.4考核方式

在以往的语言类课程中,过于强调语法考核忽略程序设计考核。例如计算机等级考试。过于强调小程序算法的考核而忽略完整项目的考核,例如PAT考试。由于系统性教学方式采用了最小语法集的教学方式,非常强调实现需求的能力,最重要的是考核整体项目完成的能力,包括从调研开始一系列文档的书写,分析,设计以及项目实现的能力,应该以项目完成度作为考核的标准。例如:第一学年最后的课程学生应提交带有图形界面和数据库的完整系统;第二学年最后的课程学生应提交带有轻量级架构的Web开发或移动开发系统,需要有完整的需求分析、系统设计和测试文档。总的来说,即是不重视理论考试,重点考察实践能力,尤其是做完整项目的能力。

2.5学生助教制度

在新的教学模式下,由于考核多,而且多为系统开发,考察的是学生的能力而不是简单的语法知识,所以考核-反馈环节就需要消耗老师大量的时间。如果不能提高师生比例,以上的考核环节就难以完成。考虑到教师不一定都有研究生辅助教学,本文提出可以采用高年级同学助教低年级同学的教学方案,具体方法:

1)在高年级同学中遴选1/10比例的优秀同学,在低年级课程里充当助教的工作,并给予一定的公共服务分数。

2)将低年级同学分组,每组分配一名高年级同学作为学生助教。

3)对于客观考核的课程,例如C语言或者Java语言课可以采用PTA等在线编程考试系统,由学生助教对低年级学生进行答疑。

4)对于主观考核的课程,例如软件工程,由学生助教对低年级学生进行一对一答辩。

5) 学生助教将所有的考核结果定期做成报告汇报给任课教师,以明确课程当前的教学状况。任课教师可以根据考核结果及时调整教学策略,以达到教学-考核-改进的闭环效果。

3 系统性教学实践成果

由于大一和大二阶段公共课程较多,所以先在大三试点进行了教学实践。在2015年时,金陵科技学院软件工程学院开始启动卓越工程师计划,在大二结束的阶段遴选部分优秀的学生组成卓越班,试点进行系统性教学。时至今日,卓越班着眼于信创方向,每个学期将专业课融合为2门大型的课程。经过统计,卓越班毕业生的平均工资显著高于其他班级。

2020年时,通过协同育人教改项目,创建了基于东软平台的系统性教学虚拟班,在大一入学时就进行报名遴选,迄今为止已申请多项软著,参加多项学科竞赛并获奖。在2022年度江苏省计算机设计大赛中,参赛的5组同学均获奖,并有一组获得特等奖。

2021年时,在大一上学期的C语言课程中实践了学生助教制度。遴选了15名大三同学对大一同学进行答疑。除答疑外,还试点了分级教学模式。即根据在线考核结果,将学生分为多组虚拟班,对不同水平的同学采用不同的教学模式。对于成绩较好的同学主要教授算法与数据结构,对于成绩一般的同学进行编程的强化训练,对于成绩较差的同学重点辅导基础语法和简单的编程思想,以达到因材施教的目的。从实际教学结果来看,本届同学的成绩普遍高于往届。

4 总结

本文提出的系统性教学模式主要是将多门分别开设的课程有机融合成以解决复杂工程问题为目标的综合性课程,根据深度和难度,将毕业要求分解为大量递进的教学目标。每个教学目标都以完成实践项目为考核方式。通过任务驱动的教学模式引发学生对学习的兴趣,使用最小语法集进行快速训练,重点考核系统设计、分析、编程和测试能力而不是基础语法,通过采用大量的学生助教提高师生比,在教学实践中得到了比较好的教学成果。

参考文献:

[1] 王瑞平,孙高飞.工程教育认证背景下“软件工程”课程改革探索[J].科技与创新,2021(14):145-146.

[2] 赵胜楠.工程教育认证背景下工科专业制订人才培养方案需求调研——以软件工程为例[J].科技风,2022(3):43-45.

[3] 肖飞,张海清,李代伟,等.工业4.0环境下软件工程专业本科毕业生就业能力量化评价方法及实证研究[J].计算机教育,2021(11):176-180.

[4] 周天源,陈茂华,张占强,等.工程教育认证下基于翻转课堂混合教学模式的探索和应用——以软件工程课程为例[J].轻工科技,2021,37(3):177-178.

[5] 杨毅刚,孟斌,王伟楠.基于OBE模式的技术创新能力培养[J].高等工程教育研究,2015(6):24-30.

[6] 韦未,张伟锋,刘远,等.学分制及capstone课程目标下实施导师制的探索——以华南农业大学水利水电工程专业为例[J].高教学刊,2021,7(12):97-100.

[7] 鞠小林,蒋峥峥,陈翔,等.专业认证背景下软件工程专业本科教育重构思考[J].计算机教育,2021(9):81-85.

【通联编辑:王力】

猜你喜欢
本科生导师制工程教育认证应用型本科
面向工程教育认证的电气工程专业人才培养模式改革
基于本科生导师制的图像处理与机器视觉综合设计改革与实践
工程教育认证背景下的机械工程专业课程建?设研究与实践
基于工程教育认证的过程装备与控制工程专业课程体系设置与实践
应用型本科院校高等数学课程建设改革
地方新建本科高校转型发展的探索与实践
学分制背景下本科生学业导师制的实施策略
应用型本科大学英语后续课程建设之必要性探讨
关于应用型计算机专业培养方案的研究
基于工程教育认证的学生能力达成度评价体系设计