- 10
- 0
- 约4.32千字
- 约 10页
- 2018-10-17 发布于福建
- 举报
数据结构教学的方法的探讨_000002
数据结构教学的方法的探讨_000002
摘要:分析影响数据结构课程教学效果诸多因素,提出改善教学效果的方法。
关键词:数据结构;教学方法;课堂教学;实践教学
数据结构是信息类相关专业本科生必修的专业基础课,以武汉科技大学为例,信息与计算科学系、计算机科学系、电信系、自动化系和信息管理系等均开设有该课程。数据结构旨在帮助学生用计算机解决非数值计算问题,为所处理的数据选择正确的逻辑结构、建立高效的存储结构并实现有效的算法。同时,该课程的学习过程也是学生进行复杂程序设计的训练过程。该课程既涉及硬件存储又涉及软件算法,对学生抽象思维及编程能力要求较高,不少学生在学习过程中感到困难较大,影响了学习信心和学习兴趣,致使教学效果难以达到预期目标。笔者从学生的知识基础、课堂教学和实践教学各方面分析影响数据结构教学效果的诸多因素,并给出提升教学效果的一系列方法。
1.课前准备扫清障碍
目前广泛使用的数据结构教材是严蔚敏编著的《数据结构》(C语言版),为了更清晰地表达算法主体,教材中所有函数的实现采用的是类c语言,并借用了c++中引用调用的参数传递方式。该教材对引用的讲解只有一句话:“引用参数以打头,除可提供输入值外,还将返回操作结果。”对于没有任何C++学习经验的学生来说,这一句讲解对于他们正确理解引用的用法远远不够。对于只有c语言基础的学生,只知道参数的单向传值,而且函数返回操作结果靠的是函数的返回值,书中对引用的简短描述和他们已有的知识是相违背的。然而,引用符号贯穿教材始末,这直接影响到学生对书中所有算法的理解及实现;引用符号在整本教材所有基本操作对应的函数头中时而出现时而消失,更让初学数据结构的学生感到困难和迷惑,这成为学生学习数据结构的一大障碍。
对于初学数据结构的学生来讲,引用到底是什么?何种情况下需要使用引用?怎么使用引用?C语言编译环境下引用可以调试通过吗?这一系列问题都应在讲授本课程的初始阶段给予详解,并需要设计相应的上机练习帮助学生熟练掌握引用的用法。学生只有在课程初始阶段搞清了引用的含义和用法,在后续章节的学习中才能够轻松理解各类基本操作。根据笔者的教学经验,可以采取两步走的策略引导学生正确认识引用。在讲解过程中给出简单易于理解的例子,并略去引用的内部实现机制,更深入的知识可以在C++课程中学习,具体方法如下。
第一步,帮助学生理解引用的本质是变量的别名,可按以下方法,引用一个整型变量。
inti;//声明一个整型变量i
intri=i;//声明引用ri,ri成为i的别名
ri=10;//作用等同于i=10
i=5;//作用等同于ri=5
另外,学生第一次见到引用符号时,马上会想到C语言学习时遇到的取地址符“”,它们的符号相同,如何进行区分呢?在此需要告诉学生区分引用和取地址符的重要法则:引用只在声明语句中使用,并总跟在类型名的后面。
第二步,引导学生认识到引用通常用于传递参数。把引用作为形参,则成为实参的别名,函数体对形参的操作直接作用于实参。根据教学经验来看,在讨论引用参数时给出几种不同形式的用于数据交换功能的函数,有着较好的教学效果,便于引导学生体会、总结引用参数的应用场合,从而顺畅理解书中的各种算法。可按以下方法举例:
例1,无法实现数据交换功能:
void swapl(int x,int y){
intt:
t=x:
x=y;
y=t;
}
例2,可以实现数据交换功能,但指针增加了程序的复杂性:
void swap2(int*x,int*y){
int t:
t=*x:
*x=*y;
*y=t;
}
例3,可以实现数据交换功能,且程序可读性更好:
void swap3(intx,inty)f
intt:
t=X:
x=y;
y=t;
}
通过上述例子的讲解,不仅可以帮助学生理解引用参数的作用,而且可以使学生认识到使用引用参数的意义。教材中所有使用引用参数的函数都可以转化为指针传递的形式,但使用引用参数可以使算法的可读性更好。在数据结构教学的初始阶段,补充强化学生所欠缺的知识,可以帮助学生扫清学习数据结构的障碍并建立起学习信心。
2.课堂教学注重引导
2.1引导学生参与问题思考
数据结构教材对知识的讲解严谨简洁,但是对知识的表达过于生硬,缺少对问题背景、存储结构及基本操作实现方法设计思想的讨论,致使部分学生在数据结构的学习过程中习惯于记忆各种存储结构的表示方法或算法流程,却未能理解各种存储结构、基本操作实现方法构造的内在原因。这些学生往往可以获得比较高的考试分数,却没有真正掌握数据结构的灵魂
原创力文档

文档评论(0)