APP下载

自制在线判题系统的数据结构教学

2016-12-08黄龙军范立新

绍兴文理学院学报(教育版) 2016年3期
关键词:数据结构实践性程序设计

黄龙军 范立新

(绍兴文理学院 计算机科学与工程系,浙江 绍兴 312000)



自制在线判题系统的数据结构教学

黄龙军 范立新

(绍兴文理学院 计算机科学与工程系,浙江 绍兴 312000)

数据结构课程教学中,学生的学习兴趣和学习积极性不高,学生的实践性和主体性不够突出。针对这些问题,增加激励手段及加强过程考核,完善以自制在线判题系统为主的教学平台,并以其上的问题为载体运用分层教学、探究式教学和翻转课堂教学,达到提高学生的学习兴趣和学习积极性,突出学生的主体性和实践性等目的,从而提升教学效果,保障教学质量。

数据结构;自制在线判题系统;实践性;主体性

《数据结构》是一门理论性和实践性都很强的课程[1]。《数据结构》的理论知识较抽象,难以被学生理解和掌握;而且,学生在灵活运用所学知识有效地解决具体问题方面存在较大的困难。[1]目前,已有很多教师就数据结构教学进行了积极的改革探索和实践。例如,李月军等人在理论教学中运用问题驱动教学法,在实践教学中引入程序设计竞赛内容;[2]孙东和陶影等人认为在数据结构的理论教学和实践教学中,需要深化学生的算法设计及分析能力的培养;[3,4]范立新等人探索了数据结构实验的探究式教学方法;[1]贾银江等人讨论在数据结构实验教学中运用分层次教学。[5]

《数据结构》的主要内容分为八章:绪论、线性表、栈和队列、数组和广义表、树与二叉树、图、查找及排序。[6]《数据结构》的学习内容可分为三个层次:(1)基础知识与基本概念;(2)算法的方法;(3)算法的实现。学习本课程的大部分学生在第三层次,即“算法的实现”方面存在较大的困难。我校计算机科学与技术专业的《数据结构》每周教学安排为理论4课时和实验2课时;其中,理论课安排在机房和多媒体教室各2课时。我们以能自动评判所提交源代码正确性的在线判题系统(Online Judge,简称OJ)为实践平台,[7]运用探究式实验教学方法(详见文献[1]),教学效果相对有所提升。[1]本学期,在我们的数据结构理论教学过程中,以课题组自主开发的快乐学习在线判题系统(Happy Learning Online Judge,简称HLOJ)中的问题为载体进行教学,突出了学生的主体性,提高了学生的实践能力。然而,在教学中依然呈现出了一些亟待解决的问题。本文讨论这些问题并提出相应的对策,以期在今后的教学中进一步提升教学效果。

一、《数据结构》课程教学现状与所遇问题

本学期的期中阶段,我们通过与学生座谈及调查问卷等形式,获得了一些教学问题反馈;期末阶段,我们在两个教学班中针对《数据结构》课程教学中遇到的主要问题进行调查问卷,调查结果如表1所示。

表1 教学中所遇问题调查结果表

通过分析和梳理调查结果及教学观察、交流与反思,我们认为《数据结构》课程教学所遇问题主要包括:(1)部分学生的学习兴趣和学习积极性不高;(2)部分学生的实践性不够突出;(3)学生的主体性不够突出。

(一)部分学生的学习兴趣和学习积极性不高

由于本课程与程序设计竞赛密切相关,我们的教学过程紧密联系程序设计相关竞赛。因此,有志参加各类程序设计相关竞赛(例如,浙江省大学生程序设计竞赛、ACM/ICPC亚洲区域赛、团体程序设计天梯赛及蓝桥杯软件大赛等)的学生对本课程的学习充满兴趣、热情和积极性,既积极求解HLOJ上的问题,又尽力尝试求解ZOJ(浙江大学OJ)和HDOJ(杭州电子科技大学OJ)上的相关问题。但是,部分学生由于课程内容较抽象或自身的学习目的性不强或畏难情绪等原因,学习的兴趣和积极性都不高。小部分学生在上完课之后,并未及时巩固所学知识,也未尝试求解HLOJ上的问题,对不明白的内容听之任之,随着时间的推移,相关知识的记忆越来越模糊,不明白的内容越积越多,畏难情绪越来越大,导致学习兴趣和积极性进一步下降,陷入了一种恶性循环。因此,如何全面提高学生的学习兴趣和学习积极性是本课程教学亟待解决的问题之一。

(二) 部分学生的实践性不够突出

为了培养学生的算法设计与实现能力,在我们的教学过程中,《数据结构》的“线性表”、“栈与队列”、“树与二叉树”、“图”、“查找”、“排序”这六章在HLOJ上布置了在线作业题及实验题,并且规定了需要完成的题量。通过对学生在实验课上的表现的观察及对HLOJ上在线作业及实验题完成情况的分析、统计,发现部分学生的实践能力偏弱,实践性不够突出。本学期两个教学班的72位学生中,未完成各章在线作业及实验要求的学生占比情况如表2所示。由表中可见,这部分学生的实践性不够突出。

表2 在线作业和实验的未达标率

通过与学生当面交流及问卷调查等方式,了解到学习《数据结构》课程的一大部分学生在运用所学知识独立编程解决问题的方面存在较大的困难。这部分学生实践能力较差,或者没有真正明白相关算法的意思,或者觉得算法设计题的实现代码太长、太繁,或者程序调试能力弱,因此对完成在线作业和实验存在较大的畏难情绪。小部分学生的学习目标不够明确、学习态度不够端正,其中的个别学生甚至放弃学习,几乎未进行任何在线实践。因此,如何进一步突出学生的实践性是本课程教学亟待解决的问题之一。

(三) 学生的主体性不够突出

在实践教学过程中,我们在一定程度上运用了探究式教学方法,但大部分学生的自主探究和合作探究程度较浅,学生主体性依然不够突出。而在理论教学过程中,依然以教师讲授为主,学生被动接受知识。在教学过程中以教师为主体,师生之间虽有合作交流,但学生参与面不广,交流程度不够深入。而在理论或实验课堂内,提问题的学生较少。那么,学生是否真的没有问题呢?其实不然。调查表明,部分学生其实有不明白之处但却不好意思提出,部分学生由于课前没预习且听课也不认真而无从问起。而部分学生自以为听懂了授课内容,并未及时巩固知识,更没有通过在HLOJ上实践以内化知识,导致知识的时效性差。究其原因,在于学生的主体性不够突出。因此,如何进一步突出学生的主体性是本课程教学亟待解决的问题之一。

二、 对策

(一)增加激励手段,加强过程考核

对于有志参加各类程序设计竞赛的学生,在采用程序设计竞赛相关内容引导及对积极参加校程序设计竞赛的学生奖励总评附加分的基础上,我们拟进一步增加激励手段;例如,针对有效求解HLOJ上的应用题和拓展题,推出“编程高手”评比活动。在此基础上,针对知识点,精心准备用于激趣的问题,激发学生的学习兴趣。例如,在讲授“队列”时,以设计“迷宫游戏”激发学生的学习兴趣,以HLOJ上的4个迷宫相关问题(HLOJ问题编号:9532~9535)进行问题驱动教学;在讲授“图”这一章的内容时,以如何保障“畅通工程”为激趣问题,以HLOJ上5个相关问题(HLOJ问题编号:9556~9560)进行深度/广度优先搜索、最小生成树及最短路径等内容的问题驱动教学;在讲授“基数排序”时,以纸牌游戏“梭哈”激发学生的学习兴趣。在精心备课的基础上,录制本课程的微课视频(时长为5~10分钟),每个微课针对一个具体的知识点,讲授相关知识及其应用。为了进一步激发广大学生的学习兴趣和学习积极性,拟推出“视频之星”、“答疑之星”和“进步之星”等评比活动,对积极观看教学微课、积极有效解答问题及在各方面进步显著的学生进行加平时分的激励。在考核方面,总评成绩=期中成绩×15%+期末成绩×45%+过程考核成绩×40%。为了促进学生积极学习,加强过程考核,对出勤、书面作业、在线作业、团队学习、实验完成情况等方面进行过程考核并严格管理,过程考核成绩=在线作业×10%+实验完成情况×10%+团队学习×5%+书面作业×10%+出勤×5%。通过强化过程考核,进一步提高学生的学习积极性,促进学生的主体性和实践性。

(二) 建设和完善教学平台

我们的教学平台主要包括HLOJ、教学网站和教学论坛等组成部分。原来的HLOJ上《数据结构》课程相关的问题比较分散,而且题目没有分类;原来的教学网站主要提供多媒体课件、实验指导等资料下载及课堂教学视频的回放等功能;而原来教学论坛的作用并不明显,学生在教学论坛上的参与程度参差不齐。

通过整合、补充和完善,HLOJ上的《数据结构》课程在线作业、实验及练习已作为一个独立的题集“数据结构题集(1)”,共包含100道题目(题号为9500~9599,且按章节顺序编排),其中包括基础题44道、应用题40道和拓展题16道。而正在逐步完善的“数据结构题集(2)”主要涉及更复杂的应用题和拓展题。其中,基础题主要是线性表、栈、队列、二叉树、图等数据结构及查找、排序等方法的基本算法实现,应用题则是运用各种数据结构和查找、排序方法解决有一定应用性的题目,而拓展题主要是程序设计相关竞赛中涉及数据结构相关知识的题目。不同类型的题目,有益于提高不同层次学生的实践性。为了克服部分学生的畏难情绪,把分散于课件中的各种数据结构(线性表、栈、队列、二叉树和图等)的基本操作实现代码进行整合并添加必要注释,形成较完整的程序代码,放到教学网站上供学生查阅。这些代码需要学生在理解的基础上作一些修改,才能在HLOJ上提交,从而提高这部分学生的实践性。通过在教学论坛中添加讨论主题,并对有价值的发帖、有效回帖进行加分等措施,促进学生积极参与讨论,激励学生的兴趣和学习积极性。为便于学生自主探究学习,拟针对《数据结构》课程的重点、难点内容,根据知识点重新制作多媒体课件,并录制微课形式的教学视频,构建微课教学视频网站。

(三)改革教学方法

针对学生主体性不够突出的问题,在教学过程中,积极尝试采用分层、探究式、翻转课堂等教学方法与措施。在分层教学方面,对教学内容、在线作业要求进行分层,对于学习有困难的学生,在教学内容的算法的实现方面仅作基本要求,在线作业中也仅需要完成部分基础题,使学生增强学习信心并消除畏难情绪,从而提高这部分学生的学习兴趣和学习积极性;而对于中、高层次的学生则作更高层次的要求,促进他们的学习积极性。在探究式教学方面,借鉴《高级语言》探究式教学[8]和《数据结构》探究式实验教学[1]的经验,以HLOJ的问题为核心与载体,在教师引导的基础上,注重学生的自主探究和合作探究,突出学生的主体性和实践性,并以学习团队保障探究学习效果。在翻转课堂教学方面,基于课前学生探究HLOJ上的问题及微课视频学习,在机房上课的课堂内以学生或学习团队为主体进行课堂教学,而教师以合作者、答疑者的身份参与,从而突出学生的主体性。

三、结束语

针对《数据结构》教学过程中学生的学习兴趣和学习积极性不高、学生的实践性和主体性不够突出等问题,探讨以自制在线判题系统为主要教学平台,增加激励手段并加强过程考核、建设和完善教学平台及改革教学方法,激发学生学习兴趣、提高学生的学习积极性、突出学生的实践性和主体性,以期进一步提升教学效果,保障教学质量。

[1]范立新,黄龙军,唐开山.基于OJ的《数据结构》探究式实验教学探索[J].绍兴文理学院学报(自然科学),2015,35(7):91-95.

[2]李月军, 李娟, 李英玉. 融入ACM/ICPC竞赛内容的数据结构教学改革与实践探讨[J]. 内蒙古师范大学学报(教育科学), 2012, 25(3): 137-140.

[3]孙东. 《数据结构》教学方法实践与探索[J]. 吉林建筑工程学院学报, 2011, 28(6): 88-90.

[4]陶影, 张斌. 数据结构实验教学应重视算法设计与分析能力的培养[J]. 实验室研究与探索, 2008, 27(12): 119-122.

[5]贾银江,贺莉莉,郑萍.数据结构实验的分层次教学[J].计算机教育,2014(4):60-62+72.

[6]严蔚敏, 李冬梅, 吴伟民. 数据结构(C语言版)[M]. 第2版. 北京: 人民邮电出版社, 2015.

[7]黄龙军,范立新.合作式教学在高级语言教学中的运用[J].绍兴文理学院学报(教育教学研究),2013,33(7):17-19.

[8]黄龙军,范立新,唐开山.高级语言探究式教学[J].绍兴文理学院学报(自然科学),2015,35(8):94-97.

(责任编辑 鲁越青)

Self-made Online Judge-Based Teaching Exploration of Data Structure

Huang Longjun Fan Lixin

(Department of Computer Science and Engineering, Shaoxing University, Shaoxing, Zhejiang 312000)

In the teaching of data structure, the students show inadequate learning interest and enthusiasm and unremarkable practicality and subjectivity. In view of these problems, the paper proposes increasing incentive measures and strengthening the process of assessment, improving the teaching platform mainly including self-made online judge, and applying hierarchical teaching, inquiry teaching and flipped classroom teaching targeted at the problems with a view to enhancing the students’ learning interest and enthusiasm, highlighting their subjectivity and practicality. Consequently, the teaching efficiency can be improved and the teaching quality guaranteed..

data structure; self-made online judge; practicality; subjectivity

2016-06-22

2015年浙江省高等教育课堂教学改革研究项目“《数据结构》探究式教学研究与实践”(编号:kg2015403);2015年绍兴市高等学校精品课程:《数据结构》(编号:绍市教高〔2015〕133号)。

黄龙军(1976- ),福建龙岩人,讲师,主要研究方向:无线纳米传感网、博弈论。

10.16169/j.issn.1008-293x.j.2016.12.006

TP31

A

1008-293X(2016)12-0028-04

猜你喜欢

数据结构实践性程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
合同架构与合同法实践性教学的完善
高职高专院校C语言程序设计教学改革探索
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
实践性:音乐课程的本质特征
高职高专数据结构教学改革探讨
教师实践性知识的获得:为何与何为
PLC梯形图程序设计技巧及应用
论芬兰高等音乐教育的实践性特点及对我国的启示