数据结构与算法范例6篇

数据结构与算法

数据结构与算法范文1

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

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)

数据结构与算法范文2

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

中图分类号: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.

数据结构与算法范文3

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

一、课程主要特色

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1.教学队伍的建设

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

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

2.教学内容的组织

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

3.教学方法与教学手段

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

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

4.多元化考核方法

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

5.实践教学

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

6.教学管理

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

三、相关教材建设

数据结构与算法范文4

关键词: “数据结构与算法分析” 课程群 分层实践 分段管控

课程群是对教学计划中有相互影响、互动、有序、相互间可构成完整的教学内容体系的相关几门课程组成一个课程间相互连接、相互配合、相互照应的课程群体[1]。2014年提出建设程序开发类课程群,包括C语言程序设计、C++程序设计、数据结构与算法分析、JAVA程序设计、web程序设计、组件开发技术、软件设计模式七门课程。其中“数据结构与算法分析”课程在整个课程群具有承上启下、举足轻重的地位,决定程序开发类课程群的成效。

一、“数据结构与算法分析”课程的现状

1.课程理论性强,难度大。

调研发现:非计算机专业近80%的学生都感觉课程难,即使计算机专业的有近50%的学生,感觉该课程难学,这种畏惧思想影响学习兴趣。

2.先导课程掌握不扎实,课程推进困难。

教学计划中C++程序设计、实践和该课程分别安排在第2和第3个学期。暑假将两门课割裂了,造成是否介绍先导课的困境。

3.学生动手水平参差不齐,单一的实践安排难以满足不同的需求。

目前,课程的实践安排对所有的学生相同,对于动手强的学生可能在寝室就完成题目,而对编程能力不强的学生可能根本不知该如何下手,久而久之学生就失去开发热情。

4.课程管控不足,课程考核不能反映学生的真实水平。

目前课程的评定以卷面成绩为主,实践证明有些学生根本不会写代码但他却能拿到很高的分数。

二、教学改革措施

1.课程群中相关课程开课时间的精细化安排。

(1)开课时间安排。

C++程序设计包括64上课课时和16实践课时,将C++课程实践调整到第3学期第1周上,而数据结构与算法分析课程从第2周以后开始上,这样就将两门课紧密地衔接起来。这种一门课程一分为二的方法促进了C++课程,同时也保证“数据结构与算法分析”课程的顺利进行。

(2)教学内容及学时分配。

为呼应课程群中的后续课程,该课程内容是贯穿程序设计、软件设计模式的思想和观点。该课程采用面向对象和抽象数据类型观点介绍数据结构,集中体现分解、抽象和信息隐蔽的基本原则,抽象数据类型是中枢,展示信息结构转换的三个重要阶段:数学模型、抽象数据类型、数据结构与算法。其理论教学环节的安排为:数据结构的基本概念(2),表、栈和队列(6),树(8),散列(4),优先队列(7),排序(12),不相交集(4),图论算法(7),算法设计技巧(4),摊还分析(4),高级数据结构(6);课内实践的安排:栈和队列(2),表达式树(2),散列、优先队列(2),排序(2),不相交集(2),深度优先搜索应用(2),贪心、分治算法(2),AA树、treap数(2)。

2.课堂教学模式改革

(1)注重启发式教学,建立自主学习、合作学习相结合的教学模式。

为强调思维训练,采用讲、做穿插的授课方式,教师采用示例案例授课时学生采用自主学习模式,是教-做-答疑的互动、有反馈方式。它强调教中实践、实践中思考、交流中提升;自主学习完后各小组通过“以强带弱、以老带新”的方式合作完成综合实践作业。

具体讲解时,(1)首先引入案例,然后给出C++实现的方法,最后详细展开相应数据结构及操作实现;(2)一题多解、一题多语,如对同一问题采用不同的数据结构实现方法,对比讲解,多语言实现为拓展作业;(3)难点分散,如将栈与非递归处理技术分别在栈、二叉树非递归算法、快速排序与归并排序的非递归算法等多处讲解;(4)图示讲解和动画展示相结合。

(2)标准化教学与微课程教学模式相结合。

为了确保课程的可持续发展,课程采用项目组集体备课、集体讨论、分头准备的方式。课程组骨干教师经过多次讨论后修订了课程教学大纲,形成了标准教案、PPT及算法演示视频。为充分利用学生的课余时间,采用课程微课程化,微课视频一般10分钟左右[2],选择与生活比较贴近的数据结构(比如栈、队列等)和基础实践内容微课化。

3.项目驱动的分层实践教学模式研究。

教育心理学家发现:学习是累积性的,较复杂、较高级的学习是建立在基础性的学习基础之上的[3]。因此,课程的实践教学以贯穿课程群的项目进行驱动,提出“注重基础、综合应用、提高创新”的三层次实验教学模式,以基础、设计、综合三个方面的实践能力培养为中心,全方位地培养学生的动手能力和创新能力。

基础类实践通常是对教材上所涉及的数据结构及相关操作进行上机验证,要求学生掌握相关数据结构,提高学生的软件设计规范化能力。这类实践通常在介绍完相关知识后以课程作业的方式发放,要求学生在规定时间内完成,教师以晚自习的形式进行个别指导;设计类实践要求学生对给定的题目进行数据结构的设计及算法实现,题目是从贯穿课程群中的项目案例中切割出来的。实践中我们鼓励学生一题多解,并分析不同解的时、空代价。这类实验通常是课程内实验题目,要求每个学生独自完成,教师全程指导、重点考核;综合类实践是对C++实践课程中学生已完成题目的重新设计,以小组为完成单位,人员分组原则上是C++实践的人员分组。该类实践培养学生分析、设计实际项目的能力和创新能力。教师对有强烈要求的学生通过答疑的方式进行指导。各小组完成后需要进行结题答辩,答辩中教师会对完成情况进行评价,从而引出后续课程。

4.课程考核与过程控制。

我们采用分段控制的多元化实践考核方式:期末机考30%+基础实践20%(程序代码+报告+随机面试)+设计实践40%(课前准备材料+完成代码+报告)+综合实践10%(报告+答辩)。考核方式强调对课程的过程监控,基础实践的每一次完成情况能够给教师提供重点监控的学生名单,通过晚自习的重点指导确保学生弄懂相关知识点、顺利进行实践课任务,为保证设计实践课的完成质量,要求学生在课前精心准备并提交准备材料。综合实践强调以强带弱,最后通过总结引出下一门课程,从而保持学生长久的学习动力。

三、结语

数据结构与算法设计是程序开发类课程群中最重要的一门课程,其成败直接决定整个课程群的成败。在不影响其他课程下的课程群开课时间微调保证课程的顺利进行;创新的教学课堂模式激发学生自主式、探索式学习;项目驱动的实践模式将课程群中的课程更紧密地结合起来;分层的实践教学满足不同层次学生的需求;教学过程的管控进一步确保教学的顺利推进。该课程改革对课程群中其他课程改革有积极的作用。

参考文献:

[1]马赛,李方能,吴正国,卜乐平.《信号与系统》课程群的建设与教学改革探索[J].高等教育研究学报,2010.3.

[2]梁乐明,曹俏俏,张宝辉.微课程设计模式研究―基于国内外微课程的对比分析[J].开放教育研究,2013,19(1).

[3]哈斯.《数据结构》课程中使用逐步演示法进行算法教学的实验研究[D].呼和浩特:内蒙古师范大学,2007.

数据结构与算法范文5

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

中图分类号: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.

数据结构与算法范文6

关键词:计算机软件 数据结构 算法

中图分类号:TP 文献标识码:A 文章编号:1007-0745(2013)06-0384-01

一、引言

随着计算机在在我国各行各业发挥的作用日益凸显,计算机的数据结构只的是信息在计算机 寄存方式和信息的集合和整理。计算机结构与算法关联甚广,因此加强计算机数据结构算法的研究对于计算机研究十分重要。下面我们将对计算机基础数据的算法进行相应的介绍。

二、计算机软件基础数据结构之算法概述

(一)算法的两要素

算法包括两要素,一部分指的是对信息的操作处理,这部分对信息的操作处理包括四种处理方式,分别为逻辑符合,数学计算,信息的对比以及信息的传递另一部分指的是对信息的处理方式的操作,它引导指令进行有序的进行。

(二)算法的特征

算法是有限指令的整体,这些指令表明了处理问题的步骤,针对相应的问题,算法可以对定值按照原先设定的指令进行运算处理,并且通过一定数量的运算后传送出计算机得出的最后结果。这就要求算法包含有限的指令,同时各项指令都 应该明确,不能多层含义,同时也要求这些指令都是计算机能力范围之内的,超出计算机范围以外的不仅不能起到积极效果反而会对以后的操作造成一定负面影响。算法对处理对象没有要求,同时被处理对象也不会对这些指令产生影响。

(三)算法的表示

很多人可以通过文字或者符合翻译算法,一般翻译法包括一般性文字,C语言,程序图,PAD图等。其中一般性文字和C语言是具体详细的描述算法的。他可以使学习者更容易学会。

(四)常用的算法

1.枚举法

枚举法是指对信息的某些独特特点估计运行结果的区域,然后通过一些手段检验该区域的每种结果,直到验证到所有饿都符合才加以停止。这些验证有的是可以满足算法的要求的,同时也存在着一些不能满足算法要求的,这些满足的对象就是计算机最终会传递的结果,那些不能满足算法要求的就表明该算法无解。

枚举法具有工作原理简单,容易接受的优点,但是枚举法有显著的缺点就是工程量大工作时间长,枚举法一般只适用于无法用别的方法解决的问题。

枚举法包括以下步骤:

1.1通过对问题的思考,预估问题的大致方向

1.2选出合适的枚举形式。枚举形式包括顺序法,对比法类型列举法等

1.3将可能的方向进行一一验证

1.4确定哪些情况是合理的哪些是不合理的,得出最终结果。

2.迭代法

迭代法与枚举法相比比较粗糙,生活中很多方面都需要这种方式进行问题的处理它的显著特点就是可以将一个麻烦的问题转化成为比较简单迭代算式,这样就会形成问题由难至简的循环,从何最终得出答案。

3.递推和递归法

递推和递归法是比较常用的一种方法,通过对一些特殊的公式的性质加以推导得出结果。递推法和递归法从简单入手,把前面得出的结果进行到后面的推理之间可以更加方便结果的得出。

三、计算机软件基础数据结构之算法的设计要求

算法就如同人与计算机之间进行沟通和交流的语言,通过算法作为中介可以加强人与计算机的距离,让计算机按照预先设定的指令一样去执行任务。但是要遵循一定的原则。

(一)正确性

设计者首先要按照算法的规则编译指令进行编译,只有按照规则的编译才能实现和计算机的交流,让它按照规定执行任务。如果出现错误的指令那么将会对引出不准确的结果。

(二)可读性

算法一定要具有可读性的原则,只有可读性才能让人对算法一目了然,如果算法过于复杂和晦涩会让人难以理解原理。

(三)稳定性

算法的稳定可以使得计算机在运用时的稳定性能的保持,试问如果计算机在运行的时候总会出现错误,给人的感觉整体下降。稳定性对于算法来说至关重要,同时对于计算机的规范使用也至关重要。

(四)高效低耗能性

计算机内部器件的好坏对于计算机性能的高低具有决定性作用。算法亦如此,好的算法可以在最短的时间得出答案并且使用最低的耗能得出答案。

四、计算机软件基础数据之算法的复杂性分析

(一)运行时间长

一般设计者并不是根据计算机的算法衡量时长,算法运行的载体依然是计算机,因此计算机地运行速度是受很多因素的影响的。一样的计算法在不同的载体上会产生不一样的效果,这一效果并不是对算法效率的评判而是表现在时间的耗损上,耗损程度作为评价算法的好坏标准。

(二)内存消耗

内存消耗指的是计算机在运行算法时需要用到空间大小的尺度。内存消耗有传入传出信息所占的内存以及算法在运行过程中暂时占用内存的大小。传入传出信息占据的比例和问题相关,并不会随着算法的变化而变化,在运行过程中暂时性占用的内存大小往往是由算法决定的,好的算法可以占据比较小的内存,相反坏的内存则会占据教的的内存。

五、结束语

计算机在近年来以及其迅速的脚步占领各个行业,计算机软件基础数据结构之算法是学校者了解计算机数据结构的基础,通过对它的学习可以帮助学生更科学的认识到计算机的运行情况,并且使得学习者更好的掌握。本文从计算机软件基础数据结构之算法概述,计算机软件基础数据结构之算法的设计要求,以及计算机软件基础数据之算法的复杂性分析进行了相关的介绍。

参考文献:

[1]杜永强,李清玲.多连通域Voronoi图的算法及数据存储[J].计算机工程与设计,2006(08)

[2]汪丽才,李勇.高师“数据结构”教学法解析[J].绵阳师范学院学报,2007(08)

[3]李盘荣.“数独”游戏的算法研究与实现[J].电脑知识与技术,2008(26)

[4]冯桂莲.数据结构教学中存在的问题及解决方案[J].福建电脑,2006(12)

[5]连远锋,张秀美,李莉.数据结构实验教学课程体系研究[J].计算机教育,2011(13)

[6]连进.数据结构课程教学方法的研究[J].湖北经济学院学报(人文社会科学版), 2008(05)

[7]王岚,张倩茜.《数据结构》教学探讨[J].湖北教育学院学报,2005(05)

[8]崔玲玲.浅谈数据结构学习方法[J].电脑知识与技术,2005(27)

[9]徐彪,万莎,孟战生.短波频段基础数据自动采集及分析系统[J].中国无线电,2011(07)