1. 引言
OBE (Outcome based education)在1981年由Spady [1] 率先提出,这种教育理念在美国、英国、加拿大等国家已经成为了教育改革的主流。2013年6月,我国被接纳为“华盛顿协议”签约成员。“成果导向”教学改革开始在我国高校的专业课程体系中逐渐发展 [2]。经过长期实践和证明,OBE理念在提升教学质量和课程评价方面有着显著的效果。OBE理念要求“以学生为中心、以产出为导向”建构人才培养体系,同时“持续改进”,从而确保工科专业毕业生达到行业认可的质量标准要求 [3] [4]。以OBE教育理念引导工程教育改革,具有一定的现实意义。
“C语言程序设计”是理工类学生必修的一门计算机编程语言,为培养学生初步的程序设计思维和程序设计能力奠定基础。课程涉及的语法多、知识点零碎。对于首次接触编程语言的学生来说课程难度比较大,如何让学生全面理解与应用,激发学生编程的兴趣,不畏惧程序设计;对于有一定编程基础的学生,如何能让学生设计出高质量的程序,并能解决实际问题。对于电子信息工程专业的学生,如何能编程控制相关硬件,完成相关功能尤为关键。
本文将OBE理念用于“C语言程序设计”对教学方法进行改革。在教学过程中以项目驱动的教学方法探索引导学生主动学习和思考。项目教学法(Project Based Learning, PBL)是指教与学的双方通过共同实施一个完整的项目而进行的教学活动 [5] [6]。通过特定项目进行信息收集、方案设计与实施、结果评价,核心思想是“以学生为中心”,强调学生对知识的主动探究和发现的能力。
针对不同基础的学生筛选出恰当的项目尤为关键。在教学过程以项目引导学生,作为学习的起点。项目中设置相关问题。为了完成相关任务,学生需线上自主预习与小组合作,在解决问题的过程中需掌握问题背后的知识,形成自主学习与思考的能力。
2. 项目驱动在“C程序设计”教学中应用探究
我院的“C语言程序设计”是以教学团队的形式展开教学。在每学期开课前,教学团队成员针对上学期学生在学习过程中存在的问题进行认真梳理,协同合作,反复研讨,精心创设教学项目案例。“C程序设计”的课程教学内容主要涉及到基本的数据类型以及运算符,顺序、分支与循环三种程序结构、函数、数组、指针、结构体、文件等相关知识。而如何设计出符合各主要教学内容的项目题目是顺利开展教学的关键环节。
2.1. 项目设计
针对不同的知识点设置不同的项目,以便将相关的知识点囊括在项目的问题中,便于学生系统掌握,同时根据问题的内容自主设计程序,以逐步提升学生的编程能力。在教学过程中,给出一个教学周期的项目设计案例,各部分知识所设置的项目如表1所示。

Table 1. Project settings in the teaching process of C programming
表1. C程序设计教学过程中项目设置
2.2. 教学情节引入
利用中国大学MOOC教学平台将相关项目信息提前发布,便于学生能提前查阅相关资料、初步设计。在教学过程中详细介绍项目主要任务以及项目中所要涉及到的知识,并引导学生尝试利用当前所学的知识解决这些问题,哪些问题是可以解决的,哪些问题是当前所学知识无法解决。告诉学生要解决不能解决的问题,需要用到的相关知识是什么,接着讲解新的知识点,然后让学生思考如何将新的知识点应用到项目中解决出现的问题,这样可能让学生更能体会所学即可所用。
2.3. 项目案例实施
项目实施过程中以学生为主体。教师依据每个教学知识点设计出表1的相关驱动案例,在教学之前需要精心地准备相应的教学知识点,将教学内容平滑地融入到项目案例中,由问题情节引出教学内容,让学生带着问题去学习,坚持以学生为主体的教学理念,激发学生的学习积极性。相应的教学知识点教学完毕后,根据学生学习的学情,将项目功能进行拓展加深,设置一些功能便于知识点的掌握与理解,然后将完善的项目功能需求发布给学生。
学生带着项目的一些基本功能需求去学习,依据问题来听课,在学习过程中理解所学的知识点可以去解决哪一类型的问题,而不是简单的机械式的学习。传统的知识的教与学,无法满足不了学生的学习需求。为了提高教学效果,将项目案例功能需求问题抛给学生。学生依据课堂所讲知识进行详细功能模块设计,编写相应代码,调试程序,测试模块功能。在这个过程中以小组为单位进行项目设计,可以查阅线上资料与图书、询问教师或同学,充分发挥学生的自主性。在设计项目过程中,设计问题的思维过程可以不同,求解的方式可以多样,遇到困难多去思考,尝试解决问题,养成善于解决问题的习惯。
在项目案例实施的过程中,需要教师与学生共同参与,教师不仅仅是把知识传授给学习,同时要实时的参与学生项目功能的实现过程,在这个过程需要不断地指导学生,帮助学生解决疑难问题,并依据学生的成果分析总结学生的学习情况,及时地纠正学生的误解以及对知识点的理解偏差。学生也不仅仅是简单机械地记忆知识点,而是要学会如何将所学的知识应用到具体的实际问题中,达到学以致用的教学目的。这样可使教学相长,同时又可以有效地培养学生动手能力。如图1给出教学案例实施的过程。

Figure 1. Schematic diagram of the implementation process of the C language programming teaching project
图1. C语言程序设计教学项目实施过程示意图
2.4. 案例效果评价
项目效果评价过程采用小组初评、教师评价、反馈评价等三个过程。每个小组设置一位组长,当组员初步完成项目的任务要求时,首先提交给组长,组长给出初步的评价意见,若能通过组长评价则才可提交给教师评价,如不能通过初步评价,需修改再提交。教师依据组长评价意见以及程序运行效果给出评价成绩。若评优需根据教师的评价的反馈意见修改相关设计,在评价过程中可以让学生发现问题,以便提升学生的解决问题的能力,提高程序质量。
3. 课程考核评价
本课程成绩评定是采用中国大学MOOC (爱课堂)在线成绩和线下课堂教学成绩综合评定得到最终的课程成绩。在线课程作为课堂教学的辅助工具,因而增加了许多线上教学资源,可对课堂教学进行有力的补充,便于学生的学习巩固和能力提升。学生可利用线上资源进行知识的查缺补漏。线上成绩在最后成绩评定时占总评成绩的35%,课堂教学占总评成绩的65%。线上成绩包含作业、单元检测、期中、期末等相关教学活动的考核;线下期末考试采用纸质闭卷形式进行。课程实验部分,考核方式为现场操作情况。
中国大学MOOC在线成绩的评分标准(满分100):在线作业(10%),每期共布置6次作业,在规定的时间内提交作业,无特殊原因没有补交的机会;在线单元测验(25%):章节测验共8次,取各次成绩的均值;在线讨论(10%):发帖子数超过35个(含35个)的给本项的满分;在线期中期末考试(55%)主要参考题型:综合编程题、程序填空题、程序改错等;期中考试占20%,期末考试占35%。
实验成绩评分标准:根据学生的实验报告、实验项目结果进行评定。
总评成绩评分标准:总评成绩 = 爱课堂在线成绩 × 35% + 实验成绩 × 10% + 期末成绩 × 55%。
4. 总结
“C语言程序设计”课程改革和建设取得了一定的成效,2017年本课程学校立项建设在线开放课程,在泛雅教育平台进行了建设应用,验收优秀,2019年又被立项为江苏省在线开放课程。目前,已在中国大学MOOC平台进行了资源建设和应用,在线选课学生一学期超过1300人。2021年荣获江苏省首批省级一流在线课程。课程的改革与建设是逐步提升的过程,在这个过程中学生能解决相关的实际项目尤其重要,学生在项目的影响下可以自主学习、研究与探索,在项目实施过程中需不断的思考、总结,这样可以逐渐拓展思维,提升编程水平。将项目实验与基础知识有效融合,逐步提高学生的动手事件能力,满足新工科背景下的社会发展所需求的创新型人才,实现教学相长。
基金项目
本项目由江苏海洋大学校级高等教育教学改革研究课题(JGX2020013)提供资助。