程序设计与算法语言(C++)课程建设改革探索
The Exploration on the Reform of Program Design and Algorithm Language (C++) Curriculum Construction
DOI: 10.12677/AE.2021.113144, PDF, HTML, XML, 下载: 280  浏览: 435  科研立项经费支持
作者: 陈玉成:厦门理工学院应用数学学院,福建 厦门
关键词: 成果导向教育混合式教学模式案例驱动式过程化考核机制Outcome-Oriented Education Mixed Teaching Mode Case-Driven Process Assessment Mechanism
摘要: 本文抓住程序设计与算法语言(C++)课程建设的痛点,以OBE教育理念为指导思想,充分运用现代化教学工具及资源平台,有效开展课程的线上线下混合式教学改革,逐步形成了“案例驱动式”教学模式和“六在线、一线下”的过程化考核机制。教学实践证明,课程难度和挑战度得以显著提升,学生学习主动性和创造性得以充分激发,学生算法设计能力和编程实践能力得以有效提高。
Abstract: In this article, we grasp the pain points in the curriculum construction of programming and algorithmic language (C++), take OBE education philosophy as the guiding ideology, make full use of modern teaching tools and resource platforms, effectively apply online-offline mixed teaching mode, and gradually form the “Case-Driven” teaching mode and “six-online, one-offline” process assessment mechanism. Teaching practice has proved that the difficulty and challenge of the course will be significantly promoted, the initiative and creativity of students’ learning will be fully stimulated, and the ability of students’ algorithm design and programming practice will be effectively improved.
文章引用:陈玉成. 程序设计与算法语言(C++)课程建设改革探索[J]. 教育进展, 2021, 11(3): 918-925. https://doi.org/10.12677/AE.2021.113144

1. 引言

2019年10月,教育部关于一流本科课程建设的实施意见(教高[2019] 8号)明确指出“课程是人才培养的核心要素,课程质量直接决定人才培养质量。”在此背景下,各省市教育厅纷纷组织省内本科高校开展省级一流本科课程建设,包括线上一流课程、虚拟仿真实验教学一流课程、线下一流课程、线上线下混合式一流课程和社会实践一流课程。

程序设计与算法语言(C++)是一门入门级编程语言课程,非常适合开展线上线下混合式课堂教学改革。文献 [1] [2] [3] 均指出学习C++过程中理论与实验、实践相结合的重要性,课程教学应重点落实到编程实践能力的训练上,着重考查学生将课堂知识转化为解决实际问题的能力。文献 [4] 和 [5] 在C++课堂教学过程中尝试有效运用线上线下混合式教学模式,取得良好的教学效果,学生编程实践能力得到明显提高。

OBE (Outcome-Based Education,成果导向教育)理念以“成果导向、学生中心、持续改进”为核心,已成为国际教育教学改革的主流理念(文献 [6] [7] [8] )。近年来,教育部的工程教育专业认证、师范类专业认证等权威认证均引入OBE教育理念构建综合评价体系,这促使全国高校围绕OBE教育理念积极开展专业建设、课程建设和教育教学改革。文献 [9] 和文献 [10] 以OBE教育理念为依据,开展C++程序设计的教学设计与实践,教学实践结果表明学生的主观能动性和创造性得以充分激发,学生的程序设计能力和计算思维能力得以有效提升。

本文笔者基于OBE教育理念,开展程序设计与算法语言(C++)的课程建设,运用中国大学慕课、课堂派和腾讯会议等现代化教学工具及资源平台,以大量的C++教学案例为载体,在多年教学改革过程中,逐步形成“案例驱动式”和“六在线、一线下”混合式教学模式。2020年12月,程序设计与算法语言(C++)获批立项福建省线上线下混合式一流本科课程。

2. 课程建设历程及改革重点问题

2.1. 课程建设发展历程

自2015年以来,本文笔者一直承担信息与计算科学专业的程序设计与算法语言(C++)的教学工作,期间积累了丰富、完整的教学案例库、习题库和试卷库。其发展历程主要分为三个阶段:

1) 2015年起,承担C++程序设计教学,开始收集课堂教学案例、实验教学案例、C++习题和试题等。经过5年多建设,已经建成了涵盖C++语言所有知识点的教学案例超100个、习题量累计约1000个,可支撑本课程的平时作业、单元小测和期中/期末考试,还为每个单元配备5~8个实验操作案例,学生可以在这些案例中选择3个完成实验任务。

2) 2016年,C++程序设计获得校级网络在线课程立项,开始将教学资料布局在课程网站上。从15信计到18信计,经过四轮的教学改革,已经建立了一套完整的“五在线、一线下”的课程考核评价方案,即在线考勤、在线互动、在线作业、在线测试、在线讨论及线下期末考试。

3) 2020年2月,引入南京航空航天大学的国家级精品在线开放课程《面向对象C++程序设计》建立异步SPOC课程,弥补了课程教学视频的不足。笔者运用课堂派在线教学工具,有效开展课前预习、课件/试题互动、提问、抢答、在线作业、在线测试、分组讨论、直播教学、录播教学等教学活动,使线上线下教学形式更多样化,教学效果数据跟踪更灵活、更及时、更高效。同时,课程考核方式优化为“六在线、一线下”,即新增在线视频学习。

2.2. 教学改革要解决的重点问题

课程的发展历程,就是课程教学不断改革的过程,在此改革过程中,需要我们去重点解决如下三个问题:

1) 如何建设丰富的教学案例库、习题库、试题库及实验操作案例库

本课程是实践性非常强的一门专业必修课,为课程涵盖的所有知识点建立对应的教学案例、习题(试题)和实验操作案例等课程资源是建设好本课程的基础。因此,笔者查阅、学习了非常多的国内外优秀教材、习题集以及上机实验项目手册等,花费了大量时间按照课程知识点整理教学案例、习题以及实验项目,最终形成了能支撑本门课程日常教学的教学案例超100个、习题约1000个、实验操作案例约80个,还有大量的课后编程练习。

2) 如何合理利用在线教学平台和工具,有效开展线上线下混合式教学

有了课程资源,利用好这些课程资源成为了关键。笔者起先使用学校课程中心平台,建立课程网站,搭建课程知识点体系,对应建立教学案例库、习题库和实验操作案例库,在该平台上最终实现“在线作业、在线测试、在线讨论”等教学形式。接着,笔者运用课堂派平台工具,为课程教学补充了“在线考勤、在线互动”的教学环节,同时将“在线作业、在线测试、在线讨论”等也移植到课堂派平台上。最后,引入中国大学MOOC上的国家级精品在线开放课程,将“在线视频学习”也纳入了课程评价体系。

3) 如何有效跟踪学生过程化学习成效,使考核评价机制更合理有效

以前,实施过程化教学评价最困难之处就是如何快速有效地记录过程化教学过程中所产生的教学数据。随着互联网技术的持续发展,利用好优秀的互联网教学平台工具(如课堂派、中国大学MOOC等),使得过程化教学数据的收集非常容易实现。笔者开拓思维,积极学习这些教学平台工具,有意识地收集本课程考核所需要的过程化教学数据,使得混合式课堂教学更灵活,课程考核依据更充分。

2.3. 课程内容与资源建设及应用情况

经过线下课程建设、校级在线开放课程建设及线上线下混合式课程建设,本课程已建成覆盖所有教学知识点的、丰富的教学资源。

1) 拥有超100个教学案例的教学案例库,这些教学案例将应用到课件预习、教师讲授、师生互动、生讲生评、以练代讲、案例点评、分组讨论等的各个教学环节,促使学生对课程重难点把握得更准确。

2) 拥有约1000个试题的课程习题库,习题涵盖课程的所有知识点,可自由组合习题,随机生成单元测试、期中测试等,也可将习题应用到课堂教学的互动环节,可辅助完成更丰富的师生互动、生生互动的课堂教学形式。

3) 拥有约70个实验操作案例的实验案例库,这些案例可应用到学生上机实验,学生可选择每个单元的3个实验操作案例完成实验报告。其中有10个实验操作案例综合性较强,学生可以分组讨论完成,也可将这10个实验操作案例应用到课程设计环节,给学生更多的挑战机会。

4) 拥有一个成熟的校级网络在线课程平台,通过该平台,笔者积极尝试线上线下互动教学,摸索出“五在线、一线下”的课程考核评价体系,课程教学成效逐步显现。

5) 利用中国大学MOOC平台,引进了南京航空航天大学的国家级精品在线开放课程《面向对象C++程序设计》的所有在线教学视频,建立适应学生水平的异步SPOC课程,提供了丰富的测试、作业及课程讨论等资源,这些资源都将会充分、合理地应用到本课程的线上线下混合式教学环节中。

6) 2020年,利用课堂派平台等教学工具,本课程的线上线下混合式教学开展得更丰富、更高效。课前,学生预习情况跟踪更及时;课中,师生互动、生生互动、分组讨论更多样;课后,作业测试反馈更便捷。

3. 课程组织形式及考核方式

3.1. 课程目标

程序设计与算法语言(C++)是面向信息与计算科学专业大一学生开设的专业必修课,是奠定本专业学生软件开发技能的基础性课程。为适应学校“建设海西一流、亲产业大学”的办学定位,本课程以大量的C++教学案例为载体,采用“案例驱动式”教学模式和“六在线、一线下”的过程化考核机制,培养学生达成以下目标:

1) 知识目标

通过本课程学习,学生应当全面了解C++语言发展历史,掌握C++语言基础知识,理解面向对象程序设计机制,掌握类、对象、封装、继承和多态等面向对象程序设计概念;了解流类体系和文件读写操作等知识。

2) 能力目标

通过本课程学习,学生能应用面向对象程序设计机制编写具有一定综合性的小型应用程序,具有较强的表达能力和逻辑思维能力,可完成复杂度较高的算法设计,在实践能力、创新应用能力方面得到有效提升。

3) 素质目标

通过本课程学习,学生需养成良好的自学和独立思考的习惯,具有一定的团队协作精神,具备锲而不舍的探究精神和精雕细琢的工匠精神,成为具有较强自信心的综合型人才。

3.2. 课程教学内容

本课程教学内容共分为13章,其中必修12章,选修1章。主要包括:绪论、C++的数据类型、C++语句、函数、类与对象、数组、指针、继承与派生、多态性与虚函数、泛型程序设计与标准模板STL (选修)、流类体系与文件操作、异常处理等。

3.3. 课程组织实施

本课程分为三个阶段进行组织实施(详见图1):

1) 课前

在中国大学MOOC平台的SPOC《面向对象C++程序设计》布置在线视频学习任务,预习上课知识点。在课堂派平台发布课件预习任务。

2) 课中

采取“案例驱动式”教学模式,以教学案例为主线组织教学活动,具体教学活动包括预习归纳、知识问答、编程训练、分组讨论、总结提升。其中,知识问答、分组讨论环节通过课堂派提供的互动功能实现。

3) 课后

学生除了完成每节课的课后作业外,每单元需要完成一次单元测验。此外,学生在实验课之前,还需完成实验操作项目报告。作业和实验报告通过课堂派作业功能提交,单元测验通过课堂派的测试功能完成。

Figure 1. The diagram of the course organization and implementation process

图1. 课程组织实施过程示意图

3.4. 课程成绩评定方式

本课程考核模块主要分为在线视频学习(20%)、课堂表现(10%)、作业实验报告(10%)、单元测试(10%)和期末考试(50%)。

各个考核模块分别从人文素养、专业知识与技能和综合能力水平对学生的综合表现进行全面评价。详见表1

Table 1. The evaluation focus of each assessment module

表1. 各考核模块评价侧重点

与之前课程评价方式相比,“六在线、一线下”的过程化课程评价体系将在线SPOC课程学习成绩作为总评成绩的一部分,让学生学在平时;降低考勤比重,增加课堂表现评价,让学生练在平时;增加单元测验评价,降低期末考试权重,让学生考在平时。

4. 课程特色、创新及改革成效

4.1. 课程特色

1) 课前预习更便捷,知识点归纳更有效

课前,教师发布预习公告。学生可以在中国大学MOOC平台上的《面向对象C++程序设计》的SPOC课程轻松开展在线视频学习,学生可以全面预习课程的知识点,对知识点有了初步理解。再经过课堂上老师的预习归纳、知识问答、小组讨论、总结提升等环节,学生对知识点掌握更牢固。学生在此过程中,自学新知识的能力有一定提升。

2) 课堂教学更活跃,知识点掌握更牢固

课中,老师首先对预习知识点进行归纳呈现,利用课堂派在线互动功能开展知识问答、编程训练、分组讨论等教学环节,这些环节围绕着学生对课程知识理解、熟悉、应用、工具及提升展开,学生在此过程中参与度更高、获得感更强,课堂学习氛围更活跃。

3) 课后训练更全面,知识点提升更到位

课后,学生需要完成课程内容相关的作业、测试和实验操作项目,还可以参与讨论区的讨论,学生能从各方面训练到课程教学知识点。单元测试难度较大,要求学生查阅文献、积极思考并且动手编程才能取得较好的成绩,这使得课程的挑战性得到较大提升。

4.2. 教学改革创新点

1) 课堂形成“案例驱动式”教学模式,即以知识点的教学案例为课堂资源,以学生知识点掌握及能力提升为目标,以“预习归纳–案例展示–知识问答–编程训练–分组讨论–总结提升”等教学环节合理开展混合式互动教学,引导学生主动获取、有效归纳、创新应用课程知识,使课堂学习趣味性更高,课外学习延拓性更广。

2) 利用中国大学MOOC、课堂派等平台,有效开展“六在线、一线下”的过程化的课程评价体系。教学不再局限于课堂,学生学习自觉性被延拓到课前和课后,教学评价不仅限于期末考试,改变学生学习习惯,让学生形成持续学习的习惯。

4.3. 诊断改进与改革成效

本课程在改革过程中,得到学生、同行和督导多方好评,2018-2019-2学期和2019-2020-2学期的学生评教得分分别为99.12分和96.29分,均为优秀。2019-2020-2学期,课程的同行评教为91分,督导评教为87分,也均为优秀。

1) 编程训练贯穿课前、课中和课后。课前可根据在线教学视频模仿编写程序;课中可通过案例的编程训练巩固编程技能;课后通过作业和实验操作项目中的编程题,持续提升编程技巧。

2) 单元测试的知识点不局限于课堂,要求学生通过查阅资料、编程实践和总结归纳才能获得正确答案。课程难度和挑战度显著提升,有助于激发优秀学生学习热情。

3) 通过“六在线、一线下”的综合评价,让学生学在平时,避免学生出现期末考前突击复习的现象。我们可以看到,改革后,19信计的总评成绩的平均分(为85.76)明显高于18信计(74.04)。

5. 课程建设计划及改进方向

5.1. 五年建设计划

1) 根据我校应用型人才培养目标和专业定位,将异步SPOC《面向对象C++程序设计》进行本校化改造,适当调整、增加教学视频、测试、作业及考试资源,在讨论区针对课程重难点,形成精华讨论帖,长期提供答疑环境。

2) 整理、汇总、补充教学案例、习题库和实验案例,编写适应应用型本科高校教学需求的课程教学案例教材。

3) 录制习题讲解短视频、实验案例操作讲解短视频,为课程提供更丰富的视频教学资源。

4) 有效改进线上线下混合式课堂教学,形成具有参考价值的教学经验,用数据总结混合式教学成效,完成关于研究混合式教学的教研教改论文并发表。

5.2. 需要进一步解决的问题

1) 如何有效跟踪学生的课前预习,分析和评判学生的课前预习成效;

2) 如何合理优化现有的“案例驱动式”教学模式,收集学生课堂参与数据及客观,评价学生对课堂知识的掌握程度;

3) 如何有效激发学生课后学习动力,准确评价学生课后作业、测试及实验的完成情况,客观评价学生的实践能力和创新能力的。

5.3. 改革方向和改进措施

1) 充分利用课堂派平台、中国大学MOOC平台、腾讯会议等教育教学辅助工具,挖掘这些工具功能上的优势,为优化改进混合式课堂教学各个环节服务,辅助教师自动收集、整理和分析各环节教学状态数据。一方面,帮助教师更有效的开展教学改革来优化“案例驱动式”课堂教学模式;另一方面,帮助教师更客观的评价学生在教学活动中的表现、更有效的评判学生对课程知识掌握情况。

2) 教师需要通过反思整个学期的教学过程,对“六在线、一线下”考核评价体系的各个指标点的知识目标和能力目标进行更规范的细化,权重分配更合理,使评价数据更容易采集,评价标准更客观、合理、规范,切实使“六在线、一线下”的课程评价贯穿学生课前、课中、课后学习的全过程,能准确反映学生本课程的综合学习成效。

3) 查阅混合式教学改革的教学法研究论文,学习本课程的优秀、权威教材,有意识地收集综合性系统设计案例,将好的案例应用到本课程挑战性实验教学和综合性课程设计的教学活动中,可持续性地激发学生创新能力,为后续相关专业教学打下扎实的基础。

基金项目

本文是“2020年福建省线上线下混合式一流本科课程——程序设计预算法语言(C++)”成果。

参考文献

[1] 王玉山. C++程序设计工程化思维与传统理学逻辑思维的差异[J]. 信息记录材料, 2020(12): 243-244.
[2] 李琥, 赵厚宝, 曾井泉. C++课程融入计算思维的教学方法研究[J]. 大学教育, 2021(2): 111-114.
[3] 张海林, 夏传良. C++面向对象程序设计课程教学研究[J]. 智能计算机与应用, 2020(10): 190-193.
[4] 吴粉侠, 李红, 唐云凯. “C++语言程序设计”线上线下混合教学模式探索与实践[J]. 无线互联科技, 2021(1): 127-129.
[5] 刘卫国, 吕格莉, 严晖, 等. 疫情防控期间基于“MOOC + 直播翻转 + TronClass练习”的教学设计——以“计算机程序设计基础(C++)”课程为例[J]. 专业与课程建设, 2020(12): 39-43.
[6] 华尔天, 高云, 吴向明. 构建多元开放式本科教学质量保障体系的研究: 基于产出导向教育理念的探索[J]. 中国高教研究, 2018(1): 64-68.
[7] 李厚君. OBE理念下高级语言程序设计课程改革和探索[J]. 教育现代化, 2019, 6(51): 72-73.
[8] 李志义. 成果导向的教学设计[J]. 中国大学教学, 2015(3): 32-39.
[9] 吕格莉, 刘卫国, 蔡旭晖, 等. “互联网+”背景下基于OBE理念的教学设计与实践——以“计算机程序设计基础(C++)”课程为例[J]. 专业与课程建设, 2020(11): 47-51.
[10] 张景波, 张云琦, 孙海峰. OBE理念在C++程序设计课程教学中的应用研究[J]. 电脑知识与技术, 2020, 16(29): 178-179.