混合式教学模式下的编程类课程改革研究
2019-02-07张敏马文英
张敏 马文英
摘 要:混合式编程类课程如何在线上视频课程和线下课堂教学中获取好的平衡点是文章探究的问题。针对编程基础薄弱的学生,文章提出3方面的混合式教学策略,在“数据结构与算法设计”课程教学实践中采集丰富的数据,充分验证了教学方法的有效性。
关键词:混合式;编程类课程;教学策略
近年来,随着在线开放课程的迅猛发展,对于编程类课程,学生可以方便地从各类在线开放平台获取基础知识和基本原理。但是学生普遍反映“听懂容易编码难”,体现了在线课程在实践训练方面的欠缺与不足。如何把线上课程与线下训练有效地结合起来,给授课教师带来了新的机遇和挑战[1],应激励其积极探索各种能提高学习兴趣和学习效率的教学方法[2-4]。
本文立足于成都信息工程大学的校级平台课程“数据结构与算法设计”,在承担在线开放精品课程建设的同时,关注一般本科院校的编程类基础课程在混合式教学中存在的实际问题,通过反复实践,验证了教学策略的有效性。
1 教学现状及难点分析
编程类课程在通信电子类专业学生毕业能力训练要求中占相当大的比重,历届毕业生反馈的问卷调查结果表明,学生对编程类课程在课程学时延长、实验环节增强等方面有强烈的诉求。在低年级开设的基础编程课程,比如C语言程序设计、数据结构与算法设计,不少学生反映难度较大,尤其在推行在线开放课程建设的过程中,授课教师也遇到了线上、线下工作量倍增以及与授课效果提升不匹配的问题。为此,课程团队深入调研讨论,总结出了学时有限、学生基础薄弱、师生互动交流少3个方面的原因。
1.1 学时有限,翻转课堂有难度
以“数据结构与算法设计”课程为例,按照有限的学时规划,一般而言,单个数据结构的某一基本操作,从原理到代码讲解大约只能分配10 min;考虑低年级同学的平均水平,代码部分需要重复讲解2~3次加学生复现才能基本掌握,需要的时间保守估计20 min。如果按照学时规划,大部分学生只能停留在理解原理的层次。
如果加入翻转课堂,对学生在算法实际应用和编程语言变换等方面提高要求,学时更是捉襟见肘。线上课程的视频并没有很好地为线下课程服务助力,反而给学生带来双倍学时收获未增的压力。
1.2 编程基础薄弱
编程类课程的特点以及课程面对的学生基础情况,决定了编程实践成为学生理解知识和获得学习成就感的主要途径之一,但薄弱的编程能力基础和畏难情绪是行课过程中最大的拦路虎。
从行课过程和评教结果来看,学生普遍反映理论知识都已理解,但是上机实验和机考却无从下手,主要是学生对编写复杂程序缺乏自信。在程序调试的技巧和方法上也缺乏训练,还有部分学生因为学习惰性,存在抄袭和照搬同学代码的不良习惯。
1.3 交互比传统课堂减少
鉴于前文所提的问题,授课教师必然花更多的时间在讲解上,从而留给学生反馈学习情况和难点的时间更加有限,形成了教师怕讲不够、学生吸收不了、遗留很多问题、没有时间交流、学生懒于反馈、授课效果不佳、教师补充讲解这样的恶性循环。
在编程类课程有限的学时、较高的难度、学生的积极性、师生交流的有效性等各因素取得较好的平衡点,是本文探索改革途径的目标所在。
2 解决措施及效果
回顾近几年的混合式教学历程,笔者发现解决问题的根本在于统筹安排线上和线下的教学内容,充分地利用学生的有效学习时间。在教学实践中,提出了以下3方面的策略和方法。
2.1 信息工具辅助预习
课程组通过“雨课堂”提前把知识点短视频推送到学生手机端,同时推送视频相关的题目,其中包括单选题146道、多选题31道、问卷题8道,学生提交即可判分和获得正确答案,形成闭环反馈,帮助他们及时纠正和查漏补缺,教师也从“雨课堂”获取实时得分数据,分析总结学生知识点掌握情况和薄弱环节,有针对性地查漏补缺。为模拟课前自主预习,安排了一次试点课时测验结果。
该试点课时用于前半学期知识点的复习,在学生观看视频后,立刻利用“雨课堂”发布题目,学生限时2~5 min答题,学生的得分情况如图1所示;在1~2周后进行的半期随堂测验中,学生的客观题得分情况如图1所示的虚点曲线所示。
从中曲线对比可以看出,视频配题对学生理解掌握知识点助益情况与半期测验成绩分布情况基本吻合。
2.2 增设编程专题讲解
考虑学生学习兴趣的差异和编程基础的参差不齐情况,课程组老师开展了编程专题讲解的第二课堂,以“线下+线上”混合的方式展开。
线下第二课堂,要求编程题目完成有困难的部分同学参与专题讲解,其余同学根据自身情况自愿参与,通过黑板分析算法原理、白板逐行扩写代码、核心模块讲解后停留时间给学生补充完整代码的方式,引导学生从零构建代码,这一教学方式在提升学生兴趣和编程自信方面取得的显著效果令人惊喜。
线上第二课堂把常用的关键算法,尤其是学生自己脱书实现仍有困难的,比如排序、单链表的操作等算法,按照线下课堂讲解的方式录制成视频,通过“雨课堂”和网络教学平台推送给学生。另外,还录制了程序调试技巧的专题视频,帮助学生克服畏难情绪。
表1展示了最近一学期期末考试的算法设计题目得分情况,从表1可以看出,未开展编程专题讲解的平行班与试点班在编程题目上的得分拉开了一定的差距,定量地证明了该教学方法的有效性。
2.3 课前回顾+课后小测
因为重构的预习环节分担了部分课堂授课内容,利用调配出来的空余时间,授课教师设置了课前回顾和“牛刀小试”的课后小测环节,一般在课终5 min,采用“雨课堂”进行选择题和问卷题的发布和限时作答。
此外,课程组老师在重点知识点讲解完成之后,通过核心算法默写、课堂练习、随机抽问等各种方式,一方面了解学生知识点掌握情况,另一方面也对课堂注意力有一定提升,师生交互也大幅增加。2018—2019(1)学期安排了5次课后小测,当堂学生注意力明显较好。
这些教学方法的试行,都是在自主预习保证课堂学时重新调度分配的前提下完成。
3 结语
课程组老师利用“雨课堂”教学工具,设计并实施了3项具体教学策略,开展的混合式教学改革,提升了学生对编程课程新学习模式的接受度,增强了学生编程自信,增加了师生交流和互动,采集了学生对知识掌握情况的数据,用于推进下一步的改革。
在后续的改革中,课程组预期扩大课前预习环节比重,线下课堂着重倾向于编程专题讲解,进一步解决翻转课堂问题,给在线开放课程建设背景下的混合式教學提出一种行之有效的新思路。
[参考文献]
[1]李素若.基于慕课的编程类课程混合式教学模式研究与实践—以《C++程序设计》为例[J].软件导刊,2017(1):189-191.
[2]周芳,蒋俊正.基于混合式教学的C语言程序编程教学改革[J].教育观察,2018(7):110-112.
[3]徐晶,卢雪松,曹进.基于混合教学模式的程序设计课程教学初探[J].电脑知识与技术,2018(14):163-164.
[4]王贵玲,李国斌.基于微课的混合教学模式在继续教育教学中的应用研究—以“C语言程序设计”为例[J].无线互联科技,2018(22):95-97.