非计算机专业数据结构教学方法探讨

2014-06-22 00:32南淑萍
湖北科技学院学报 2014年10期
关键词:数据结构C语言计算机专业

南淑萍

(阜阳师范学院 计算机与信息学院,安徽 阜阳 236037)

《数据结构》是计算机专业的核心基础课程,目前已成为许多信息类相关专业的重要基础课程,该课程在计算机学习特别是软件设计和管理方面起到举足轻重的作用。《数据结构》课程不仅要考虑数据本身的数学性质,而且还涉及到计算机硬件范围,与计算机软件有着密切的联系,所以这门课程是程序设计和实现编译程序、操作系统、数据库系统及其他系统程序的重要基础。现在很多非计算机专业对程序设计的要求也非常高,如何学好这门课程,已经成为高校计算机教学中亟待探讨的问题。

一、非计算机专业的学生在学习数据结构时的现状

(一)学习前基础不足

信息类专业的学生一般会在大学第三或第四学期开设《数据结构》,学生在学习这门课程时只具有C语言(或者其他相关语言)的基础,对于程序设计的概念停留在简单的语法和程序结构上,而对于面向对象、结构化的程序设计理解甚少,至于软件工程的思想更是一无所知。因此理解数据结构的抽象理论就非常困难,算法的设计与分析更是无从下手。

(二)教学课时少

一般的非计算机专业学习这门课程采取的都是3+1的教学模式,一周三节课的理论教学只能让学生理解最基本的知识点,实验课时的匮乏,导致学生只能简单的把书上的算法简单的验证一下,不能进一步深入的将课程掌握的知识展开。

(三)教学模式死板

因为课时较少,老师为了完成教学大纲的知识点,理论教学一直处于老师讲授,学生听的状态,互动较少,实验教学主要以学生验证算法,没有自己的想法及创新。而课程设计更是为了完成任务,过于强调结果,而不重视过程,没有达到较好的课堂教学效果。

二、非计算机专业《数据结构》教学方法的改进探讨

《数据结构》课程教学的目的,在于将程序设计过程中总结而得到的数据,通过重新组织和操作,用于程序设计的指导工作。但在实际教学中往往给学生造成深奥、抽象的印象,因此要想达到《数据结构》课程理想的教学效果,应该从以下几个方面进行改进。

(一)补充C语言知识,奠定编程基础

复习C语言中关于数组、指针、结构体、函数等知识,以便提高阅读代码和设计算法的能力。数据结构课程是在学生掌握计算机编程语言之后开设的一门重要的软件课程,通常采用类C语言来描述算法。在《数据结构》中,为了描述数据结构和实现变成操作,经常用到指针和结构体部分的知识,而这两部分属于C语言高级编程部分,学生一般掌握得不够深入,对于指针和结构体编程有些陌生。在这样的情况下,学习《数据结构》就更加显得力不从心了。针对这一情况,将C语言的深入学习贯穿课程教学的全过程,在授课过程中,不断补充和深化这方面的知识。

(二)理论课教学采用问题驱动式教学

理论教学是整个教学中的重要部分,对学生能否学好数据结构起到关键作用。很多同学都知道《数据结构》的重要性,但是由于课程知识点较多,理论抽象,难以理解又产生惧怕心理,这时教师就应该通过建立一个完善的知识链条,高度概括,抓住主线,帮助学生树立起数据结构的宏观概念。

在教学中首先提出实际和学生息息相关的问题,抓住学生的兴趣点,让学生思考问题的逻辑结构以及要做的哪些操作。逻辑结构相对比较直观,根据学生以前掌握的程序设计基础,一般都能够建立基本的设计思路。然后教师再依据一个主线——提出问题——分析逻辑结构——抽象数据类型——存储结构(顺序、链式)基本操作实现(算法)来讲解问题,举一反三,把学生提出的解法和教师所讲解的方法对比,就能够显示出数据结构的作用,这样逐渐提高学生的学习兴趣,更好地接受新的知识点,变被动为主动。学生的思维能力、自学能力和理解知识的能力都能得到充分的发挥,教师在讲解知识点时就能起到“点睛”的作用。

(三)算法的理解通过伪代码及可视化教学来体现

数据结构和算法是密不可分的,数据结构知识点的理解很大程度上取决于算法的理解上,所以对于学好数据结构首当其冲是算法的理解。《数据结构》教材由于篇幅的限制,以及为了使得算法能够很容易上机实验,很多都是使用类高级语言来编写的,对于非计算机专业的学生来说,语言的基础较差,当涉及到算法时,很多同学把主要的精力都用在了理解每一句话上,以及细小的语法结构,而数据结构主要让学生学习的是算法的思想,并非高级语言,所以首先把算法用于易理解的伪代码描述就是一个很好的选择,学生理解了算法的思想,建立起数据结构的概念之后,再在实验课上转化成高级语言来实现,这样就减小了学生因为高级语言的基础差而学不好数据结构的问题。

伪代码的描述毕竟还是局限于抽象的理解上,而教材在呈现此一单元时也有多方面的限制,所以此时可视化软件的使用就很重要,严蔚敏版的《数据结构》就有简易的算法演示的功能,学生可以在教师讲解伪代码的基础上,结合可视化软件,更好的理解算法的流程以及高级语言的使用。实践证明通过可视化软件的演示比文字叙述更有助于学生了解和记忆,尤其当学生可以通过参数的输入去比对不同的算法展示时,尤为明显。数据结构的可视化教学软件在国外获得很好效果,各种产品丰富多彩,然而,国内这方面的工作却做得很少。

(四)实验教学从熟悉的例子引出新的知识点

教师以学生熟知的字符串作为例子,按照步骤讲解字符串的操作,对比C语言中字符串的定义方法及应用,这样学生既能对以前的知识有更深入的理解,又能对新的知识充满好奇,同时也熟悉了数据结构的整个学习方法和实验步骤。

图解分析如下:

(五)课程设计

通过一学期的理论学习和实验教学,学生基本上理解了数据结构的基本理论和操作方法,但是在遇到一个实际问题时,怎么能解决问题,对于学生来讲是一个质的飞跃。教师首先要讲解一个具体的例子,从题目分析,定义数据结构,算法分析,及最后的程序设计及调试的一个完整过程,让学生对数据结构课程设计有一个更深更形象的认识,最后由多名同学组成软件开发团队的形式,共同完成一个大的课题。

1.首先给学生补充软件工程的知识。通过一个案例的分析解决过程形象地理解软件工程的思想,体会软件开发的整个流程,最终对自己的课程设计有一个整体的考虑。

2.分析案例中的逻辑结构及基本操作,定制合适的数据结构。根据具体的例子教师给予详细的分析。然后使用不同数据结构来解决同一问题,让学生体会性能和功能的区别,学生在此过程中可以在与教师的互动讨论,提高对各种数据结构的认识,从而选择适合自己课程设计中的数据结构,做出多种算法。

3.代码编写完毕,调试是一个很大的工程,所以一般要求学生不要急于求成,养成良好的编程习惯。代码要定义规范、模块清楚、可读性好,在此过程中教师可以辅助多媒体手段演示代码的编制调试过程,让学生体会到规范的代码编写在调试时事半功倍的效果。

4.尽量避免课程设计抄袭的现象。大多数学生还是愿意自主完成课程设计的,这是一次很好的实践过程,也是对数据结构理解的一个质的飞跃。

(六)课后练习、师生交流、教学并长

《数据结构》是理论性很强的课程,非计算机专业的学生基础较差,所以单纯依靠教师的讲解很难完整的理解,课后的练习必不可少。可以通过课程网站,学生通过练习题的提交,与教师互动,把知识点细化深入掌握,把不理解的知识点及时通过网络同教师交流,教师也可以通过学生反映过来的问题加以总结课上重点讲解,达到教学相长的效果。

三、结论

通过切身教学经验,非计算机专业的学生有专业基础普遍薄弱,《数据结构》学习目的不明确,理论与实践脱节的特征。在教学过程中通过以上几方面的措施,使学生学习《数据结构》的积极性有所增强,更明确的理解了计算机程序设计的过程,更多的锻炼了学生的动手能力,真正做到理论和实践相结合。

参考文献:

[1]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,1997.

[2]严蔚敏,吴伟民.数据结构题集[M].(第2版,配演示软件).北京:清华大学出版社,1999.

[3]黄琴,唐素勤.非计算机专业数据结构教学的实践与创新[J].计算机教育,2011,(3).

[4]陈庆章,何文秀.国外可视化数据结构软件及其比较[J].计算机教育,2005,(2).

猜你喜欢
数据结构C语言计算机专业
数据结构线上线下混合教学模式探讨
“以赛促学,以赛促教”促进计算机专业教学理念创新与实践研究
基于Visual Studio Code的C语言程序设计实践教学探索
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
“翻转课堂”教学模式的探讨——以《数据结构》课程教学为例
高职高专数据结构教学改革探讨
计算机专业理实一体化实践教学模式研究
CDIO模式下计算机专业实践教学改革策略研究
职业高中计算机专业教学改革浅析