线上线下混合教学模式在数据结构课程中的实践
2017-04-14董卫萍
董卫萍
(绍兴文理学院元培学院 信息工程系,浙江 绍兴312000)
线上线下混合教学模式在数据结构课程中的实践
董卫萍
(绍兴文理学院元培学院 信息工程系,浙江 绍兴312000)
针对传统数据结构课程教学中存在的主要问题,结合课程特点和网络教育技术的发展现状,对课程的教学理念、教学设计、教学方法和手段提出相应的改革措施。自建线上课堂,丰富课外自主学习资源,实现翻转课堂;借助程序设计类实验辅助教学平台,加强实践环节的自主训练、编程作业的自动评测,优化数据结构的综合性课程设计。以线上线下混合教学模式在两个专业的两轮教学实践中进行了初步实践探索,克服了以往教学模式的主要弊端。
项目驱动;线上线下混合教学;Online Judge;程序设计类实验辅助教学平台
一、数据结构课程的性质、特点
数据结构课程是计算机科学与技术专业、网络工程专业两个专业的核心骨干课程,是计算机程序设计的重要理论技术基础,在计算机学科的课程体系中一直起着承上启下的作用,也是国家计算机技术与软件专业技术资格(水平)考试、高校考研、各大IT公司招聘时的重要考试科目之一。课程重点内容是介绍线性表、栈、队列、树、图结构等基本数据结构和相关算法、各种检索和排序算法,对每种数据结构给出C/C++语言的实现,并给出定性或定量的算法分析,目的是要求学生学会高效地利用计算机,有效地存储、组织、传递和转换数据,掌握各类数据结构功能、表示、实现和基本操作接口,灵活地选用各类(基本)算法及数据结构以解决实际问题。所以学好数据结构对于提高学生的理论认知水平和实践能力有着重要的作用。
二、传统数据结构教学中存在的问题
(一)课时少,内容多
数据结构课程有两大特点:教学内容丰富、涉及面广;课程逻辑性强且抽象。学生普遍反映理论抽象、实践编程难。而我院网络工程专业、计算机科学与技术专业的数据结构课程每周教学学时安排为理论3课时和实验1课时,理论与实践课时均偏少。传统的以讲授为主的教学模式基本是以教师为主导,忽略了以学生为中心的自主学习模式。“满堂灌”的教学模式使学生在短时间内对所学的理论知识很难真正地消化吸收,也很难将学到的相关知识和思想方法运用到具体应用中,遇到实际问题缺乏应变能力,不能独立分析解决。
(二)学生编程能力存在差异
学生的学习基础和能力存在着差异,尤其反映在C/C++语言编程基础上。C/C++语言是描述算法与数据结构的有力工具,但是对于大二的学生,编程水平参差不齐,总体不是很好,而描述数据结构中的算法需要学生熟练掌握C/C++语言这个有力的工具。这使得教师无法兼顾到能力不同的学生,难以因材施教。教师很难通过实践教学巩固理论知识,因此存在着理论教学与实践运用的矛盾,而学生在学完课程后,普遍存在理论知识不够扎实、编程实践能力差的现象。
(三)传统的课程评价方式欠科学
传统的课程评价方式主要是以课堂提问、考勤、课后作业、上机实践与期末考试为主。评价没有包括对学生课外自主学习的考核,很难量化评价学生课外的自主学习。实践编程作业也缺乏严格的检查机制,例如学生程序的运行时间限制、内存使用限制、安全限制等,学生提交的纸质实验也部分存在抄袭现象。传统的教学课程考核只侧重于理论知识的记忆积累,忽视了知识的运用,不利于培养学生的创新思维和解决实际问题的能力。
综上所述,传统的教学模式很难达到良好的教学目的,用传统的教学方法很难让学生从抽象的数据结构和枯燥的理论性学习中产生对这门课程的兴趣,在网上优质课程资源、网络教学普及化的今天,传统的课程教学模式已然不具活力。因此,为了真正实现“能力导向”的应用型人才培养目标,本项目在网络工程2015级和计算机2015级开展了两轮课改,总体上借鉴慕课等网络课程和网络开放教学管理的辅助教学模式,充分发挥学生的主体地位,增加学生课外自主学习时间,引导学生主动参与、独立思考,着力培养学生独立思考和解决实际问题的能力,学以致用,以提高课程教学效果和学生学习效率。
三、面向具体问题的教学改革措施
我院数据结构课程的基本定位是应用型人才的理论教学。张铭、耿国华等学者[1]曾提出:“应用型人才的理论教学重在通过典型数据结构和算法的学习,以及算法设计和实现的训练,养成敏锐的洞察力。并逐步掌握如何整合信息,提炼数据和数据结构,配置相应的运算和处理算法,完成信息化系统的集成”。本课程的目标就是要让学生知道什么叫有效的算法或者好的算法,学会算法设计的一般方法,了解掌握各种数据结构的特点及如何为算法选择恰当的数据结构以获取高的效率。为了践行学院应用型人才的培养目标和“因材施教”、“全程育人”的教学理念,本项目通过线上线下相结合的混合教学模式,理论教学部分利用网络信息技术优势,采用了杭州开元数字教学平台开展数据结构理论网络教学和教学过程的量化管理,并结合中国大学MOOC网络公开课[2]的优质教学资源,供学生课外自主学习;实践教学部分以任务引领,项目驱动,先后引入了院ACM实验室的Online Judge在线程序评测平台、浙江大学推广的程序设计类实验辅助教学平台,并通过项目案例[3]进行实践教学,以促进学生严谨的编程思维训练。
(一)教师自建线上课堂,丰富学习资源,实现翻转课堂
由于数据结构内容丰富,而课时有限,所以学生完全可以利用课外时间在网络课堂自主学习(预习、复习)有关内容。本项目线上课堂采用了杭州开元数字教学平台(网址:http://www.hzkybook.com/)开展数据结构理论网络教学。该平台为数据结构课程的教学改革和教学研究提供了一个互动性好、实施性强、操控性好的教学平台,教师根据自己的教学规律,进行碎片式教学设计,合理裁剪教学内容,设计好每章节的知识点和项目案例,制作各章的教学电子教案、微视频、算法动态演示PPT、习题讲解、随堂作业等教学资源,上传到教学平台以便于学生课后自主学习,实现课堂翻转[4]。同时该教学平台提供了点名、提问、抢答、答疑、问卷调查、试题库、在线论坛的功能,并对学生的课内外学习行为进行实时数据记录采集,教师据此能够科学合理地制定学生学习的评价指标体系,客观公正地对学生的在线学习进行综合测评,解决传统教学方式下单一的考核模式。为了增加学生对复杂数据模型的理解,教师制作相应的多媒体动画演示PPT、FLASH,像二叉树遍历、迷宫搜索(深搜和广搜)、排序查找算法用多媒体动画演示来模拟会收到良好的效果,对于一些较难的编程技术和技巧学生可以通过课后观看教师录制的编程技巧视频讲解来加以消化吸收,这样提高了课堂效果,教师不再疲于赶进度,而是将一部分学习内容挪到课外。线上课堂突破了传统教学过程中时间和空间的限制,学生可以随时随地进行自主学习。学生如果遇到无法解决的问题,还可以与教师在线论坛互动,教师和学生均可以在线进行答疑,学生通过在线交流获取教师、同伴的帮助,有效地实现线上线下相结合的混合教学,充分调动了学生的主观能动性。
(二)加强实践环节的自主训练、自动评测
程序设计是学习数据结构课程的重要基础,因此,在每学期的课程教学初始,先重点给学生复习C/C++语言中的结构体、引用、指针、函数递归调用等内容,安排一到两周的基础程序训练以强化和弥补学生的编程能力。
好的项目案例在很大程度上可以激发出学生的学习兴趣和主动性,因为项目案例本身就具有实用性和趣味性[5]。在实践环节中选取一些具有实用性和趣味性强的项目案例进行编程练习,例如:利用深度优先或广度优先搜索帮助大侠走出迷宫问题、利用哈夫曼算法帮助农夫计算将木头锯成N块的最少花费、图的深搜解决哥尼斯堡的“七桥问题”、图的最短路径算法进行最优路线的求解、最小生成树算法求出每个村落都有公路连通所需要的最低成本等。通过一定强度的编程实践训练,可以使学生加深理解和掌握课程知识体系中的理论及各类设计实现的方法,提高在复杂软件系统中的实践能力。邓俊辉、殷人昆[6]曾提出:“C++模板是一种设计复用和软件复用的有力工具”。所以在理论讲授以STL(如堆栈、队列等)为基础的数据结构时,侧重于数据结构的应用,在课堂引入软件工程的思想,设计中遵循信息隐藏、抽象的原则,使学生能够运用程序的模块化和结构化的方法充分表达和领会数据结构的算法思想,以利于学生提高计算机编程综合能力。
本项目在第一轮网络工程专业2015级课改实施阶段的训练平台是院ACM实验室的OJ(Online Judge)在线程序评测平台,学生提交的程序在OJ评测系统下执行时将受到比较严格的限制,包括运行时间限制,内存使用限制、安全限制[7],这种形式能有效地促使学生全面细致地思考问题,提高了编程的准确性和增强程序查错、调试的能力,也有效地改变了以往学生的上机编程作业的评价机制。学生提交的程序完全正确时,OJ就会给出Accepted成功标志,对于不正确的程序,OJ会给出不同的错误状态提示,如Wrong Answer、Time Limit Exceeded、Memory Limit Exceeded等,其中Time Limit Exceeded错误信息提示学生程序运行超时,Memory Limit Exceeded表示程序运行超出指定内存空间,学生需要对其算法的时间复杂度或空间复杂度进行重新改进、调试、提交直到成功。
但是,采用OJ作为实验平台也存在着一定问题:首先是题型单一,只有编程题,没有其他类型的题型,比如选择、判断、函数题;其次是判题方式严苛,只有正确、错误两种结果,即使程序部分正确也通不过,这对一部分基础较差的学生容易失去信心,就会抄袭他人的代码;再次是题目本来要考核学生的某个知识点,比如用链表来完成任务,但是学生用数组也同样能完成任务,这样就不能约束学生按指定要求完成任务,达不到考核的目的。陈越,何钦铭等学者[8]曾提出过:“OJ竞赛题目难度较大,判题方式严苛,会使程序设计能力一般的学生产生畏难情绪,这种方式对初学者打击比较大”。所以第二轮对计算机科学与技术专业2015级课改实施的训练平台由OJ在线程序评测平台转移到“程序设计类实验辅助教学平台”(简称“PTA”,网址:http://pta.patest.cn/),该平台是由浙江大学联合网易共同开发的,其优势在于:由242所高校协力参与平台建设;5920道高质量题目可供甄选;题目类型丰富,除了编程题外,还有判断题、选择题、程序填空题、函数题等共千余道题,而且面向教师提供了出题、布置作业、设置考试、收作业(成绩一键导出)等教学组织的功能,题目可灵活地与课程知识点关联,教师可以布置针对单一知识点的实践训练,也能关联多个知识点来进行设计综合性题目。题目都有难度标记,教师可以组织不同层次学生的实践训练。函数题和编程题的测试用例还有“要点提示”,如果教师发现大多数学生都不能正确通过某些测试用例时,就可以提供针对该测试用例的要点提示,这对保持初学者的自信心非常有帮助。另外还有监考和查重两个系统平台,教师可组织相应强度、难度的考试,借助于平台的查重功能,保证实践环节训练和考核的真实性,针对那些抄袭代码的不诚实行为给予扣分。
(三)优化数据结构的综合性课程设计
数据结构课程设计一般是在理论教学的下一个学期开展,其目的使学生进一步加强对所学知识的理解和掌握,检验学生利用各种数据结构分析和解决问题的能力,检验学生是否能够根据数据对象的特性需求进行分析、数学建模,选择适当的数据结构与有效地算法把现实世界中的实际问题在计算机内部表示出来并加以解决[9]。陈越,何钦铭等学者[10]曾提出:“设计较大规模的综合性课程设计时就必须注意两个方面:第一,课程设计题目覆盖的知识点应尽可能避免单一;第二,题目的规模应充分大,并且努力使学生对规范性的软件开发有初步体验,在一定程度上使得学生的工程化能力和团队合作能力得到锻炼。”因此,课程设计不同于一般上机实验,要强调设计性和综合性,难度和份量都较大。教师需选择设计合适的难度层次不同的综合性课题,使学生初步感受到软件开发规范,并引导学生通过查找与分析有关资料,进行探究式学习,激发学生创新意识和综合设计能力,同时鼓励学生去参加计算机程序设计能力考试(Programming Ability Test,简称PAT)。PAT通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供一定的参考标准。凡参加考试并取得合格或优秀证书者奖励措施是给予换算综合性课程设计2.5学分,目前已经有部分学生参加PAT并通过考试。
四、结束语
通过线上线下混合教学模式在两轮的数据结构教学实践中进行了探索,初步改变了以往教学模式的主要弊端,提高了学生的学习积极性和编程兴趣。大部分学生能够接受并积极参与到新的教学模式中来,教师借助在线工具,转变了以往单一的教学方式,不再疲于赶进度,而是将学习的主动权交给学生,从原先的教师忙转变为学生忙。教学模式以学生为中心,注重培养学生的综合设计能力。相信通过不断地教学改革和教学实践探索,能切实有效地提高数据结构课程教学的质量。
[1]张铭,耿国华,陈卫卫,等.数据结构与算法课程教学实施方案[J].中国大学教学,2011(3):56-60.
[2]李晓明.慕课[M].北京:高等教育出版社,2015.
[3]庞晓琼.案例驱动的数据结构课程设计教学改革实践[J].计算机教育,2009(1):53-55+64.
[4]刘小晶,钟琦,张剑平.翻转课堂模式在“数据结构”课程教学中的应用研究[J].中国电化教育,2014(8):105-110.
[5]吴英杰,王一蕾,傅仰耿,等.依托程序设计竞赛,推进“算法与数据结构”课程实践教学改革[J].计算机教育,2010(4):53-55.
[6]殷人昆,邓俊辉.清华大学“数据结构”精品课程建设[J].计算机教育,2006(5):20-22.
[7]范立新,黄龙军,唐开山.基于OJ的《数据结构》探究式实验教学探索[J].绍兴文理学院学报(自然科学),2015,35(7):91-95.
[8]陈越,何钦铭.数据结构MOOC实践[J].中国大学教学,2015(12),46-50.
[9]何钦铭,冯雁,陈越.数据结构课程设计[M].杭州:浙江大学出版社,2007.
[10]陈越,何钦铭,冯雁.“数据结构”综合性课程设计教学探索与实践[J].计算机教育,2008(8):54-55.
(责任编辑鲁越青)
ThePracticeandExplorationofOnlineandOfflineBlendingTeachingModeinCourseofDataStructure
Dong Weiping
(Department ofInformation Engineering, College of Yuanpei, Shaoxing University, Shaoxing, Zhejiang 312000)
This paper discusses the main problems existing in the traditional Data Structure course teaching. According to the characteristics of the course and the development of the network education technology, the paper puts forward the corresponding reform measures for the teaching idea, teaching design, and teaching methods and means of the course. Teachers have already achieved certain results with online classes, flipped classroom and Programming Teaching Assistant, and with the line under the blending teaching mode in the teaching practice of nearly two rounds of practice and exploration, thereby having eliminated the main drawbacks of the traditional teaching mode, improved the students’ learning initiative and comprehensive programming ability, thus effectively improving the teaching with quality and quantity.
project-driven; online and offline blending teaching; Online Judge; Programming Teaching Assistant
10.16169/j.issn.1008-293x.j.2017.12.009
G642.4
A
1008-293X(2017)12-0055-05
2017-04-25
绍兴文理学院元培学院课程改革项目“数据结构”(kg160103),绍兴文理学院元培学院重点课程群建设项目“计算机科学与技术”(kcq1603),绍兴市高等教育课堂教学改革项目“混合教学模式在‘数据结构’课程中的研究与实践”(绍市教高[2016]28号)
董卫萍(1967- ),女,山西万荣人,绍兴文理学院元培学院讲师,主要研究方向:算法设计与分析。