HI,欢迎来到学术之家,期刊咨询:400-888-7501  订阅咨询:400-888-7502  股权代码  102064
0
首页 精品范文 数据结构习题

数据结构习题

时间:2023-05-29 18:23:33

开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇数据结构习题,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。

数据结构习题

第1篇

关键词:本体;知识表示;领域本体;网络教育

中图分类号:G434文献标识码:A文章编号:1009-3044(2012)04-0967-04

The Study for Engineer Domain Ontology: An Experience in Developing Data Structures Ontology

YANG Jin

(Information College, Yunnan Normal University, Kunming 650500, China)

Abstract: E-learning is a new direction for the development of international education. An effective way to reduce the cost of education, improving the quality of network education is sharing of resources. However, the absence of a unified education knowledge representation make the shared of the learning resources to be difficult among different learning systems. Use the example of "data structures" course to illustrate how to use ontology to describe curriculum knowledge. The general approach is to get terms of course, using the standard OWL ontology description language to define and describe it to form the domain ontology.

Key words: Ontology; knowledge representation; domain ontology; network education

随着互联网技术的发展,运用本体论理论通过互联网技术进行知识和信息资源的整合是必要的。目前的知识己经愈来愈明显地表现出跨越多学科的特点,此种结构特点使得知识表现模型的相关性显得复杂且不单一,运用本体进行课程知识描述,在强调了概念的单一性和无二性的同时,在概念和概念之间、对象与对象之间建立了清晰的相关联系。

在教育领域,国内外关于本体在智能教学系统的研究已有一些进展。利用本体表示的知识不仅有助于知识、信息资源的系统化,而且也便于知识、信息资源的扩展和更新,使之更容易满足不同层次、不同需求的个人终生学习。使用本体来表示知识,构建领域本体,能够促进智能学习系统的有效开发。

1本体的相关概念

1.1本体的定义

本体论(Ontology)来自哲学领域,旨在研究客观事物存在的本质和组成[1]。随着信息科学的飞速发展,本体论逐渐用于知识工程和信息科学等领域之中。

在知识工程领域中,本体通过对于概念及其相互关系的规范化描述,勾画出某一领域的基本知识体系。

在计算机科学领域,斯坦福大学的Gruber认为“本体是概念化的明确的规范说明,能够以一种明确的、形式化的方式来表示领域知识,促进知识共享”。

本体论可以分为四种类型:通用、应用、领域和任务。

1.2本体建模元语

Perez认为Ontology包含五个基本的建模元语(Modeling Primitive):

(1)类(Classes)或概念(Concepts):表示领域知识元,包括一般意义上的概念以及任务、功能、策略、行为、过程等,通常具有一定的分类层次关系。

(2)属性(Properties):描述概念的性质。

(3)关系(Relations):表示概念之间的关联,在形式上定义为n维笛卡儿积的子集:

R:C1×C2×…×Cn。

(4)函数(Functions):表示一类特殊的关系,即由前n-1个要素来唯一决定第n个要素。

(5)实例(Instances):表示属于某个概念类的具体实体。

1.3构建本体的步骤

构建领域本体的目标就是要将一个或多个特定领域的概念和术语规范化,为其在该领域或领域之间的应用提供便利。面向不同的学科领域、不同的应用需求,本体构建的方法不同。比较成熟的本体构建方法有IDEF-5法、Skeletal Methodology骨架法、TOVE企业建模法、METHONTOLOGY方法、Cyclic Acquisition Process循环获取法、软件工程法等。文本以“数据结构”为例结合上述本体构建方法来构建领域本体[2,3]。

构建本体的一般步骤:

(1)列出研究对象所涉及到的概念(concepts);

(2)按照概念的固有属性和专属特征进行归纳和修改,对概念建立类(class)以及层级化的分类模型(taxonomy);

(3)加入关系(relation)连接concepts;

(4)按照需要添加实例(instance)作为概念的具象。

2“数据结构”领域本体的构建

通过分析“数据结构”的知识结构,并结合本体的五个基本的建模元语,得到该领域本体五元组表示:

O=

其中,O表示领域本体,C表示本体的概念集合,P表示本体的属性集合,R表示C上的关系集合,I表示本体的实例集合,X表示实例集与概念集的映射关系集合。

本体的属性集合P,描述概念自身的属性,称为数据类型属性(DatatypeProperty)。

本体的关系集合R,描述概念与概念之间的关系,称为对象类型属性(ObjectProperty),关系集合R中除了本体中基本的关系如part-of、kind-of、instance-of、attribute-of关系之外[4],还可根据具体的情况定义相应的关系(如上位关系,下位关系,兄弟关系等)。

“数据结构”领域本体主要由“数据结构”课程中的概念,概念间的关系及计算机可以识别的形式化描述语言组成。构建该领域本体的目标就是要形成对于“数据结构”知识组织结构的共同理解和认识,为进一步建立智能学习系统奠定基础。

2.1列出研究对象所涉及到的概念(concepts),即确定本体概念集C

分析“数据结构”知识内容[5],按照教学步骤,将知识对象进行划分,并进行抽象归纳,形成的核心概念集C为:

C={集合,线性结构,树形结构,图状结构,查找表,内部排序,外部排序,文件,基本概念,基本操作}

考虑到这些核心概念需要具体的习题资源来练习,因此增加了练习题核心概念。这些核心概念基本覆盖整个“数据结构”课程的全部知识。

2.2对概念建立类(Class)以及层级化的分类模型,即建立概念层次结构关系

(1)对已确立的核心概念进行分析整理并进一步扩展,建立整个本体概念模型。

本体概念模型体现的是概念与概念之间的父子结构关系。这个过程是一个自顶向下的过程,根据已确立的上层父类概念,逐步细化形成下一级子类[6-8]。

把数据结构知识体系、练习题作为领域本体的顶级概念,数据结构知识体系向下有基本概念、基本操作、数据结构三个核心概念。每一个核心概念又有其子概念,进一步扩展为下一级概念,如:C(数据结构)={集合,线性结构,树形结构,图状结构} C(树形结构)={树,森林}

C(基本操作)={遍历操作,转换操作,构造操作,…}

……

以此建立的概念层次结构是以树型结构呈现,具有一条明确的主线。概念之间形成的等级层次结构如图1所示。

(2)确定概念的属性P

概念的等级层次结构是本体的骨架,其血肉要通过概念的属性来充实。本文将“数据结构”领域本体中概念的属性分为数据类型属性(DataProperty)和对象类型属性(ObjectProperty)。这里所说的属性P主要是指数据类型属性。

如数据结构的知识点可以从中文名称、英文名称、难易程度、掌握程度、考试概率、上位知识、下位知识、兄弟知识、关联练习题等方面描述进行描述,因此数据结构知识体系概念的属性P为:

P(数据结构知识体系)={中文名称,英文名称,难以程度,掌握程度,考试概率,上位知识,下位知识,兄弟知识,关联练习题}练习题可以从以下六个方面来刻画:

P(练习题)={编号,题目,答案,练习题类型,练习题难度,关联知识点}

充分利用类属性继承性特性,子概念共有的属性在父概念中定义,子概念继承父概念中的所有属性,再定义自己的特有属性。

2.3加入关系(relation)连接concepts,即确定概念间的关系R

领域本体除了上面建立的类的父子关系外,还要添加符合学习步骤和学习规律的其他关系,将两个概念之间的关系称为对象属性(ObjectProperty)。

如在学叉树这一概念时,主要学叉树的概念及各种操作。因此需要有概念和操作将二叉树和对应的概念和操作联系起来。

又如按照学习规律,在学叉树之前我们应先学习树的一些知识,因此树是二叉树的前驱知识、二叉树是树的后继知识。需要用前驱知识、后继知识将二叉树和树关联起来。

前驱知识和后继知识互为逆关系。

在“数据结构”领域本体中,部分对象属性(Object Properties)如表1所示。

表1领域本体中概念的主要对象属性

2.4按照需要添加实例(instance)作为概念的具象

实例是概念的具体实体,具有概念所有属性,在添加实例前,要确定该实例的两种属性,即数据类型属性和对象属性,以练习题为例,为其添加实例,其所有属性及属性值如图2所示:

3领域本体形式化编码及开发工具

本体形式化编码阶段就是选择合适的本体描述语言来描述知识本体,现有的形式化本体描述语言很多,主要有RDF和RDFS、 OIL、DAML、OWL、KIF、SHOE等。本文选用的是OWL(Web Ontology Language)来对领域本体进行描述[9]。

目前本体的开发工具主要有Ontolingua、Ontosaurus、WebOnto、OntoEdit、Protégé等。本文选择Protégé4.1作为本研究的本体开发工具,Protégé是由斯坦福大学的Stanford Medical Information开发的一个开放源码的本体编辑器[10]。

由于篇幅有限,关于OWL及Protégé的内容这里不做具体介绍。

4结束语

本体是一种用来描述概念以及概念之间关系的模型。将本体应用于领域本体的建设,可以表示复杂的知识层次结构。更便于知识的共享,重用及推理。下一步的工作将继续完善“数据结构”领域本体。

参考文献:

[1]谢娟.教学领域本体构建研究――以“C++程序设计”课程为例[D].济宁:曲阜师范大学, 2010.

[2] PEREZ A G, BENJAMINS V R. Overview of knowledge sharing and reuse components:ontologics and problem-solving methods[C]. Stock? holm: Swtdem, 1999:1-15.

[3] A Guide to Creating Your First Ontology [EB/OL]. 2011-10-25. protege.stanford.edu/publications/ontology_development/ontolo? gy101.pdf

[4] Gruber T R. Towards Principle for the Design of Ontologies Used for Knowledge Sharing[J]. International Journal of Human Computer Studies. 1995,43:907-928.

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

[6]潘颖,欧启忠,肖耿毅.面向语义的课程知识本体的构建[J].电话教育研究, 2007,2:19-21.

[7]杜小勇,马文峰.学科领域知识本体构建方法研究[J].图书情报工作,2005,8(49):74-78.

[8] Boyce S. & Pahl C. Developing Domain Ontologies for Course Content[J]. Educational Technology & Society, 2007,10(3):275-288.

第2篇

论文关键词:应用型本科 数据结构 课程建设 教学改革

论文摘要:应用型本科课程建设是我国高等教育的薄弱环节。本文在多方位研究了应用型本科特点之后,结合长期从事应用型本科教学工作的经验和体会,重点论述了应用型本科“数据结构”课程的课程建设和教研教改问题,并简要介绍了作者所在学校的一些做法。

“数据结构”是计算机科学课程体系中的一门重要专业基础课程。我国“数据结构”课程的开设始于20世纪80年代初期,第一本教材是清华大学出版社1981年出版的严蔚敏教授组织编写的《数据结构》。经过近三十年的建设,涌现出了许多版本的好教材和多门国家级精品课程。缺憾的是能很好地适应应用型本科教学的数据结构教材很少;数据结构国家级精品课程都是一本招生的重点大学课程,没有一门二本、三本招生的应用型本科课程。我国的高等教育成功的从精英教育转型到大众教育,应用型本科的教材建设和课程建设是摆在我们面前刻不容缓急需解决的重大课题。

我校数据结构课程组经过十多年的建设取得了较好的效果,1999年“数据结构”课程评为省级优秀课程,2007年“数据结构”课程评为省级精品课程。建立了比较完备的教育资源,其中素材类教育资源有:试题库、试卷素材、媒体素材、文献素材、课件素材、案例素材和常见问题素材等等;根据教学的需要本课程已经建立了多媒体课件、CAI课件、无纸化考试系统等。建立了“数据结构”教学网站,网站上的教学资源丰富,有教学方法、教学管理、教学计划、教学大纲、多媒体课件、习题、教案、讲稿和授课录象等网上资源,已供学生自学使用。本文就应用型本科数据结构课程建设,结合我校的教学改革研究与实践谈一点看法,供同仁参考。

1应用型本科的特点

应用型本科与重点大学的研究型本科有着很大的不同,除了在生源、师资、教学条件等方面的较大差别外,主要有以下几个方面。

1.1多样性

研究型本科承担社会所需要的创新型、理论性人才的培养和基础性、原创性科学研究任务;而应用型本科则承担社会各种各样人才需求的培养任务,尤其是适应经济发展需要的实践应用型人才培养的任务。其实,应用型人才更多的体现为一种人才培养目标的类型结构而不是层次结构,这种应用性表现在多方面,也可以区分为学术型、工程型、技术型和技能型等四种应用性人才类型,学术型人才的主要任务是探索和发现新原理,研究客观规律,将客观规律转化为科学原理和学科体系;工程型人才则主要从事将科学原理及学科体系知识转化为设计方案或设计图纸;技术型人才主要从事将设计方案与图纸转化为产品;技能型人才则主要依靠熟练的操作技能来具体完成产品的制作。

1.2综合性

应用型本科人才应该是和谐发展的高素质应用型人才,高素质应用型人才不仅要有一定的理论知识,同时还要有较强的理论技能;不仅要有扎实的专业基础知识,还需要有过硬的应用性知识、一定的科学人文知识和相关的财务、管理和人际方面的知识。高素质应用型人才不仅要有一定的操作实践能力,还要有较强的创新能力。更要具有较强的理论知识和技术的应用能力,要培养学生构建应用知识进行技术创新和技术的二次开发的能力、科学研究的能力。应用型人才不仅要有较高的专业素养,还要有一定的非专业素养。应用型本科教育要避免“重专业技能、轻综合素养”、过分重视人的技术价值、工具价值,忽视人自我发展的价值,要把片面强调学生的职业素质转变为兼重综合素质。

1.3技能性

应用型本科人才,以能力培养为重心构建教学体系,建立以社会适应性为核心的教育质量观和人才观。我们必须围绕应用型本科人才知识、能力、素质和谐发展的目标要求,以能力培养为重心,构建相对独立、内在统一的人才培养体系。必须打破传统的研究型人才培养的教学体系,确定理论与技能的深度和广度,整合教学内容,在教学过程中把传授知识、培养能力、提高素质有机地结合起来,体现多层次、个性化的培养特征,构建和完善以提高基础理论和基础知识为目标的理论课程体系,以提高基本技能与专业技能为目标的实践课程体系,提高综合能力和拓展专业外延为目标的素质拓展体系,构成人才培养的主体框架。

1.4实践性

高级应用型本科人才培养模式有别于研究型大学和中国传统的专科教育。其显著特征是工程教学与工程实训相结合,使学生通过实践获得工程技术人员的初步训练,为受教育者未来的自主择业和自主创业奠定基础。根据应用型本科人才多层次、多元化的能力特点,需要构建分类设计、分层施教、分步实施、独立设置的选修与必修相结合的实践教学体系。围绕着社会对人才的创新、创业精神和实践能力的要求,需要构建从课堂内系统的、综合性的实践技能训练到课外的自助式开放实验、贯穿校内学习全过程的专业素质拓展训练和校外实习相结合的培养体系。

1.5生产服务性

应用型本科的发展不同于研究型本科的追求以研究生培养为主,以原创性、基本性理论研究为主旨的发展路径;也不同于我国传统的高等教育以学术性本科生培养为主,以研究型大学为发展目标和参照依据的办学模式,而是在强调必须的学术性和基础理论性的同时,要更加强调面向市场现实需要和学生的实际与未来发展需求,主动积极的为地方经济建设和区域社会与行业发展服务,以服务求支持,以贡献求发展。通过产学研合作教育培养高技能应用型人才的同时要积极从事应用技术研究和实践开发研究,积极致力于把原创性研究成果和学术性实验成果直接推向市场,转化为现实生产力和直接贡献力。

2应用型本科数据结构课程建设问题

2.1课程目标侧重问题

应用型本科的特点决定了其数据结构课程建在课程目标和要求等诸多方面与研究型本科有着不同的侧重。数据结构课程介绍程序数据的结构、组织和管理技术以及在此基础上的算法设计与分析技术,不仅为后续课程操作系统、编译原理、数据库原理、软件工程、人工智能、计算机图形学、计算机辅助设计、多媒体技术等课程提供必要的知识准备,更重要的是可以提高学生软件分析、设计、编程和数据组织的能力。研究型本科侧重与数据对象的特性、算法分析等数据结构理论问题的研究,注重理论的系统性、完整性和探索新结构新方法的创新性;而应用型本科则侧重数据的逻辑结构、存储结构和在特定结构基础上的算法实现,注重结构的特性、算法的效率性和在实际问题中选择结构与算法的应用性。应用型本科数据结构课程的目标、要求和侧重决定了应用型本科数据结构课程建设在教材建设、课程设计、实验环节、师资队伍建设等方面应该有着与研究型本科不同的特色。

然而,在近些年我国推行的高等教育质量工程中,应用型本科教育却是被忽视了的薄弱地带。国家精品课程建设,只区分本科和高职高专两部分,结果是本科部分基本上让本一批招生的重点高校包揽,数据结构国家级精品课程全部是重点高校包揽。国家“十一五规划教材”也是如此,数据结构教材入选者全部是研究型重点高校的教材,国家级教学成果奖、国家级教学名师对于应用型本科高校来说更是稀缺。这些都严重影响和制约着应用型本科高等教育的发展,影响和制约着应用型本科教育质量和教学效果的提高,也影响和制约着应用型本科的数据结构课程的建设。

2.2教材偏重理论问题

教材是保证教学质量与效果的前提。纵观我国学者出版的数据结构课程教材,其中不乏许多有特色的好教材,如清华大学严蔚敏教授组织编写的《数据结构》等国家“十一五”规划教材。然而,这些教材理论性都比较强,对于应用型本科使用不够理想。针对应用型本科特点,出版一套教材体系科学、面向大学二本三本学校学生、侧重应用性、教学内容与应用实例有机融合、符合应用性本科特点的数据结构教材,是应用型本科数据结构课程建设的首要问题。

2.3教学实践环节的设计问题

数据结构课程的难点在于学生听得懂、看的明白,但当动手设计算法,解决实际应用问题时会感到无从下手。该课程一般在本科低年级开设,对于仅学过一门高级程序设计语言的学生,理解和掌握其中的原理比较困难。学生在学习时,对“数据结构”在计算机科学的算法理论和软件设计中的重要性认识不足,缺乏学习兴趣和学习动力。针对这些问题,注重课程设计、课程实验等实践环节设计是提高课程教学效果的主要措施。要精心选择与课程教学内容密切相关的典型案例,通过典型案例培养学生独立分析解决问题的能力。可把课程必须掌握的技能点设定为必修实验(设计),对于技能延伸性技能点设为选做实验(设计),供学生自由选择,给学生以个性化发展的空间。以基础性与先进性、综合性相结合为原则,筛除部分传统课程体系内的验证性经典实验,加大综合性或设计性实验数量,通过实践环节,提高学生分析问题和解决问题的能力,强化学生的创新能力、技术开发能力培养。在实验教学的方式上,要注重因果式引导、成果型训练,刺激学生的成就感,激发学生的学习兴趣与钻研的好奇心。这种全方位、立体化、系统规范的培养模式创新和实践,可使所培养人才符合社会对创新型、创业型人才的需要。

2.4考核与平台问题

在课程考试考核环节设计上,既要考核基本理论的掌握程度,更要考核实验实践能力和开发设计能力。在教学资源平台建设上,既要建设一般性常规教学资源,还要考虑充分利用网络等现代化教学手段建设优质的网络教学资源。在师资队伍建设上,既要考虑有研究型本科师资具备的较扎实的理论基础,又要考虑有应用型本科师资必备的较强的工程技术和应用研究开发能力。

3我校的数据结构课程建设

我校数据结构课程课程组不断探索教学手段和教学改革的新思路,经过十多年的建设取得了较好的效果,1999年“数据结构”课程评为省级优秀课程,2007年“数据结构”课程评为省级精品课程。我们的主要做法是:

3.1重视教材建设

2000年在华东地区计算机基础教育研究会的组织下,主持编写了《数据结构——用C语言描述》和《数据结构习题解析与上机实验指导》等教材,该教材一经使用就受到各校师生的一致好评,2006年发行了第二版,累计发行83000册。2006年还应清华大学出版社邀请,针对应用型本科的特点主持编写了高等院校信息技术规划教材《算法与数据结构》、配套辅导与实验教材《数据结构学习辅导》和《算法与数据结构习题精解和实验指导》,已发行31500册。有关专家的评价是:“教材体系科学,面向大学二本、三本学校学生侧重应用性,教学内容与应用实例有机融合符合应用性本科特点,有助于培养学生解决实际问题的思维能力和创新能力;教材内容新信息量大,融入最新科研成果内容,很好地体现了该课程内容的基础性与先进性。”

3.2重视实践教学环节

学校在数据结构课程设计和上机实验课的内容设计与方法改革等方面做了大量的工作。精心设计实验案例和课程设计案例,出版《数据结构习题解析与上机实验指导》、《算法与数据结构习题精解和实验指导》教学参考书籍,实行开放式实验教学改革,引进软件企业培训软件开发项目驱动,这些措施有效地保证了实践教学的质量。

3.3重视教学教改研究

课程组成员积极参加教研教改活动,积极参加各种教学研讨会议,经常性的总结和交流教育教改经验体会。先后主持和参与“计算机科学与技术课程CAI特性的研究和CAI软件包研制”、“软件人才培养实践教学体系的建立与实施”等省校级教改项目十多项,发表教研教改论文二十多篇。“数据结构课程建设”、“数据结构教材”、“高等学校高级语言程序设计课程教学改革与实践”、“开放式实验教学改革与实践”等十多项教学成果获得校级以上教学成果奖。

3.4重视教学资源建设

搭建数据结构课程资源平台,为学生提供更多更好的学习途径。我们除了在清华大学出版社网站和中国水利水电出版社网站挂出电子教案和多媒体课件外,还专门建立了数据结构精品课程网站,提供教学方法、教学管理、教学计划、教学大纲、多媒体课件、习题、教案、讲稿和授课录象等网上资源。这些教学资源有效地改善了学生的学习条件,方便了学生的学习需要。

3.5重视师资队伍建设

课程组一直都很重视教学梯队建设,目前已形成有3位教授、3位副教授、3位讲师的具有较高学术水平的课程教学团队。团队中有3位博士(含1位在读博士生),省级优秀中青年骨干教师1名,1人入选省百千万人才工程,多人主持或承担省级以上科研项目,发表具有较高学术水平的学术论文(SCI/EI收录)30多篇,多人参加国内外主办的国际学术会议报告交流学术论文。师资队伍科研水平的提高,有效地保证和促进了课程教学水平的提高,对提高教学质量和效果产生了积极的作用。

4结语

应用型本科承担着社会各种各样人才的培养任务,招生量大、影响面广,应当引起社会各界尤其是各级教育管理部门的重视。应用型本科课程建设在质量工程中被忽视或弱化,是一个应当尽快引起教育界重视的重大问题。数据结构课程在计算机科学课程体系中占据着十分重要的核心位置,应用型本科数据结构课程的建设任务任重而道远。

参考文献

第3篇

[关键词]数据结构;课堂教学;教学设计

[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2017)03-0029-02

数据结构课程是计算机类专业的核心必修课程,在整个专业教学体系中占有重要地位。数据结构课程的教学内容涉及构筑计算机求解问题的两大基石:刻画实际问题中信息及其关系的数据结构,描述问题解决方案的算法。[1]数据结构课程的教学目标是培养学生缜密的逻辑思维能力和数据抽象能力,把数据结构和算法理论与编程实践相结合,并在软件系统开发过程中灵活运用。学好数据结构课程对操作系统、编译原理、计算机网络等后续课程的学习以及培养学生分析问题、解决问题的能力等方面起着至关重要的作用。如何讲好数据结构课程,一直是各高校计算机教师研究探索的热门课题。俗话说“好的开端是成功的一半”,第一堂课的教学设计至关重要。好的开端能激发学生对课程的兴趣,调动学生的学习积极性,使其产生强烈的求知欲,从“要我学”变为“我要学”,从而为教师有序、有效展开课程教学奠定良好的基础。[2]

本文从以下几个方面具体讨论如何上好数据结构第一堂课。

一、教师自我介绍

教师给学生的第一印象很重要。第一堂课教师第一次接触学生,自我介绍必不可少。自我介绍的内容主要包括介绍教师的姓名、学院、办公地点、移动电话等,可以把微信、QQ或E?鄄mail等其他联系方式告诉学生,还可以组建数据结构课程学习的QQ群或微信群,学生遇到问题后可以在群里讨论,也可以通过电话、E?鄄mail等与教师单独联系。教师愿意做学生的朋友,学生在学习上、生活上、思想上需要教师帮助时,可及时与教师联系。教师的积极态度能够对学生产生积极的影响,有助于与学生建立良好的师生关系,促进学生学习的自觉性。

二、课程介绍

(一)课程定位

数据结构课程是计算机类专业的核心必修课程,美国ACM/IEEE CC-2005课程体系将数据结构与算法类课程列为核心课程之首。我国教育部计算机教育指导委员会“计算机科学与技术专业规范”2006中明确把数据结构与算法列入计算机及信息技术相关学科专业的本科必修基础课程。

数据结构课程是对前导课程(如C语言程序设计、程序设计基础等)的深入和扩展,能为进一步学习其他专业课程打下基础。课程中的排序算法及基本的树、图等非线性结构是计算机科学的基本功,B+树、散列(Hash)等高级数据结构是后续如操作系统、数据库、编译原理、图形图像等专业课程的基础。

(二)主要内容

数据结构课程描述的是按照一定逻辑关系组织起来的待处理数据元素的表示及相关操作,涉及数据的逻辑结构、数据的存储结构和数据的运算,内容非常丰富。

常见的逻辑关系包括线性结构、树形结构、图结构和文件结构。常见的存储方法有顺序方法、链式方法、索引方法和散列方法。建立在数据结构之上的有效运算是问题求解的核心,如排序、检索等。在介绍课程内容时,应把相应章节的学时分配一并列表展示,并简明扼要地向学生介绍课程的重点难点,借助多媒体课件以动画的形式给学生演示链表、栈、队列以及排序等操作,帮助学生理解,激发学生的学习兴趣。

(三)学习目标

数据结构课程的教学目标是让学生学会分析数据对象的特征,掌握数据组织方法和计算机的表示方法,初步掌握算法时间、空间分析的技巧,培养学生针对问题的应用背景进行分析,选择合适的数据结构,从而培养高级程序设计技能。学生的学习目标明确了,才会不懈努力,朝着目标一直前行。

(四)教材及参考书

教材是供教学用的资料,如课本、讲义等。第一堂课应明确数据结构课程的教材,简要介绍教材的特点、作者信息等,比如我们采用的是严蔚编、清华大学出版社出版的《数据结构》。同时给学生们列出一些必要的参考书籍,这对课程学习能起到补充拓展的作用。

三、学习方法指导

在学生了解数据结构课程的重要性、所用教材及参考资料后,就要告诉学生如何去做才能学好这门课程。数据结构课程要培养学生结合实际应用设计有效算法和数据结构的能力,学习数据结构必须经过大量的践,在实践中体会构造性思维方法,掌握数据组织与程序设计的技术。通过扎实的、大量的基础训练,学生才能灵活地运用问题抽象、数据抽象、算法抽象来分析问题,应用数据结构和算法来设计、实现相应的程序,完成创新能力和实践能力的训练。[3]

(一)课前预习,课后总结,吃透教材

课程内容主要包含数据结构和算法设计与分析的基本知识,各种基本数据结构的定义、存储结构、相应的算法以及应用等。理解掌握基本的数据结构与算法的关系很重要。程序的时间和空间效率,不仅与数据的组织方式有关系,也跟算法设计的巧妙程度有关系。在学习中要把握好预习、听课、实验、复习、总结五个环节,吃透教材,把握住算法的本质。通过预习,可以提高学生的主体意识,培养学生的独立思考能力,进而提高课堂学习效率。课后的总结则能让学生自觉地回顾课堂内容,深入地学习和领会课程的重点和难点,完成课后作业或练习题,从而提高数据结构课程的教学效果。

(二)多读代码,实现算法,理解思路

教育部计算机专业教育指导委员会“中国计算机本科专业发展战略研究报告”、“计算机科学与技术专业规范”等都明确地强调了实践教学和学生动手能力培养的重要性。程序设计解决问题往往有多种方法,且不同方法之间的效率可能相差甚远。在学习过程中要让学生摆脱畏难情绪,不怕有问题,多读、多写、多调试,及时总结。学生只有通过丰富的练习题和应用案例才能增强对理论的感性认识,从而明白这些数据结构为什么存在以及在什么情况下可以最好地解决什么样的问题。

(三)充分利用网络资源进行课外拓展

1.图书馆资源

图书馆拥有丰富的文献资源,是学校的文献信息资源中心,也是学生的第二课堂。学校图书馆有丰富的藏书,通过网上书目查询系统可以检索到与数据结构课程有关的图书,如《数据结构典型题解》、《数据结构上机实验指导》等。图书馆还有各种文献数据库,如超星数字图书馆,可以在线阅读电子图书;有万方、中国知网(CNKI)、维普等数据库,可以查阅期刊、会议等学术论文。在课堂上教师可以演示利用图书馆中的中国知网(CNKI)检索系统检索相关论文,让学生学会检索查找文献资源,这样可以拓展学习资料,避免课程学习仅限教材的情况。多读书,可以让学生扩大视野,打开思路,培养和锻炼学生自主学习的能力。

2.课程资料及论坛

互联网是信息和传播的重要平台。网络资源包罗万象且更新及时,使用方便,不受时间的限制,其中涉及数据结构的教学资料、技术论坛等数不胜数。课程资源主要有国家精品课程资源网、MOOC学院、中国大学MOOC、学堂在线,以及国外MIT等开设的数据结构相关课程。而与数据结构相关的论坛则更多,比较突出的如CSDN论坛的数据结构与算法版块、ITeye综合技术论坛的数据结构版块等。[4][5]在介绍课程资源及论坛的同时,教师可以简单介绍百度或必应搜索引擎的用法,让学生掌握利用搜索引擎查找相关资料的技能。

四、结语

在高校的课堂里,大学生要接触不同门类的学科。教师在引导学生学习过程中能起到关键的作用。第一堂课既是师生之间的初次见面,也是大学生对教师及课程的初步了解与把握。良好的开端是课程成功的基础,上好第一堂课,意义重大。对教师而言,上好第一堂课,会使学生对该门课程产生首因效应,在课程的兴趣、理解、运用等方面产生积极影响,可以使教师对学生加深了解认识,有助于教师对教学安排进行合理配置,为今后的课程教学奠定良好的基础。对学生而言,上好第一堂课可以使学生对课程内容有一个全面的认识,提升学生对课程的认同感,提高学生的学习积极性。

[ 参 考 文 献 ]

[1] 张铭,耿国华,陈卫卫,等.数据结构与算法课程教学实施方案[J].中国大学教学,2011(3):56-60.

[2] 张永翊.上好大学里的第一堂课[J].中国成人教育,2008(20):131-132.

[3] 刘合兵,尚俊平.《数据结构》课程的教学研究与实践[J].内江科技,2008(12):72,49.

第4篇

关键词:数据结构;索引;二叉搜索树;伸展树

1.在数据结构与算法课程中的定位和前测知识点

数据结构涉及逻辑、存储和运算3个维度。数据的存储结构主要有顺序、链接、索引和散列4种方法。数据的运算主要是对单个数据的增、删、查、改,或对整体数据的排序、索引和检索。有效的索引可以加快运算速度,可以说索引是数据结构与算法的重要内容Ⅲ。

二叉搜索树是一种非常有效的内存索引,但可能面临退化为线性结构的情况。改进二叉搜索树比普通二叉树更能提高检索效率,在现实中有广泛的应用。以往的数据结构教材更多地介绍AVL平衡二叉树,目前有不少教材开始介绍更易于实现应用的、更广泛的红黑树。

图灵奖获得者Tarjan和他的学生在1985年发明的伸展树(Splay Tree),作为一种自组织的数据结构,其操作简便,易于编写,统计性能高效,有良好的运用前景。

伸展树是用于索引的一种特殊二叉搜索树,只是改进BST性能的一组规则,而不是一种全新的数据结构。在伸展树中,数据随检索而采用这些操作规则来调整位置,目标是把刚检索的结点调整到根。

伸展树是一种自组织的数据结构,即它能随着检索等操作而发生结构的变化。伸展树中基本操作的均摊代价是O(logn)。

前测知识点要求如下,可以根据需要给学生补充:

(1)二叉搜索树BST的性质:中序遍历下结点关键码有序,左旋、右旋基本操作;

(2)二叉搜索树BST的插入、删除、查找算法;

(3)AVL树、红黑树的简单定义。

2.学习目标

(1)掌握伸展树的概念;

(2)伸展树的索引作用;

(3)伸展树的实现和简单应用;

(4)伸展树的均摊时间效率。

3.知识点和学时分配

理论授课0.5学时。

主讲教师可以根据学生的状况、教师的科研背景等对某些方面进行扩展并引导学生,以适当扩大学生的涉猎面。

4.重点和难点

(1)伸展树的旋转。伸展树旋转分为单旋转(zig右旋、zag左旋)、一字形双旋(zig-zig、zag-zag)和之字形双旋转(zig-zag、zag-zig)。

(2)伸展树的实现。伸展树的实现很简单,最基础的是Splay(x,f)函数,即将一个结点x旋转到其某个祖先f的下面。就是从x结点向上看两个结点(父亲、祖父),如果没有祖父则单旋转,如果有祖父则根据x与父亲、祖父的方向,来判断是一字形还是之字形双旋转。

(3)伸展树的应用。一个简单的应用是求x的前驱y,可以先把x旋转到根,然后顺着根的左子孩子的右链,一直向右走到头,最后那个结点就是所求的y。伸展树可以作为各种线性序列的索引组织方法。

5.授课提示

开展研究型教学,挖掘知识背后的内容,通过提出问题、探讨方法、研究思想和比较性能,培养学生的创新意识和创新能力。

伸展树在搜索过程中自动调整结构,但是不能保证树的高度。伸展树旋转的目的是使访问最频繁的结点靠近树结构的根,从而减少访问代价。教师可结合动画进行讲解,并介绍一些实例体现伸展树的特点和用途。

6.练习与扩展

融合经典的理论教学内容与学科的前沿新技术和发展方向,设计验证型、探索型、综合应用型的习题和上机题,帮助学生更好地掌握排序算法的基本原理,训练学生的创新思维能力训练、工程实践能力。

本讲可以安排2道算法类作业题和1道小型综合设计型实习题。

算法类作业有:

(1)通过二叉搜索树的找最大最小操作实现双端队列(http:///problem?id=3481);

(2)用伸展树实现add,insert,delete,min等操作(http:///problem?id=3580)。

利用伸展树存储文件中单词词频可以作为一个小型综合设计题布置给学生。

图1显示了一个短文件的结点树。扫描一个文本文件,并计算出这一文件中每个词的词频。为简化起见,略去标点符号,按照字典排列的顺序对单词排序,并忽略大小写,如man’s将被当成man和s。类似地,分隔符也被忽略,如pre-existence被当做pre和existence。用一棵BST作为一个文件中单词的存储结构,并用伸展技术对这棵树进行辅助维护,以使输入流中的下一个单词出现在树中接近于根的位置的几率较大。

对于半伸展树、动态伸展树等变种,我们给出如下扩展阅读建议:

(1)Daniel Sleator和Robert Tarian的文章《Self-Adjusting Binary Search Trees》,ACM,1985,32(3):652-686。

(2)Daniel Sleator和Robe~Tarjan的文章《A Data Structure for Dynamic Trees》,Computre and System Science,1983,26(3):362-391。

(3)Wiki的伸展树词条(http://en,wikipedia,org/wiki/Splay tree)。

第5篇

【关键词】数据结构,教学方法

【摘要】由于数据结构是计算机专业的骨干核心课程,因此,对于该课程的教学不仅要从理论上进行探讨,还要从内容、方法上进行研究。根据自己的教学经验和体会,本文从教学的各个环节阐述了探究数据结构课程教学的策略,并在教学中进行了实施。教学效果较原来有了很大的提高。随着计算机科学技术的发展和培养人才的需要,数据结构课程在高职中的教学模式、教学内容和教学方法必将不断发展完善。

数据结构是计算机及相关专业中一门重要的专业基础课程,其研究思想和研究方法将为学生今后从事理论研究、应用开发、技术管理工作提供坚实的理论基础。针对该课程在教学过程中存在的问题,提出了改进的方法。

一、数据结构课程教学中存在的主要问题

1.程序设计语言能力的不足。数据结构是一门研究现实世界中数据与数据之间关系的学科,而表达这些关系时必须借助于计算机所能理解的语言程序设计语言来表达,所以学习数据结构之前,必须熟悉一门或多门程序设计语言,如c、c++、JAVA等。以c语言为例,c语言是高职学生入学来的第一门专业课,学生对大学的教学模式还处于一个适应的阶段,所以入门相当困难,教学难度比较大。老师费尽口舌,学生仍然模糊不清,学的较差,从而使得学生在数据结构课程上的学习不能得心应手。2.教学模式存在问题。对数据结构的教学,教师一般以理论教学为重,将授课重点放在数据的基本结构上,所选的实例大多用于数据结构算法的验证和说明。这种教学模式就事论事,仅从基本结构这个单一的角度进行教学,使得大多数学生在学习过程中,一旦遇到了难以解决的问题,就会产生畏难情绪,学习兴趣下降。另外,数据结构中有些算法的演示利用传统的粉笔加黑板的教学方式,缺乏直观效果,难以充分展示算法的动态变化过程,学生难以想象数据之间的复杂关系。近年来,虽然数据结构的教学已经大部分采用多媒体教学,但是大都只是采用简单的PPT,仍然不能很好地解决这样的问题,严重影响了教学效果。3.理论教学与实际应用脱节。数据结构课程内容抽象、琐碎、庞杂,涉及很多概念和技术。所有这些内容均自成体系,相互之间的衔接线索很少,总体感觉内容零散,没有整体的知识框架体系。这些内容在实际应用中又都很重要,而现行的教学计划实践课时普遍不足,实验课安排的实验项目很难涵盖课程的所有知识点。同时实验内容的设置,往往都是大量的验证性实验,缺乏对实际问题的解决,学生在实验之后仍然不知道学习数据结构在解决实际问题的时候能对编程有什么指导意义。4.学生学习难度较大。由于本课程内容涉及的技术和方法较多,显得抽象、枯燥,再加上学生的程序设计基础不是很扎实,就感到算法的理解特别困难,前面的基础理论一知半解,随之而来的理论与应用不断结合,理解这些知识就愈来愈困难,更谈不上学习之后的灵活运用了。并且高职学生的基础相对较差,水平参差不齐,有的为对口生,有的为理科生,甚至还有文科生。在目前的教学中没有体现个性教学,也不能真正按照每个学习者实际情况进行教学。

二、教学方法的改进

1.调动学生学习兴趣,上好第一堂课。兴趣是最好的老师。因此,在刚接触本课程时,不要急于介绍理论,而是强调应用,通过介绍数据结构在一些典型软件中的应用或者贴近实际生活中的例子来激发学生的学习兴趣。如可引入如下问题:学校学生基本信息管理中的表,各表项之间是什么关系?教学计划编排问题中,如何表示课程之间的先修关系?假如你想去大理、昆明、丽江旅游,如何安排路线时间最省?通过这些学生非常熟悉的案例引入数据结构的概念,生动直接,让学生轻松地理解数据结构的概念及其应用,能够提高学生的学习兴趣。使教学有了一个良好的开端。其实上述例子就已经囊括了本门课中涉及的几大类的数据结构线性表、树和图,这样教师就可以水到渠成的归结出数据结构的概念以及本课程涉及的几种数据结构的类型,为后续章节的讲解打下了良好的基础。2.问题驱动法教学,培养学生创造性思维。对于数据结构教学过程中的许多抽象的概念、算法和思想,以教师为中心的教学模式起不到很好的效果。那么授课教师在教学过程中采用什么教学方法,对学生学习兴趣的培养至关重要。在教学过程中,自始至终都围绕问题而展开教学活动,引导学生不断发现问题、提出问题、分析问题并最终解决问题,这样能激发学生的学习兴趣,充分调动学生的求知欲,同时也培养了学生的创造性思维。例如,在讲述每种线性结构和非线性结构之前,我们应该提出一个应用的实例。通过实例进行课前导学,让学生明白为什么要学习它,它有什么用处。譬如,在讲述队列结构前通过火车的进站出站这个形象例子引出队列理论;在讲述树形结构前,可以引出在网站和信息系统中经常见到的树形目录结构的实例,给出应该怎样实现和操作树形的目录,通过实例逐步引出理论。通过充分的实例让学生真正理解这些常用结构的实用之处,让学生在分析解决具体问题的时候能够很自然地想到去用自己所学的数据结构。3.用多媒体教学技术,使教学过程形象化。在课堂教学中选用多媒体教学技术,引入计算机综合处理声、文、图信息功能,集讲课、习题、演示算法为一体。将算法与数据处理过程同步演示,增加交互功能,使教学过程更形象化。可以先给学生讲解算法,然后给出数据来执行算法,学生一边对照着语句一边执行观察数据的变化,或用动画演示执行过程。如在讲解二叉树的三种遍历方法,可以做一个flash动画演示几种遍历的过程。这种方式生动、直观、易懂,能提高学生的学习兴趣。4.注重理论联系实际,加强实践环节。为使学生真正学好数据结构,除了在课堂上要采用行之有效的教学方法外,还要让学生勤动手,多实践。只有通过实践才能发现教与学中存在的问题。实践的首要环节首先是要多做习题。要学好数据结构,只看不练肯定是不行的,学生不仅要做,而且要求交作业,教师则要进行全面检查与批改,对出现的问题要及时进行总结、归纳、讲评。其次要多上机实验。上机实验不仅能进一步巩固对有关内容的理解,同时还能提高学生灵活运用数据结构和算法的能力,使学生在编程、上机操作、程序调试与正确性验证等基本技能方面受到严格的训练。在安排实验内容、布置实验任务时,可以遵循由易到难、由简单到复杂的原则,在课程大纲的指导下,在整个教学过程中,实验过程要结合教学进度与学生的实际情况.制定实验的内容。上机结束后要求学生完成实习报告,写出自己调试过程中遇到的问题是如何解决的,以及对设计与实现的回顾讨论和分析,即测试结果与经验体会,并附上源程序代码,从而写出完整的实习报告。批改学生实习报告后,对学生的上机实习情况做及时总结,指出他们成功之处与不足之处。

【参考文献】[1]严尉敏,吴伟民%数据结构&[M].北京:清华大学出版社,1997.

第6篇

关键词:数据结构;实验;编程;教学

中图分类号:TP3-4 文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

Teaching Research on Data Structure Experiment

Zhang Xiujian

(Guangzhou University Sontan Collehe,Guangzhou 511370,China)

Abstract:Data structure is a course that emphasizes that exercise of logical thinking and programming ideas.In this paper,we argue that the appropriate experimental program and integration of software engineering can improve student’s innovative ability.

Keyword:Data Structure;Experiment;Programming;Teaching

《数据结构》,是一门重要的理论学科。通过调研看出,该科目在各个院校的实验教学情况存在较大差异。学生学习理解过程缓慢,教师教学也不能得心应手,尤其是实验课,由于部分学生对编程语言掌握不熟练,实验内容抽象,而有较大畏难情绪,甚至不参加实验课。虽然曾经有些教师参考了任务驱动、实例教学等方法,但过于强调某种教法,也会影响教学效果。所以,该课程宜结合课程特点设计教学,切实通过贴近于实际的方法传道授业,结合实验落实教学效果是非常重要的。

一、数据结构课程实验教学中问题所在

(一)实验课时欠缺。有的学校压缩实验时间,让位于理论教学,这对学习效果的落实来说是本末倒置。没有足够的实验课时,学生就无法把理论知识加以系统地整理,进而在实验中消化吸收。

(二)综合性、创新性实验科目欠缺,系统性不强。开设的数据结构的实验课程中,虽然安排了相关知识点的实例,但是对设计的创新性和综合性上有待提高,要加强知识点的综合运作。

(三)没有很好地结合课堂教学和实验教学。作为一门比较抽象的理论教学课,尤其要重视课堂和实验教学相结合。实验中要突出该课程的实践性,教学中要注重理论和实践的结合。现在,不少教师只重视知识的灌输,在实验中任务不明确,要求不明晰,让学生在实验中迷失了对理论的进一步实践的方向。

二、实验教学的改革探索

(一)教学模式的改变。基于数据结构课程理论难于理解的特点,要突出实验课的效果,要注重“课堂.一章的基础性实验.综合实验”相结合的框架。注意从逻辑机构到存储结构,再到实现基本算法,继而具体应用的方法,一以贯之地落实到数据结构教学中去。算法的讲授要先分析算法,再运用编程语言演练算法,最后进一步分析算法。如能采用多媒体演示算法的步骤,会使学生更加清晰地理解。课堂教学始终要把应用的要求作为做种目标,辅以实验训练,加强学生动手编程和自我创新的能力。

(二)基础实验环节要重视。实验环节要让学生进一步理解数据结构的特点,明确相关概念,熟练各种基本算法的实现。枯燥的理论讲述的再多,也不如配合实验让学生一练,所以教学要重视基础实验环节。要想获得扎实的教学效果,教师要提供实验编程语言,Turbo C、Visual C++、Delphi等都可以。根据教材确定实验方案,明确实验目的、内容、要点和必备注意事项,最后安排几个演练题目,比如矩阵的遍历、数据的折半查找等。实验课程要贴近学生的编程水平,不可偏离太过。实验中,学生有章可循,对要点有较强的针对性,实验效率就会大大提高,使学生真正能举一反三。

(三)课程实验要理论应用相结合。实验要注意结合原理和应用,让学生在解决实际问题时学会调用学过的知识点,养成动手练习语言编程的习惯,所以,这个层面的综合实验要求要高于普通的课下练习和基础实验,更贴近于应用。平时虽然侧重练习简单的算法程序,但综合实验课是软件设计的高级训练阶段,融合了问题的分析,系统结构设计、操作界面设计、编程技能技巧,是软件设计的系统工程。教师分阶段拟定数据机构在实践中的各种应用,比如:汉诺塔问题、约涩夫环问题、Huffman Coding方式、班级信息管理系统等,把任务分配给学生,让学生组织课题公关。课题的结题要提供课题表述、基本要求、实验数据、实现结果和关键实现步骤等内容,这能协助学生破题解题,以免形成错误的认识,同时也讲解了程序设计的基本路线,确保实验目标的实现。最后每个课题组都集中展示实验过程接结果。试试证明,这样的实验环节,综合了数据结构知识、编程语言技能和软件工程思想,让学生系统地理解各门课程的联系,融合相关专业课的精髓,锻炼了学生的团队合作互助精神,提高了组织能力和管理水平

三、重点组织好教学实验的各个环节

(一)实验题目的设计。鉴于实验环节教学时间的限制,学生的编程基础和技能较为薄弱,所以,设计和拟定合适的实验题目尤为重要。实践题目应该由易到难循序渐进:

1.常用算法练习。主要讲解各章节知识点,深入贯彻算法理论的理解;2.基础性应用练习。主要让学生针对单一的数据结构解决应用难题,其难度中等;3.综合应用题目练习。要涵盖多个章节的内容,系统性强,难度较高,可以组织学生成立课题组,在课外实验环节共同研讨解决,再集中展示。课题的设计要注意:(1)常用算法的练习要有一定代表性,重点练习各个章节的知识点,难度较小,目的在于理论知识的掌握。课堂教学要和实验环节对应,学生在试验中重点演练课上讲授的内容。(2)基础性应用练习难度要适中,既要带动基础薄弱的学生,又要注意发挥基础好的学生的能动性,可以加以延伸,或是鼓励提供多种解决方法,进行不同思路的性能的比较,让各个层面的学生都能参与实验。(3)综合应用练习题不宜太难,但要引起学生的兴趣,宜于结合实际中的事物或应用系统,让学生宜于接受和理解,这样才能促进学生的积极性。

(二)实验环境的搭建。现在很多学校选取谭浩强教授出版的《数据结构(c语言版)》作为教材,应用C语言进行数据结构的设计语言,用TC搭建实验环境。而在实际教学中,应用C语言讲解数据结构常常对算法设计和实现上较为突出,对数据结构的系统性容易忽视。如果用C++进行数据结构的实验练习,可以注重其整体性和系统性,先定义数据结构的类,再分析其逻辑特性,然后把存储结构延伸到算法的实现中去,能帮助学生构建数据机构的概念。

(三)实验过程的组织与实施。实验中可以采取学生分组、一人负责的机制进行实验。提倡互动探讨和交流,既能让学生接触更多的实验题目,也能提高学生的团队合作精神。

(四)实验结果的检验和考核。对实验结果,教师要辅以必备的检查来进行督导。对于实验报告的书面汇报,要设计题目、要求、步骤、结构、程序代码和改进方法,以及最后的体会等。教师通过实验报告书可以详细了解学生的实验情况,进而发现共性的问题集中解决。

(五)实验问题的总结与弥补。通过实验,教师对于学生学习中存在的问题要进行系统总结和分析加以更正,有些不良的编程习惯,教师要着重强调。

四、结束语

《数据结构》的实验课注重学生动手能力的培养,强调创新思维的养成,通过实验,结合应用案例,能够进一步提高该课程的教学质量,加深学生对知识点的理解,具有积极的现实意义。

参考文献:

第7篇

摘要:“数据结构”是计算机专业课程体系中的一门较重要的必修课程,但因其理论性强、思维抽象、理解难度较大等特点,实际教学效果往往不够理想,因此,本文对“数据结构”课程教学过程中存在的问题进行了分析,并就如何提高“数据结构”课程的教学效果,提出在教学改革方面的一些设计。

关键词:高等职业教育;数据结构;教学方法

中图分类号:G642

文献标识码:B

1引言

“数据结构”是计算机专业一门重要的必修课,是高职专升本、本科考研的必考课程之一,在整个课程体系中处于承上启下的核心地位。一方面扩展和深化在“离散数学”、“程序设计语言”(目前以C、C++语言居多)等课程学到的基本技术和方法,另一方面为进一步学习“操作系统”、“数据库原理”、“软件工程”、“编译原理”等专业课奠定坚实的理论基础,可以说,对“数据结构”课程的掌握程度直接影响到学生对计算机专业知识的学习。因此,我们有必要探讨“数据结构”课程教学中存在的问题,并且结合高职学生的实际情况,总结设计出一套有效的教学方法。

2 “数据结构”课程教学中存在的问题

学生在学习“数据结构”这门课程时,普遍对课本内容理解困难,对算法设计题感到无从下手,上机调试程序时更不知如何操作。对此情况我们进行了认真分析,得出如下结论:

(1) 学生对本门课程的误解,造成学习积极性不高。“数据结构”课程是专业基础课,但是它既不像网页设计那样生动有趣,又不像Visual Foxpro等课程直接可以应用于将来的工作中。在学习过程中,学生感到“数据结构”不过是一些理论和程序的堆砌,常常问老师:“‘数据结构’学完后有什么用?”,由于学生不能正确认识该课程的作用,故学习的积极性不高。

(2)“C语言”(或其它程序设计语言)课程开设不足,为“数据结构”课程教学埋下隐患。“C语言”(或其它程序设计语言)为“数据结构”的前导课程之一,学生对它的熟悉及掌握程度直接关系到“数据结构”课程的教学效果。

特别是对“数据结构”中使用频率最高的C语言中的结构体、指针的认识和理解不深,对函数参数、函数调用的知识点不熟练。这些内容在“数据结构”的教学过程中,尽管老师费劲唇舌,学生仍然模糊不清,致使教学效果不理想,部分学生还产生畏难和厌学情绪,甚至丧失对该课程学习的兴趣和信心。

(3) 课程自身问题,导致教学效果不佳。“数据结构”的逻辑性强、内容抽象、琐碎、概念多,所有内容均自成体系,相互之间的衔接线索很少,总体感觉内容零散,没有一个整体的知识框架体系,特别是部分知识点和算法难于理解,大部分学生常常觉得教科书中的内容与具体的算法相距甚远,无从下手,甚至在课程学习结束以后,都不知道自己到底学了些什么。

(4) 实践教学课时少,导致学生动手能力差。“数据结构”是一门理论与实践并重的课程,现在的上机课时仅为20课时,实践教学严重不足。还有些教师往往只注重理论教学,把实践教学的课时全部变为了理论教学,这样学生学起来更是枯燥乏味,对程序与算法之间的转换就更难以实现。

3教学改革设计的实施

通过对上述存在的问题总结分析后,我们从以下几个方面对“数据结构”课程进行了改革设计。

(1) 运用联系的观点阐述课程作用,激发学生学习的兴趣。“数据结构”课程是计算机体系中不可或缺的一个重要环节。在教学中我们采用联系的观点,把“数据结构”课程纳入整个计算机体系教学,学生就能认识到课程的重要性,从而激发学习兴趣。例如我们讲到链表时,可以有意把内容延伸到操作系统中计算机内存分配;讲树型结构时,可以与文件夹结构联系在一起;讲图结构的最小生成树,可以联系局域网的设计;讲查找技术,可以涉及网络的搜索引擎等等。这样不仅讲课活泼生动,而且还能引起学生联想,刺激学生学习的兴趣,收到良好的教学效果。

(2) 解决C语言的不足。“数据结构”课程教学过程中主要运用的是C语言的指针、函数、数组作为函数参数以及结构体类型来分析和解决问题。对于大部分学生来说,C语言运用能力不是很强,如果在上课时直接切入主题,就会使学生有云山雾罩的感觉。要解决这个问题,应该在教学中注意做到以下两点:一是与“C语言”的授课教师做好教学的沟通工作,统筹安排各部分的授课时间,保证指针、函数、及结构体等内容有足够的时间,并将其作为重点讲授并加强上机实践,让学生掌握C语言的精华。二是在学习“数据结构”课程初期,指导学生有针对性地复习指针、函数、及结构体等知识点,并强调它们在数据结构课程中的重要性。例如在课堂上以一个实例的形式对这些知识点进行复习,尤其指出学生难理解、易混淆和犯错误的地方,另外布置大量涉及这些知识点的作业,通过批改作业发现存在的问题然后反复进行讲解。

(3) 注意课堂语言的艺术性、趣味性,以激发学生的求知欲。“数据结构”是一门理论性很强的课程,其概念特别抽象。高职学生的理论基础普遍较弱,所以如果像本科教学一样,单纯地用课堂语言教学,高职学生理解起来有一定难度,而且会感到枯燥,因此,教师在授课时要讲究语言的艺术性,结合学生的实际,使用更加通俗、形象、生动、直观的教学语言进行讲授。例如堆栈的结构和运算可以和生活中的洗碗结合起来;队列可以和学生去食堂排队买饭结合起来;无向图可以和城市的公路交通网(若无单行道)结合起来,有向图可以和来水主管网结合起来。通过这样的比喻说明,学生不仅听起来有兴趣,易于理解,而且效果也比只单纯地“照本宣科”讲定义要强的多,能够达到事半功倍的效果。

(4) 抓好实践环节,提高算法设计能力。“数据结构”是实践很强的一门课程,不仅要学习理论知识,更要注重上机实践。通过上机实践来验证理论内容并加深对各种算法的透彻理解,结合高职学生学习能力不足的实际情况,我们从以下三个方面加强和改进了实践教学:一是学期初两周内给出适当的上机实验题目复习C程序语言中的指针、结构体和函数等知识点,并根据上机实验的情况对数据结构中常用及易出错的地方进行集体重点讲解,为后面算法的上机实验打好编程语言基础。二是为打消学生实现类C语言算法描述和C语言源程序的转换的畏难情绪,前两次上机实验时,教师可以先给出完整的源程序,让学生在主函数中添加语句来体验数据结构的基本操作的执行,再逐步过渡到自己编写完整的源程序。三是精心设计上机习题同时注意进行分层次的个性化教学。从不同学生的实际水平、基础出发,来设计不同难度的实验题目,给出不同的实验条件和要求,尽量让所有学生通过自己的努力获得实验的成功并掌握基本知识,从而最大程度地提高学生实验的积极性。例如,对堆栈可以设计建栈、出栈、入栈和后缀表达式求值实验;关于树可以设计二叉树的建立和遍历及给定一棵二叉树,打印指定结点的双亲和所有的孩子结点实验。基本操作实验学生可以根据自己的实际情况来选择完成。另外对于难度小的实验要求每个学生独立完成,而对实验难度稍大的允许以2到3人以小组形式完成或给出部分代码或提示。

(5) 对教学内容进行优化和归纳提炼。由于高职学生自学能力薄弱,再加上“数据结构”课程内容繁多、零散,不具备一个整体性,因此在教学中要求做到如下两点:一是教师要分析清楚数据结构的知识体系结构,在授课时始终贯穿“一中心、四结构、两存储”的原则。“一中心”是算法设计建立于逻辑结构,算法实现依赖与逻辑结构。“四结构”是指集合结构、线性结构、树型结构、图形结构。“两存储”是指顺序存储、链接存储。二是把握重点。在贯穿“一中心、四结构、两存储”的原则讲授内容时,要把握好重点,有选择有层次地教学。例如,线性表是最常用且最简单的一种数据结构,栈和队列是操作受限的线性表,树和图往往要做线性化处理,因此要把线性表作为重中之重的内容进行透彻的剖析。对于线性表的两种存储结构顺序表和单链表,把单链表作为重点和难点来讲授和上机实验。再如,二叉树的遍历操作为重点来讲授和上机实验,而哈夫曼算法作为可选的上机实验内容。

4结束语

由于“数据结构”是计算机专业的核心课程,以理论为主,而高职教学是以实践教学为主的教学。因此,如何将这门理论性很强的课程同高职的实践性教学相结合,值得我们进一步研究。在高职课程改革进行的如火如荼的今天,可以相信,只要我们从思想上重视“数据结构”课程改革与设计,不断提高自身的教学能力,采用合理的教学方法,“数据结构”课程的教学必将取得良好的效果。

参考文献:

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

[2] 顾翔. 数据结构实践教学探讨[J]. 信息技术,2005,(30):110-112.

第8篇

关键词:数据结构;算法;教学方法;教学实践;创新

中图分类号:G642 文献标识码:A 文章编号:1002-7661(2012)12-008-03

《数据结构》是一门重要的综合性专业基础课程,数据结构是对计算机内存中的数据的安排,它涉及现实世界数据在计算机中的存储、表示、组织和处理,以及算法对这些数据结构进行各种处理的初步性能分析技术。

数据结构研究思想和研究方法在计算机科学深度研究领域有着广泛应用,它是计算机专业人员从事理论研究、应用开发、技术管理工作而必需学习的重要理论基础。通过各种基本数据结构及相应算法学习,使学生掌握把现实世界的客观问题转换为计算机内在表现形式,理解数据结构内在的逻辑关系,数据与关系在计算机中存储表示,以及在这些数据结构上的运算和算法执行。该课程具有相当的抽象性和动态性,如何学好《数据结构》这门课,让学生理解教材的理论结构体系需不断积累教学的经验,总结科学教学方法,以达到良好的教学效果。

《数据结构》的学习也是程序设计的学习过

程,通过对学生数据抽象能力的培养,使学生掌握软件工程的规范,能够编写正确易读,结构清楚的程序,具备一定的程序设计能力。本文将从教学方法,教学手段,启发式案例式教学研究,理论教学和实践教学的整合几个方面进行讨论。

一、明确数据结构课程的知识体系与教学目标

数据结构的研究涉及到计算机软、硬件方面,对于编译程序和操作系统都涉及到数据元素在存储中的分配问题,硬件的研究的方面涉及到编码理论、存储装置和存取方法,它是介于软硬件和数学三者之间的核心课程,是设计实现编译程序、操作系统和数据库系统等系统程序和大型应用程序的基础。数据结构作为主要研究数据的各种逻辑结构和存储结构以及对致据的各种操作的学科,对数据结构的教学应灵活运用与把握数据结构间纵向联系和纵横联系之中。从根本上掌握数据结构理论体系,这是数据结构教学工作做好的必备条件。数据结构课程的教学目标,是使学生学会分析计算机所加工数据的数据结构特性,为程序设计涉及的数据选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时间效率分析和空间效率分析的技术。

1、数据结构课程的基本知识体系

一批具有某种逻辑关系的相关数据,按一定的存储方法被存储组织于计算机中,并在这些数据上定义了一个运算的集合,即是数据结构,它包括三个方面:逻辑结构、存储结构和数据的操作运算。数据结构的研究首先应对这三方面有一个清晰的探讨,针对每种数据结构均从逻辑结构、存储结构和操作运算等方面进行研究,是贯穿数据结构研究始终的主线。课程的基本知识模块是以数据的逻辑结构为主线,介绍线性结构、树形结构、图结构和文件结构,在介绍每种数据结构时,再讨论其存储方法以及相关的算法,存储方法有:顺序方法、链接方法、索引方法、散列方法。

数据结构课程的基本知识模块是以数据的逻辑结构为主线,顺序介绍线性结构、树形结构、图结构和文件结构。在介绍每种数据结构时,再讨论其存储结构以及相关的算法。基本模块教学,从以下几方面探讨:

(1)逻辑结构、存储结构、操作运算是数据结构间的横向联系。逻辑结构的定义、存储结构的实现、操作运算的实现是对数据结构研究的基本思想,研究数据结构首先应对这三方面进行详细清晰的探讨。

(2)数据结构间的纵向联系。以简单数据结构为基础实现对较复杂数据结构的研究,教学中让学生知道遍历操作对树、图结构是非常重要的运算。虽然从树、图的递归定义能设计出树、图遍历的递归算法,但从线性结构到树、图的发展是数据结构从简单到复杂的逐步发展过程。对于较复杂的数据结构树、图的遍历可用较简单的线性结构栈和队列来实现,这体现了数据结构间的纵向联系。

(3)数据结构间纵横联系。运用把握这种纵横联系,对从抽象数据类型(ADT)的角度进行数据结构的学习与研究有着重要的意义。ADT的操作就是实现对象的封装,把ADT和面向对象技术和抽象数据类型结合起来,更容易理解一些。和面向对象结合起来讲, ADT继续发展就是Object, ADT的操作就是对象的方法, STL(C++ Standard Template Library)是ADT的经典实现,介绍STL的实现让学生知道ADT究竟是如何作使用实现的。

2、课程教学目标

通过学习数据结构的概念、各种数据结构与算法的实现方式,不同数据结构和算法的特点比较。使学生能够提高用计算机解决实际问题的能力。

基本数据结构和基本算法分析技术部分,对常用基本数据结构的ADT 及其应用介绍,包括线性结构(线性表、串、栈和队列)、二叉树、树、图等;针对遍历二叉树这一教学内容,首先从遍历的概念讲起,引导学生掌握概念并理解遍历的本质就是非线性结构的线性化。

同时基于各种数据结构所实施的运算讨论算法分析的基本技术,掌握时间和空间权衡的原则。排序、检索和索引技术部分主要讨论插入排序、Shell 排序、堆排序、快速排序、归并排序、基数排序等常用的各种排序算法及其时间和空间开销,并介绍文件管理(数据在外存中的组织形式)和外排序技术,以及自组织线性表、散列表、倒排文件、B/B+树等常见的检索和索引技术,及其各自相应的时间和空间开销。

本课程的学习将使学生基本掌握数据结构和算法的设计分析技术,提高程序设计的能力;根据所求解问题的性质,选择合理的数据结构并对时间空间复杂性进行必要的控制。

二、创新课堂教学方法,培养学生学习兴趣

1、基于任务问题教学,实施启发式教学

主要数据结构包括栈、队列、列表、字符串、表、树、图、排序、查找等; 在数据结构的讨论中渗透典型的算法策略: 分治法、回溯法、贪心法、递归技术等; 使用典型的分析方法: 渐进分析法、缓冲分析技术等进行算法分析。数据结构课堂教学应以问题求解为导向,培养和提高学生理论、抽象、设计的能力。例如XMLDOM 树解析器、后缀树、搜索引擎等。激发学生的学习兴趣,培养学生的创新思维能力。

通过新的教学方法训练学生的数据结构思维,使其认识到数据结构的内在有趣,问题驱动的教学方法体现如下:掌握结构化问题解决技术和数据抽象原则;从架构师和设计师两个角度解决具体与抽象之间的难度;教授精巧数据结构给程序所带来的巨大改善;概括性地评价一个数据结构和程序的成本方法;数据结构来解决实际问具体应用。例如,搜索引擎问题询问,通过程序设计来实现搜索引擎会用到哪些数据结构,使用何种数据结构更有效。我们先尝试不用任何数据结构,发现无法构建搜索引擎;在用了简单的数组结构后可以构建搜索引擎,但效率很低;因此我们需要一步步引入构建更为精巧的矢量结构、树结构、索引表、哈希表结构等。再如教材管理问题,首先要考虑教材的各种信息,一般的方法是建立一个表,如表1所示,实际上,它就是1种称为线性表的数据结构。借助一个问题,围绕搜索引擎程序设计的实现,串起一系列的数据结构,学生看到了各种数据结构不是抽象的空的,而是因实际问题驱动、经过逻辑上的逐次演进推理而出现,从而帮助学生更加有趣地学习数据结构。逻辑上的数据结构反映数据成分之间的逻辑关系,物理上的数据结构反映数据成分在计算机内的存储安排。数据结构是数据存在的形式,以问题为驱动,以应用为轴线,对每一种数据结构的出现动机、发展逻辑、表示方式进行演绎,阐述如何从一种想法转换为一种设计,又如何从设计转化为具体程序,对每种数据结构都辅以程序设计中的实际应用,从而化抽象为具体,帮助学生利用数据结构思维解决实际问题。

2、结合实际问题,加强课堂互动

数据结构是反映数据的内部构成,即由哪些数据成分构成,构成方式,呈什么结构,也就是指相互之间存在一种或多种特定关系的数据元素的集合,数据结构是数据存在的形式。数据结构有逻辑上的数据结构和物理上的数据结构之分。目前国内较好的教材有清华大学出版社的严尉敏著《数据结构- C 语言描述》及其配套的《数据结构题集- C 语言描述》,殷人昆编著清华大学出版社出版的《数据结构( 用面向对象方法的C++ 描述)》等,Preiss 著《数据结构与算法- 面向对象的C+ + 设计模式》以及电子工业出版社的Clifford A. Shaffer著《数据结构与算法分析》都是很好的教学参考书。

课堂教学是教学有效的关键,课堂教学

中结合许多实际的讲解,如栈和车库停车、队列和火车站等地方的顺序服务; 树和人类的族谱、各种社会组织机构; 图和哥德斯堡七桥问题、四色定理等。结合现实问题,可以一定程度地提升教学效果。同时要充分进行课堂互动。讲解一个知识点时,而是要加强启发式引导,让学生接话,之后再重复强调如何理解。这样既能促进学生的思考,又能使学生加深理解课堂授课内容。

三、选择合适经典算法,科学讲授基本原理

1、选取经典算法算例

表1

计算机科学家N.沃斯提出“程序=数据结构+算法”,说明算法是对合理数据结构的操作(运算),是数据处理的核心。《数据结构》课程中介绍的基本数据结构有线性表、堆栈、队列、数组、树、二叉树、图以及相应的算法。一个算法是建立在某种数据结构的基础上,一个算法不可能脱离数据结构而孤立存在。只有通过学习算法,才能真正掌握某种数据结构。学习《数据结构》的过程基本上是学习各种算法的过程,典型算法见表1。

在众多的算法中如何选择少量的典型算法进行分析讲解,往往能起到以点带面的关键作用。通过典型算法的分析,一方面让学生加深对数据结构基本理论的理解,另一方面让学生学习程序设计方法。例如在讲授线性表顺序存储教学内容时,可利用典型算法说明其存储特征,线性表的优点能对每个数据元素随机访问,其存储密度高,其缺点是插人、删除操作时需要移动大量的数据元素,操作效率低。可利用“向有序(由小到大或由大到小)的线性表(顺序存储)插人一个新的数据元素”,这一典型算法反映线性表顺序存储的特点。

算例:将一个值为X的数据元素插人到有序(由小到大或由大到小)的线性表(顺序存储)中,可以分两步进行,首先查找到值为X的数据元素在线性表中应有的位置,采用从头到尾循环比较的方法确定其位置I,然后,将第I个以后的全部数据元素向后移动一个存储单元,最后将值为X的数据元素存放到第I个位置上,线性表元素个数增1。线性表的元素插人(对数据的操作或算法)在线性表中进行元素插人,其示意图见图1所示:

图1

L= (a1,…a i-1,a i , ai+1,…,an) 中的第i(1≤i≤n)个位置上插入一个新数据元素e,使其成为线性表 : L=( a1,…a i-1, e, a i , ai+1,…,an),除非i=n+1,否则必须将第i个到第n个数据元素均向后移动1个位置,然后将e存人第I个位置。

算法1

PROCEDURE INSERT(V,m,n,X)

//将值为X的数据元素插人到V数组中,(线性表顺序存贮在V中)m为最多元素个数,n为当前实际元素个数

IF (m = n)

T HEN( "OVERFLOW";RETURN}

FOR I =1TO n DO

IF ( X (V (D) THEN BREAK

FOR J=nTO I BY-1 DO V(J+1)=V(J)

V(I)=X

n= n + 1

RETURN

该算法的优点是简单,便于理解,缺点是循环体内有提前退出语句,不利于结构化程序设计;确定新数据元素位置和移动数据元素分两步进行,有重复操作,那么可将两步合并一步以改进,即将循环比较与移动数据元素同时进行。从线性表的尾部开始向前循环比较,比新数据元素大者后移,直到小于等于时停止。

[算法2]

PROCEDURE INSERT(V,m,n,X)

IF(m= n) THEN( "OVERFLOW";RETURN}

I= n

WHILE(I)=1)AND(V(I))X)DO (V(I+1)=V(I);I=I-1}

V (I+1)=X

n= n + l

RETURN

算法2中循环条件,当循环结束后I=0或V(I)(=X,新数据元素的位置为I+l,C算法1的时间复杂度为0(2n),而算法2的时间复杂度为0(n),循环结构采用结构化程序设计,该算法要归纳循环条件是关键,可改进推广应用。

[类C插人算法(数组的下标从0开始的)]

#define MAXLEN线性表可能达到的最大长度

Typedef struct

Elem type elem[MAXLEN]; Int length;

}Sqlist;

Sta tus Listin sert(Sqlist&L,inti, Elemtype e )

{//在线性表L中第i个元素之前插人新的元素e

//i的合法值为0≤i≤List Length(L )

if ( i< 0 I {i>L..lengthL .length>=

MAX LEN) return ERROR;

for (q=L.length-1;q≧i;q--)L.elem[q+1〕=L.elem[q];

//将第i个元素及其后的元素后移

L.elem [i-1〕二e;//插人元素

L.le ngth++;//线性表长度增1

return OK;

通过对算法的分析要有助于程序设计能力的提高,有助于学生理解线性表的数据结构。还可使用流程图描述算法,进一步帮助学生更好地直观地理解算法。

3.2 优化实践教学,培养创新能力

数据结构课程,上机实习题的设计、学生的实习训练的数量和质量对学习效果都非常重要。通过适当的实习训练,使得学生深刻理解和掌握课程知识体系中的理论和抽象概念,以及各类设计实现方法,提高在复杂软件系统中的实践能力。以学生自主探究和开发活动为主体,培养学生学习的兴趣和能力。强化创新意识和创新能力,相应地提高理论联系实际能力、实践动手能力和科研能力,也能提高学生的学习和研究积极性,学生通过文献调研、开题、项目分析、项目设计、成果汇报、总结评价展开设计训练,可以把理论课上的很多算法得以实现,并且进行深入的数据结构和算法时间、空间效率讨论,达到理论与实践水平共同提高目的。

四、结语

本文针对数据结构课程进行了教学方法上的探讨,从广度和深度上把握课程的知识体系,了解基本数据结构和经典算法,掌握理论、抽象和设计方法进行探讨。以期为本课程的教学提供借鉴。文中讨论选取实际问题,选择合适的数据模型,选择经典算法,剖析重要数据结构与算法思想方法,突破常规教学方法,研究设计教学案例,通过这些例题让学生知道利用所学知识的对实际问题问题求解,助学生理解数据结构原理和算法技术,这样才能充分培养学生学习本课程的兴趣。

参考文献

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

[2] 陈雪刚. 数据结构课程教学改革与实践[J] 计算机教育,2011 (4):34-37.

[3] 杨利英. 数据结构课程的教学方法探讨,2011 6 (24):131-133.

[4] Shaffer,A.数据结构与算法分析(C + + 版)[M] 2 版.北京:电子工业出版社,2010.

[5] 庞晓琼. 案例驱动的《数据结构》课程设计教学改革实践.计算机教育[J],2009.1:53~64.

[6] 沙宗尧,边馥苓. 图示教学法在数据结构与算法教学中的应用[J].计算机教育,2009(18):80-82.

第9篇

关键词:微课;案例教学法;数据结构;教学模式;主动性

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

Abstract: Firstly, this paper analyzes the problems of Data Structure course teaching in traditional teaching mode, discusses the case-making by using micro-lecture as a technical means, and the case is applied to blended teaching and learning model of Data Structure teaching. The practice shows that it can be able to mobilize students' initiative, realize the interaction and feedback between teachers and students better and improve the teaching effect.

Key words: micro-lesson; case teaching method; data structures; teaching model; initiative

1 概述

近年来,基于互联网的信息技术在教育领域得到了广泛应用,其中最主要的形式是微课、翻转课堂和慕课。全国高校相继进行了数字校园建设,推动新教学技术在教学中的应用,促进教学改革和创新,新的教学模式相继得到应用,提高了课堂教学效果[1]。在这样的背景下,微课成为当前教学信息化中备受关注的应用形式之一。

微课是以混合式学习为指导思想,基于学科的核心知识点设计,适用于微型化学习的新型课件设计形式。课件通常以视频形式为主,时间长度一般为5-8分钟,内容精简。特别是近几年,微课等教育技术受到广泛关注,但只有将微课与传统教学模式相结合,才能真正在实际教学中发挥其作用[1]。因此,本文讨论将微课与传统的基于案例教学法的数据结构教学相结合的混合式教学模式。

2 数据结构教学中存在的问题及案例教学法应用

《数据结构》课程是计算机科学中一门综合性的专业基础课,是一门承上启下的课程。它不仅仅是一般程序设计的基础,而且是设计和实现编译原理、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。

但是,当前数据结构教学中存在以下问题:1)以教师讲授知识和学生被动接受知识的传统教学模式为主,不能以学生为主体,无法调动学生学习的自主性;2)数据结构基本知识和算法逻辑性强,内容抽象,对于学生来说,学习比较枯燥。特别是当前导课程离散数学和C语言程序设计没有很好掌握的情况下,不仅没有学习兴趣,也因无从下手而对学习没有信心,学习效果差,更谈不上达到根据实际问题设计数据结构和算法的学习要求[2]。

针对数据结构教学中存在的问题,许多学者在教学方法上进行改变,将案例教学法应用在《数据结构》教学中[2-3]。

案例教学法起源于1920年代,由美国哈佛商学院所倡导,有助于培养和发展学生主动参与课堂讨论。而国内教育界开始探究案例教学法,则是在上世纪九十年代后[3]。

案例教学法是一种以案例为基础的教学法,案例本质上是提出一种教育的两难情境,没有特定的解决之道,而教师于教学中扮演着设计者和激励者的角色,鼓励学生积极参与讨论,作为一种具有明确目的、以行动为导向的训练方法有助于提高学生综合素质,避免了传统的教学方法中教师始终扮演着传授知识者角色,学生始终扮演知识接受者角色的问题。

案例教学法在数据结构教学中的应用,对提高教学效果起到了积极的促进作用,但是教学模式仍然属于传统教学模式。信息技术的不断发展,推动教学模式不断改变以适应教学需要[4-5]。由于数据结构及其算法的教学难点在于他们的抽象性和动态性。如何变抽象为直观,将知识点与生活场景结合,理论与实践相结合,是作为教学工作者始终要关注和解决的问题。因此,本课题组成员以教改项目为依托,根据本院的教学特点,将以微课为基础的案例教学法应用于数据结构的教学中[6-7]。

3 基于微课的案例选择、设计与制作

3.1案例的选择

应用案例教学法,案例就是教学的核心,教师必须精心选择和准备案例。案例的选择通常遵循以下几点:1)案例的难度适中;2)案例内容具有真实性和典型性;3)案例与专业相关,贴近学生兴趣。

本文作者在教学中使用的教材是严蔚敏教授主编的《数据结构(C语言版)》[8],根据书中的章节和内容,选择设计合适的案例。如第二章线性表选择的案例是图书馆书目检索系统。第三章栈和队列,选择停车场管理系统和银行叫号排队系统作为案例。

3.2 案例的设计与制作

案例的设计是实施案例教学的基础和前提。将微课作为技术手段进行案例的设计和制作,是以微课为基础的案例教学法在数据结构中应用的核心和关键。以线性表这一章为例,案例选择图书馆书目检索与借阅系统。

利用微课相关技术易于录制视频多媒体的特点,首先录制和制作关于图书馆借书、学生期末成绩公布、职工工资分配三个场景,然后加入动画和卡通形象制作提出疑问,它们涉及的数据的共同特点是什么?解决问题的思路如何?由此引入线性表的逻辑结构的讲解,然后把图书馆书目查询系统作为具体案例进行内容设计。在微课中展示了学生经常使用的本校图书馆书目检索和借阅系统。从而引入线性表的操作及其实现。在微课设计中,演示了线性表数据结构的瞬间动态特性,不同存储结构下查找、插入和删除等算法的作用过程,使知识直观化。

4基于微课的案例教学法的具体实施

在实施案例过程中,结合目前本人所在学院基于E-learning的云课堂,采取如下三个步骤进行教学的组织。

4.1案例的导入

在课前两天将制作的微课内容上传至学院云课堂,要求学生进行学习,分析思考,同时完成对知识点的预习。

4.2案例的讨论

在课堂上,注意将“图书馆书目检索和借阅系统”教学案例贯穿整个教学过程,将案例内容作为知识点的依托,对知识点进行讲解,然后组织学生以小组为单位,讨论案例相关的基本知识和解决问题的方案,同时教师加以恰当引导,通过师生的互动,发挥学生的主动性。

4.3案例的总结

方案的实现则在实践环节完成,实验课程通常安排在理论课程当天下午或第二天,以任务驱动的方式下达实验要求,使学生通过完成任务实现对知识的理解、掌握和运用,同时实验课上加强对学生的具体辅导,最后作案例的总结。从而真正实现了在教师的指导下,以学生为中心的“自主学习”,提高了学生分析和解决问题的能力,提高了教学效率。

5 结论

数据结构课程的教学要求之一是训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,其重要程度绝不亚于知识传授。因此,在数据结构的整个教学过程中,学生主动参与学习、认真完成习题作业和上机实习是保证学习质量的重要环节。将以微课为基础的案例教学法应用于数据结构,能实现上述环节的兼顾,教学符合从感性认识到理性认识的认知规律,从而帮助学生完成知识的学习和能力的提升,改善了教学质量,切实提高了学生分析问题和解决问题的能力。实践证明学生学习兴趣明显提高,教学效果良好。

参考文献:

[1] 赵国栋. 微课、翻转课堂与慕课实操教程[M].北京:北京大学出版社,2015:15-40.

[2] 宗瑜,金萍. 案例教学法与数据结构教学改革[J]. 皖西学院学报,2009,25(2):30-31.

[3] 杨业娟. 案例教学法在高职数据结构课程中的应用研究[J].电脑知识与技术, 2012, 8(27):6553-6554.

[4] 张瑞霞,文益民,周娅等. 数据结构课程微课设计与应用研究[J]. 计算机教育, 2015(16):59-62.

[5] 唐翠芳,张仁津. 用案例教学法指导数据结构与算法教学[J]. 计算机教育, 2011(8):91-95.

[6] 王静婷,王艳丽,张敏.微课教学模式在Oracle数据库课程中的应用[J].电脑知识与技术, 2016, 12(1):21-24.

第10篇

关键词:数据结构;教学改革;教学手段

中图分类号:G642 文献标识码:B 文章编号:1672-5913(2009)04-0050-02

1 引言

数据结构是计算机专业课程体系中一门重要的专业基础课程,ACM/IEEE CC-2004将它列为核心课程之首。数据结构前承高级语言程序设计和离散数学,后接操作系统、编译原理、数据库原理等专业课程,为研制开发各种系统和应用软件奠定理论和实践基础。因此数据结构教学与计算机专业人才培养计划的成败有着非常大的关系。然而在该课程的教学过程中,学生普遍反映学习起来非常困难,教师也感觉教学效果不尽如人意。如何教好这门课程是摆在我们面前的一个研究课题。

笔者作为该课程的主讲教师,深感责任之重大,所以一直密切关注该课程教改理念与经验,以期借鉴过来最大限度提高教学效果。目前关于该课程教改方面文章很多,包含了教学各部分:有关于教材的,有关于课堂教学的,有关于实验教学的,有关于课程辅导的,有关于教学效果评价的等等。特别是课堂教学方面,提出了很多新的教学方法和教学手段。下面笔者结合自己在数据结构教学中的一些体会,谈谈自己对目前教改的认识。

2 教材选择

教材选择是实施该课程教学的第一步。目前《数据结构》教材有采用C语言描述的,也有采用C++或Java描述的。选择什么语言描述,主要看学生都学过哪些编程语言。在很多院校里学生学习《数据结构》之前只学习过C语言,如果非要赶潮流,选择面向对象语言,无疑会加大学习的难度。有些学校使用自己编写的教材,这是好事。但各学校师资水平参差不齐,并不适合推广。编制的教材质量到底怎么样,应组织同行专家进行科学论证,如果草率拿学生做试验,是不负责任的行为。目前国内《数据结构》教材数不胜数,但鲜有出清华严蔚敏、北大许卓群之在者。大多教材只是对内容的顺序作一些调整,删去一些不讲的内容,再增加一些数据结构新技术。笔者认为,数据结构重在培养学生坚实的基础理论知识、良好的抽象思维能力和良好的编程风格,没有必要非得接触最前沿的技术,即使需要,只要基础知识扎实,自学这些新技术也不是什么困难的事。教师应注重通过基本理论的教学,教会学生学习的方法,而不应企图把所有内容全部教给学生,这就是“授人以渔”的道理。将数据结构和程序设计两门课进行融合,也是一条值得研究的思路。

3 课堂教学

3.1 充分利用第一次课

第一次课至关重要,教师应通过第一节课对学生的程序设计基础有个大致了解,在培养学习兴趣的同时,还要给学生留下良好的第一印象,因为学生对教师的喜恶往往也影响着学生对该课程的喜恶。第一节课要尽量向学生解释清楚为什么学习程序设计语言后还要学习数据结构,数据结构的重要性,数据结构主要研究内容是什么;告诉学生一开始学习数据结构感觉有些困难是正常的,鼓励他们努力克服困难;公开教师的联系方式,告诉学生老师喜欢而不是讨厌他们提问题。接下来通过几个例子,带学生简要回顾一下C程序设计中的一些重要概念,如数组、结构体、指针、函数和递归。这些内容是数据结构的重要基础,但往往正是学生的薄弱之处。如果发现学生以上知识比较薄弱,以后在讲解数据的存储结构和访问方式时就要尽可能地详细一点。最后要求学生利用课余时间重点复习这些内容。

3.2 课前准备

在这门课程中,有一些概念比较抽象,而算法正确选择的前提在于对基本概念的把握,因此概念的讲解一定要清楚、准确。这就要求教师必须认真备课,查阅大量的参考资料。教师只有先对每个概念、原理进行深刻理解,然后才有可能用学生易于接受的方式、简洁明了的语言去讲解,并有目的地分散难点、化难为易。除了查阅资料,我还下载了好几个大学的教学视频,通过观看这些视频,学习他们教学中的长处,感觉颇有收获。

3.3 教学方法

教改先驱们提出了很多好的教学方法,具有重要的借鉴价值,如发现型教学法、启发式教学法、任务驱动型教学法、讨论式教学法、案例教学法等等。但有些文章片面强调某一种教学方法,还有些文章认为传统的教学方法就是满堂灌、填鸭式,给人感觉教改前就没有数据结构讲得好的教师,这都是有失偏颇的。比如案例教学法虽然效果好但比较费时,由于数据结构课时有限,因此并不适合经常使用。美国的数据结构教学也是以教师讲授为主,而不是以课堂讨论为主。“教学有法,教无定法”,每种方法只适合应用于某些特定的情形,教师应该根据教学内容和教学对象的不同,灵活采取适当的教学方法。

3.4 教学手段

许多老师利用多媒体课件等现代化教学手段极大提高了课程的教学效果。但我发现,有的老师过于依赖这些手段,一说起黑板加粉笔的传统教学手段就觉得必定呆板、沉闷、被动,并加以排斥。尽管多媒体教学具有知识信息量大、内容丰富生动的特点,但不利于教师的即兴发挥,而这恰是黑板加粉笔的长处。此外数据结构中绝大部分算法长度都超过一个页面,在教学中需要反复切换,影响了知识的联结。因此我们在教学过程中应该把现代化教学手段和传统教学手段有机地结合起来。例如在讲二叉树递归遍历算法时,为了消除学生对递归算法的神秘感,可以先结合一个简单的例子,将递归算法在黑板上层层展开,然后再使用计算机演示递归过程,这比直接演示更易于理解,因为很多学生即使看着递归的执行流程也难以理解为什么会这样执行。还有些老师在教学中过于追求形象化,我认为没有必要。对于本身并不复杂的算法,如果非要形象化,反而不利于培养学生的抽象思维能力,进而沦落为著名计算学科专家Dijkstra所批评的幼稚化。教师在制作CAI课件时应谨记它只是起辅助作用,不应该也不可能完全替代传统教学手段。冯搏琴教授在文献中详细说明了运用多媒体课件授课的六元素和四大忌,具有极大的指导意义。

4 实验教学

实验教学是课堂教学的一种延伸,通过实验教学,学生不仅对所学知识加深了理解,更重要的是培养了学生分析问题、解决问题的能力。实验题目应精心选择,对于必做题,难度不能太大,要让绝大多数学生通过自己的努力,或在指导教师稍许指点下就可以完成,如果难度太大,学生上机实践的兴趣必然急剧下降。对于编程能力较好的学生,可以鼓励他们去尝试难度稍大的选做题。数据结构中用类C语言来描述算法,并且只描述出其主体部分,其它部分则不做重要介绍,甚至忽略掉,这对于刚刚接触这门课的学生来说,总有一种不知所措的感觉,所以我在前几个算法讲解中,尽量将其以程序形式给出,然后再与算法进行对比,这样上机时就不会有学生将算法照抄一遍,然后委屈地问为什么不能运行了。前几次主要是验证型实验,等学生适应数据结构编程后,再做一些设计型实验。实验教学课时较少,应要求学生在课下做好准备,上机时主要让教师验收程序或问一些自己解决不好的问题,这一点大部分学生都可以做到。由于高校扩招,每批上机学生数较多,还是有些学生的问题不能得到及时解决,可通过电子邮件等方式给他们提供帮助。

5 作业及讲解

很多学生反映上课能听懂,但一旦让他们自己设计算法时就不知所措了。经过了解,我觉得他们大多心里知道如何去解决问题,但就是不知道如何用类C语言表达出来。我一开始布置的作业题一般都是对课本算法的变形,这个难度要小一些。比如在学完“将两个非递减的有序表合并成一个非递减的有序表”后,我就让他们设法修改课本算法,实现将两个非递减有序表合并成一个非递增的有序表(顺序实现和链式实现)。对于难度大一些的习题,适当给一些提示。讲解作业时,应尽量采取“现场编写算法”的形式,将自己的思想表达成类C语言的每一个过程展现给学生,并让学生参与其中。

第11篇

关键词:研究型教学;数据结构;创新能力

中图分类号:TP391 文献标识码:B

文章编号:1672-5913(2007)02-0055-03

研究型教学,就是以素质教育为主,通过研究型课程的建设和教学,使学生提高基本素质、夯实基本知识、培养基本能力、提高基本技能;教学方法由传统的“注入式知识教育”,转变为适应知识经济要求的“研究式素质教育”;授课方式要由“连续型细节式授课”,转变为“跳跃型平台式授课”;教学形式要由“单一的课堂教学”,转化为“多形式的互动交流”;教学氛围要有浓烈的研究气氛。

数据结构课程是一门计算机专业的核心课程,它在整个计算机专业教学体系中处于举足轻重的地位。数据结构课程的学习过程不仅是训练学生研究和设计算法以及编写复杂程序的过程,同时也是培养学生的数据抽象能力从而提高学生的研究水平和创新能力的过程。因此在数据结构课程中实施研究型教学法是非常必要的。

1开展研究型教学法的原则

研究型教学法,是相对于以单向知识传授为主的教学型教学法提出的一种融合教学与研究为一体的新型教学法。研究型教学法认为教育者应建立一种合适的体系,采用一种合适的模式,激励、引导和帮助学生去主动发现问题、分析问题和解决问题,并在这样的“探究”过程中获取知识、训练技能、培养能力、发展个性。研究型教学法以学生及其探究式学习为主体,以培养和提高他们的研究和创新能力为目标,很好地体现了指导与自主、规定与开放、统一与多样、理论与实践有机结合和辨证统一的教育指导思想。苏霍姆林斯基的研究型教学法认为,应该遵循教师的主导作用与学生主体作用对立统一、相互制约的规律,体现启发发现式教学的指导思想,实现教学的民主化原则和主体性原则,充分体现学生的主体地位,极大地激发学生学习的内在兴趣和成就动机,调动学生学习的积极性、主动性和创造性,使学生真正成为一个学习者、思考者和发现者,从而能够生动、活泼地全面发展。教师的任务就是指导学生的脑力劳动,让学生学会思考,进行研究性的活动。研究型教学是高等教育发展的必然趋势。

2数据结构课程中研究型教学法的实践

2.1 转变教学模式

研究型教学模式是将过去传授式教学转化为交互式的教学,使教师成为课程教学中的引导者,学生成为主动的思考者和积极的参与者,充分体现教师的主导地位和学生的主体地位,改变过去“什么是什么”式的教学。在研究型教学中,被强调的是教学的过程而不是结果。即通过问题,并且以动态的、递进的问题去引导学生思考和参与。例如在学习深度优先遍历算法之后,引导学生自主思考什么是广度优先遍历算法,比较图的深度优先遍历算法与广度优先算法的异同,设问应采用何种数据结构可以实现广度优先遍历算法中邻接点的依次访问,等等。通过这些启发性问题,引导学生积极思考和探究,让学生自觉地将独立的问题串起来,寻找并建立它们的联系,从而加深对算法的理解,培养分析问题和综合问题的能力。

2.2 丰富已有的教学方法和手段

以多媒体技术和网络技术为依托,采用现代教学方法和实现手段,制作高质量的多媒体课件、算法动态演示系统和交互式的教学网站,丰富已有的教学方法和手段。教师和学生之间除了课堂交流外,可以充分利用Internet等条件进行交流与沟通。教师将备课笔记、作业、参考资料等放在教学网站上供学生随时查阅,也可以将研究心得和教学体会于网站,而学生则可以通过BBS提出问题或建议,各抒己见,形成一个轻松活泼的研究型学习氛围。例如某学生在网站论坛上发表《最小生成树的算法与单源最短路径问题算法之比较》的帖子之后,一周内就有一百多条跟帖。

2.3 注重实验教学

数据结构课程是一门实践性很强的课程,数据结构实验集中反映了课程的典型方法和基本技术。我们在数据结构课程的实践环节教学方面,除了加大实验课教学时数外,还根据实验内容以及学生的学习进程,设置了验证型、设计型和综合型三个层次的实验。验证型实验,即根据已有的算法进行实现,验证算法的有效性和可行性。例如线性链表的删除与插入操作、Prim算法实现最小生成树等。设计型实验则要求学生根据问题提出算法和采用的数据结构并实现。例如判定某有向图是否有回路、游览公园的每个景点问题等。而综合性实验给定的问题更加注重综合性,涉及更多的算法和更多的数据结构。将三个层次实验的难易程度进行合理设置,不仅可以锻炼学生的动手能力,而且还培养了学生的创新能力和综合分析能力。

2.4 以研究促进教学

研究型教学要求教学和研究有机的结合,以研究促进教学,坚持用高水平研究带动高质量教学。因此教师不能只满足于依照一成不变的教材“完成”教学任务,而要通过继续学习、终身学习的途径不断更新自己的知识结构,使自己处于学科的前沿。首先是要对课程进行研究,通过对课程和教材的研究来提高教学水平和质量,注重跟踪和学习国内外数据结构课程的最新教学和教材成果;其次要担负具有一定创新性的研究课题,力争成为本学科的学术骨干乃至学术带头人,使研究与教学真正地结合起来,从而在向学生传授基本知识和新知识的同时,提高学生的综合素质。

2.5 协同学习

研究型教学鼓励学生间的协同学习、合作研究。强调通过小组学习的方式,加强合作交流,共同学习,达到教学相长、学学相长的目的。把学生划分为学习小组,参与一些课堂讨论、综合性实验甚至是研究课题。小组内学生一起学习,共同研究,各尽其责,协同合作,培养学生团队协作精神。学习小组的协作同时还可以扩展学生的思维方法,使学生有了更多的主动学习的机会。

2.6 建设开放式、立体化的教材体系

开展研究型教学离不开教材体系的建设,教材体系的建设应该摒弃封闭式的“一本教科书”传统,提倡开放式教材。开放式教材应该是在采用最新的优秀中文教材的同时,精选全球范围内权威机构出版的或知名大学选用数据结构教科书为参考教材。同时开放式教材要求应该方便更新。比如国内外大学数据结构课程的联机电子教学素材,这些电子素材本身都是经过教师精心选择并统一编码,内容上体现基础性、先进性和前瞻性。同时力求反映多家学术流派,内容体现“开放性”,可以随技术的发展和进步及时得到更新扩充。还应注重技术的时新性,例如C++描述的数据结构教材,将C++提供的面向对象编程和泛型编程等功能强大的抽象方法引入到数据结构课程中,可使教学和现代计算机技术紧密结合,从而增强传统课程的实用性。

另外一方面,教材体系的建设还应改变传统上局限于“纸介质知识”和“课堂教学”的做法,建设立体化的教材体系。例如,教材体系除了教科书、实验习题用书以及参考教材之外,同时还应配有数据结构课程的教学网站和多媒体资料等。这些立体化的教材可以从不同视角,在任何空间和时间内,利用不同媒体为授课者提供教学依据,为不同学习者提供最佳学习环境,以此激发学生内在的学习动力,使教学发挥最大的效能。

2.7 建立多元评价体系

教学评价体系是整个研究型教学环节的重要组成部分。如何全面、科学地评价教学对教师与学生都会产生极大的影响。研究型教学的实施必须建立多元化的教学评价体系,使之成为提高教学质量的有效手段。以前,我们绝大多数都用一次期终考试决定学生一个学期的学习成绩。事实上,这种单一的终结性评价是不全面、不客观的,甚至会挫伤学生的学习积极性。因此,我们应该对学生整个学期的学习过程进行全面考察,综合评估。如学生的学习态度、课堂表现、自主学习、实践能力、创新能力以及团队协作精神等。然后,将这些过程性的评价与期终评价结合在一起,确定学生一个学期的学习质量。例如学习态度是根据出勤率和作业的态度进行评价的,权值设为10%;课堂表现和自主学习主要反映在课堂上对问题的回答以及主动提问等,占10%;实践能力主要依据实验的每个环节来评定的,由验证性实验、设计性实验和综合性实验按权求和而得,在最终成绩中占40%;期终考试的成绩占40%;创新能力和团队精神贯穿于每个环节的评价过程中。

3结束语

在数据结构课程中应用研究型教学法不仅可以使学生掌握数据结构基础知识、主要的算法思想,而且培养了学生的知识迁移能力,获取新知识的方法,培养了学生的探索精神、团队协作精神与创新能力。教师不仅是对学生授之以“鱼”,更应授之以“渔”。通过研究型教学,激发学生的求知欲、创新欲和探索精神。

参考文献:

[1] 廖明宏, 张岩, 李秀坤,等. 哈尔滨工业大学数据结构与算法精品课程介绍[J]. 计算机教育, 2006,(5):21-24.

[2] 丁桂芝. 立体化教材为课程计划的有效实施提供保障[J]. 计算机教育, 2005,(7):53-56.

第12篇

论文摘要:我校(包头师范学院)目前还未实施双语教学,文章提出在我校开展数据结构课程双语教学在师资、学生水平等方面存在的问题,进而给出了在培养师资、教学实施等方面解决问题的思路和办法。 

关于双语教学的重要性,国家教育部早在2001年《关于加强高等学校本科教学提高教学质量的若干意见》中就提到本科教育要创造条件使用英语等外语进行公共课和专业课教学,使外语教学课程达到所开课程的5%~10%。2007年《关于进一步深化本科教学改革全面提高教学质量的若干意见》中再次提及要“鼓励开展双语教学工作,提高大学生的专业英语水平和能力”。 

数据结构是计算机相关专业的核心课程,主要讨论各种数据的逻辑结构、存储结构及相关运算。做为一门活跃的学科,我国与发达国家相比有较大差距,新内容、新成果往往会在英文原版教材中率先得到反映,以该课程做为切入点开展双语教学,对提高学生的专业素质和英语应用能力更有裨益。 

1 目前存在的主要问题 

1.1 双语师资方面 

承担双语教学课程的教师需要具备深厚的专业功底还要有较好的英语口语表达和交流能力,能熟练应用两种语言进行教学。从全国来看,完全符合双语教学标准的老师不多。就我校的情况来看,目前,在我校担任“数据结构”课程教学的老师还是中文教学,英语整体水平不高。同其它一类学校相比,无论从双语教学的师资水平、师资培养和师资引进方面,我校还有较大的差距。 

1.2 学生方面 

近年来,由于高校扩招和录取率的提高导致学生素质整体下滑,学生的外语水平参差不齐,我校做为西部的二类院校,情况更是如此。此外,习惯母语授课、长期以来我国外语教育体制下培养出来的学生听说能力差等问题都是实施双语教学前需要思考的。 

1.3 相关配套 

双语教学的实施是一个周密细致的工程。根据我校计算机相关专业人才培养方案和数据结构课程教学要求及双语教学的特定要求,在充分调查了解师资和学生的情况下,要制定符合教学要求的数据结构课程的双语教学大纲、双语教学计划,选定适合的双语教材、制作或选用适合的英文课件等。英文习题、英文实践题目、英文试卷等相关教学资源都未做好充分的准备。 

此外,在教学方式、考试方式、实验指导、教学评价等方面都要根据教学大纲制定详尽的规范和要求。 

2 解决的问题的思路 

2.1 双语师资的培养 

双语教学成败的关键在师资,双语教学的师资来源主要有以下几种途径:① 如华南理工大学国家示范性软件学院等一类大学,聘请国外专家或归国华人等国内外优秀人才担任双语教师,这些具有较高学术造诣和国外背景,又体现工业化背景师资队伍对双语教学的成功起了决定性的作用。就我校目前的发展水平来看,这个途径行不通;② 校内选拔,自己培养。选拔专业水平高、责任心强、教学效果好、英语口语表达能力强的教师但任双语课程的主讲教师,定期在校内及在相关院校交流学习,定期输送教师到国外进行双语教学的培训。做好这一点,经过一个时期,我校会培养出自己的合格的双语教师。 

2.2 学生方面 

双语教学的过程中必须要重视学生的个体差异,针对学生英语水平参差不齐的情况,可采取以下措施:① 注意培养学生的学习兴趣,兴趣是最好的老师。如果学生对一门课程建立了浓厚的学习兴趣,就会具有主动学习的精神和学好这门课程的动力。教师的个人魅力和专业素养是影响学生学习兴趣的重要因素之一,这就要求教师不仅专业素养高,而且愿意为双语教学作出更多努力,深刻领会概念实质,深入浅出地讲解教学内容,关注学生的学习基础和对课程学习的反馈,使学生能感受到学习的乐趣。此外,数据结构课程内容众多,许多成果源于世界著名计算机科学大师的创新。教师在教学中注意引导,让学生感受到经典的分析问题和解决问题的逻辑思维,引导学生在理解的基础上积极创新,也会提升学生对课程的学习兴趣。② 采用分级教学。数据结构课程本身比较难学,再加入双语教学,对于一些学生一定吃不消,可考虑分级教学。根据考核学生的英语水平、根据教学要求等分汉授和双语授课两个班。

2.3 教材方面 

双语教学的学校、师资、学生的整体水平决定了在双语教材的选择上会有很大的差异。一类大学多数采用的是英文原版教材,如华南理工大学计算机科学与工程学院采用clifford a. shaffer:a practical induction to data structures and algorithm analysis, publishing house of electronics industry;东南大学的计算机科学与工程系采用computer science express 版的国际著名原版英文教材fundamentals of data structure in c++。根据我校的实际情况,适合的教材策略应该是选用中英文双语经典教材配合使用,如国家教育部推荐的信息类专业双语教学国外经典原版教材robert l. kruse data structures and program design in c++,这样的对照教材,便于学生理解,特别是在双语教学启动阶段。 

2.4 其它几个关键点 

2.4.1 客观科学制定课程大纲 

要在充分调研数据结构课程教学要求的基础上, 根据我校计算机相关专业人才培养方案及本课程在整个专业课程体系中的作用,并考虑双语教学的特定要求, 制定数据结构课程双语教学大纲, 大纲应强调学生对基本概念与方法的理解, 注重培养学生的独立思考解决问题的能力。 

2.4.2 加强多媒体教学 

面对数据结构课程中大量的经典、难理解的算法,加之双语教学,必定会增加学生学习理解的难度。可以试想这样一种教学情境:在讲授新算法之前,先播放相关动画及相关媒体资源,使学生对此算法先有感性认识,然后教师提出问题,使学生带着问题听课,这样的亲近的教学手段,有利于减少对陌生算法的排斥,加深加快对算法的理解。目前,要做的工作一是对自做的好的中文多媒体课件做翻译,二是下载最新的国内外优秀的多媒体课件。 

2.4.3 双语并用 

双语教学并非只能用英语教学,在讲授课程内容时,考虑到我校学生的外语水平,对于课程中涉及到的重要概念、术语,做到使用英语讲授,使学生在学习过程中逐步具备计算机专业术语的语言优势。对于较难的算法可穿插使用汉语,注意使用简单句和专业词汇,避免使用过多的定语和复杂的从句,教师可充分利用非语言行为,直观、形象地提示和帮助学生理解教学内容,降低学生在英语理解上的难度。同时还要随时根据学生掌握的程度,调整英文和中文的授课比例。 

2.4.4 注重实践环节 

数据结构是一门实践性很强的课程,实践环节必不可少。双语环境下的实践还要做到:用英语描述实践的作业、全英文的实验软件环境、学生分组协作完成、英语提交实验报告,如此,一是锻炼学生的动手实践、团队协作能力,二是锻炼学生的英语表述能力。考虑到学生不同的层次水平,在实验题目上也可分难易层次,使全部学生都可在实践中得到适合的锻炼。 

3 结论 

双语教学是专业教学发展的趋势,无论对教师还是学生都需要一个逐步适应的过程。就我校的目前的情况来看,开展数据结构课程的双语教学,要充分认识以上需要着手解决的问题,待各方面条件成熟,可以考虑开设数据结构的双语教学。 

参考文献: 

[1] 杨捷,霍党泽.“数据结构”课程双语教学的研究与实现[j]. 北京大学学报(哲学社会科学版), 2007(5). 

[2] 蔡英. 数据结构双语教学的探索性实践[j]. 实验室研究与探索, 2007(12). 

[3] 金远平,王茜,徐冬梅. “数据结构”课程双语教学的研究与实践[j]. 电气电子教学学报2005(8).