数据结构MOOC实践

时间:2022-09-02 06:03:52

数据结构MOOC实践

摘 要:笔者主持的浙江大学“数据结构”MOOC课程已在爱课程网“中国大学MOOC”、网易云课堂上开设。本文针对“数据结构”MOOC课程近一年的开课实践,总结分析了MOOC课程设计及实施过程中最关键的三个方面的经验:内容设计、视频制作、课程实施,并分析了该课程在爱课程网“中国大学MOOC”和网易云课堂两次开课的部分统计数据,据此对在线教育存在的问题进行了探讨。

关键词:MOOC;在线教育;DIY;实践教学;PAT

一、引言

随着人类社会进入网络时代,以大规模开放在线课程(MOOC)为代表的基于互联网的在线教育模式正迅速形成对传统教育的冲击。如李晓明在《慕课》一书中所定义:MOOC应该是“主讲教师负责的,通过互联网开放支持大规模人群参与的,以讲课短视频、作业练习、论坛活动、通告邮件、测试考试等要素交织的,有一定时长的教学过程”[1]。虽然其中提到的各个要素看似在传统教育特别是传统远程教育中都有包含,但由于“对参与者学习过程无监督”这一特性,使得MOOC的教学方式与传统方式相比,面临着更大的挑战。本文是两位笔者根据自己在爱课程网“中国大学MOOC”和网易云课堂这两个平台开设MOOC课程一年多时间的亲身实践,总结分析互联网环境下在线教育课程的实施经验,包括:教学内容设计、短视频制作、互动与实践指导等方面的内容。

“数据结构”是计算机科学与技术专业、软件工程专业甚至于其他电气信息类专业的重要专业基础课程。它所讨论的知识内容和提倡的技术方法,无论对进一步学习计算机领域的其他课程,还是对从事大型信息工程的开发,都是重要而必备的基础。“数据结构”课程所应该培养的高级程序设计与算法分析能力不仅是学生进一步深造的潜力体现,也是用人单位选拔优秀毕业生的重要指标。

课程要求学员在掌握数据结构基本概念和基本方法的基础上,能够针对具体求解问题设计合适的数据结构和算法,并具有采用程序设计语言实现的能力。其中,一个重要目的是,帮助学员明白一些经典的数据结构为什么存在以及在什么情况下可以最好地解决什么样的问题。针对课程教学目标和在线课程的对象特点和学习特点,我们在MOOC课程设计和实施时,重点考虑:(1)内容如何组织,以满足不同对象的学习需求和碎片化的学习特征;(2)视频制作如何更有吸引力,能突出问题求解思路以及不同方法的特点;(3)教学过程如何实施,特别是如何加强实践能力培养和协作式学习,不断激发学习者的热情和动力。

为了促进学员自己动手编程实践、解决问题,一个功能强大的实践教学平台就是必不可少的支撑。另一方面,由于MOOC的教学实施与考核都是在无监督的状态下进行,目前尚无有效技术手段保证考核结果和证书获得者与课程完成人具有可信的对应关系,所以MOOC的学习结果很难得到用人单位(包括高校与企业)的充分重视。美国的MOOC组织者(如Coursera、edX等)是通过线下有监督的考试来颁发更有参考价值的证书,但其规模受到人力资源(阅卷教师)的限制。一个有监督的、由自动判题系统支持的线上考试将可以部分解决上述问题。本文也将介绍笔者在平台建设方面所做的部分工作。

二、碎片化的教学设计

MOOC与传统教育的一个很大的不同在于,传统教育中学生是被组织在一起学习的,各种教学环节的“有组织性”非常强,形成了强大的外在驱动力。在这种前提下,即使教学方式枯燥呆板,即使学生的内在动力不被激发,也可以在一定程度上用外力“推”着学生们向前走。而且同一教学环境中学生的年龄和基础背景相似,也使得教学内容的组织较容易统一。

而MOOC的学员来自社会各界,具有跨度很大的年龄层、截然不同的基础背景、五花八门的学习目的,在各自内在动因的驱使下,聚集到同一门课程中学习。这种组织方式下形成的内聚力比学校中专业的内聚力弱很多,所以教师必须努力让自己的课程产生足够大的吸引力,“吸”着学员们向前走。而吸引力最主要的基础,就是课程内容的组织。

由于互联网让各种信息的获取变得越来越容易,各种针对人类注意力的心理学研究表明,过多信息消耗了接受者的注意力,导致信息碎片化成为不可避免的趋势。MOOC课程教学设计面临的首要问题就是,如何利用碎片化的信息为学员提供系统化的知识。传统课堂要求的按45~50分钟组织的教学内容,在MOOC中必须被更细致地梳理、切分,成为每个6~10分钟的短小视频――这使得学员可以随时随地充分利用自己业余时间的零星碎片,在注意力最能有效集中的时间区间里进行学习。同时,碎片化的教学内容组织也容易满足不同学习者的学习目标。

例如:在“数据结构”的第一次课上,我们需要讲清楚两个基本概念,即“什么是数据结构”以及“什么是算法”。在传统课堂上,我们大约分别需要花32分钟和23分钟完成讲授,并且最后花20分钟通过讲解一个具体的应用实例来帮助学生更感性地认识理解这两个抽象的概念。而在MOOC上,一段长达32分钟的理论讲授视频足以令绝大多数学员关闭视频窗口,因为他们比传统课堂里趴在教室后排呼呼大睡的学生多了随时拔电源的自由。为了适应学员碎片化的学习习惯,我们必须把这三大块内容进行更细致的切分,如表1所示。

这种碎片化设计的要点是围绕课程的教学目标进行“自顶向下”的内容设计:整个课程需要划分哪些专题(相当于“章”),每个专题下又需要划分哪些主题(相当于“节”),每个主题又是如何引入问题、如何展开、如何通过例子强化以及如何收敛等等。每个主题下具体的内容就可以由一系列相对独立的短视频来实现。

注意到我们强调应该设计6~10分钟的短视频,是因为有不少心理学研究表明,成年人的“倒U型注意力曲线”在峰值附近持续的时间长度大约为6~10分钟[2]。但这并不是说我们必须把一段复杂的、不可能在10分钟内讲清楚的内容硬性压缩成10分钟,或者不惜破坏内容的完整性也要切分。这个“6~10分钟”的规律只是提醒我们,应该知道学员在这样一个时间段附近会出现注意力不集中现象。教师可以通过产生额外的刺激――比如突然变换语调,或者在视频中插入一个提问(“中国大学MOOC”和网易云课堂都提供在视频中插入提问的功能,视频播放会在提问后暂停,学员必须回答了问题后才能继续播放),哪怕是开一句玩笑,达到将学员的注意力拉回到峰值水平的目的。例如表1中列出的10段短视频中就插入了6处提问。

碎片化内容设计的另一个关注点,是为基础不同、学习能力不同的学员提供不同层次的帮助。例如我们在课程中除了有常规的授课内容,还设计了“小白专场”,针对基础比较薄弱的学员,详细讲解部分练习题的C语言程序实现细节。而这一部分又细分为三个步骤,即:问题的理解和算法思路、程序框架的搭建、关键细节的实现。学员在这个逐步细节化的过程中,有可能根据自己的理解能力在任何一个环节恍然大悟,退出视频开始自己动手实践。而这种教学效果却是传统的课堂难以达到的。

三、重实效的朴素制作

MOOC的制作方法多种多样,有豪华的,也有朴素的。根据我们的理解,决定学员去留的关键因素,是课程内容的组织和教师讲授的技巧,至于视频制作的专业技巧、声音和画面的质量等等,则属于锦上添花。不过,从实践情况看,与画面相比,声音的作用更大,因此一个好的话筒是MOOC视频制作的要素。

在个人有限的精力和教学效果之间权衡之下,我们选择了注重实效的DIY朴素制作方案,即采用简单的“居家”制作设备,完全自己动手,甚至没有动用任何助教,就完成了全部138段视频的录制与后期制作。

我们制作视频的主要工具有:具有录制短视频功能的相机(配三脚架和遥控器)、麦克风(配三脚架、调音台)、补光灯、视频编辑软件。事实上,真正重要的工具就是相机、麦克风和视频编辑软件。当室内自然光线充足时,适当调大相机ISO可以基本达到专业补光灯的效果。

由于后期制作是自己动手,所以录制过程可以比较自然,不必强记台词。缺点是后期制作如果精益求精,则需要花费较多时间剪辑。剪辑的要点,并不在于制作出多么炫目的视觉效果,而在于牢牢把握住对学员视线以及思路的引导。

视线引导是刺激听众注意力的一种方法。在传统课堂上,教师可以通过在讲台上移动以及丰富的肢体语言引导学生的视线变化,用教鞭等工具指引学生跟随自己的思路。在MOOC视频中,可以通过人像的动作、课件放映中鼠标箭头的移动以及视频编辑软件提供的高亮、笔画等功能达到同样的效果。至于人像和课件出现的比例、频率到底应该多少为宜,其实并无一定之规,关键点是:尽可能在屏幕上保持变化。切忌让一个充满了文字的、完全静止的画面持续若干秒钟。

思路引导较视觉引导更为重要。我们的课件设计是极简风格的,对所有课件中动画的设计,原则上是对思考过程的展示;而所有无助于此的元素,都不必出现,以节省学员下载课件的时间。例如,在展示一个复杂算法的伪代码时,并不是一次性将全部伪代码放映出来,再逐行讲解其功能――这是计算机执行的过程,并不是人类思考的过程。我们会从整体思路入手,先根据算法流程展示出代码框架,再逐步演示框架内各个模块的细化过程,必要时辅以实例的动画演示。

四、教学过程中的互动与实践

对于习惯于在课堂上与学生频繁互动的教师而言,MOOC在师生互动方面具有明显的弱点。不过,各大平台都提供了多种弥补的方法,如:视频内插入提问、视频间插入测验、学员讨论区等。充分利用这些工具,也可以在一定程度上达到较好的互动效果。

视频内插入提问在第二节已经提到,等价于教师在传统课堂上抛出一个较为简单的问题,期待学生在短时间内给出反馈。这样做的目的并不是考查学生对知识的掌握,而主要是刺激学生的注意力,将可能开始懈怠的思维拉回到主题。MOOC在这方面甚至可能达到比传统课堂更好的效果,因为课堂上总有懈怠的学生根本不理会教师的问题,往往只有少数积极的学生回答;而MOOC中所有在看视频的学员都会被打断,必须进行一些思考才能继续。

视频间插入测验则是有传统课堂无法达到的良好效果。当一个知识点讲解完成,及时的小测验可以非常有效地帮助学生检验自己的听课效果。而在传统课堂中,频繁的测验不仅对教学进度造成负担,而且增加教师课后批改的工作量,结果反馈也不能做到十分及时。MOOC支持在任何一段视频结束后,插入一个小测验,由系统自动判题,即时给出结果。学员通过这样的测验,可以检查自己对前一段视频中关键内容的理解程度,及时发现问题,还可以反复观看学习。

讨论区是课堂的延伸。我们充分利用讨论区功能,在每次课后布置了一些讨论话题,这些话题多为视频讲解内容的深入延伸,供学生课后思考讨论。例如在介绍完平衡二叉树之后,提出“是否可以用左右子树结点数差来衡量二叉树是否平衡”;在介绍了图的两种遍历方法后,要求学生“试比较DFS和BFS的优点和缺点”等。论题一般在一个主题结束后,最好为生生互动留一段时间教师再介入,可以点评学生的回答,1~2周后参考答案。

对于“数据结构”这种实践性比较强的课程而言,还有一个非常重要的环节,就是动手实践。目前各个MOOC平台对于程序设计类课程的实践支持较弱,而遍布各大高校的在线裁判系统(Online Judge,简称“OJ”),其初衷是为参加ACM大学生程序设计竞赛的学生而建立,普遍存在几个问题:

(1)题目类型单一。一般OJ只支持竞赛类型的编程题。

(2)题目难度偏大。因为面向的用户是各校顶尖的参赛选手,所以题目多为竞赛型,即涉及知识点的综合性很强,但缺乏针对单一知识点的基础训练题目,也无显性的知识点关联。

(3)判题过程为黑盒测试,很难强制学生必须使用某种指定的数据结构解决问题。例如最常见的问题是,企图考察链表处理基本功的题目,基本上都可以用数组解决。

(4)判题方式严苛。一般为0/1式,即通过全部测试用例可得到满分,否则零分。这种方式对初学者打击较大,并且从教学的角度考虑,区分度也较差。

(5)教学管理功能欠缺。OJ的风格是直接面向自我训练的学生,并不考虑教师的参与,因此绝大多数OJ不具有教学组织功能。

针对上述问题,我们联合网易公司开发了“程序设计类实验辅助教学平台”(英文名“Programming Teaching Assistant”,简称“PTA”,网址:http:///),作为基础程序设计类课程、数据结构、算法分析等课程的实验平台,免费向全国高校教师开放。目前平台中有判断题、选择题、程序填空题、函数题、编程题共千余道,并具有以下特点:

(1)面向教师,提供出题、布置作业/考试、成绩一键导出等基本教学组织功能。

(2)题目具有灵活的课程知识点关联,方便教师根据教学进度布置针对单一知识点的强化训练,也可以关联多个知识点设计综合性题目。

(3)题目有难度标记,方便教师组织不同强度层次的训练。

(4)函数题、编程题按测试用例评分,具有良好的区分度。

(5)测试用例提供“要点提示”,当教师注意到大多数学生都不能正确通过某些测试用例时,可以开放针对该用例的提示,对保持初学者的信心会有帮助。

这里特别值得一提的是“函数题”的设计。函数题要求学生严格按照题目给定的接口描述,完成具有指定功能的函数代码。这类题目的优点是训练重点突出,可以让学生关注复杂算法的核心流程,而不必纠结于输入输出的格式处理或是以前已经训练过的简单函数的重复实现。例如要实现“最小生成树”的Kruskal算法,我们需要用到最小堆和并查集。这两个结构都已经在学习“树”的过程中训练过,且编程量较大,但只是Kruskal算法的辅助工具。如果不想让学生在辅助工具的实现上花费太多时间,教师就可以将这个训练出成函数题的形式,由教师准备好最小堆和并查集的功能函数,学生只要在建立最小生成树的过程中调用即可。另一方面,函数题由教师规定接口,就使得指定数据结构成为可能。例如要训练处理链表的能力,只要规定链表结点的结构,并规定函数传入的参数为链表头指针即可。

五、课程实施数据及思考

迄今我们已经先后在爱课程网“中国大学MOOC”和网易云课堂两个平台上分别开设了一个完整学期的课程,表2列出了部分统计数据。

总体上看,如大多数MOOC课程一样,对证书有兴趣的学生占比很低,这与我们在讨论区与学员互动得到的印象是基本一致的。部分学员表示,注册课程只为看其中某一章节,作为课堂学习的补充;另外也有学员表示自己的目的是应对IT业求职的笔试和面试等等。一个重要的原因,可能是MOOC的教学实施与考核都是在无监督的状态下进行的,所以证书尚未得到用人单位的充分重视,考取证书的必要性不大。

我们自2011年8月起创办了计算机程序设计能力考试(Programming Ability Test,简称PAT),采用分级式在线考试及自动评测方法,客观地考核考生的算法设计与程序设计实现能力。目前在全国18个省/直辖市设置了考点,有包括谷歌、微软等“世界500强”企业以及百度、网易、阿里、腾讯等96家知名企业签署合作联盟协议,接受将PAT测试成绩作为衡量应聘人员程序设计能力的标准(划定分数线、提供介绍信),受到考生和企业的欢迎。我们也将达到PAT甲级考试浙江大学计算机专业学生平均分的成绩作为MOOC课程优秀证书的标准,目前有2位学员确认得到了优秀证书。

另一方面,从开课阶段和结课阶段的参与人数比较来看,也体现了MOOC学员的特点:大多数人在没有足够外力驱使的情况下,非常容易放弃。在此我们不断检讨自己的教学方法,还有很大的提升空间。两次开课之间,我们所做的比较重要的调整主要是两方面:一是将课时从10周延长到12周;二是补充了部分程序实现的源代码。做这样的调整,主要是根据第一次开课得到的反馈,发现学员的学习能力差异巨大,我们需要补充更多细节帮助不同层次的人跟上进度。从数据比较来看,第二次开课虽然选课总人数下降,但坚持的人数百分比略有上升。这使得我们继续增加了“小白专场”系列以及讨论题参考答案系列,以加大对基础薄弱学员的帮助力度。笔者著此文时,本课程正在“中国大学MOOC”平台上再次开课,并且已经吸引了2.4万余名学员注册学习。后期努力的效果尚有待检验。

参考文献:

[1] 李晓明. 慕课[M]. 北京:高等教育出版社,2015.

[2] 露西・乔・帕拉迪诺. 注意力曲线:打败分心与焦虑[M]. 苗娜译. 北京:中国人民大学出版社,2009.

上一篇:重睑成形术的个性化设计和护理分析 下一篇:ReCell技术联合磨削术治疗凹陷性痤疮瘢痕应用...