黄 旭, 曾孟佳,2, 吴小红, 刘红海, 林梦帆
(1. 湖州师范学院 信息工程学院, 浙江 湖州 313000; 2. 湖州师范学院求真学院, 浙江 湖州 313000)
近年来,我国工程建设取得了举世瞩目的成就,工程教育规模也跃居世界首位,为我国经济社会的发展培养了大批工程科技人才[1].然而,我国工程教育质量在迈向工程教育强国目标的道路上还存在一定的差距.如何进一步提升工程教育质量,进而提升工程人才总体水平,是当前一项艰巨的任务.工程教育与科学教育有很大区别,工程教育是培养能在工程设计和工程实践中发挥主要作用的工程设计型人才[2].尽管工程教育、科学教育、技术教育三者存在紧密的联系,教育内容相互交叉,但他们是3类不同的教育方向[3].受传统理科科学教育及教育评价体系的影响,目前工程教育在很大程度上与科学教育存在较大的同质性,许多教育主体并未真正突出工程教育的实质内涵.
工程教育认证是开展工程类专业建设的重要抓手,它对学生本专业学习所掌握的知识、技能和素养进行了具体描述,并提出了12条通用标准[4],包括工程知识、问题分析、设计/开发解决方案、研究、使用现代工具、工程与社会、环境和可持续发展、职业规范、个人和团队、沟通、项目管理和终身学习.这些标准表明,对学生开展工程教育教学涉及的不仅是科学知识和科学素养的教育,还涵盖了社会、文化、管理、职业等综合因素,以及环境、发展等理念方面的教育.传统的从科学教育主流教学模式衍变而来的工程教育教学模式未必能真正适合工程教育的需求,必须基于工程教育认证标准,大规模融合与传统科学教育无关、与工程教育密切相关的内容,才能真正发展工程教育.
敏捷教学[5-7]是应对新时代教学目标多元化和人才需求个性化的特征,以学生发展为中心,通过理论、技术、实践教学的交叉并行与快速重构,以及跨校跨界教育资源的高效协同,实现知识学习和能力提升的多轮迭代,具有高度灵活性和动态适应性的一种教学形态.敏捷教学以OBE理念反向重构课程体系,着重对工程实训、专业实习和毕业设计进行改革,指派教师到企业挂职锻炼,聘请企业工程师担任实践实训指导教师,将新技术、新工艺、新规范纳入实践教学,推动教学与实训的融合;面向学生发布大学生科研项目指南,开设讲座传授科研方法,开展头脑风暴,承担教育部“产学合作协同育人”项目,加强大学生科研训练,引导其参加学科竞赛,开展本科毕业论文和学生专利申请,构建人才培养、科技研发、成果孵化和创业服务“四位一体”的大学生创新创业实践平台,形成以项目为支撑的学生能力培养体系,使学生得到更多的实际锻炼和系统的工程训练.
敏捷概念来自制造领域和软件工程领域.敏捷软件开发是以用户为核心,采用迭代、循序渐进的方法进行软件开发,从而提高软件开发效率.与此类似,敏捷教学是以学生为中心,采用迭代、循序渐近的方法开展教学,从而提高学生的学习效率.敏捷教学作为一种自顶向下、由整体到部分的教学框架,符合技能训练规律,适合学生掌握工程技能,对提升学生综合工程能力具有较强的指导意义.敏捷教学的理念包含以下内容:
工程能力体现在对工程项目的总体把握和对工程实施细节的把握两个方面.大多数教学主体对工程实施细节关注较多,对工程项目的总体把握关注较少.而工程项目的总体设计原则和架构研究集中体现了学生的工程整体观,是最关键的专业能力之一.笔者结合高级语言程序设计与RFID原理及应用等课程教学实践发现,学生在阐述算法总体框架或系统架构时,往往对工程整体把握不到位,易陷入具体的算法实现和技术描述中,且描述过程未能把握技术细节与工程总体目标的关系.这说明以往教学过程中这方面的训练还较薄弱.而这种训练是提升学生工程能力和落实课程思政的重要载体[8].
近年来,笔者通过精选教材与教学案例,在教学中加大系统分析的比重,引导学生从宏观角度认识系统、理解系统、设计系统.以高级语言程序设计课程为例,在目前工科学生中应用广泛的基础编程语言——C语言的教学中[9],全方位贯彻“自顶向下、由粗到精、函数实现、增量开发”的教学与实践理念.程序设计教学中工程体现为程序,因此学生的工程能力可大体上对应对程序的认识和掌握能力.在教学实践中,使学生接触C语言之初就建立程序的整体观念,然后随着问题复杂程度的增加,逐步接受并掌握逐渐加深的程序,同时提升学生对复杂问题的认识能力和理解能力.C语言教学内容递进层次关系如图1所示.
在具体教学实践中,通过由简单到复杂逐步引入实际工程问题和解决方案,由浅入深地体现整体工程思维,训练学生“面向简单问题→面向较复杂问题→面向复杂工程问题”的认知和思考习惯,并注重方法凝练.宏观的整体工程认知为凝练方法提供了良好视角,通过反复训练学生“认识问题、提出模型、设计算法、编程实现”的工程思维,逐渐凝练正确的工程方法.
在敏捷教学理念指导下,工程训练流程将进一步突出学生对工程宏观架构的理解,实现架构与技术并重的目标.工程能力的提升遵循快速迭代模式,就像一个人学骑自行车,不可能把掌握平衡、前进、转弯单独拆散,工程能力的训练模块也不能拆散.只能在一次次迭代过程中齐头并进,共同提升.构建快速迭代的训练模式是敏捷教学训练的一个重要方面.在这个过程中,每个层面上的程序设计训练都是围绕完整工程问题从分析、设计到最终解决的全过程.无论是简单问题还是复杂问题,都要反复强化对工程总体性的认识,实现整个求解过程的快速推进.以C语言教学过程为例,迭代训练过程如图2所示.
根据上述围绕工程整体观开展的教学思路,笔者在RFID原理及应用课程中采用了这种模式.一般来讲,一个RFID系统涉及的环节较多,全面掌握所有技术后再训练系统搭建可能耗费时间较长且过程枯燥.在教学过程中,尝试构建系统框架,由学生编写数行代码,实现由读到标签的EPC编码来完成第一层次的迭代.这个过程花费时间非常短,而且学生能体验到完整的工程系统框架.补充一些知识后,进行细化后的第二层迭代.以此类推,经过3~4层迭代训练后,学生便可以搭建一个较实用的简单系统.经过这种训练,学生一方面能掌握系统搭建的基本方法,可以在面对更复杂问题时进行系统扩展和深化;另一方面能掌握面对技术瓶颈时进行技术选择和自学能力.这比单纯开展技术训练获益更大,也更加符合工程教育的需求.
改变过去就技术讲技术的传统,在教学过程中增加面对问题进行总体分析的相关教学,使学生在了解工程问题和解决思路的基础上进行专业学习和技术训练.具体实践训练模式如图3所示.
课堂教学应涵盖理论知识传授、技术水平提升和应用能力训练3方面内容,并在此基础上将理论教学、实践训练、工程能力、科研水平进行交叉与融合,不断进行各方面的迭代强化,而不是将这些要素割裂开来.在具体的基础教学实践环节训练过程中,应确保不同层面、每个训练单元都进行反复迭代训练,实现交叉并行与快速重构.最终进入集中实践环节,这个环节应突出问题分析、方案研讨、方案汇报3方面的训练,并确保其在教学中占足够的比重.具体集中实践形式可采用课内、课外、校外等不同层面,从而实现全方位的训练.
工程教学不同于经典的理科教学,它更加强调直接经验的获得,而直接经验一定要从实验、实践中来.因此应在整个教学过程中贯穿各种形式的实验、实践训练,主要包括以下两种类型:
(1) 在工程教学实践中精选理论教学内容,并配备相应的实验对比环节,即在理论授课过程中穿插实践环节.结合学生的年龄和注意力集中时间等生理特点,设计每节课连续理论授课时间不超过20 min,强制性地把实践训练、讨论等内容穿插到课堂教学中.通过这种形式保证总体学习效果,提升实践训练比重.同时为配合该项工作,重新设计教案模板,对每堂课45 min进行划分,明确标出理论教学、实验教学、讨论等环节的教学时长.通过这种方式引导教师主动思考,积极实施相关的实践环节.
(2) 保证实践环节的数量.针对计算机科学与技术专业和物联网工程专业中实践性较强的课程,进一步突出实验实践的比重,将50%课时用于实践训练.在长期实施理科化教学模式的定式思维情况下,此项工作推行难度较大,如何设计相应实验,对教师的要求也更高.为充分调动教师设计相关实验,提升其推动相关实验开展的积极性,在制度上规定实验学时与理论学时对应的工作量系数相同,并通过文件形式落实在年终分配中,目前已实施两年.
许多课程的集中实践环节已落实到培养方案中,保证了实践环节的开展.但受学期实践周安排的限制,不可能对每门课提出同样的要求,因此提出以下解决思路:
(1) 每门课程增加大约两周的课内实践.在培养方案中明确规定实践周的课程,要求充分利用实践周,保质保量完成相关训练.对培养方案中没有对实践周作出规定的课程,要求结合课堂教学,通过布置课外作业的形式让学生在规定时间内(两周)自行完成相应项目,并在相应课堂教学时段对项目开发进行集中指导.同时将学生项目完成情况作为课程平时成绩,并占较大比重.
(2) 充分发挥第二、第三课堂的作用,适当增加暑期专业实践.暑假是学生开展专业实践的黄金时间,结合学校对暑期专业实践的总体安排,引导任课教师积极做好专业实践规划与对接工作,同时把此类实践纳入课外学分,提升学生参与的积极性.暑期专业实践每支队伍人数控制在5~10人,最多20人,每年派出4~6支队伍,可覆盖50~60人.同时,利用第二、第三课堂进行工程能力训练,打通不同课程,面向更加复杂的实际问题开展相应的综合训练.
实践考核从宏观把控能力和微观操作能力两个层面获得实践能力相关信息,且这两方面的能力考核并重.
(1) 考核题目设计的增加部分反映问题描述和分析能力的内容,引导学生主动思考.此类问题不设标准答案,只给出评价原则.教师根据学生思考的角度、深度,以及方案的科学性、合理性等进行综合评价.如在高级语言程序设计课程中,结构体的使用极大丰富了程序对数据的表达能力,尽管C语言不是面向对象的语言,但是面向对象设计思想和后续面向对象程序设计实践的基础,可要求学生针对一个实际应用设计相应的结构体类型.这对考查学生能否理解问题实际,能否做出合理设计是一个很好的切入点.这类题目对提升学生的综合能力也非常重要,应逐步加大在课程考核中的比重.另外,在RFID原理与应用课程中设计冷鲜肉溯源系统的题目,要求学生正确分析该应用所面临的问题,并结合实际有针对性地提出解决方案.对问题的认识是否准确,总体方案是否周全,标签、天线、频率、参数选择是否合理,以及系统技术瓶颈、成本预估等等,都可作为评价得分点.这类题目对教师的要求也大大提高,将有力促进教师教学能力的提升.
(2) 在微观操作能力考核中,引导学生关注此微观操作在宏观整体中的地位和作用,要提升学生的学习兴趣,时刻训练学生的工程整体观.如在高级语言程序设计课程中,全局变量的使用既能提高编程效率,也容易造成一定混乱,程序设计过程中如何给予全局变量重点关注,如什么情况下必须使用,为什么使用,学生有没有做深入思考等.如果必须使用,如何确保发挥其优势,避免其缺点.学生在这些方面的思考应作为重要的评分依据.传统只关注学生编程效果或程序运行结果等方面的考核思路在这方面的欠缺较大.
本文提出的工程实践训练模式在高级语言程序设计和RFID原理及应用两门课程教学中得到了实施.一是在教学内容设计上增加了相关的教学材料,并强化教学过程中教师的正向引导,使学生逐步关注工程整体并追根溯源,提升探究精神;二是将理论教学内容与实践内容合理穿插,相互支撑,使学生在理论思考与实践验证之间建立更加直接的对应,将间接学习与直接学习融汇到一起;三是分单元、分章节设计小规模综合实训题目,反复强化学生“分析问题、提出方案、实现方案”的工程思维;四是在课程最后增加较多的综合实训类项目资料,引导学生去思考、去实践,同时至少完整实施一个较复杂的综合项目,对大量实际项目资料的分析、思考与完整实施一个较复杂的项目相辅相成,并体现在教学过程中;五是由学生自选领域去发现问题、提出方案,并向全班进行汇报,训练其独立开展项目研发的能力.前3条实施办法目前已在湖州师范学院实施五届以上,后两条实施办法已实施两届.
针对RFID原理及应用课程中对具体工程项目的综合训练要求,湖州师范学院信息工程学院与无锡中国物联网研究院进行了对接,开展了20天的暑期专业实训,极大地提升了学生面向实际工程问题进行分析问题、提出解决方案、设计并实现系统全链条的训练.今后还将挖掘更多综合实训的机会.
通过几年的实践,从相关考核题目得分情况来看,学生得分逐步提升,高级语言程序设计课程考核合格率由60%提升至90%以上,RFID原理及应用课程考核合格率一直保持在90%左右;从学生对项目整体认识情况看,多数学生基本能够正确分析工程问题,提出解决方案,所关注的工程设计视角也日益合理;在学生科研项目、毕业设计课题等方面,学生独立承担科研项目的数量和质量得到提升,据统计,湖州师范学院该两门课学生近年来承担各类科研项目30余项,其中国家级大学生创新创业计划项目5项;毕业设计选题质量和毕业设计实施质量也有较大提升.更进一步的效果还有待后续持续观察分析.