APP下载

数据结构实验课教学改革探讨

2020-06-07唐型基

电脑知识与技术 2020年35期
关键词:数据结构教学改革实验教学

摘要:数据结构是计算机相关专业的一门核心的关于培养学生编程实践能力的课程,然而目前数据结构实验课教学效果不佳,学生编程能力较弱。作者提出五个方面的教学改革措施,希望可以提升学生编程能力。

关键词:数据结构;实验教学;教学改革;编程能力

中图分类号:G642.0        文献标识码:A

文章编号:1009-3044(2020)35-0144-02

开放科学(资源服务)标识码(OSID):

数据结构课程是普通高等院校计算机相关专业的核心课程,是学生从传统的形象思维转向科学的抽象思维的第一门课程[1]。数据结构课程的教学目标是使学生建立分析问题、使用计算机编程解决问题的思维方式,和培养学生使用计算机编程解决的能力。从课程目标上看,这不仅是思维方式的学习,也是提升编程能力的学习,而数据结构实验课是提升学生编程能力的关键。目前地方性本科院校的大多数学过数据结构的学生的动手编程能力并没有达到预期效果,普遍的较差。作者分析目前数学结构实验课程教学的一些现状,结合多年数据结构教学经验提出教学改革的拙见。

1数据结构实验课教学现状

1.1实验学时偏少

经作者调查,目前地方性本科院校的数据结构课程教学大纲基本相近,大纲总学时为64学时,其中理论学时为48学时,授课内容大致是:线性表、栈和队列、串、数组和广义表、树与二叉树、图(网)、查找和排序等內容。理论课学时基本足够,但实验课学时仅为16学时,明显不足,仅是教师在实验课上解答学生上机过程中的各种疑问每次课都不够用。

1.2重理论,轻实践

在数据结构教学中,大多数教师注重理论知识的讲授,而轻视实验课的教学。经调查,一般的学生对于数据结构理论的学习,大多数学生在听了教师的授课之后都能接受,但是,一旦要将课本上的理论知识运用到实验中去,大多数的学生都被卡住。

1.3实验课中缺少引导和演示

大部分教师实验教学中没有引导和演示数据结构实验的上机编程实验过程,只是给学生提供了参考程序,并没有告诉学生参考程序是如何生产的,这对于大多数编程基础不强的学生来说是一道巨大的鸿沟,仿佛编程是只可意会而不可言传的,学生最终只得到了“鱼”,而没有得到“渔”,学生没有建立起编程的思维,甚至有少数教师对于实验课基本上是让学生处于类似“放羊”的自由摸索状态。然而地方本科院校的学生不像重点大学或一流大学的学生那样具有较强的自学能力和自控能力,地方本科院校的学生在自由摸索编程的过程中必然会遇到一些问题,如果没有及时的解决,久而久之学生学习的兴趣会被大大地削减,直到最后的放弃。于是形成了数据结构难学的错觉。

1.4学生编程基础差

这是地方性本科院校学生普遍的问题,在大一时学习程序设计语言没有打下坚实的编程基础,其关键是没有学会计算机思维,具体来说是不知道如何把客观现实的问题转换成为计算机能够解决的简单的重复的基本步骤。

1.5实验设计不合理

目前大多数的高校采用的教材都是严蔚敏老师和吴伟民老师所编写的经典教材,大部分学校也订了主教材和习题集,但是在实验课时大多数教师并没有深入研究习题集上实验部分,也没有精心设计和选择适当的实验内容,部分教师没有给学生演示如何上机实验,更关键的是实验内容没有由浅入深地让学生去学习和适应,导致大部分学生一遇到上机实验,便束手无策、无从下手。

2 改革措施

2.1线上与线下教学相结合[2]

目前主流的授课方式仍是线下的课堂教学,但这种教学方式不可否认地存在着一些不足,教学资源主要是教科书、教师的PPT、相应参考书等,教学资源匮乏。随着网络应用不断地深入各个方面,各大高校也开展了线上与线下教学相结合的教学方式。线上教学方式的出现很好地解决了前述的实验学时不足的问题,教师可以把上机实验过程的演示讲解,或者在实验过程中学生遇到的普遍问题的讲解录制成为视频发给学生观看。此外,视频录制完成后,教师通过回看自己录制的视频,不断地对讲授内容进行改进和优化,这对教师的教学水平也有较大的提升。

2.2在实践中联系理论

理论与实践是构成数据结构课程整体的不可或缺的两个部分,理论与实践是一体的,从实践中获取理论,理论又指导实践。抛开了实践的理论,就是空谈,没有了理论,实践也无从做起。在数据结构的教学中如果重理论轻实践,那么基本上是把理科当成文科来教了,学生考试结束也就忘了。对于学生来说课本上的知识还是课本上的,并没有转化成为学生的知识和能力。能力从何来,就是通过把课本上的理论通过实践去体会、去运用,从而转化为学生自身的能力。例如,在线性表的顺序存储表示的代码中,获取第i个元素可以直接使用L.elem[i-1]这样的方式取得,这体现了顺序表的特性之一,随机存取。而线性表的链式表示中则不能有这样的方式得到元素,它必须从链表的表头开始(p=L->next;),然后重复地执行循环体内的p=p->next;并计数然后才能取到第i个元素。只有深入理解代码表示的含义之后,学生才能够体会到代码无处不在体现着数据结构的理论思想。

2.3教师引导和演示上机实验

在开展实验课布置实验任务时,教师得提供必要的引导和演示,让学生在开始进行实验时有参考和模仿的对象,学生学习起来才会事半功倍。更重要的是,教师自身的实践能力要过硬,不仅能把算法代码敲出来,还要能把算法建立的思路过程演示给学生,学生才会从不断地模仿提升到独立地上机实验[3],甚至创新。

2.4建立计算机思维的编程逻辑

其实每门程序设计语言的语法都不难掌握,关键是学生不会写算法,或者说不会用计算机能够完成的步骤给写出来。针对这个问题,作者在授课时,对于程序的编写的讲解演示时总是从分析问题开始,引导学生形成解题思路,再把思路用计算机思维的方式用汉字给描述出来,最后再把汉字转换成为代码,放到集成开发环境中运行调试。关键是引导学生学会分析问题,用计算机思维描述解决问题的方法,逐渐让学生形成计算机思维,从而提升学生的基础编程能力[4]。

2.5由浅入深渐进地开展实验

开展数据结构上机实验前,精心地设计实验任务,按照先易后难的渐进的方式制定上机实验任务的框架。在任务框架里把上机实验任务分为三个等级。1)验证性实验:给出题目及相应的算法,要求学生自己实现主函数,在主函数中要求学生按相关要求调用已给出的算法,完成相应程序功能;2)设计性实验:给出某数据结构相应的存储结构,要求学生在此数据存储结构之上自行设计出部分指定功能的算法,并要求学生在主函数中进行调用,完成相应的程序功能;3)综合性实验:给出题目,要求学生分析问题中的数据,找出数据元素,分析数据元素之间的关系,确定相应数据结构,选择适当的存储结构,建立该存储结构之上的相关算法,在主函数中调用编写出的算法,完成题目要求的功能。近两年所开设实验内容如图1所示。

线性表顺序表示的验证性实验案例,如图2所示。

一元多项式计算器的设计性实验案例,如图3所示。

上机实验任务分了等级之后,例如原本树和图等较为难以理解和学习的部分算法便可设计成稍微简单验证性实验,让学生做了验证性的实验,对算法了进一步的理解之后,再进行更深入的设计性实验和综合性实验,对于较难的知识也可做到由浅入深的、渐进式的学习。这对于学生学习难以理解和学习的知识是非常有帮助的。

上述的教学改革方法作者应用在17级计算机、18 级数据科学、19级计算机等7个班级的教学过程中,上机实验对比17级之前的班级有明显效果,特别是将上机实验任务分等级并给出了任务框架后,学生自己动手做实验的人数有了较大的增加,学生实验过程中编写的代码和运行结果不再像以前的千篇一律。这充分说明学生实验动手能力有了明显提升。

3结束语

练好数据结构的上机实验,对于提高计算机类专业学生的动手编程能力是非常有帮助的。通过线上与线下结合的教学方式,强调理论联系实践,教师引导演示,建立计算机思维逻辑,给出实验任务框架由浅入深地开展上机实验等方面进行教学改革,对于提升数据结构课程的上机实验的作用是非常有效的。虽然数据结构的内容多年来没有太大的改变,但是在提倡应用型人才的时代更注重学生的动手实践能力,教师的教学方式和自身的能力也得不断地改革和进步。

本文针数据结构实验课的一些现状提出了几个方面的教学改革建议,希望在教学中进一步提升学生的动手编程能力。

参考文献:

[1] 李冬梅,孟伟.“数据结构”课程的教学改革与教材建设[J].计算机教育,2012(14):38-41.

[2] 任雪萍.基于线上线下融合的数据结构教学改革[J].计算机教育,2019(7):5-9.

[3] 唐型基,吴小平,周长敏.以培养实践能力为核心的《數据结构》“三步论”教学法研究[J].凯里学院学报,2013(03):89-91.

[4] 唐型基,周长敏.基于“计算思维”的程序设计方法在《C语言程序设计》教学中的运用[J].电脑知识与技术,2017(15):77-78.

【通联编辑:朱宝贵】

猜你喜欢

数据结构教学改革实验教学
电容器的实验教学
几何体在高中数学实验教学中的应用
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
TRIZ理论在“数据结构”多媒体教学中的应用
《数据结构》教学方法创新探讨