王倩 王龙葛 楚广琳
摘要:根据软件工程专业本科高级网络软件编程课程的教学实际,针对课程的重结果轻过程的教学及考核的问题,本文基于工程认证“以学生为中心,以产出为导向”的评价体系,结合软件工程专业毕业要求指标点,从教学大纲入手,改变教学方式和考核方式,将考核贯穿于教学过程中,形成以产出为导向的过程性评价体系,并介绍了课程改革的方式和探索。
关键词:工程认证;高级网络软件编程;软件工程;毕业要求指标点;课程改革
中图分类号:C642
文献标识码:A
文章编号:1009-3044(2019)36-0149-03
1概述
工程教育是我国高等教育体系的重要组成部分。各个高校的工科毕业生在国家工业化信息化进程中发挥了重要的作用。工程教育专业认证[1]是中国高等教育近年积极开展的与国际工程教育资格互认的专业认证。工程教育专业认证始于1989年的《华盛顿协议》,是基于OBE(outcome-based education)[2]的认证标准,也就是以产出为导向的评价体系。2016年我国正式加入《华盛顿协议》,迄今为止已有许多专业和高校进行了工程认证。河南大学近年积极提倡工科专业进行工程教育认证并已有多个专业通过了认证。软件工程专业作为计算机类的工程型专业,为通过工程教育认证进行了各种教学改革。依据专业定位和专业社会发展情况,软件工程专业工程教育认证是基于“以学生为中心[3],以产出为导向[4]”的评价体系的。
高级网络软件编程作为软件工程专业的一门专业选修课,是使用编程语言进行Socket网络[5]发的工程应用型课程,综合应用了程序设计语言、操作系统、计算机网络和软件工程等多门课程的内容。作为一门工程型课程,课程要求学生最终具有良好的工程设计和实现能力。课程的教学目标是使学生能够养成提出问题、分析问题和解决问题的能力,培养学生的团队协作能力和认真负责的工作态度,使学生能够掌握遵循软件工程开发流程的基于Socket的网络应用程序开发所需要的知识。
2课程教学和评价过程中存在的问题
以往的高级网络软件编程的教学和考核过程中存在以下问题:
1)课堂教学以教师灌输,学生被动接受的方式为主,学生对教学内容的掌握程度,并不能及时反馈给任课教师,学生对课堂的参与度也较低,课堂重点在教师身上,不符合工程教育“以学生为中心”的教学理念。
2)学生做完实验作业后,提交给教师,教师无法针对每一个同学的具体问题进行反馈,只能通过共性问题的总结讲解,对于理解能力差的学生来讲,问题无法解决,积累起来就形成了厌学情绪,不能是每个学生都完成该课程的培养目标。
3)考核方式采用考勤、作业和期末考试结合的方式。考勤并不能体现学生在工程教育中的产出,坐在课堂上但是什么都没学的情况并不少见。高级网络软件编程课程是工程性比较强的学科,平时的作业一般都是针对某一个具体的知识点提出的简单练习,并不能很好的体现工程教育的特点,也不能提高学生的工程意识。期末考试虽然可以考查学生在这个学期内所学的大部分知识是否掌握,但是对于这种工程性较强的课程,在两个小时的考试中并不能全面的考查学生的工程能力。
3课程改革
结合工程认证的背景,遵循“以学生为中心,以产出为导向”的思想,根据软件工程专业认证提出的毕业要求指标点[6],高级网络软件编程课程改革从三个方面进行:课程大纲,教学方式和考核方式。
3.1课程大纲改革
高级网络软件编程课程对软件工程专业的以下5个毕业要求指标点有支撑作用:能够将专业知识用于软件工程开发的设计和实现中;能够借助文献查阅和软件工程基本原理,解决复杂软件工程问题;能够分析实际问题,选择适当的开发工具和基础模型,进行软件设计与开发;能够在软件工程开发的团队中承担个体、团队成员及负责人的角色,并进行有效的沟通,提高团队协作能力;了解计算机学科发展趋势,具有自主学习和终身学习的意识,适应发展迅速的计算机学科。
教学大纲基于以上五点目标进行修改,教学内容由知识点的学习改为以产出为导向的目标,将基本的学习内容没计为以分析和设计为主的引导型学习过程。以TCP基础编程为例,教学基本要求为掌握Socket编程基本流程,掌握基础SocketAPI的使用,掌握C/S模式编程的软件工程設计思路和实现;教学内容为:套接字基础知识学习与分析,c/S模式程序设计与分析,SocketAPI学习与分析,简单TCP通讯[7]C/S程序设计与实现。实现:客户端/服务器模式猜数字游戏的设计与实现。
3.2教学方式改革
根据工程教育认证的要求,教学方式的改革将整个教学环节进行细化,引入综合性学习平台、作业在线判定系统和分组课程设计等,同时将学生反馈和课程考核贯穿其中。
1)综合性学习平台
利用综合性学习平台,结合翻转课堂,网络课堂等新的教学手段,在上课一周以前将教学内容、课件等教学资料全部给学生,要求学生提前预习,并提出问题,并在线反馈给任课教师,由原来的学生白由预习转为强制预习,提高学生的自学能力。同时,老师提前收到反馈,可以针对学生提出的问题有针对性地进行讲解,做到学生带着问题听,老师跟着重点讲的效果,使课堂教学的主体由教师变为学生。综合性平台也会记录下学生在平台上的各种操作,作为课程考核的参考。
2)课堂教学
课堂教学环节分为教师引导式分析、学生讨论、学生设计和师生共同实现的过程。在这个过程中,学生需要综合运用自己已知的知识,并结合最新学习的知识点,结合软件工程的思维进行综合的分析和设计,并在共同实现的过程中,强化了知识点。教师也在这个过程中得到了部分学生的反馈,可以在讲解过程中再次对学生模糊的地方进行强化。仍以TCP基础编程为例,教师首先将TCP通信的基本原理给学生进行讲解,然后提出建立一个最基础的TCP通信模型一回声服务:教师引导学生首先根据TCP通信的步骤分析服务器和客户端分别要做的工作,并为了完成回声服务建立协议模型,然后由学生讨论和设计服务器和客户端的具体连接步骤和通信步骤,最后借助编程语言对该程序的服务器和客户端分别进行实现,在这个过程中,教师可以让学生来找茬,看程序有什么问题,并对其进行简单改进,提高程序的健壮性。对于中间学生不清楚的地方,可以进行强化讲解。
3)作业在线判定系统
作业在线判定系统[8]可以根据学生提交的作业和运行结果和预置答案进行匹配判定,并迅速将结果反馈给学生,学生可以迅速得到自己的作业的反馈。预置作业和答案的时候,将实验内容进行按步分解,学生可以按照提示分步提交,系统对每一部分的结果进行实时判定,使学生在实验过程中,能够迅速查漏补缺,对各个知识点分别进行练习,不明白不理解的地方可以借助系统中的帮助对知识点进行再次学习和练习。教师可以最终通过判定系统的结果对学生学习的程度和进度进行掌握,并调整课程的进度和内容。同时,在这个过程中,系统也会引导学生思考作业中更深入的问题并设计解决方案,进一步提高学生的提出问题,分析问题和解决问题的能力。
4)分组课程设计
为了进一步提高学生的软件工程开发能力和团队意识,教学过程中引入分组课程设计模块。该设计要求学生分组完成,3人一组,在整个学期里完成选题、分析、设计和实现。通过课程设计可以使学生加深理解所学的高级网络软件编程知识,并使用工程化的思路,培养学生团队合作解决复杂工程问题的能力。根据学生的自身经历和兴趣,课程设计的题目给出了一些示例,学生可以选择老师给定的题目也可以自己设计相应难度的题目。课程设计的题目分为三类:学习应用类、生活应用类和游戏类。部分题目如表1所示。
选题之后,各小组按照分工进行分析、设计和实现。期末提交时,除项目源码之外,还需要提交完整的分析和没计文档,以及程序说明书,并在班级内对教师和同学进行展示汇报。
3.3考核方式改革
按照工程认证的要求,将考核方式设置为以产出为导向的综合性教学评价体系。考核体现在教学的各个环节中,通过对学生的预习情况,自发提问,作业,课程设计和期末考试多个方面的评价,形成一套综合性的评价方式。预习占15%,自发提问占5%,作业占20%,课程设计占20%,期末考试占40%。预习,自发提问和作业三部分的成绩由综合性学习平台和作业在线判定系统根据学生学习情况自动生成,课程设计由学生团队在期末进行演示汇报,教师根据团队分工、分析报告、设计复杂度以及实现结果对每一位学生进行打分。课程设计的评分细则如表2所示。
期末考试基本概念和理论占30%,使用客观题,简答和程序题占70%,使用主观题。客观题主要考查学生基础知识点的掌握,主观题用来考察学生的工程性思维能力和实现能力。主观题主要引导学生对实际问题提出解决方案并实现,并不拘泥于一种技术和实现方式,使用开放性思维解决。
根据工程认证的要求,表3列出了考核各个环节和毕业要求指标点的对应情况。
4结束语
根据工程教育专业认证的要求,高级网络软件编程课程在进行课程改革的过程中,对任课教师和学生都提出了更高的要求。学生由原来的被动式学习改变为主动学习,并且整个学习过程都有相应的统计和考核要求,学生的学习习惯得到了改善,学习效果也大大提升。任课教师由原有的照本宣科变成了基于学生学习情况为导向的课堂组织方式,对教师的基础业务能力也有了更高的要求,需要对整个课程体系中涉及的各种知识都有更深的理解。从近两年的考核情况中来看,课程改革后,教师的能力和学生对知识的理解和掌握程度都有了明显的提升。当然,课程改革中也发现了一些新的问题。课程改革中引入的各种现代化手段虽然能够更好地量化指标,但是也失去了一些灵活性。比如目前的作业在线判定系统,为了做到快速的反馈和评判,必须将作业分割为非常详细的要求,程序就只能干篇一律了,这样对于防止学生作弊就没有效果,所以对于作业在线判定的这种方式,以后还需要更加智能化的改进,以使其考核結果更加合理。
参考文献:
[1]吴蓝迪,张炜.国际工程联盟(lEA)工程人才质量标准比较及其经验启示[J].高等工程教育研究,2018(2):111-118.
[2]陆鑫.OBE 工程教育模式下课程教学设计研究[J]计算机教育,2017(10):135-139.
[3]刘伦斌,孙可娜.高等教育“以学生为中心”的有效课堂教学[J].教育与职业,2014(32):157-158.
[4]谢海燕.基于成果导向教育的人才培养方案设计研究——以独立学院为例[J].科技创业月刊,2015 (11):81-82.
[5]许文勇.基于Socket的网络编程技术及其实现[J].无线互联科技,2014(5):17-18.
[6]卢玲,刘恒洋,陈媛,等.面向工程教育认证的计算机专业课程评价方法改革与实践[J].计算机教育,2019(7):54-57.
[7]金伟.Java Socket实现c/s网络通信[J].科教文汇,2008(5):189-190.
[8]苑文会,彭四伟.源代码在线评测系统的设计与实现[J].计算机与数字工程,2006(9):130-132.
【通联编辑:王力】
作者简介:王倩(1984-),女,河南唐河人,讲师,硕士,主要研究方向为网络安全,人工智能;王龙葛(1983-),女,河南南阳人,讲师,硕士,主要研究方向为信息安全;楚广琳(1983-),女,河南洛阳人,讲师,硕士,主要研究方向为计算机网络,软件工程。