于庆梅, 毛 镠
(1. 上海海洋大学 信息学院, 上海 201306;2. 海南大学 信息科学与技术学院, 海南 海口 570228)
“数据结构”作为计算机专业核心必修课程,其特点是理论抽象程度高、应用实践性强[1]、课程学习难度大。高等学校计算机科学与技术专业核心课程教学实施方案对于科学型、工程型、应用型3类人才,提出了不同的理论能力要求和实践能力要求[2]。鉴于地方院校以培养工程型人才为主,应在讲授典型数据结构概念、算法的基础上,加强上机操作训练,提高学生组织数据及编写应用程序解决问题的能力,架起从理论走向解决实际问题的桥梁。因此,在教学中既要重视理论内容的讲解,又要充分体现本课程理论与实践紧密结合的特点。对于理论内容的教学,呈爆发式增长的MOOCs(慕课)平台课程提供了丰富的资源[3-4],国内近20所院校开设的不同层次的中文在线“数据结构”课程,均以理论教学为主。许多院校利用在线课程尝试如SPOCs教学模式[5-6]、翻转课堂、线上线下混合教学[7-10]等,以教师为中心的传统理论教学模式得以改变。“数据结构”实践教学必须适应新的理论教学模式,与理论教学同步改革,以实现与MOOCs式理论教学的有机结合。以下分析在MOOCs背景下,“数据结构”实践教学改革的必要性和理论依据——建构主义学习理论以及具体的改革实施方案。
在MOOCs背景下,学生可以随时上网学习,实践教学应与这种在学习的时间和内容上的开放性相配合[11]。
首先,目前的“数据结构”实践教学改革,对于如何利用迅速发展起来的MOOCs资源为学生提供实验条件和实验环境,应在以下2方面加强研究与探索:一是从实验内容上重视算法设计[12-13],设计“数据结构”课内实践教学方案[14]和教学体系[15],采用基于问题的实验教学法提高学生实践能力[16];二是从实践内容设置上进行改革[17],构建开放性在线实验平台[15, 18]。
其次,由于地方院校学生个体在学习态度、学习方法和编程能力等方面的较大差异,特别是程序设计基础普遍薄弱,对于“数据结构”实践课程基础的“程序设计语言C/C++”课程掌握不扎实,尤其对涉及指针、结构、链表和数组等复杂数据类型的理解不透彻,往往在对实际问题完成理论分析和设计后,却对编码和调试环节感觉无从下手,导致学习兴趣和学习积极性不高。
第三,学生通过MOOCs学习理论知识后,根据要求进行上机操作实验,但只是在规定的时间和地点进行上机操作,才能得到教师的指导。而且通常一个教师需要同时指导30名以上的学生,远远不能满足学生的要求。
最后,已在MOOCs上开设的“数据结构”课程,也存在一些问题。一是实验实践部分的教学资源少,并非所有的在线课程都提供实验实践内容;二是即使有实验部分的教学资源,也不过是在线编程作业,主要检验学生对理论教学的理解和掌握,并不适合互联网环境下学生基础差异显著的情况。
在分析“数据结构”实践教学现状的基础上,总结对“数据结构”理论教学开展翻转课堂的经验,围绕实践教学改革的核心问题——关注学生、关注课内外、关注结果与过程相结合[19],考虑MOOCs教学资源,运用建构主义学习理论的情境创设、自主学习和合作探究教学模式,提出基于建构主义学习理论的微视频实验教学模式。该模式以学生为中心,以教师为主导,提供线上自主实验PTA(pintia)[20]开放平台,支持学生不受时间和空间限制,随时随地参与实验,以实现MOOCs背景下的“数据结构”教学改革。
建构主义学习理论认为,知识是学生在一定的情境下,在学习过程中借助教师和学习伙伴的帮助,利用必要的学习资料,通过意义建构的方式而获得的。其中“情境”“协作”“会话”和“意义建构”是建构主义学习观的4大要素。“情境”“协作”和“会话”强调学习的条件和过程,而“意义建构”是指学习过程的最终目标[21]。
建构主义认为,学习是在教师指导下,以学生为中心的过程,既强调学生的认知主体作用,又重视教师的主导作用。一方面,学生是信息加工的主体,是意义的主动建构者。在学习过程中学生主体作用[22]的发挥主要体现在:用探索和发现法建构知识意义;主动查找和分析相关信息和资料,对所学内容提出各种假设并努力加以验证;把这些内容所反映的事物尽量与自己已知的事物、知识或经验等相联系,并对这种联系加以认真思考。另一方面,教师是学生建构意义的帮助者和主导者,在教学过程中教师主导作用[22]的发挥主要体现在:激发学生的好奇心和学习兴趣,帮助学生形成学习动机;通过创设符合实践教学内容要求的情境和提示理论与实践之间的联系,帮助学生建构当前实践活动的意义;为了使意义建构更有效,教师应在可能的条件下组织小组讨论与交流等协作型、探究型学习,引导协作学习过程朝着有利于意义构建的方向发展。
在上述建构主义学习理论指导下,与建构主义学习环境相适应的教学模式是,“以学生为中心,在整个教学过程中由教师起到组织者、指导者、帮助者和促进者的作用,利用情境、协作、会话等学习环境要素充分发挥学生的主动性、积极性和首创精神,最终达到使学生有效地实现对当前所学知识的意义建构目的”[22]。建构主义学习理论中的学习环境4要素:“情境”“协作”“会话”和“意义建构”,在教学过程中表现为情境创设、自主学习和合作探究。
情境创设指在实践教学中教师有目的地引入具有一定感情色彩、生动具体的场景,引导学生积极参与体验的过程。要求教师设计出的实验项目能够反映真实社会中的问题,是学生关心的现实问题,从而激发学生的好奇心,使之产生学习动力。
自主学习指教师在创设的情境下,引导学生主动进行意义建构,使之在已有知识经验基础上,对新知识进行主动探索和主动发现。因为学生已有知识经验及理论知识水平因人而异,所以要为他们提供各种MOOCs资源、网络资源或相关链接,帮助他们根据自身情况自主选择、自主学习。教师从创设情境出发,促使学生通过自主学习,为实验做好充分准备。
合作探究是指学生在自主学习基础上,以教师为主导,以学生为中心,以小组为单位,以意义建构为目标,在组内交流、组间交流、生生交流和师生交流基础上,通过观点的碰撞、补充和修正,进行智慧和思维共享,探究实验难点和疑点,最终完成实验任务和实现意义建构。
基于MOOCs背景下“数据结构”实践教学改革必要性分析及建构主义理论,设计并实施实践教学改革方案。该方案从地方院校“数据结构”课程授课实际情况出发,同时考虑基于大规模MOOCs的自主学习需求,设计具有情境创设的题目,提供基础实验微视频,使用开放PTA系统,组织线上或线下合作探究,充分利用信息技术手段,实现实践教学信息化。
实践教学设计中要考虑有利于学生建构意义的情境创设问题。教师根据实验内容,依据真实物理情境创设实验情境,使实验题目具有现实意义。即把要做的实验置于一个真实情境中,使之与现实生活中的具体问题联系起来,引导学生积极发现问题和探究问题,思考应采用何种数据结构、何种高效算法及如何编程来解决实际问题。创设情境可以使学生清楚实验要解决的问题类型,增强对现实世界的体验,主动从相关数据结构理论知识中寻找解决方案。
例如在排序实验中,把设计“奥运排行榜”作为具体实验情境,引导学生设计排序算法。不同国家的排行榜略有不同。如2008年夏季奥运会,中国金牌总数列第一时,中国媒体就公布“金牌榜”;美国奖牌总数第一时,美国媒体就公布“奖牌榜”;人口少的国家则公布“国民人均奖牌榜”或“国民人均金牌榜”等,每个国家的媒体都可给出自己国民乐于看到的“排行榜”。在这样一个情境设定里,学生会根据奥运金牌数和各国人口数据及自己感兴趣的国家,利用已学过的各种排序算法理论,编写程序,得到不同排行榜,学生的实验兴趣和积极性大大提高。
实验教学不仅与理论教学相辅相成,而且对理论知识的巩固和实践能力的提高至关重要。对于地方院校的学生,通过“数据结构”在线课程可以学习理论知识,但不足以支持他们完成实验内容。因此,制作了基础实验讲解教学视频,为学生通过自主学习完成实验内容提供在线视频资源。实验视频不仅包括实验题目分析,而且包括与实验题目相关的基础实验代码讲解,为C/C++编程基础弱的学生扫除学习障碍。
以前文提到的“奥运排行榜”实验题目为例,针对理论教学中与排序算法相关的冒泡、选择、插入等内容,录制算法实现及代码实现的具体讲解视频。这样,学生在算法实现部分就不会无从下手,而是能够轻松愉快地完成实验题目,激发了基础薄弱学生实验的兴趣和积极性。
将优秀学生对实验题目的分析、求解过程及对问题的讨论过程也录制成视频,供其他学生在线学习时参考,发挥优秀学生的示范作用。
PTA是由杭州百腾教育科技有限公司开发的程序设计类实验辅助教学平台。“数据结构”实践教学中利用该系统,可通过预设实验题目的输入、输出和限制条件,实现对学生提交的实验代码的自动检查和评测。基于建构主义学习理论,教师给出的实验题目要有利于意义建构,要反映复杂实际问题,要针对每个知识点,把实验题目按照内容分为基础型、设计型和综合型,按照题目形式分为函数题和编程题。
(1) 基础型题目主要以函数题的方式在PTA系统中给出。这部分实验内容涉及理论教学中讲过的基本算法,并已在实验微视频中对具体的代码进行了讲解。学生及其他MOOCs学习者在进行理论学习时,通过独立完成这部分实验,进行理论知识的内化。
(2) 设计型题目主要以编程题的方式在PTA系统中给出。这部分实验内容旨在解决简单实际问题,通常是只涉及一种简单数据结构或算法。学生首先对问题进行分析,然后通过线上、线下讨论,得到问题求解的基本算法,最后通过编程求解实际问题。
(3) 综合型题目也是以编程题的方式在PTA系统中给出的。这部分实验内容旨在解决复杂实际问题。相对于设计型题目,综合型题目涉及多种数据结构和算法,考查学生对知识的综合应用能力。由于题目较为复杂,通常通过小组协作来完成。
在教师指导下,学生基于个人主动性,并通过小组合作、会话、交流和竞争,运用“数据结构”理论知识,完成对问题的求解。这种形式的合作探究贯穿实验的全过程,包括对实验资料的共享、对实验结果的评价和最终实验程序的实现等。
所谓教师主导就是教师围绕已确定的主题,设计引起争论的初始问题及将讨论进一步引向深入的后续问题。例如对于前文中情境创设中给出的“奥运排行榜”问题,教师设置以下初始问题:需要知道哪些信息?这些信息采用什么样的数据结构?对求解时间和空间的要求是什么?何种算法能够满足排行榜的时间和空间要求?这样,一步一步引导学生进行意义建构,运用意义建构结果解决实际问题。
所谓协作包括学生与实验资源间协作、学生与学生间协作和学生与教师间协作,协作形式可以是线上网络协作或线下面对面协作。协作过程中最基本的方式是会话,协作学习的过程就是会话的过程。
(1) 学生与实验资源间协作。学生根据已确定的实验主题,在教师指导下,查找相关资源,包括视频资源与文本资源,对资源进行梳理,剔除与实验主题不相关的资源,不断积累和补充具有意义建构的资源,并予以有效利用。
(2) 学生与学生间协作。包括组内协作与组间协作。教师依据组内异质和组间同质的原则划分学习小组。由于组内各成员间的差异性,组内学生对实验问题的理解会有所不同。因此他们需在自主学习基础上,发挥各自特长和优势,通过相互沟通和交流,更深入、更全面地理解问题。组间同质性使各个小组总体水平基本一致,确保各小组间的公平竞争。经过小组讨论并形成小组观点与实验解决方案之后,各小组在实验课上进行组间交流,比较不同实验方案和算法的特点,进行方案和算法优化。在前文提到的“奥运排行榜”例子中,不同小组提出了不同的排序算法,并用实验程序验证了他们算法的可行性和效率。
(3) 学生与教师间协作。包括教师与单个学生之间、教师与学生小组之间以及教师与全体学生之间的协作,具体体现在教师课后面对面和网络在线对学生一对一的答疑辅导、参与小组的讨论交流及针对实验难点的课上引导等。在实践教学中,教师通过情境创设,引导学生讨论问题,提供与实验内容相关的微视频及解决问题线索,支持学生自主学习;学生有问题时可通过线上和线下随时向教师请教,进行互动与交流。在协作中,教师还可对学生进行实验评估。
(4) 线上网络协作与线下面对面协作。对于简单问题,学生可以通过教师提供的实验微视频和理论教学中教授的相关知识找到答案,对于复杂问题,学生可通过MOOCs线上或在实验课中面对面与教师及其他学习者交流协作,探究解决问题的方法。
在合作探究的同时,教师能够记录学生参与讨论与交流的过程,并对学生的表现给予正确评价,作为对学生实验成绩考核的主要内容,体现了实验结果与实验过程相结合的实验教学理念。
通过对MOOCs背景下“数据结构”实践教学改革必要性分析,构建符合地方院校学生特点的“数据结构”实践教学模式,并在我校计算机科学与技术专业2016级学生的“数据结构”实践教学中进行了尝试。经与2015级学生进行对比,得到学生“数据结构”课程平均成绩(其中包括实验成绩30%)、获得MOOCs证书数和学生参加中国高校计算机大赛——团体程序设计天梯赛成绩,如表1所示。
表1 “数据结构”实践教学改革前后教学效果对比
数据表明:实践教学改革有益于学生提高理论知识水平;适合学生水平的实验资源有助于学生达到MOOCs教学水平要求,提高课程通过率;学生实践能力的提高,大大提高了学生程序设计竞赛成绩。
以建构主义学习理论为依据,将以情境创设、微视频和PTA开放平台相结合的合作探究式实践教学应用于“数据结构”实践教学,既可为通过MOOCs进行“数据结构”理论学习的学生进行实验实践服务,又可为基于MOOCs开展的SPOCs教学及翻转课堂混合式教学提供丰富的教学资源,具有借鉴意义。