数据结构课程案例式教学初探①

时间:2022-06-12 12:38:55

数据结构课程案例式教学初探①

摘 要:数据结构是介于数学、计算机硬件和计算机软件之间的核心课程,在计算机科学与技术专业课程体系中占据非常重要的地位。由于数据结构是一门理论性与实践性很强的专业基础课,所以教学难度相对较大。针对传统数据结构教学存在的问题,该文就案例式教学、实验设计和过程性考核三个方面对数据结构课程教学进行了初步探索。

关键词:数据结构 案例教学 教学研究

中图分类号:G719.21 文献标识码:A 文章编号:1672-3791(2017)06(c)-0182-02

数据结构课程不仅是一般程序设计的基础,也是操作系统、数据库管理系统、软件工程、编译原理、人工智能等后续课程的重要基础。数据结构课程是一门理论与实践并重、综合性很强的课程,教学难度大:(1)课程内容丰富、概念抽象,理论知识枯燥,对抽象思维能力要求高;(2)以设计实现高性能算法为目的,对编程能力与分析解决问题的能力要求高。

1 数据结构教学存在的问题

1.1 教学模式过于陈旧

传统的数据结构教学一般采用“课堂集中教学+机房实践”的教学模式。课堂上,以教师为主,学生为辅:教师枯燥地讲,从头到尾不断地对课本上零散的理论知识点进行讲解;学生被动地听、机械地学,缺乏师生互动,课堂气氛沉闷。学生学习兴趣不浓,主动学习能力和创新性思维能力无法提高,无法达到理想的教学效果。

1.2 实验设计不够系统

传统的数据结构实验通常以验证性的单元小实验为主,学生按照设定好的步骤进行复制性的实验。尽管与课本上的知识点联系紧密,基础差的学生也能较容易实现,但其缺点更加明显,既与书中内容重复,无法调动学生动手实践的积极性,又无法体现知识的系统性和整体性,以及处理大规模数据的时间复杂度和空间复杂度,还容易使学生学完数据结构仍感觉云里雾里,不能从软件设计的角度高屋建瓴地理解数据结构的意义,从而导致学生的主动思维能力、工程化能力和团队合作能力都没有得到训练。

1.3 考核方式过于传统

目前数据结构课程的考核仍以期末试卷成绩等终结性考核为主,忽视了过程性考核的重要性。一考定分数的考核方式,使得很多学生只在临考前突击复习理论知识、死记硬背就可以通过考核;而对平时的课堂讨论、随堂测验、提高型附加题、课程实训等平时学习不够重视,在课外投入的时间更是非常有限。一方面极易导致学完就忘或知识水平仍停留在纸上谈兵上,学习的主动性、编程能力、解决实际问题的能力等始终得不到锻炼。

2 针对现状进行的教学方法探索和实践

针对传统数据结构课程教学存在的问题,该文对数据结构课程案例式教学方法进行了如下初步探讨。

2.1 采用案例式教学,提高学习兴趣

2.1.1 精心设计案例,寓教于乐

兴趣是学生最好的老师,在数据结构课程中引入案例教学法,可以将枯燥乏味的理论知识放到实际情境中,激发学生的学习热情,使学生喜欢学习、主动学习,在课外投入大量的时间自主学习。再在章节结束时对该案例进行启发式教学和课堂讨论,利用已学知识解决该问题,既达到学以致用,又实现复习和总结的目的。

2.1.2 启发式教学,引导学生主动学习

除了理论知识的讲授以外,教师需要带着批判性的眼光、站在一个客观的角度上,通过不断的提问引出问题、启发学生分析问题、解决问题以及问题迁移,营造学生自主学习的环境。在这个过程中,可以结合多种现代化教学手段辅助教学,将书中抽象枯燥的静态文字转化为形象生动的动画效果,立体化、全方位将不同知识点直观地展现给学生,从而帮助学生更具象地理解并消化知识。

2.1.3 课堂讨论,鼓励学生参与教学

可以先通过分组讨论得出每一组的方案,再让学生通过投票自行选出最佳的方案,最后再将该方案与教师拿出的方案进行对比分析并比较优劣。既鼓励学生独立思考与团队合作,让每个学生都积极参与其中;又可以增强学生自主学习与分析问题的能力;还可以通过模仿和对比,在实践中深刻理解理论知识、快速获得提高。

2.2 设计综合性实验,鼓励一题多解

在实验内容的设计上,可以分别设计应用性的单元实验和综合实验。

2.2.1 单元实验设计

单元实验以验证每个章节的理论内容为主。为了降低重复性、提升趣味性、培养学生的工程思维能力,单元实验可以设计成一个完整的软件开发过程。如线性表实验对应学生成绩管理系统,栈实验对应停车场管理系统等。不仅可以提高学生动手实践的兴趣,还可以提高学生软件编程实践能力。针对不同水平的学生,还可以通过设置不同难度的实验,分层次提高不同水平学生的编程能力。

2.2.2 综合实验设计

应用性的综合实验可以选取趣味性强的、难易适中的、能够一题多解的实验题目。例如,迷m问题可以用栈的深度优先搜索和队列的广度优先搜索等多种算法解决;贪吃蛇游戏设计中,贪吃蛇的移动可以用顺序表、单链表、循环队列、链队列等不同线性结构的插入和删除操作解决。选择一题多解的题目,可以使学生具有一定的发挥空间,启发学生从不同角度、通过不同思路、利用不同数据结构,解决同一个问题,从而锻炼学生的创造性思维;同时,大量使用对比,同类逻辑结构之间、同类存储结构之间反复对比,使学生可以深入理解与吃透每个章节的重要概念与重要算法。另外,综合性实验的完成需要学生主动思考、查阅资料、团队合作,因此,可以全面提升学生分析问题能力、编程能力、测试能力、组织文档能力,以及团队协作的能力。

2.3 加强过程性考核,鼓励健康竞争

2.3.1 综合测评方式

采用多种形式的综合测评方式,降低终结性考核的比重,提升过程性考核的重要性。数据结构课程的综合考评成绩由平时成绩、实验考察、期末考试组成。平时成绩包括考勤、随堂测验、课堂表现和作业等,实验考察包括单元实验和综合实验,其中单元实验考察包括课堂表现和实验成绩,综合实验包括答辩成绩和报告成绩,期末考试包括笔试和机试。细致的考核标准的制定可以督促学生重视平时学习,积极参与课堂教学,培养良好的学习习惯,实验考核比重的加大可以引导学生多动手多实践,从而彻底改变学生心中固有的重考试轻平时、重理论轻实践的错误观念。

2.3.2 完善激励措施

为了促进学生取得更大的进步,需要一套行之有效的激励措施。第一,如举手发言、完成加分作业和实验、发表课程论文、参与程序设计竞赛等均可以在总评成绩上直接获得相应的加分,充分调动学生的学习积极性和主动性。第二,对大型综合实验划分不同的角色,如编程人员、文档人员和汇报人员,不同角色可以获取不同比例的分数,鼓励学生分工协作。第三,实验成绩公开透明,所有学生都可以随时看到每个人的实验成绩,培养学生健康的竞争心理,化压力为动力,在竞争中共同进步。

3 结语

数据结构是一门理论与实践并重的专业基础课,其目的在于培养学生的抽象思维能力和程序设计能力。为了培养学生自主学习能力和创新性思维,该文围绕案例式教学模式、综合性实验设计和过程性考核与激励机制三个方面对数据结构课程教学方法进行了探索,并取得了良好的教学效果。随着信息化时代的发展,还需要不断探索新的教学方法,对每个具体的教学实施环节继续深入优化,培养高素质计算机人才。

参考文献

[1] 程玉胜.数据结构与算法:C语言版[M].中国科学技术大学出版社,2015.

[2] 谭定英,陈平平,刘慧玲.以问题为中心的案例教学法在数据结构与算法课程中的应用[J].计算机教育,2013(12):50-53.

[3] 陈越,何钦铭,冯雁.“数据结构”综合性课程设计教学探索与实践[J].计算机教育,2008,68(8):56-57.

上一篇:核电厂汽轮机跳机风险控制与管理方法探讨 下一篇:电路基础课程教学改革探索①