数据结构与算法优秀6篇

2023-12-16 13:51:39

人的记忆力会随着岁月的流逝而衰退,写作可以弥补记忆的不足,将曾经的人生经历和感悟记录下来,也便于保存一份美好的回忆。范文书写有哪些要求呢?我们怎样才能写好一篇范文呢?它山之石可以攻玉,以下内容是壶知道为您带来的6篇《数据结构与算法》,希望能为您的思路提供一些参考。

数据结构与算法 篇一

关键词:数据结构;知识点;课程体系;程序设计

中图分类号:G642.41 文献标志码:A 文章编号:1674-9324(2015)27-0125-03

一、引言

《数据结构》一直被认为是计算机、信息管理与信息系统、电子商务等专业重要的基础课程之一。该课程的知识涉及到多学科与多专业,掌握该课程将对学生后续课程的学习起到重要的知识链接作用。数据结构课程的主要知识点包括:①线性表的顺序存储结构与链式存储结构及对应算法;②栈的顺序存储与链式结构及对应算法;③队列的顺序存储与链式结构及对应算法;④串的顺序与链式存储结构及对应算法;⑤数组和广义表的存储结构及对应算法;⑥树和二叉树的顺序与链式存储结构及对应算法;⑦查找方法;⑧排序方法等。为学好这门课程,必须依据课程体系,明确数据结构课程中的概念与术语,灵活运用这些知识点,以达到扎实掌握该课程难点的目的。

二、数据结构的先修后继课程及知识体系结构

1.掌握数据结构课程的先修与后继课程。以信息管理与信息系统专业课程体系为例,清晰了解和掌握与数据结构相关联的先修与后继课程(如图1所示)。先修课程主要有:计算机信息处理概论、汇编语言程序设计、高级语言程序设计(C、C++、Java等)、计算机组成原理、离散数学、运筹学、图论等。后续课程主要有:数据库原理、信息系统开发方法、编译原理、信息检索、数据仓库与数据挖掘、操作系统、信息集成技术及应用、电子商务与物流信息管理、大数据分析等相关课程。

2.数据结构课程实施框架体系的创新模式。围绕如下页图2所示的数据结构课程实施框架体系的创新模式讲授数据结构课程。明确数据结构课程的知识体系和主要知识点。该模式的优势在于:能够使学生快速掌握数据结构的概念、术语,客观世界问题对应在计算机外部的表示方式,在计算机内部的存储方式,以及如何对它们进行操作(运算);除此之外,还能够严格按照数据结构课程的各个知识点进行梳理,清楚地归纳出数据结构与其他相关课程的关联关系。

三、运用归纳总结方法对数据结构课程的知识点进行分类

以严蔚敏教授出版的数据结构经典教材为例,将数据结构的知识点进行分类:第一类将第二章“线性表”、第三章“栈与队列”、第四章“串”、第五章“广义表”划分为数据的线性结构部分;第二类将第六章“树与二叉树”、第七章“图”划分为数据的非线性结构部分。

将自然界的线性问题对应的数据结构实例例举出来,形成数据结构问题的感性和直观的认识;然后再由浅入深地掌握其相关的知识点。例如:①为使管理人员快速找到客户相关信息,用计算机处理该业务应首先确定所使用的数据结构形式,如果希望将电话号码作为关键字,姓名的拼音作为次关键字,那么,会容易地查找出“陈”性拼音顺序排在“周”性之前的线性关系。②到银行办理业务对应的数据结构形式是队列模式,即满足“先来先服务,后来后服务”的服务规律。③对字符串进行存储与处理时,其存储结构具有紧凑和非紧凑形式,因此需按照形式的不同,进行分类处理后,再对其进行操作(如:插入、删除、查找、模式串匹配等)。④到图书馆借书时,图书管理员检索的模式与图书的存放形式有关。

与线性结构相比,非线性结构要复杂得多,即线性表的数据结构中数据元素的逻辑结构与物理结构之间存在一一对应的顺序关系;而非线性的数据结构中数据元素的逻辑结构与物理结构之间不存在一一对应的顺序关系,它们之间的顺序是任意的,也就是说非线性的数据结构中数据元素之间不存在前驱和后继的顺序关系,为使初学者掌握其存储结构对应的操作等相关知识点,必须将数据结构教科书中关于树与图的遍历进行深入而细腻的讲授。以二叉树的遍历问题为例,说明非线性结构应该着重讲授的知识点与教学方式。一般遍历某二叉树的原则是:先确定树根,然后按照树的递归原则进行先序、中序和后序等遍历,下图3所示。从三种遍历的序列可以看出,其每种遍历的结果序列都有其唯一的前驱和后继结点。这个规律说明一个道理:任何的非线性结构的结点元素都可以通过先确定遍历的名称,然后通过遍历方便地对其进行访问,比如:在前序遍历的序列“-+a*b-cd/ef”仿照线性表的定义找出它们之间的前驱与后继之间的关系;另外,同样中序和后继的遍历结果也可以仿照线性表的定义找出它们之间的前驱与后继之间的关系。同时,注意对学生发散性思维的培养,可通过三种遍历结果,进一步解释难以理解的概念推理,推论一:若已知一棵二叉树的前序序列和中序序列,则可以唯一地确定这棵二叉树;推论二:若已知一棵二叉树的后序序列和中序序列,则也可以唯一地确定这棵二叉树。在讲授该本课程知识点的同时,应考虑对后继课程的铺垫与衔接,上述三种遍历结果,对后续《编译原理》课程的前缀码、中缀码、后缀码等概念的理解与掌握将起到重要作用。

四、运用灵活的教学方式讲授难点章节

由于数据结构课程设计到多学科(专业)知识点,因此,教与学的过程中,难免存在难点、“瓶颈”问题和难以理解的算法。为解决此问题,在教学中应注重选用具有代表性的例子,如:在第七章的许多工程类例子与运筹学的例子非常相似,因此,在讲授此章节时,注重教材例子与运筹学学习的重点,但不同专业基础课程的侧重点不同。

1.非线性数据结构的讲授方法。以第七章为例,该章的相关知识内容有:图论、数据的逻辑结构及其对应的物理结构、算法实现的技巧与方法、优化问题、非线性问题的映射方法。主要存在如下难点:①非线性问题的逻辑表示方法。根据工程类例子的实际需求,找出该问题的逻辑表示方法是解决问题的核心。如:将符合多种方案选择的工程类的工序问题(如:排课问题、具有先后时间次序的问题),运用有向图的知识点将该问题表示清晰;应该标明该数据元素属于邻接表还是顺序存储形式。②非线性问题的物理表示方法。通过问题的逻辑表示方法可以将工程类的工序问题转换成有向图的存储方式,然后再选择图的存储结构,如:数组(顺序)存储、邻接表(链式)存储等方式。③如何编制实现解决非线性问题的算法(程序)。上述的逻辑结构确定了之后,再根据实际问题的要求进行实现程序的核心部分即算法的编制工作,当算法太复杂时,则先设计算法流程图然后再编写实现算法的程序。

2.非线性数据结构的上机实践方法。最为有效的方法是选择学生日常生活中与工程类算法处理流程相近的例子。如在拓扑排序的上机实践选择的题目是给某专业课程进行排序,这个例子的选课过程正好符合工程类工序(周期)施工排序的案例;设计报文或字符编码时,按照第六章中的哈弗曼树的存储结构对报文进行编码;选择顺序线性表的上机例子是在一张学生登记表中进行插入和删除运算;选择链式线性表的上机例子是在一张按照拼音顺序进行插入和删除运算的线性表。

五、阅读程序的技巧与必备知识

数据结构的大量算法都要靠其对应的程序来验证,那么,如何针对数据结构经典算法来编程并且阅读这些经典的算法(程序)呢?这也是学好数据结构这门课程的关键。

1.让学生通过阅读程序,了解如何科学选取一个好的程序(算法)。由于程序是依靠“算法+数据结构”实现的,对一个实际问题来说,可以有不同的程序来实现。仅以一个简单的例子说明,如:运用计算机进行n的平方计算,有3种方法:n的平方=n n;n的平方=1+3+…+2n-1;高级语言自带的求平方函数,如double pow(n,2)。上述算法一个采用乘法,一个采用加法,一个是高级语言自带的,究竟哪种方法好呢?主要还是看其运算精度、算法的复杂度和空间复杂度等综合指标。

2.让学生通过阅读程序,了解和掌握相关知识点。应补充程序设计分类的相关知识。程序包括:直接程序设计,条件控制的程序,循环控制的程序(计数器控制的循环结构程序的算法、条件控制的循环结构程序的算法、变量控制的循环结构程序的算法)。还应该向学生介绍算法转换为运行程序的经验,如:数据的初始化如何处理;程序中的循环计数器与判断条件以及检验结果如何检验;递归程序中的出口条件判断问题;逻辑变量、精度、机器零、数值零、文本非结构化等归一问题。

3.快速阅读程序的必备知识。按照数据结构的课程要求,必须在读懂经典算法的基础上,才能够编制一个逻辑结构严谨的程序。但是,在教学中发现,有的学生学习方法不当,导致阅读程序的能力低而不能系统掌握数据结构课程的知识点。为了解决这一“瓶颈”问题,在讲授数据结构第一章绪论内容中,增加了程序设计方法、编制算法流程图的标准与规定、算法与程序的区分、如何选用大O来计算算法的时间复杂度和空间复杂度等知识点。递归程序的阅读是数据结构中较难掌握的内容。为让学生顺利阅读递归程序,必须在阅读递归算法之前,补充相关的知识,如:计算机原理“中断”的概念;程序设计中的过程调用的步骤和阅读方法;递归程序本身的特点,以及递归过程与一般过程的区别等。

六、小结

数据结构课程是计算机相关专业重要的基础课程之一,但课程学习难度较大,为提高该课程的教学质量和教学效果,本文梳理了数据结构的先修后继课程,构建了课程的知识体系结构,提炼出数据结构知识点分类的线性与非线性两条主线,强调将理论学习与工程实践的有机结合,提出实现程序设计与具备阅读程序的技巧是解决课程难点的重要手段。

参考文献:

[1]严蔚敏,吴伟民。数据结构[M].北京:清华大学出版社,2011.

[2]陈燕,等。数据结构[M].北京:科学出版社,2014.

数据结构与算法 篇二

关键词:数据结构;课程体系;实践教学;课程群

1背景

数据结构与算法是计算机类专业的一门核心基础课程,是计算机、软件工程等电子信息类专业的必修课。本课程较系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法;介绍了常用的多种查找和排序技术,并对其进行性能分析和比较,内容非常丰富[1-2]。本课程的教学目标是加强学生对数据逻辑关系的分析与认识,培养学生数据抽象的能力,通过理论分析与编程实践相结合,增强学生求解复杂问题的能力以及控制算法复杂性的能力。

在计算机科学中,数据结构不仅是程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统等系统程序和各种大型应用程序的重要基础[3]。数据结构与算法是计算机类专业部分专业课的先导课,如操作系统、编译原理和数据库原理等,因此它为后续的专业课程学习提供必要的知识和技能储备[4]。数据结构与算法课程一直以来都是本学科的核心专业基础课程,而且正逐渐发展成为众多理工科专业的热门选修课。只有学好了这门课,才能在今后的计算机专业课程的学习中游刃有余。因此,本课程在国内同类课程中有较明显的先进性和示范性。

根据新世纪对人才培养的要求,教学应重在学生能力、素质的培养,尤其是思维能力、实践能力、创新能力的培养。多年来我们致力于数据结构核心课程的建设,从完善课程体系、加强团队建设、深入教学改革和丰富教学资源等各个环节不断探索和实践。从提高学生的学习兴趣和加强实践环节教学方面入手,在教育教学方面持续、深入地改进教学方法,开展教学研究,提高教学质量。

2完善课程体系

首先,完善以“扎实基础,强化实践,引导创新”为培养目标的课程体系。计算机类专业核心基础课程体系主要由离散数学、面向对象的程序设计、数据结构与算法、操作系统、编译原理、计算机组成与结构、数据库原理7门课程组成,用于支撑计算机科学与技术、软件工程、网络工程、信息安全、数字媒体技术5个计算机科学相关专业的教学。

我们将课程群的理念引入计算机专业基础类课程教学,建立了以数据结构为核心的计算机类基础课程群,如图1所示。课程群以培养综合运用计算机基础知识能力为目标,打破课程间的壁垒,强化课程联系。本课程群以数据结构为核心,将数据结构的一些基本内容如链表、排序等渗透到“C/C++程序设计”课程中;将编译原理、数据库原理等需要使用数据结构内容的部分在数据结构课程中以应用的实例进行讲解,从而将相关课程的授课内容形成统一的整体。

在实践环节我们强化数据结构对程序设计语言的训练及解决相关课程问题的训练。除各门课程有单独的实践课程外,独立设置贯彻整个教学环节的实践课程,将数据结构课程群中各门课程较为关联的综合大作业进行归并整合。自身实验课程注重双基训练,但大实践课程要求对整个数据结构课程群教学经验丰富、能够精确把握该课程体系要点的教师进行授课,在教学中能够结合本学期相关课程设置大作业,在讲授中能够根据学生的具体情况进行诱导性教学,使学生通过完成大作业来更深刻地认识学科体系的全貌,强化学科综合素质的培养。

以数据结构课程为中心构建计算机类专业的核心基础课程体系,将与计算机科学相关专业的专业基础课程教学打通,在课程、课件、教材、师资队伍等多方面进行统一的规划和建设,以不同的着重点组织课程教学内容、进行大学生计算机实践能力和创新能力的培养。该体系打破了原有实验教学附属于理论课程的模式,理论教学与实验教学既相对独立、又相互联系,改变了单一的知识验证的实验模式,增强综合应用设计和创新实践内容,全面提高学生的实验实践技能。“扎实基础,强化实践,引导创新”培养目标体现了当前计算机类专业教育的发展趋势,走在国内高校的前面,在全国各类会议作专题报告近30次。

3加强团队建设

目前我院数据结构与算法教学团队共有5位主讲教师,其中教授2人,每50名学生配一名助教(博士或工学硕士)。该教学团队主要由30~40岁的年轻教师组成,尽管精力充沛,工作热情很高,但教学经验尚有欠缺。团队建设是本课程建设的重中之重,要把提高教师的综合素质和教学科研水平,强化教师的责任心放在首位。坚持教学与科研相结合,以国家自然科学基金项目为依托,为提高教学质量,不断提高科研水平和能力;以国家特色专业建设项目为依托,加强教学研究,以理论指导教学实践,吸取好的教学方法和经验,不断改进教学方法和手段,迅速促进教学团队成长。

在青年教师培养方面注重教学和科研能力的同步培养。要求青年教师在首次上课之前听课助课,培养基本教学能力;实行集中备课,统一课件,互相监督,保持教学一致性和教学内容一致性;定期召开教学研讨,及时总结教学经验方法,教授言传身教;以特色专业建设项目为依托,鼓励青年教师开展教学研究,以部级项目为依托开展科研课题研究。青年教师成长迅速,已具备一定的科研能力,教学效果良好,学生满意超过90%;获得校教学质量优良奖,青年教师讲课竞赛二等奖,多媒体课件二等奖等多项奖励,已经成为学院的业务骨干。

4深化教学改革

4.1不断探索新的教学模式

1) 实践性教学。

实践是获得真知的根本源泉,主动探索真知是研究型人才的基本素质,我们在基础课中的创新能力培养主要体现在,让学生在自由的实验环境中积极实践、主动探索,自己发现新的知识和理论。如图2所示,在实践环节建设方面,建立书面作业,上机作业和课程设计3个层次的实践教学环节,以通过书面作业形式消化理解教学内容;通过上机作业培养动手能力,将课程单元知识转化为实际技能;通过课程设计培养解决实际问题的能力,融会贯通本课程的知识。

为了满足强化实践的教学要求,本课程团队经过多年实践,精选、整理了包括卡内基梅隆大学、斯坦福大学、麻省理工学院等国内外著名大学教授布置的实践作业,结合我们的教学要求,每学期给学生布置18道有一定创新性的上机题目。这些题目既反应了数据结构教学的基本知识,又来源于实际应用。达到了理论和实践的完美结合。本课程实践教学和理论教学环节的学时比例为1.5∶1。经我们多年实践,这个比例符合我国高等教育实际,达到了良好的能力锻炼目的,值得推广和借鉴。

2) 研究型教学。

在研究性理论教学方面,以教学大纲为主线,整理数据结构领域的经典论文,以提出问题为课堂教学的第一步骤,引导学生思考,将科学家的研究方法和研究思路融入课堂教学中。依托科学研究项目,提出本学科领域的最前沿课题,鼓励学生思考并解决。对有明显创造性的成果可以在教师指导下撰写学术论文。

将研究型教学融入数据结构实践教学课堂,鼓励学生从解决问题的角度研究如何设计数据结构与算法,在传授基础知识的同时注重创新性思维方式的培养,发现问题和解决问题能力的培养。

4.2全方位的课程改革

课程建设的核心是提高教学质量。为提高教学质量,我们从教学内容、教材、教学方法和手段、考试方法、实践教学等方向进行了全方位的改革。

1) 教学内容改革。

课程组参考国内外其他院校本课程的教学大纲和优秀教材,对数据结构课程的教学大纲进行了多次修订,逐步稳定了理论教学的教学内容、教学要求,细化了教学目标,明确了教学任务、教学内容、教学重点和难点、不同知识点的掌握程度。理论教学采用以共性化课堂教学为主,并利用辅导答疑和实践教学组织以学生为主的个性化教学,培养学生创新能力,辅助课堂教学。在教学过程中采用启发式教学方式,即注重学生基础理论知识的掌握,也注重学生分析问题、解决问题等基本能力的培养。

为了配合理论教学,我们也多次修订了实验大纲,使实践内容更加符合专业的发展和其他各方面的要求,并且与前序课程和后继课程很好地衔接。在实践环节中注重学生能力的培养和科学的开发方法的培养。实践教学内容采用梯度组织,具有不同的难易程度,方便学生巩固学习和拓展知识。

2) 教材选取。

目前本课程使用教材为高等教育出版社出版的《数据结构与算法》,许卓群、杨冬青等编著。该教材除了讲授基本数据结构外,突出作为面向对象程序设计的基础概念――抽象数据类型,强调算法与数据结构的密不可分性、封装性等;在处理知识面的宽度和知识点的深度上,既满足作为基础课的要求又达到一定的水平,完全适合本专业对人才培养的要求,是普通高等教育“十五”部级规划教材。目前课程组已经开始着手准备根据我们自己的教学特点、专业要求等实际情况自主编制一套教材。

3) 教学方法改革。

(1) 启发式教学:学生的主动性是学习,我们在教学过程中注重启发学生的思维,采用循循善诱的方式引导学生自己发现问题,并逐步解决问题,培养学生思考问题、分析问题和解决问题的能力。这极大调动了学生的主观能动性,培养了学生分析和解决问题的能力。

(2) 共性化与个性化相结合教学:从教学形式上,我们积极探索新的教学方法,以便能够调动和发挥学生的主观能动性。具体有以教师为主体的课堂教学、习题课等共性化教学环节,也设置了答疑p质疑等教学环节,引导鼓励学生通过实践和自学获取知识。共性化与个性化相结合,既可以起到教师主导作用,也可以满足学生个性学习的需求。

(3) 理论与实验相结合:数据结构课程主要介绍数据的逻辑结构、物理结构以及算法。算法的思想需要通过一种程序设计语言加以描述并在计算机上实现。我们在重视理论教学的同时,也很注重实验课,注重学生灵活应用知识能力的培养。理论与实验相结合,可以使学生更好地理解“数据结构”的思想与概念。

5丰富教学资源

建立本课程网上课堂及在线智能教学系统。网上课堂设计的目的是能够给不同层次、不同需要的学生提供帮助,提高教学质量。根据网络教学环境的要求,

系统主要包括课程概况、师资队伍、教学资源、实验指导、教学录像、课程扩展、课程论坛等多个模块。系统主要具有以下特点:

1) 在线学习。

知识内容结构化,主体结构采用网页形式组织教学内容,以单元、章、节等知识点为中心组织教学,以关键词或标题为线索进行任意的查找。各知识点在整体上搭建框架式结构,思路明晰;在细节上环环相扣,前后关联紧密,便于学生更好地理解和掌握知识要点。

2) 动画演示。

以数据结构部分的讲授为例,这部分内容包含许多的算法,其描述大多数采用类高级语言的形式进行,有些算法无论是时间复杂性或是空间复杂性都比较高,采用动画的形式将算法的执行过程和思想呈现给学生,使学生很容易理解这一过程,再配上教师的解释做旁白,可产生与上机亲身实践和跟踪执行相似的效果。

3) 在线测试。

用数据库对练习题和模拟题进行有效的管理,在学生进入到考核子系统后,能交互式进行试题的选题与答题。当学生提交答卷后,系统又能对答分进行自动评判,并给出相应正确的答案和综合得分。

4) 课程扩展。

为更好地促进教学,本课程在巩固基础知识,提高实践能力的基础上,对学有余力的同学扩展了本课程的内容。引入了卡内基梅隆数据结构教学网站,这是一套全英文系统,上面提供了丰富的工程性题目训练,更加注重数据结构算法在实际中的应用,让学生开阔了思维和眼界;还为学生提供了ACM竞赛以及大连理工大学程序设计竞赛的模拟题库,通过这些略有难度又很新颖的题目进一步提高学生的学习兴趣,培养其解决实际问题的能力。

6结论

在近几年的课程建设实践中,我们的任课教师认真组织教学内容,与实际相结合,积极探索有效的教学方法,利用多媒体技术动态演示复杂数据结构的变化,并补充学生比较感兴趣的知识,拓宽学生的知识面。逐步完善和充实现有课件,做到内容充实,画面生动,具备声像效果,收到了很好的教学效果。作为计算机科学的核心内容,数据结构与算法的理论研究及应用研究一直在不断发展,在以后的工作中要注重研究型教学,鼓励学生从解决问题的角度研究如何设计数据结构与算法,并将学科领域经典研究成果和最新研究成果及时地反应在课程教学中,相信数据结构与算法这门课的教学效果和教学质量在我们持续深入的教学改革中会越来越好。

注:本文受教育部第二类特色专业建设项目――软件工程特色专业建设项目资助。

参考文献:

[1] 严蔚敏,吴伟民。 数据结构[M]. 北京:清华大学出版社,2002.

[2] 殷人昆。 数据结构(用面向对象和C++描述)[M]. 北京:清华大学出版社,2007.

[3] 殷人昆,邓俊辉。 清华大学“数据结构”精品课程建设[J]. 计算机教育,2006(5):20-22.

[4] 钱红兵,唐发根。 “算法与数据结构”课程教学体系的建设[J]. 计算机教育,2009(17):65-66.

Development of the Data Structure and Algorithm Core Course

LIU Xinyue, ZHANG Xianchao, YU Hong

(School of Software, Dalian University ofTechnology, Dalian 116620, China)

数据结构与算法 篇三

教育部在文件中明确规定,精品课程是具有一流教师队伍、一流教学内容、一流教学方法、一流教材、一流教学管理等特点的示范性课程。按照这一标准,我们积极培养教学后备力量,注重教学内容、教学方法改革和教材建设,不断完善教学管理,努力将该课程建设成为国家精品课程。

一、课程主要特色

哈尔滨工业大学“数据结构与算法”课程经过近30年的建设,逐步形成为一门具有一定特色的核心课程。

1.以抽象数据型为核心的课程体系

早在1989年我们就采用抽象数据型的概念组织教学内容,这在当时是没有的。实践表明,当前广泛流行的面向对象技术就是抽象数据型的丰富和发展。由于采用抽象数据型的概念来组织教学内容,算法的C++描述更为自然。为保持课程体系的先进性,我们还充分吸纳了美国ACM和IEEE/CS联合发表的计算学科课程体系CC2001以及后来我国发表的CCC2002体系新内容,使学生能够及时掌握“数据结构与算法”的最新研究成果。

2.以实践为重点的研究型教学

我们认为,教学不仅要传授给学生知识,更重要的是培养他们分析问题和解决问题的能力,实践教学是培养学生相关能力的重点。实践性教学环节在强化和巩固所学的课程基础理论和基本知识的同时,培养学生综合运用多种数据结构解决实际问题的能力。实现从理论到实践,再从实践到理论的升华。实践性教学的设计思想如下:

理性实践。注意引导学生在所学理论知识指导下进行实践(实验和课程设计),即理性实践,使学生在理论与实践的每次循环中体会到欣喜和成就感,以此提高学习兴趣、增强信心,达到巩固基础知识和知识综合运用能力不断提高的目的。

面向问题求解能力培养的实践教学。面向问题求解能力是学生创新能力培养的基础。我们在实践课程中增加了设计型实验和课程设计,锻炼学生综合运用所学理论知识解决复杂问题的实践能力。

实践教学与科研相结合。课程设计指导教师大都来自科研一线,学生课程设计题目选自指导教师研究方向与本课程有关的部分。使学生提前受到科学研究方法的熏陶,训练提高了学生查阅资料和文献的能力,也锻炼了学生科技论文写作的能力。

3.以网络和多媒体为基础的数字化教学

以多媒体和课程网站为中心构建立体式的现代化教学平台,利用现代化教学手段,通过多媒体和网络教学促进师生的交流,提高师生间的互动。其中,多媒体课件丰富了课堂内容,增强了动态演示效果;学习辅导网站,为学生提供全方位的学习辅导支持,包括教学大纲、学习指导、电子教案、在线测试、学生论坛等。在教学过程中,我们也始终注意对学生主动探索能力的激发,采用多种辅助教学手段,如在辅助教学网站上不断引入课程相关的新内容并以讨论的形式激发探索,制作算法演示系统以及网上习题库等。这些内容可以帮助学生形象地理解各种基本算法,帮助学生认识课程前沿内容。

另外,为提高实验效果,在授课过程中有意识地将教学内容和实验内容有机结合,并配有实验教学辅助网站,指导并监控学生完成整个实验过程。

4.以教学梯队为主线的师资队伍建设

我们建立了由课程负责人、主讲教师、辅导教师和实验指导教师组成的教学梯队。对青年教师的培养采取以老带新,由经验丰富的教师带新入门的年轻教师。有计划、有目的地培养中青年教师。通过教学实践、实验教学的训练以及定期组织教学研究讨论,使青年教师的教学态度、教学水平和教学方法得到提高。

二、课程建设具体实施办法

1.教学队伍的建设

建立了由课程负责人、主讲教师、辅导教师和实验指导教师组成的教学梯队。逐步形成一支以主讲教授负责、结构合理、人员稳定、教学水平高、教学效果好的教师梯队。

课程组还让年轻教师通过科研的实际锻炼提高自己的研究能力,扩充知识面。许多教学实例都来自于第一线的科研项目。科研和教学的有机结合,有利于提高授课内容的先进性,也有利于锻炼年轻教师的创造性和责任感。我们已建立起一支强有力的教学梯队,形成了以高素质教师为骨干力量的教师队伍。

2.教学内容的组织

在教学内容组织方面,我们根据学科发展迅速的特点,逐步地、有计划地对教学内容进行了调整,删减了必要性不大、陈旧过时的内容,逐步增加了反映学科发展趋势的新内容,保持了教学内容的先进性和科学性,同时还充分考虑了与其他课程的衔接问题。

3.教学方法与教学手段

在教学方法和手段改革上,我们以多媒体技术和网络技术为依托,采用现代教学方法和实现手段,制作了高质量的多媒体课件、算法动态演示系统和教学网站。

处理好传授知识和培养能力的关系。课程教学既强调基本理论、基本知识的传授,同时更注意加强学生的实践能力和创新能力的培养。

4.多元化考核方法

改革了“一次定论”的判分制度,考试以学生完成日常作业和实验环节为必要条件,期末考试采用笔试方式。成绩评定由三部分组成:期末考试占总成绩的70%;平时作业占总成绩的10%;实验能力占总成绩的20%。课程设计的考核形式采用答辩方式,锻炼了学生的表达能力和做学术报告能力。

5.实践教学

在实践环节教学方面,设置了验证型、设计型和综合型三个层次的实验内容,分别在课程实验和课程设计中进行。课程组的教师都在实践环节中亲临指导,通过实验室的环境与合理的实验题目引导学生积极主动地学习,锻炼学生的动手能力、创新能力和表达能力。成绩根据预习、表现、报告、答辩等方式综合打分。为加强对学生的个性化指导,我们为每15名学生配备一名辅导教师或实验指导教师。

6.教学管理

我们建立一套完善的教学质量监控体系,从课前、课中和课后等教学环节进行全方位的质量监控。课前,新任教师在开课前必须试讲,合格后方可上台授课。课程组组织定期和不定期的具体备课,研究教学内容和教学方法。在上课过程中,对每一位教师做到100%听课,并对教学过程中存在的具体问题及时进行纠正。我们还重点检查实验教学,保证指导到位;课后,重点监督答疑、作业批改等环节。根据各个教学环节,对教师进行教学质量的综合评定。每位教师的教学质量直接影响到他的工作量计算、岗位聘任以及下一轮的教学任务分配等关键问题。因此,在教学质量监控体系下,每位教师教学态度认真,教学水平不断提高。

三、相关教材建设

数据结构与算法范文 篇四

关键词:算法;数据结构;相关性

中图分类号:TP311 文献标识码:A

算法与数据结构包含了选取的算法、存储必备的方法、拟定的操作规程。解析数据结构,这类思路有着凸显的导向,它关系到培育的抽象认知。构建精准的某一程序不可缺失算法、搭配的数据结构。辨识了二者的多重关联,设定最适宜的逻辑框架以此来便于拟定程序。把控各类的算法,侧重去养成合适的设计风格,适应日渐复杂的新算法。

一、选取线性链表的实例

计算机科目包含了选取的算法、相关数据结构。从实质上看,算法及特有的数据结构并非没有关联,它们是联系的。变更了分开的思路,侧重了相关性。依循了算法的主线,多样的数据结构都被融汇于设定的这一算法。解析了相关性,借助于预设的程序语言来区分二者。经过探究可得:数据结构及算法拥有内在的深层关联,二者不可割裂。把控根本的某一数据结构、辨析存储结构,还要关联着可控的算法。这样做揭示了深层的二者关联,符合了变化的科目需要。

二、算法编程的语言

设计算法含有:初期拟定的模式、面向对象状态下的编程、泛型的编程。融汇这样的要素,构建可得适宜的算法。设定某个二元组,用它来代表数据结构。在二元组内整合了多重的数据元素,这样的基础上又创设了集合关系。经由抽象可得细化的数据类别。这类算法添加了灵活优势,且很易被调用。

相关性涵盖着泛型编程特有的途径,它被设定成典型。泛型编程抽象可得更完备的、精细的新集合,借助于它来代表算法。整合了多态模板,可被重复去调用,获取了更高水准的算法组件。经由自主的定义,明晰了数组内的一切元素,集合可得新类别。数据类型含有:堆栈及常见的表、二叉树、队列及图形等。表述这样的抽象数据,依循了面向对象的表述途径,支持表述语言。提炼获取了算法模式,遇有近似的数据结构都可依照凝练的这一算法予以运算。先要预设模块,拟定细化的类别及关联的行为。

三、算法的演示流程

线性链表的算法依循了面向对象路径下的解析,选取单链表整合了细化的较多数据项。归结了线性表、树形图及队列等。依循继承的演算即可获取双向架构的这类链表,演算的流程为:

四、探析实现的路径

构建神经网络依照的根本思路为:最小二乘算法。要调整拟定的权值,借助于梯度搜索来平衡输入及输出的误差。从现状看,BP网络是最为常见的一类神经网络,它整合了输入及输出,构建了双重的映射。数据结构及算法凸显了实践的特性,侧重培育本源的抽象思路,增添了实践类的新技能。创设新颖的算法,要考量真实的关联。实现的路径为:解析某一疑难、设计可用的算法、设定编程。

算法及创设的数据结构可延展至自动检索馆内的书目、调配交通灯、求解某一迷宫。这类算法都不可脱离生活,增添了真实性。针对于线性表,要验证它关联的链式流程。模拟退耕还林,解析最适宜的需求。这样的基础上,创设了彼此关联的精准数据结构。经由后续的细化设计,编码而后再次去调试。例如:在选修课程时,要拟定明晰的科目名称、依循的次序等。设定拓扑次序来指引后续的选修流程,可创设AOV特有的算法网络,布设顶点次序用作表述可筛选的课程。

探析相关性还可选取压力传感器,它含有噪声的干扰、振动这类的干扰信号。可构建采样电路,压力传感器增设了输出信号。BP网络可采纳任一精度来逼近连续函数,只要选取了适宜的神经元数即可。它包含着隐层,神经网络在任一精度层级内都能表现出非线性的映射。可以先去生成初始的加权系数,采纳梯度搜索以便修正原有的系数。不断予以修正,直至误差的均方符合了拟定要求,才可终结这一流程。为滤除干扰,经由EMD这样的滤波以此来获取信号。经过后续的分解,可得测重必备的稳态单值信号。

结语

算法关系着数据结构,解析现有的课节内涵,增添探究中的浓厚兴趣。演示某一算法要侧重相应的数据结构。经由慎重的演算才能缩减后续编程的偏差,培育审慎严谨的风格。授课中要增设必备的指引,提出某一疑难而后摸索并化解。归结零散的现有知识点,做好举一反三。

参考文献

[1]李晓鸿,骆嘉伟,季洁。“数据结构与算法分析”研究型实践教学的探索[J].实验室研究与探索,2012(01):121-125.

[2]刘晓静,黄维通,王晓英。西部地区CDIO理念下的数据结构与算法课程建设[J].计算机教育,2013(17):107-111.

数据结构与算法范文 篇五

关键词:数据结构;算法;换位思考法;问题求解

数据结构与算法是计算机科学与技术专业的核心基础课程之一,同时,它也是算法分析与设计、操作系统、软件工程、数据库概论、编译技术、计算机图形学、人机交互等专业基础课和专业课的先行课程。本课程主要以抽象数据类型为主线,研究常用数据结构的逻辑结构、存储结构及其所支持的运算操作;研究能够解决实际问题的经典算法;学习基本的算法分析方法。它为学生后续课程的学习以及进行计算机软件的设计和开发打下良好的基础。

1教学过程中存在的问题

数据结构与算法课程是计算机专业教学的难点。在教学过程中,我们发现学生对这门课不仅感到入门困难,而且难于驾驭,其主要表现有以下几点。

1) 高职高专学生的先导知识学习储备不足。由于高职高专的教学以“理论够用”为教学原则,因此,学生掌握基础理论知识的程度无法与本科院校学生相比。例如,数据结构与算法需要学生具备结构体类型和指针的知识,甚至能够掌握内存模型的运行机制,而对于高职高专学生来说,其先导课程C语言程序设计属于非重点或选学内容。

2) 概念过多,不利于高职高专的学生掌握。本课程涉及的基本结构包括顺序表、树、图,以及查找、排序等算法内容。特别是树和图两项内容包含大量概念和理论,其中许多必须掌握的内容使学生产生畏难情绪。

3) 高职高专学生在实践课中没有养成阅读英文文档的习惯。学习编程的最好方法是阅读和查看MSDN,但高职高专的学生英语底子差,不太愿意阅读英文文档,这影响了实践课的教学效果。

从高职高专院校的教师角度来看,存在以下问题。

1) 高职高专院校的老师的教学模式过于单一,较少传授学生解决现实问题的方法。在数据结构教学过程中,高职教师一般将授课重点放在讲授数据的基本结构上,选择的案例只能用于数据结构算法的验证和说明[1]。这种教学模式对高职学生非常不利,因为,仅从基本结构这个单一的角度进行教学,只能使大多数学生在学习过程 “依葫芦画瓢”,一旦遇到问题就束手无策,乃至产生畏难和厌学情绪。很多学生常常觉得教科书的内容与具体的项目设计相距甚远,给人一种无从下手的感觉。在学完数据结构与算法课程后,学生既不能灵活运用所学知识,也难以实现从数据结构基础知识的掌握到实际应用的飞跃,这与高职院校“实用为主”的教学原则不符,也不利于应用型人才的培养。

2) 高职高专院校的老师的教学手段丰富,但是往往不涉及具体问题的分析,以及基于问题提出对应的解决方法,只是一味地追求直观效果。有些老师甚至根本不讲数据结构的抽象表示,在数据结构算法的处理上也不考虑应用场合,而是直接提供代码给学生。当然,这样做似乎对初学者有一定好处,但无助于学生培养正确的思考方法,另外,它让学生只注重实现程序,而不考虑如何进行算法设计以及怎样选择合适的数据结构来表达自己的算法思想。我们认为,在“够用为度”的教学原则下,教师只能在教学内容上进行适当的删减,而不能仅局限于“简单地教,简单地学”。

3) 对于高职高专院校而言,很多老师不具备完整的教学体系思想,不知道如何处理数据结构、算法和实现代码之间的联系和区别。有些老师对课程内容的理解不够深入,特别是没有把理论与实际应用问题联系起来。这势必造成学生不能理解学习数据结构课程的意义,不能形成对课程内容的整体概念,也不知道学习这门课程有什么用,不知道这门课程在专业体系中的位置。对于高职学生而言,数据结构为什么存在?在项目实践中如何灵活应用?这些问题如果不得到解决,那么在高职院校开设这门课程就变得毫无意义。

2教学改革中的几点建议

对于高职高专院校的学生来说,提高他们的学习兴趣至关重要。虽然高职生的基础知识薄弱、学习动力不足、自信心不强,自我管理以及自我约束力较差,但是,他们思想比较活跃,动手能力和社会适应性较强。因此,他们更需要老师耐心、正确的引导。对此,我们可以从以下几个方面进行改进。

2.1激发学生的学习兴趣

“兴趣是最好的老师”。培养学生的兴趣和维持前期的学习热情,并让学生在以后的项目实践中主动运用本门课程中学习到的知识,这是每个高职教师的责任和义务。我们知道,在这门课程中存在很多经典算法,而每一个经典算法的背后都有一个计算机界的传奇人物[2]。例如KMP算法中的D.E.Knuth,最短路径算法中的Dijkstra,等等,他们每个人都有一个传奇人生,上课时,教师可以通过讲述他们对计算机发展所作的突出贡献,鼓励学生,激发学生的学习热情。而在实践课程中,我们主要采用“换位思考法”,锻炼学生独立编程能力。梁肇新在《编程高手箴言》一书中提到:我就是程序,程序就是我。学生在上实践课时,很多程序细节问题都搞不清楚,这严重挫伤了学生的学习积极性。由于这些编程问题不可能在上课时被一一解答,所以,学生只能通过平时积累和应用,逐步提高自己的动手能力。上这门课时,教师要多鼓励学生把自己想象成“编译器”,不要只是简单地把它作为一个工具,而要把我们的编程工具“人性化”,编程过程只是我们在和一个“法官”聊天而已,而这个法官又无比“公正”。如果把自己想象成“编译器”,在学习语法时就可以很好地进行“换位”思考,知道自己需要什么,如何做才能编译和调试成功,学习兴趣也会随之提高。

2.2选取合适的教学内容

高职院校在开设数据结构与算法课程时,考虑到学校和学生的特殊性,总课时一般安排为64个课时,理论和实践各32个课时。内容多、课时少这对矛盾如何解决?如何在比较短的时间内培养学生独立解决问题的能力?这都是值得研究和探讨的问题[3]。

众所周知,本门课程包括表、树、图3种数据结构,而每一种数据结构又包括3个方面的内容――逻辑结构/存储结构/操作实现;还包括两类典型算法――查找/排序。这么多教学内容不可能在一个学期内完全教授给学生,所以,我们对教学内容进行了适当的删减,以便重点突出。在不影响高职院校教学原则的前提下,我们将教学重点放在线性表结构和通过时间复杂度分析选择合适的数据结构这两部分内容上(如图1所示)。对于非线性结构这部分内容,我们着重

讲解概念,具体用法可以留给学生作为课外作业。这种选择可以使学生养成良好的思维习惯和正确的学习方法,以求达到“运用之妙,存乎一心”。

2.3巩固先导课程的基础

在先导课程C语言程序设计中,学生没有系统地学习结构体和指针类型,也没有掌握动态内存分配的知识,所以,在本门课程教学中必须首先弥补以前的不足,但我们又面临新的问题,即系统学习与学时数不足的矛盾。对此,我们有如下建议:讲解在运行期时程序在内存中的分布区域,以及各个内存区的作用就足够学生理解本课程知识(如图2所示)。图2中模型[4]的讲解适合贯穿整个实践课程的教学过程,把这个模型讲深讲透,让学生彻底掌握,有利于高职学生独立思考和解决问题能力的培养。这个程序内存分布模型可以很好地满足高职院校的教学目标,让学生在具备较强编码和调试能力的同时,又具备解决实际问题的思想和技术。

2.4传统和现代教学手段相结合

高职院校一般硬件设施齐全,教学条件优越,给教师和学生提供了现代化的教学环境。不可否认,现代教学手段具有生动、直观和信息量大等特点,对于提高教学效果有促进作用,例如,多媒体教学课件(PPT课件和Flas等)和丰富的网络资源,等等。从本人多年的教学实践来看,现代媒体对提高某些课程的教学效果作用显著,但对于理论性很强的数据结构等课程而言,只能起到辅助作用。事实上,美国数据结构教学仍以讲授为主[5],所以,传统教育手段对本门课程不可或缺。在本门课程中,讲解三种数据结构的概念和性质时,可以多用PPT等现代教学手段;讲解算法的动态变化时,多用黑板+粉笔头的方式演示其动态变化过程[6-8]。

2.5问题驱动教学法

福州大学吴英杰等老师[9]在该校引入面向问题的教学模式,取得了良好的效果。在高职院校采用该教学模式,选择的问题必须具有代表意义,足够简单而且能够帮助学生快速入门。从图3可知,在传统的教学模式下,教师只是按照“逻辑结构存储结构编程实现”的流程讲解,学生并不能理解数据结构的意义。如果采用问题驱动的教学方法,教师必须按照“问题定义算法设计选择数据结构”的流程讲解,这种讲解方法可以帮助学生很快抓住数据结构的精髓,了解算法与数据结构之间的关系。在教学实践中,我们选择了3个典型问题:最大子序列和问题、二分搜索问题和快速排序问题。选择这3个问题的根本原因在于它们只需要用顺序表或数组就可以实现;第1个问题的引入在于其历史发展过程符合我们的思维习惯,就是一个不断深入理解问题,不断优化的过程;第2个问题的引入在于90%的计算机专家不能在2小时内写出完全正确的二分搜索算法;第3个问题的引入在于快速排序算法的实现只能选择顺序表或数组实现,而不能选择链表来实现。通过上面3个典型算法的实践课,高职学生能够很快地掌握验证和优化程序以及选择合适数据结构实现算法思想等能力。

2.6调整实践内容,提高学生能力

如果实践课只是使用枯燥的控制台程序界面,许多学生很快就会失去学习的兴趣和钻研的动力。实践课应该生动、活泼、有趣,因此,我们在实践课中引入简单游戏开发项目,例如走迷宫和5子棋等游戏。这些游戏都用到了顺序表等简单的数据结构和查找等算法知识,完全满足高职院校的教学要求。在教学实践中,我们一般提供游戏的整体框架代码,要求学生独立完成算法设计和代码实现。我们之所以这样做,一是因为实践课只有32个课时,没必要让学生设计软件的整体框架;二是因为不能让学生产生“程序=软件”的错误思想。

2.7改变考核方式

数据结构与算法课程一般采用最终卷面成绩的考核方式。根据高职院校的教学原则,应加大实践课在最终成绩的比重。通过实践,我们发现阶段性成果

的展示和分阶段打分在教学中有良好的教学效果,通过这种考核方法,在平时即对学生从严要求,高职学生的综合能力得到提高,潜力也能得到充分挖掘。

3结语

作为一所高职院校,我院在数据结构与算法教学改革与实践中取得了一系列丰硕的成果。我院ACM- ICPC代表队在2007、2008、2009年度亚洲区现场赛中曾获得优胜奖,2007、2008年四川省大学生程序设计大赛中曾获得二三等奖。同时,计算机科学与技术系的普通学生的出勤率和及格率得到提升,学习兴趣也有所提高。

数据结构与算法课程尽管难教难学,但如果采用正确有效的教学方法+生动活泼的学习方式+严格管理的考核方式,仍然可以取得良好的效果。

参考文献:

[1] 周泽辉。 浅谈高职学院数据结构课程的算法驱动教学[J]. 科教文汇(中旬刊),2009(3):121-122.

[2] 苏前敏。 计算机科学技术史的独特教育功能探讨[J]. 上海工程技术大学教育研究,2007(1):20-23.

[3] 卢洁,冯家勋。 理工科课程教学整体改革探索[J]. 高等工程教育研究,2009(2):137-139.

[4] 钱能。 C++程序设计教程[M]. 2版。 北京:清华大学出版社,2005:145-149.

[5] 严莉,杨宗凯,刘三 . 关于高校教师与网络教学的研究综述[J]. 电化教育研究,2009(4):39-42.

[6] 蔡敏,郑尚志,梁宝华。 数据结构课程教学改革之我见[J]. 计算机教育,2009(4):50-51.

[7] 张桂芬,李海滨。 数据结构实验教学的改革与探索[J]. 高教论坛,2008(3):103-104.

[8] 周玉林,赖鑫生。 数据结构教改中的问题研究与探讨[J]. 上饶师范学院学报,2008(3):84-88.

[9] 吴英杰,王一蕾,王晓东。 面向问题求解的实践教学模式:算法与数据结构实践教学改革[J]. 计算机教育,2007(7):29-31.

Suggestions of Teaching and Learning Data Structures and Algorithms on the College

FAN Jun-qing1, CHEN Wen-fei2, XU Xue-feng3, YU Xin-qiao3, HOU Zong-hao3

(1. School of Computer, China University of Geosciences, Wuhan 430074, China; 2.Department of Computer Science, Wuhan

University, Wuhan 430072, China; 3.Department of Computer Science, Chengdu Neusoft Vocational Institute of Information

Technology, Dujiangyan 611844, China)

数据结构与算法 篇六

关键词:数据结构;算法;教学改革;实践

中图分类号:G424 文献标识码:A 文章编号:1009-3044(2014)32-7677-02

Abstract: Data Structure and Algorithm is the core course of computer specialty, and plays a decisive role in the employment of students. This paper analyzes the teaching situation of the course at present, and summarizes some urgent problems to be resolved. The reform measures response to the problems above are described and practiced. This paper has certain reference meaning to teaching of Data Structure and Algorithm and the associated computer courses.

Key words: data structure; algorithm; teaching reform; practice

“数据结构和算法”课程涉及数据在计算机中的表示、组织与处理,以及相应的算法设计和算法性能分析,为计算机软件开发人员提供必要的专业基础知识和技能训练,同时也是计算机应用相关学科所必须掌握的课程。通过本课程的学习,使学生熟练掌握计算机程序设计中常见的各种数据的逻辑结构、存储结构及相应的运算,初步掌握算法的时间分析和空间分析的技术,并能根据计算机加工的数据特性运用数据结构的知识和技巧设计出更好的算法和程序,培养了大家数据抽象能力、算法构造性思维方法能力及逻辑思维能力,并进一步培养基本的良好的程序设计能力。其中的知识与方法,无论对学生进一步学习计算机领域的其他课程,还是对今后从事研究、应用开发及技术管理工作都发挥着重要的作用。但本课程理论性强,算法抽象,理解困难,不易掌握。该文针对高职的实际情况,对“数据结构和算法”课程教学改革进行了探索和实践。

1 教学现状分析

“数据结构和算法”课程历来被看作是计算机专业的教学难点。多年来,学生普遍感觉此课程学习困难、难以理解、不好掌握。主要有如下几个原因:1) 学生文化基础普遍偏差、参差不齐。学生入学成绩分数相对较低并且相差悬殊,对问题的分析能力、逻辑思维能力较弱,缺乏正确的学习方法。2) 自我管理和自我约束能力不强、缺乏学习的积极性和主动性。大学学习给予同学们的自学空间较大,管理方面也不如中学那样严格,从而导致学生上课听不懂、下课不愿学。3) 没有端正的学习态度。高职学生受到高中时个别老师的误导,以为上大学玩玩也可以顺利毕业,找到工作。同时也受到大学期间个别老师的误导,以为期末划划重点,最后突击,背背题目就可以过关。课上上网、玩手机、打游戏等等,课下不投入精力。4) 学生的计算机科学理论有所欠缺,对理论化的教学方法感到吃力。高职计算机课程主要以实用为主,课上理论讲授较少或几乎没有,学生对理论内容有畏难情绪,难以接受。5) 学生的前导课程基础不牢。学生普遍程序设计课程掌握的不好,没有养成独立的思维和良好的学习习惯,缺乏实际动手能力或动手能力不强。6) 实验内容设置不合理。实验大部分是验证性的,学生不需要自己去考虑各种可能的解决方案并找到最合适的方法,上机编程变成了简单的文字输人。7) 教师现场指导顾此失彼。由于学生人数相对较多,程序代码开发过程中学生问题各异,在课程有限的时间里辅导不能及时到位。8) 考核机制不完善,课程成绩主要是根据学生上机的出勤和提交的实验报告情况,再与期末考试结合给出,平时激励不到位,考核不合理。

2 教学改革与实践

通过上面对目前教学中存在问题的分析,我们明确了传统的课程教学已经不适应新形势的要求,实践动手能力欠缺,思维僵化和编程能力不强的学生,没有就业竞争力。这就要求数据结构和算法课程教师结合高职的实际情况,从数据结构的教学特点出发,明确教学目的,制订合理教学方案,强化学生解决问题的思维能力和实际动手能力,提高学生的编程能力,真正提高教学效果,最终提升学生的就业竞争力。针对以上问题,该文给出了如下的教学对策:

1) 针对高职学生文化基础普遍较差,学习习惯不好,自我管理和自我约束能力不强,缺乏学习的主动性等特点,我们在数据结构课程教学过程中引入了趣味教学,并加强教师与学生间的沟通。趣味教学旨在改变传统的教学方法和教学手段#活跃课堂气氛,把枯燥、抽象的知识通过某种有趣的、学生易于接受的方式表现出来,从而达到提高学生学习效率和教学质量的目的,它适合于任何形式的教学过程,特别适用于高职教育教学[1]。堆栈,是仅能在一端添加、删除对象的数据结构,我们可以以自助餐厅里的弹簧托盘举例,如图1所示。先来分析托盘的原理,在弹簧托盘上新增托盘后,整叠托盘重量增加,导致下面的职称弹簧被压缩,而整叠托盘的高度仍保持在一个固定的位置。拿托盘正好与此相反。之后让大家分析思考使用Java语言如何实现这样一个弹簧托盘。由于这个例子贴近生活,学生往往会有想法,课堂气氛活跃起来,能够开动脑筋,动起手来编码。实现了基本的弹簧托盘后,在引导学生一起实现一个自动弹簧托盘,让它能够给出目前的使用状态,比如有多少个托盘,托盘太多超过负荷或者没有托盘了要自动提示警告信息,让托盘变得只能起来,也就是实现我们讲授的堆栈。通过这样带有趣味性和贴近生活的例子,来调动课堂的活跃气氛,激发了学生的学习兴趣,提高学生学习的积极性和主动性,学生能够积极的预习、复习相关知识,逐渐养成良好的学习习惯。教学是一个双向互动的过程,教师在教学的过程中要从学生的实际情况出发,采用学生容易接受的教学方法讲授教学内容,才能形成良好的师生关系。教师课前备课准备好“问题”,课上通过问题引导学生积极思考,踊跃发言,将传统的“一言堂”编程“群英会”,激发学生学习的兴趣,鼓励学生之间的交流与沟通,营造融洽的课题气氛。只有这样学生对课程知识才更容易接受和掌握,才会取得良好的教学效果。

2) 针对学生没有端正的学习态度和对理论题目有畏难情绪的问题,在课堂上直接引入往届学生面试的试题或从《Java面试宝典》等书籍中挑选合适的例题来给学生讲解或让学生独立完成,比如图2中所示的题目。这个题目对高职学生有一定的难度,由于畏难情绪,大部分学生不愿意思考解答,对这种题目很是反感。但当你和学生们讲清是以后找工作的面试题时,他们明显产生兴趣,注意力一下集中起来,再加上老师在黑板上上画图分步讲解,能收到很好的教学效果。如果能将往届学生请入课堂现身说法,再加上平时课堂上对相关公司对需求人才的知识结构的宣传讲解,整个教学就能产生比较理想的效果。通过这样找工作面试直接相关的例子,来吸引学生课堂的注意力,激发学习兴趣,提高学生学习的积极性和主动性,让学生自发的产生学习的动力。

[在一个单链表中,若删除p所指结点的后续结点,则执行____。

3) 针对学生的前导课程基础不牢问题,加强对Java语言课程内容的复习和逻辑思维能力的训练。数据结构与算法课程的学习是一个承前启后的过程,如果没有学好Java课程,本课程的学习效果必将大打折扣。数据结构的算法中大量使用Java语言中的字符串、程序结构知识和集合类等编程基础知识,数据结构课程学习过程中主要就是运用这些知识点以及相关的逻辑思维能力来分析、解决问题。对于大部分刚学完Java语言的学生来说,在Java语言的运用和逻辑思维能力还不强的情况下直接切入主题,他们就会感到茫然。为了解决这个问题,在开课之初,利用一、两次课的时间来复习Java语言的相关知识,并引导学生训练课程中使用到的基本技巧和思维方式。这样才能为数据结构与算法课程的学习打下良好的基础。

4) 针对课程的实验内容设置问题,教学中要努力做到让实验内容尽量与工程实际紧密结合。数据结构是一门紧密结合实践,解决现实世界问题的课程,因此合理设汁实验对于学生解决实际问题的能力的提高有很大帮助[2]。教师在教学过程中一定要注重课程内容的实用性,并强调数据结构和相关算法的灵活应用。本人在教学过程中栈结构应用选取了迷宫问题作为教学考核案例,队列结构应用选取银行排队仿真系统作为考核案例,串处理应用选取文本编辑器作为考核案例,图结构的实现和应用选取旅游线路安排系统作为考核案例。通过贴近实际的案例,学生学到实用开发技能,并训练了将理论结合到实际项目开发中去的实用技能,才能取得较好效果。

5) 针对教师现场指导不到位的问题,我们采用分组教学模式。有学生组成4-6人为一组的学习小组,针对学生对所学内容不同的掌握程度,对学生区别对待,选拨知识掌握较好并有一定组织能力的优秀学生作为组长,让组长辅导组员,让优秀学生在帮助

别人解决问题的同时提高自己的能力,让他们带领组员共同开发,当组长不能解决时,再由老师解答。这样往往由于进取心和好胜心的趋势,作为组长的同学更能认真、踏实的学习,进步明显。而对与学习稍差一些的学生适当降低要求,并且让组长及时指导,增强他们学习的信心,他们也能迅速跟上。这样就照顾到了全班学生的不同学习情况,能让所有同学都能稳步提高。

6) 针对课程考核不完善的问题,我们采用多样化的考核方法。在数据结构与算法课程教学过程中实用了全方位、多角度的考核方式。我们把职业素养、实际操作、技能比赛相结合,把学院期中、期末考核与认证考试考核相结合,强调项目实践能力。考核时间由期中、期末这样的点拉长为过程考核的线,过程性考核与结果性考核相结合。考核主体由个人变为个人与小组考核相结合,并且自评、互评与教师评价相结合。多样化的考核让学生更充分的利用了在校时间,促进了学生的学习。

3 结束语

数据结构这门课程不论对学生学习还是教师教学都有一定难度,优秀的教学方法和高效的实施方案值得我们去研究。教学改革不是目标,而是一个过程,需要在教学过程中通过不断地探索、总结,形成一个集教学内容、教学方法、教学手段和考核方式等完整的教学体系,提高学生运用数据结构的知识分析问题、运用相应的算法动手编程解决问题的能力,努力提升课程的教学效果。该文分析了目前数据结构与算法课程存在的问题并给出了教学改革的举措并进行了实践,取得了一定的效果,下一步我们将本文的教学改革成果应用于移动教学平台上,期待能发挥更大的作用。

参考文献:

[1] 王剑, 钟元生, 罗成, 等。 高职数据结构课程趣味教学的实践[J]. 职教论坛, 2010(17):31-32.

[2] 申华, 肖莹莹。 数椐结构课程的实践性教学模式[J]. 计算机教育, 20l2(4):103-105.

[3] 唐玉媛。 高职院校数据结构课程教学研究[J]河北师范大学学报:教育科学版, 2009,11(04):127-129.

[4] 蔡红。 高职数据结构课程教学改革探索[J]. 中国职业技术教育, 2011(14):87-89.

[5] 陈广。 高职“数据结构”课程教学改革研究[J]. 教育与职业, 2011(27):35-36.

上面内容就是壶知道为您整理出来的6篇《数据结构与算法》,希望对您的写作有所帮助,更多范文样本、模板格式尽在壶知道。

【数据结构与算法】相关文章

浅谈数据结构及算法之间的关系最新6篇12-29

数据结构与算法精选4篇12-15

读不完的大书仿写小练笔精选7篇09-30

读不完的大书仿照课文写一写(精选5篇)09-30

苏轼《定风波》赏析精选10篇10-13

读不完的大书仿照课文写一写小练笔【优09-30

试卷反思怎么写【优秀7篇】10-05

教育教学叙事案例优秀10篇10-09

课文《四季》仿写优秀9篇11-10

合家欢乐家庭范文(精选6篇)10-22

180 183237