APP下载

以能力产出为导向的项目驱动教学法实践探索

2019-08-24潘理虎陈立潮赵淑芳

计算机教育 2019年8期
关键词:教学法考核评价

潘理虎,解 丹,张 雷,陈立潮,赵淑芳

(太原科技大学 计算机科学与技术学院,山西 太原 030024)

1 软件工程课程体系中存在的问题

1.1 课堂内容与实际应用差距较大

在计算机科学技术快速发展的过程中,新的技术和理论被越来越多的学者及专业人员提出,这使得软件工程课程的知识点也随之增多[1]。目前,软件工程课程的教学内容大多还停留在传统的技术和方法上,并且多年来使用同一教学大纲和评价体系。这种长期不进行更新的教学方法使得软件工程课程在内容的数量和质量上均不能紧跟社会发展。由于没有实际应用项目,学生只能是纸上谈兵,很难深刻理解软件工程课程中的一些抽象概念,且学到的知识也很容易遗忘,因而难以很好地掌握软件工程的方法和技术。

1.2 课程教学以教师为中心

由于软件工程课程的综合性较强,教师为了让学生充分理解知识点,大多采用以幻灯片为主,以板书为辅的教学方式。教师为主讲者,而学生为聆听者[2]。这种情况下,面对复杂、枯燥的知识点,学生并不能够积极主动的思考。教师耗费大量精力精心备课、授课,但实际传达给学生的知识量却大大削减。并且,以教师为主的教学体系中,学生仅能获得教师所教授的知识。这便限制了学生获取知识的全面性和前沿性。此外,在以教师为中心的课程体系下,学生缺乏对新技术、理论探究的兴趣和动力,主观能动性得不到充分的调动和发挥。

1.3 评价体系不够完善

现有的评价体系多以考试成绩为主,注重形式上的评价,考核方式单一[3]。这种评价体系会造成学生平时不认真学习,考试的前几天则找平时认真学习的同学询问重点进行背诵或把固定题型的方法步骤依靠记忆记住。考试中,学生仅凭借几天的死记硬背就可以进行答题。由于是短期记忆,对知识点并没有理解或仅仅是表层的理解,对内在的深层意义并不知晓。因此,考完试后学生会很容易忘记之前背诵的知识点。这样一来,学生在专业知识和能力并没有得到提高的情况下,依然会因考前突击而顺利通过考试,更有甚者会取得较高的成绩。而对于真正用心学习的同学而言,考试成绩并不能准确衡量他们的知识水平、技能掌握和能力达成。所以,以考试为主的结果性评价体系极易造成对学生知识水平和能力达成度的不合理评价。

2 以能力产出为导向的项目驱动教学法

2.1 总体思路

软件工程课程是一门理论性、实践性和工程性都很强的课程,在新工科建设的要求下加强软件工程人才的培养是高校教育面临的一个重要挑战[4]。 “一个纽带,两个基本点,三个转变,四种能力”的课程教学方法总体思路如图1所示。其中,项目是纽带,贯穿整个教学的全过程。在项目实施的过程中,采用CDIO模式和群体化方法进行项目的推进。当项目完成后,进行成果交付,一些好的项目会持续完善,直至应用。整个教学法实现由以教师、课本和课堂为中心向以学生、项目、实践经验为中心的转变,从而培养出具有较高专业能力并达到工程教育认证标准的学生。

图1 实践教学法的总体思路

2.2 一个纽带

工程教育认证[5]内涵的一个重要的核心是OBE(outcome based education,成果导向教育)理念,而软件项目是软件工程课程中的一项重要成果,也是软件工程教学中一种有效的实践途径。因此,本教学法以项目为纽带。 在软件工程教学中,只有当学生亲身参与到项目中或对案例进行实践时,才会通过自身体验、思考以及探索加深对课程中知识点的理解。随着项目的实施,学生会考虑如何进行需求分析;用什么样的开发模式;用什么样的编程语言;怎样测试才更有效等问题,这些问题会使学生主动思考课堂中的知识点,并将实际问题与课堂知识联系起来。在实际应用中学生获取的不仅仅是最终结果,还有整个过程中分析问题、解决问题、团队协作等能力提升。并且在项目驱动下,在巩固理论知识的基础上,学生能够切身体会到知识的效用,在解决问题中获得成就感和满足感,从而进一步激发学习的兴趣和动力,形成一个良性循环。

以能力产出为导向的项目驱动教学法中的一个关键问题是如何合理的安排教学内容,以实现理论和实践的同步性。该课程共设置66个课时(表1),包括44个理论讲授课时,8个校内教师指导实验的实践课时(实验Ⅰ,包括对软件项目进行需求分析、结构设计、编码实现和测试四部分),10个企业软件工程师指导项目的实践课时(实验Ⅱ,包括对软件项目的原型设计、模型建立、编码实现、测试和项目管理情景化五部分),以及4个项目答辩的课时。通过理论课程和实验的同步进行,使得理论知识随着项目的推进而应用,而项目的推进又使得理论知识进一步深化。考虑到美国等发达国家在多年的计算机科学发展中所沉淀出的经典教材依然有很多值得借鉴的地方,并且现在大多开源社区如GitHub都是英文的,而Ian Sommerville作为英国著名的软件工程专家和软件工程知识体系的专家委员会成员,其著作《Software Engineering》已逐渐被许多高校采用为教材。故本教学中的软件工程教材采用Ian Sommerville的《Software Engineering》,以张海藩的《软件工程导论》为主要参考教材。

表1 学时分配表学时 学时

2.3 两个基本点

软件项目的开发过程是一个繁琐复杂的过程,在软件项目开发中我们引入了CDIO模式和群体化方法,并将好的项目与企业对接。通过这种模式和方法,学生不仅仅是达到课程基本要求,更多的是提高自身能力,为就职之路奠定良好的基础。

CDIO是近年来国际教育改革中的重要成果[6]。其在本质上区别于传统的知识本位的培养模式,是一种能力本位的培养模式。借助CDIO倡导的“做中学”和“基于项目教育和学习”的理念,在讲授中以“心理健康治疗病人信息系统”和“野外气象站”两个工程实例贯穿于课程全过程。教师引导学生学习这两个实例的各阶段,之后启发学生在课后对项目进行逐步的推进,使学生在构思、设计、实现、运作的4个层面上得到训练。

实践中学生经常会遇到各种不同的问题,这些问题出现的不确定性和不统一性导致教师难以及时地针对每个学生一一解答。学生遇到的问题长期不能及时得到解答,就会逐渐降低对课程的兴趣。针对课程实践中存在的问题,一种有效的解决途径是运用群体化开发方法,即利用互联网的群体智慧、资源和支撑平台解决软件工程课程在实践中遇到的问题[7]。一方面,学生可以借助互联网的群体智慧,通过类似CSDN这类互联网社区来即时解决在实际开发中遇到的问题;另一方面,学生可以在GitHub这类软件项目平台上下载软件系统的源码,并基于这些开源的代码和方法快速开发,缩短软件的开发周期。总之,通过群体化方法不仅可以认识更多软件开发人员,还可以借助互联网群体的智慧解答问题、提供资源、反馈经验,而且能够及时掌握先进的软件开发等方面的技术,突破在知识、经验等方面的局限性。

2.4 三个转变

在项目驱动下,课程和项目相继展开,整个过程中运用群体化的软件开发方法和CDIO模式对学生进行综合能力的培养。采用分组的形式开展项目和课程,5~6位同学为一组共同完成项目。课后的小组作业也是由小组团体共同完成。在整个项目的开发过程中需要配置负责前端、数据库设计、后端、文档撰写和测试各一人,还需配置一位负责整个项目安排的整体实力较强的人员。每个人能力的侧重点不同,这样能够在项目开发的过程中最大化地发挥个人能力。在小组的分工协调下,学生之间交流经验,共同促进,从单纯地依赖教师逐步向依靠团体能力转变,从被动地接收教师的思想向主动思考转变。

在项目驱动下,学生可以动手实践软件系统,不再只是停留在课本上的理论知识,而是逐渐向理论应用过渡。实践过程中学生在问题得不到解决时会通过互联网寻求解决方案,通过对实际问题的解决,学生在项目开发的各个阶段获得了成就感和满足感。此外,在分组的团体中,既培养了学生的管理能力,又培养了学生的沟通能力和职业素养。

在实践中引入校外企业工程师对学生的项目进行指导,给学生提供系统连贯的实践机会和创新能力训练机会。使学生更早了解实际工作中项目开发的一些关键技术和重要理论。加快了由理论向实践的转变,且学生能够提早向专业的软件开发人员转变。

通过采用群体化方法和CDIO模式,学生逐步将课本的理论知识转化为实际的项目成果,在思考、探索和交流中逐渐取得进步,并获得大量的实践经验。最终从根本上改变传统的软件工程课程体系,实现以教师为中心向以学生为中心、以课本为中心向以项目为中心、以课堂为中心向以实践经验为中心的三个转变。

2.5 四种能力

软件工程课程改革的主要落脚点在于学生,只有学生自身的能力得到提高,才能说改革是较为成功的。本课程旨在培养学生在软件工程项目的可行性研究、需求分析、系统设计、编码测试、系统维护等各阶段的工程能力。通过整个项目的实现,要求学生能够独立撰写各类软件开发文档;能够设计中小型软件系统及大型系统的独立子系统;能够在多学科环境中组织和管理软件项目,合理调配资源,提升工作质量和效率。通过以能力产出为目标,反向设计教学内容,又通过对已设计的内容进行教学实践,进而评价教学法是否可以实现学生的能力达成目标。

根据能力的复杂性和侧重性不同,把软件工程课程培养的能力与该专业对应的毕业要求指标点相对应。包括G2.3、G3.1、G10.1、G11.2四种能力,各项能力在毕业要求中所占权重见表2。其中,G2.3侧重于问题的分析分解能力;G3.1侧重于问题的解决能力;G10.1侧重于书面表达和口语表达能力;G11.2侧重于沟通、管理能力。

3 软件工程课程评价体系

能力产出是开设课程的最终目的,而学生的能力达成度如何量化就在于所设计的课程评价体系。一个良好的课程评价体系应该能够评价学生的综合能力。评价的关注点不能只是结果,还应该有过程,在形成性考核中,发现学生的问题,引导学生主动积极地参与到每一阶段的知识学习和技能锻炼中,从而实现对学生综合职业能力的培养。

本教学法建立了一种多样化的评价体系(表3), 以对学生的交流与合作能力、自学与思考能力、创新与管理能力进行综合性的评价。本教学法的评价环节分为形成性考核和总结性考核两大部分,各占总成绩的50%。每种考核形式按2.5节的内容分为四种能力进行考核。总结性考核采用闭卷考试形式对学生进行考核。由于大学教育尊重学生自由发展,因此,考勤不同于其他形式的考核,缺勤一次在总成绩上减去1分,一节课两个课时,66个课时中全部缺勤,累计计算应减去33分。这样若学生自己能力足够强,那么即使不上课也还是有通过考试的希望。各项考核的评价标准见表4。

表2 各项能力的权重分配

表3 评价环节及目标分值 分

表4 评价标准

4 改革成果

本学期在我学院的计算机科学与技术16级本科生中开展了此次改革,分为两个班级,共计82名同学,17个小组,每个小组对应一个项目。这17个项目形式多样,有“人机交互式图形开发系统”“微爱——情侣互动聊天APP”“基于声纹的音乐检索系统”“XX校园3D建模系统”“零食速递”等。

图2 两类考核成绩分布图

图3 总成绩频率分布直方图

本课程通过第三章的评价体系对学生的综合能力进行评价。最终情况见图2、图3和表5。图2是形成性考核、总结性考核两类考核成绩区间分布的统计,形成性考核的成绩有一半多都在[80,90)区间内,可见,大多数学生都在认真学习软件工程课程,并积极进行实践,较好地实现了以学生为中心的学习。而总结性考核成绩集中在[60,70)和[70,80)区间,出现这种情况的原因一方面是本次总结性考核采用了纯英文试题,一些学生的英文水平达不到要求;另一方面是一些学生在实践中对理论的总结稍有不足。图3是总成绩的频率分布直方图。可以看出总成绩基本呈现正态分布,学生成绩基本集中在[70,80)区间,学生成绩小于60的和大于等于90的都较少。表5是82名学生目标的平均达成度。实践结果表明,之前设计的目标在项目驱动的教学法下较好地实现。今后可在课堂中更多地阐述理论和案例;对UML等各种图更多地进行讲解和实操,适时让学生进行演示;掌握好项目工作量,及时督促学生反馈以达到更好提升学生能力的目的。

表5 课程目标及平均达成度

5 结 语

我们在这一年的探索研究中率先将以项目为纽带、以CDIO模式和群体化方法为两个基本点,以实现三个转变和产出四种能力的软件工程课程实践教学法在我学院的计算机科学与技术16级本科生中开展。此次课程改革无论从教材的选择,还是从过程实施以及评价体系,较之前都有进步,作为一门考试课程,对学生的学习过程和能力给予了客观的评价,对软件工程课程教学有着示范作用。目前只进行了一个学期的改革实施,项目实践时间较短,后续将扩大项目的实施范围,进一步提升学生的专业技能。

猜你喜欢

教学法考核评价
初中英语“三段四部式”写作教学法的实践探索
异步教学法在初中生物教学中的应用思考
体验式教学法在高中数学教学中的应用
“表里不一”如何识别——富平增强考核洞察力
考核偏向:错把经过当结果
创新完善机制 做实做优考核
发挥考核“指挥棒”“推进器”作用
高中数学实践教学法的创新策略探讨
2006—2016年度C—NCAP评价结果
2006—2015年度C—NCAP评价结果(3)