基于多学科的应用型“数据结构”课程体系建设成果

2016-04-11 14:35孙丽云宋丽辉朱世英
电脑知识与技术 2016年4期
关键词:多学科运筹学数据结构

孙丽云++宋丽辉+朱世英

摘要:针对目前数据结构课程中“重理论,轻实践”的现状,以“数据结构”课程体系建设为契机,以应用型教材建设为主线,将“数据结构”课程与“运筹学”课程教学相结合,开辟一条通过交叉学科建设将不同课程内容融会贯通,增强学生解决多领域问题综合能力的教学改革新思路。

关键词: 数据结构;课程体系;运筹学;应用型;多学科

中图分类号:G642 文献标识码:A 文章编号:1009-3044(2016)04-0123-02

Multidisciplinary Applied“Data Structures” Course System Construction

SUN Li-yun,SONG Li-hui, ZHU Shi-ying

(Yanqing Institute of Technology, Sanhe 065201, China)

Abstract: Base on the reality of “academy taking precedence over practice” in data structures course, a novel teaching revolution of multidisciplinary combination to improve the students trouble shooting capability in complex fields was proposed, based on the combination of “data structures” and “planning and management” teaching. This innovation was initiated form “data structures” course system construction, and focused on the applied textbooks application.

Key words: data structures; course system; planning and management; applied;multidisciplinary

本文介绍了河北省高等学校社科研究年度基金项目——“基于多学科的应用型‘数据结构课程体系建设综合研究”的研究过程及各项研究成果。

1 教材建设

1)《数据结构从应用到实现(C语言版)》是在深入研究国内外数据结构优秀教材和大量文献的基础上,结合各位作者多年的教学经验和科研实践编写而成。

① 本书注重理论与实践相结合,每章导读中利用生活实例引出相关的知识点,这些案例都是编者根据生活实例原创的。

如第3章栈和队列的导读部分为:小王搬新家,他找来了搬家公司,搬家公司的员工将家里的床、沙发、衣柜等依次装入搬家用的货车中;到了新家后,货车中货物只能按和装车相反的顺序往外搬,因为对于搬家的货车,它装货物的车厢只有一个进出口,装货、卸货都在车门处进行,所以先放进去的货物需要最后搬出来,这与本节要介绍的栈的操作特点相似;

小王搬完家后要去银行取钱,来到银行已经有很多人了,他在门口的自动叫号机上拿到一个号码等待工作人员呼叫其办理业务,并显示他前面还有5人在等待。叫号机维护的功能是:先到的人先办理业务,后到的人后办理业务,这与本节要介绍的队列的操作特点相似。

② 在每种数据结构介绍完都会举一个应用案例,读者在学习知识点的基础上能够与实际结合,学有所用。

如队列的应用举例为:一次华尔兹舞会,有男女若干人参加,男女各排一队,跳舞开始时,依次从男女队伍的队头出一人配成舞伴。若两队初始人数不同,则较长一队中未配对者等待下一轮舞曲。请写出算法模拟舞伴配对问题,显示出每对舞者的信息。

③ 本书中所有算法都采用C语言函数的形式描述,这些函数中都在关键语句做了详细注释,并已在Visual C++6.0运行环境下调试运行,书中给出了程序运行结果的截图,便于读者理解算法,并方便读者对基本运算进行验证,在此基础上学会应用。

如队列应用举例给出的程序运行结果截图1所示。

图1 队列应用举例程序运行结果截图

利用图1的截图,学生在学习的过程中,能够看到程序运行的结果,直观了解题目原意,从而更好的理解代码。

2)很多学生在学习数据结构的时候存在“理论强,实现弱”的现象。即课堂上所讲算法都明白,但自己却无法实现这些算法。对此《数据结构实验指导与习题解析》一书提出了有针对性的举措:

①《数据结构实验指导与习题解析》的实验指导部分,在“基本实验练习”中给出了一个问题的完整实现算法,学生可以先通过读代码,来理解算法;在“自己动手做练习”中给出了一个相似的问题,学生可以借助解决相似问题,进一步理解算法,并且在本部分只给出了程序运行的界面图,即给出了具体要求,但没有给出代码,学生可模仿“基本实验练习”中的代码来实现,进行自我练习;在“综合应用实例”中给出了一个综合应用的例子,并给出了具体的实现代码,学生可以将本部分知识进行综合应用。

在实验指导的最后部分给出了2个综合的课程实验,分别对线性结构和树型结构进行了综合考量,学生可以在学完每部分知识后进行综合练习。

②习题解析部分是对课本课后习题进行了详细的解析,选择题和填空题不是仅给出答案,而是给出了结果的分析过程;编程题每道都给出了代码及详细的注释。

在习题解析的最后增加了一份自测练习题,这份自测练习题完全按照期末试卷的形式,标识出了每部分的分数,学生在学习了全部的知识点之后,在进行期末考试之前可以通过这份自测练习题来检验自己的学习情况。

在实验指导部分没有再罗列习题,因为主教材的课后习题部分是经过严格筛选,包含相关章节的全部知识点,并给出了详细的解析,学生通过这部分习题能够掌握全面知识,不用重复练习相同的知识点。课题研究过程中,将题库放在了教学网站中建设。

2 教学网站的建设

由北京化工大学夏涛老师建设的教学网站www.5ic.net.cn中,新建了关于《数据结构》课程的应用,网站中包括:定义考试、成绩管理、学生作业、评分规则、教学组考题、考题维护、考题审核等模块。里面共包含单选题、多选题、填空题、判断题、问答题等多种题型的600多道题目,学生平时可以在线做练习,可以在自己不理解的题目下面进行讨论,教师或者其他同学都可以回答同学的提问,答疑不再局限于在教室或者办公室,教师在家也可以完成答疑,并且其他同学也可帮助老师来答疑。

教师也可以利用教学网站进行平时测验,期中考试、期末考试等,客观题可以自动判卷,目前在燕京理工学院和北京邮电大学世纪学院等高校使用。

可以挑选教材中任何章节的题目,每章题目分3个难度,分别以1,2,3表示,根据考试的层次来挑选试题的难度组合,进行组卷考试。

也可以自动组卷,即教师只定义试卷结构,如试卷只包含10道选择题,其中第1章2道题目,难度为2;第2章2道题目,1道难度为1,1道难度为3;第3章4道题目,难度为3;第6章1道题目,难度为1;第8章1道题目,难度为2。系统会自动在题库中所有题目里挑选符合要求的题目,自动组成一份试卷。

3 相关论文发表

在开展课题研究的过程中,我们注重将课题研究的成果整理成论文发表,其中发表于《电脑知识与技术》期刊中的文章,重点介绍了分层次教学改革的过程;发表于《课程教育研究》期刊中的文章,则系统介绍了数据结构课程体系建设过程,论文经该期刊专家评审,荣获优秀论文一等奖。

4 其他应用

在进行数据结构课程讲解时,我们利用案例教学法、分组教学法、分层次教学方法等等展开教学改革。其中在上机时,我们根据同学的不同层次给出了不同的要求,如对基础好,能力强的同学,要求其针对给出的案例充分利用各种数据结构完成实例编程。其中计科的某位同学在上机过程中,完成了运动会计分系统和学生绩点计算系统等几个可以在平时的学习生活中使用的系统。学生绩点系统里他根据燕京理工学院的实际情况,按照绩点换算要求,每位同学只要输入自己成绩,就能得出最终的绩点。在完成系统的过程中,他遇到了一个问题,学生的成绩有百分制与五分制,学生成绩该用什么数据类型存储,因为他是大二学生,学期初只有C语言的基础,教师引导他用共用体数据类型实现,等到了期末,他发现在Java语言里实现起来很方便,这表示他能够自动将各科知识联系起来进行综合运用。对于这部分同学只要给予适当引导,不用花费大量时间指导。

对基础差,能力弱的同学要求其完成课本上的基本算法实现,并适当引导鼓励,激发这部分同学的学习兴趣,并需要花费大量的时间来进行单独的辅导;对于基础尚可,但上课注意力不够集中的同学,我们采取上课指定座位的方法督促其认真学习。

在进行课程设计时,我们提供了至少50道题目,要求每个班级里不能有题目重复的同学,每个同学综合利用所学数据结构知识来完成实际案例的实现,且做完后通过答辩的形式检查,最后老师根据学生代码实现、答辩情况及报告等给出综合分数。

《运筹学》教师提供了20道运筹学的常见题目,我们发现这些题目的知识点其实就是数据结构中的关键路径、最短路径、最小生成树等基本算法,而这些算法学生在做课程设计时都已经实现,并进行了更实际的应用,如将图里的“最短路径”算法实现并用于校园导航中;将“关键路径”算法实现并用于实际工程应用中等等。将学生实现的这些代码提供给运筹学教师,老师在课堂上讲解知识点时,将计科学生演示给其他专业的学生看,这些学生觉得知识点更直观、明了,得到了较好的教学效果。

5 结论

通过《数据结构》课程体系建设,学生的实际应用能力得到了加强,同时学生在《数据结构》课程设计中编写的代码帮助学习《运筹学》的非计算机专业的学生更好地理解了相关知识点,学习成果得到了充分的利用,讲授《运筹学》的老师的教学也轻松。学生的成就感加强,更有助于其进行相关的研究学习。

参考文献:

[1] 马睿,孙丽云.数据结构(C语言版)[M].北京:北京邮电出版社,2009.

[2] 孙丽云,刘淑艳,李珊. 大学计算机课程教学改革实践[J].电脑知识与技术,2015,11(17):121-122.

[3] 孙丽云,刘淑艳,李珊. 基于多学科的应用型“数据结构”课程教学改革探讨[J].课程教育研究,2015(33):28-29.

猜你喜欢
多学科运筹学数据结构
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
运筹学课程教学改革问题研究
多学科跨专业协同创新研究生培养的特点分析与探索
浅谈对运筹学专业教育的一些看法
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨
占卜·庙算·军事运筹——谈军事运筹学的历史发展
谈企管干部学习运筹学