尚俊平 刘合兵 张丽
摘 要:针对程序设计基础课程的特点及目前教学中存在的问题,可以将能力导向教育理念引入程序设计基础课程教学中,采用基于能力导向教育的“教学内容设计—课堂教学实施—教学考核评价”的新教学模式,以最终的课程学习目标为出发点进行反向课程设计,从而提高程序设计基础课程的教学质量和人才培养质量。
关键词:成果导向教育;程序设计课程;教学改革
能力导向教育(OBE),又称成果导向教育、目标导向教育或需求导向教育,其最早出现于美国和澳大利亚的基础教育改革中。美国学者William Spady将OBE定义为:在教学体系中,围绕学生经过课程教学过程应该取得什么样的关键成效而开展的相关教学工作。能力导向教育强调以学生为中心,以掌握实际能力为目标。课程设置以最终能力为导向,突出课程的实用性,注重学生的自我探索和自我学习能力的培养,注重学生在课程学习完成后具备什么样的能力。能力导向教育强调教学目标(学生要掌握的知识、具备的能力等)、教学设计(学生怎样学习才能掌握知识、获得预期能力,以及教师如何有效地利用课堂帮助学生)和教学评价(学生是否已经掌握了知识、具备了相应能力)的有机结合。在实际的课程教学实践中,授课教师将OBE理念落实到具体课程中,围绕学生最终的“学习成果”组织和开展教学,以明确掌握综合能力为目标,反向设计教学过程,最终促成学习成果的达成。
一、程序设计基础课程教学现状
程序设计基础课程是一门非常重要的基础性课程,具有很强的实践性和应用性。在实际的课程教学中,学生具备一定的程序编写能力和创造能力,对学生分析问题、解决实际问题能力的培养和综合素质的提高有坚实的支撑作用。以河南农业大学为例,程序设计基础课程学习C语言程序设计,共48学时,理论学习与实验学习各24学时。一般工科专业的上课班级为4个小班(每个小班约30人),计算机专业为2个小班,绍骙实验班单独成班授课(约25人)。理论课学生在多媒体教室上课,实验课学生在机房一人一机完成实验任务。
目前,高校程序设计基础课程的授课模式大多为“单声道”的传统授课模式,主要存在如下问题。
一是以教师为中心的教学设计。授课教师根据教学大纲要求,结合教学内容及知识点制定教学进度表,学生按照授课教师的要求完成课程内容的学习。这种授课方式没有考虑到学生个体的差异,把所有学生看成具有同等能力与水平的授课对象,导致能力差的学生跟不上教师的进度,能力强的学生有意犹未尽的感觉,不利于学生潜力的挖掘和能力的培养。
二是以知识为导向的教学模式。授课教师按照教学大纲要求,重点讲授教学内容,包括C语言的基本概念、结构化程序设计和简单应用,不注重学习结果,缺乏对学生自主学习、拓展学习等能力的培养。学生仅仅为掌握教学知识点而学习,不能对C语言课程有一个宏观的认识,无法解决实际问题,不能进行简单应用系统的设计与实现。
三是教学考核评价方式。传统的教学考核方式以期末考试为主,使学生的注意力集中在课程理论知识的学习上,导致学生重理论轻实践,不利于培养学生的实际编程能力。
为进一步提升教学效果,提高学生的综合能力,笔者所在的程序设计类课程教学团队将OBE理念引入程序设计基础课程的教学中,团队成员结合学生专业制定课程教学目标,以学生为中心制订教学计划,为实现学习结果而进行教学过程设计并加以实施,在实施过程中开展有效的教学评价考核。
二、基于能力导向教育的程序设计基础课程改革实践
能力导向教学注重培养学生的综合能力,将课程教学目标明确地聚焦于学生最终有意义的学习成果上,强调包括知识、能力、素质的三维教学目标,突出能力本位教育,培养学生的计算思维及解决复杂工程问题的能力;改变传统的以课程知识为主的教学模式,不再是“单声道”的知识灌输,而是围绕学生的学习成果组织和开展教学,以明确综合能力的掌握为目标反向设计教学过程,最终促成学习成果的达成。
(一)教学内容设计
相对于传统的教学形式,成果导向教学模式在教学内容的选择上具有更大的灵活性。笔者所在学校课程团队教师根据课程教学大纲要求,结合企业实践案例资源,制定程序设计基础课程知识体系架构,主要包括三个模块。
一是基本要求模块。主要知识点包括基础语法及程序控制结构、数组、函数、模块化程序设计、指针、文件等课程内容,学生须完成“Hello World程序”“一元二次方程”“日期计算器”“自动排序软件”“日期计算器(函数实现版)”“字符串处理程序”“文本文件读写程序”等内容。基本要求模块重点在于基础知识的掌握,培养学生的计算思维、训练学生的学习能力和基本编程能力。
二是提高阶段模块。主要知识点为指针和自定义类型,学生须完成“学生排名系统”案例。该模块重点突出结构体和链表的应用,使学生具备简单程序开发能力。
三是编程高手模块。以“贪吃蛇游戏”项目案例的实现作为学习成果。项目案例实践要求学生进行调研、阅读理解项目文档,完成系统需求分析与设计,实现系统编码并进行测试,撰写项目验收总结,进行项目汇报展示等内容。该模块重点在于让学生了解软件开发流程,培养学生解决复杂工程问题的能力。
需要明确的是,不同专业学生的学习背景不同,学习基础不同,学习兴趣和学习期望目标也不尽相同。授课教师与学生结合,根据学生的专业情况、个性发展与学习能力情况,确定不同的学习目标,划分不同的学习成果,确保每个学生都能夠学有所成。
(二)课堂教学实施
OBE理念下的课堂教学过程更注重以学生为主体,关注“学生怎么学”,教师通过学习活动指导和影响学生,使学生明确“应该学习什么”,从自身需求出发,提高学习主动性,而不是被动地接受。
1.积极运用混合式教学模式
运用混合式教学模式之前对学生进行分组,坚持适当原则,既要激发学生的学习兴趣,又要保证团队协作能力的培养。
在第一堂课时,教师要给学生讲解相关信息资源,让学生学会利用图书馆文献资源和MOOC资源。MOOC的发展为学生提供了更多的优质学习资源,仅在中国大学MOOC平台上就有浙江大学翁恺老师的“C语言程序设计”、哈尔滨工业大学苏小红教授的“C语言程序设计精髓”、北京理工大学李凤霞教授的“C语言程序设计”等课程资源,还有课程团队建设的“程序设计基础”在线课程资源。
教师在上课前布置学生自学相应内容。学生可以看参考书,或登录中国大学MOOC平台进行课程学习,还可以登录校企(软酷网)合作建设的核心课程资源平台,通过课程知识补强环节预习内容,观看网络视频课程。
在课堂上,授课教师结合具体问题引导学生积极思考,组织学生交流讨论,及时发现学生存在的问题并进行解答。课后,教师通过各种信息技术手段(中国大学MOOC平台课程学习讨论区、QQ群、微信群等)答疑,确保学生的疑问能及时得到解答。
2.案例教学
混合式教学模式的主体是学生,授课教师起辅助及引导作用。课前的预习与课堂讨论都是围绕学习成果展开的,但是学生基础不同、学习能力不同,不能保证所有学生都能掌握所学知识。这时候授课教师就需要设计一些案例,通过案例培养学生初步的编程能力和逻辑思维能力,引导学生积极参与,相互协作,促使学生理解问题的复杂性与变化性。
在项目实践模块,教师可以提供一个完整的游戏开发案例。通过案例,学生可提前熟悉软件工程思想,体会软件开发的完整流程,了解企业对员工的纪律要求及技能要求等。从撰写需求规格说明书,定制合适的数据结构,到具体编写程序代码,并对各个功能模块进行测试,最终完成软件开发,学生完成并体验着自己开发的游戏,非常有成就感。项目实践可以让学生的主观能动性得到充分发挥,其计算机应用能力也得到有效提高。
程序设计基础课程是理论和实践并重的课程。在课堂有限的时间内,教师不可能全面讲授完所有的知识体系,这就需要授课教师有针对性地补充一些有代表性和提高性的实践项目案例资源,供学生学习和训练。教师可以在校企(软酷网)合作搭建的核心课程平台上,引导学有余力的学生将其中的“计费管理系统”“银行管理系统”等案例资源进行实践,使学生能将各阶段的知识融会贯通并学以致用。
3.以赛促学机制
团队教师坚持“以赛促教、以赛促学、以赛促改、以赛促建”,让技能竞赛和教学改革相互促进。一方面,积极组织学生参加编程训练。由于课堂学时有限,教师就引导学生在课余时间利用在线评测系统进行编程训练,这不仅能激发学生的学习兴趣,也能形成好的学习氛围。另一方面,通过各种形式给学生介绍ICPC国际大学生程序设计竞赛亚洲区域赛、CCPC中国大学生程序设计竞赛、天梯赛、蓝桥杯软件大赛等相关比赛,并积极组织学生参加。通过比赛,进一步将以赛促学落到实处,切实有效地提高学生学习的主动性,并帮助学生养成良好的编程习惯,提升编程实践能力。
(三)教学考核评价
对教学成果进行准确、及时的考核评价是能力导向教育模式中的重要环节之一。授课教师根据设定的教学目标建立全面有效的多维度评价机制,包括平时表现、单元测试、期中考试、项目实践及演示汇报、期末考试等,引导学生开展案例式、团队协作式等模式学习,及时快速评估教学效果和学生学习成果。课程考核评价主要包括以下几个部分。
一是平时表现,占总成绩的20%。根据学生课堂表现、文档及视频的学习情况、完成实验作业情况、单元测试的结果及期中考试的情况进行综合评分。二是OJ做题,占总成绩的10%。根据学生完成OJ上题目的情况和参加比赛等情况进行综合评分。三是项目实践,占总成绩的10%。根据学习项目文档提交、项目功能完成、项目汇报展示、個人总结等情况进行综合评分。项目实践可以检验学生运用所学知识解决实际问题的能力,需要学生熟练运用语言编制和调试程序,并以成果的方式进行展示汇报。四是期末考试,占总成绩的60%。按照学校要求进行上机考试,题型包括选择题、判断题、程序阅读题、程序填空题、编程题等。
可以看出,基于能力导向教育的多维度评价机制,既包含过程性评价(平时学习情况、项目实践等),又包含结果性评价(项目实践展示汇报、单元测试、期末考试等),要求学生既能动手做,又能进行团队协作沟通,还能展示汇报,从而使其能力得到全面提升。
三、结论
能力导向教育作为一种新的教育模式,是对传统教育模式的革新,对于教学内容设计、教学方法与手段改革、教学考核评价模式设计有重要的指导意义,有利于促进学生的个性化发展以及师生教与学观念的转变。教学团队成员在程序设计基础课程中,将工程实践案例融入整个教学过程,通过对案例进行反向设计和知识分解,制定程序设计基础课程的知识体系架构和预期的学习产出。结合企业(软酷网)案例资源开展教学实施,弥补教学模式不足的现状,有效地提升了程序设计基础课程的教学效果。笔者所在教学团队经过近3年在多个专业的教学实践,有效提升了学生的学习主动性。教学团队指导学生申请了河南农业大学本科实验室开放创新项目“基于创新能力培养的程序设计类课程在线评测平台搭建与应用”,搭建在线评测系统,为程序设计类课程提供了编程训练平台。学生参加各类学科竞赛的积极性和竞赛成绩有了显著提高,2019年获ICPC国际大学生程序设计竞赛亚洲区域赛银奖、CCPC中国大学生程序设计竞赛铜奖、河南省ACM竞赛金奖等。教学改革效果受到了学生和学校的充分肯定。
参考文献:
[1]李志义,朱泓,刘志军,等.用成果导向教育理念引导高等工程教育教学改革[J].高等工程教育研究,2014,(2).
[2]李志义.解析工程教育专业认证的成果导向理念[J].中国高等教育,2014,(17).
[3]李志义.成果导向的教学设计[J].中国大学教学,2015,(3).
[4]顾佩华,胡文龙,林鹏.基于“学习产出”(OBE)的工程教育模式——汕头大学的实践与探索[J].高等工程教育研究,2014,(1).
[5]石秦峰.基于OBE的程序设计类课程教学改革探索[J].计算机教育,2016,(3).
[6]余烨,徐京涛,路强,等.基于OBE的Java程序设计课程教学改革[J].计算机教育,2017,(6).
[7]杨毅刚,孟斌,王伟楠.基于OBE模式的技术创新能力培养[J].高等工程教育研究,2015,(6).
[8]姜大志,孙浩军.基于CDIO的主动式项目驱动学习方法研究——以Java类课程教学改革为例[J].高等工程教育研究,2012,(4).
责编:嘉 悦