《数据结构》课程标准英文名称:DataStructure学分:4适用专业:嵌入式系统工程一、课程性质《数据结构》是嵌入式系统工程专业的一门专业基础必修课程。本课程面向Android软件工程师的岗位需求,针对JDK1.6,主要讲述集合、线性表、堆栈和队列、树和二叉树、查找和排序等基本数据结构和算法。本课程着重基本知识的掌握和基本技能的训练,为利用Java语言进一步开发基于Android的APP应用奠定基础。二、课程理念数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。精心选择的数据结构可以带来更高的运行或存储效率,数据结构往往同高兴的检索算法和索引技术有关。将CDIO理念应用在数据结构课程中。CDIO是近年来国际工程教育改革的最新成果。CDIO代表构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate),它以产品研发到产品运行的生命周期为载体,让学生以主动的、实践的、课程之间有机联系的方式学习工程。1、课程地位理念在许多类型的程序设计中,数据结构的选择是一个基本的设计考虑因素。许多大型的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。选择了数据结构,算法随之确定,是数据而不是算法是系统构造的关键因素。2、课程学情理念本课程开设在嵌入式系统工程专科第一学期,学生在学习本课程前已具备计算机基础、java基础等知识,本课程力图让学生学会在java语言环境下,运用面向对象的思想编写规范的代码,实现经典的数据结构和算法。熟悉常用的数据结构和算法,使学生初步具备一个优秀的软件开发人员所应有的基本能力。3、课程内容理念根据本课程的教学目标,确定了课程内容体系结构的五个组成部分:集合结构、线性表、堆栈和队列、树和二叉树、查找和排序。内容主要包括:绪论、集合结构的线性存储实现方法、集合结构的链式存储实现方法、线性表、有序线性表、堆栈、队列、树、二叉树、二叉树的遍历、顺序查找、折半查找、插入排序、选择排序等。4、课程要求理念《数据结构》是一门偏重理论的课程,有很强的理论性。在多年的教学研究和教学实践中,《数据结构》形成了独具特色的“七化”教学方法,即教学资源立体化、教师精讲主导化、学生学习团队化、教学过程流水化、程序项目核心化、知识技能点索引化、和java语言结合化。5、课程考核理念如何客观反映出学生对数据结构的理解、掌握、综合应用的实际情况,传统的闭卷考试有不完善的地方,应该对考核内容和形式进行适当的调整,过程评价与终结评价相结合,形成全方位、更加公正客观的评价体系。考核方法采用“N+2”成绩评定方式,采用“课堂考勤+课堂笔记+期末考试”的方式。三、课程目标(一)总目标为学生的职业素质和职业技能的形成服务;为今后学习Android编程技术奠定坚实的基础;为IT企业输送高质量的从业者。(二)分目标1、知识目标(1)了解数据结构课程的体系结构,掌握数据结构的基本概念和基础知识,能够集合java语言实现基本的数据结构和算法。(2)掌握集合结构,能够运用java语言实现线性和链式存储结构的集合;(3)掌握线性表结构,能够运用Java语言实现线性表结构;(4)掌握堆栈和队列以及树和二叉树结构。(5)掌握查找和排序算法,并且结合项目达到在项目中运用的能力;2、能力目标(1)使学生初步具备一个优秀的软件开发人员所应有的基本能力:会编写基本的算法、会利用数据结构解决基础编程语言不能直接表达的数据;(2)为学生利用Java进一步研究与开发基于Android的APP应用奠定基础。3、情感态度价值观目标(1)规范意识:让学生学会编写规范代码,熟悉常用程序设计技巧。(2)团队精神:培养学生的合作精神、协调工作和组织管理的能力。(3)探究精神:关注学科发展趋势和应用前景,注重培养学生的对新技术的探究精神。序号内容单元知识目标能力目标文化素质目标01绪论了解数据结构这么课程要讲解的内容,了解数据结构的课程地位、整体安排、教学进度及教学要求。掌握数据结构中的基本概念和术语,掌握数据结构中对算法的描述方法以及对算法的评价方式数据结构的基本概念和术语、对算法的描述方法和评价方式培养学生用发展的观点去看IT技术的发展问题02集合结构了解集合结构,以及集合在编程中的使用。要求能够利用java编程语言实现集合结构,包括使用顺序存储方式实现集合结构以及操作、使用链式结构存储方式实现集合结构以及操作。另外要求使用任意一种集合结构实现方式,去模拟数组的功能。集合机构的定义和用途,集合结构的两种存储方式的实现。体会用集合结构去解决现实生活的问题。03线性表本章是数据结构课程中的一个重点内容,该章节全面介绍了线性表结构的基本定义以及使用场景,另线性表的定义和运算,线性表的顺序存储结构的操作和实现,有序线性表的定确立学以致用,在实践中理解理论的学习和实践习惯。外包含了线性表的描述以及不同实现方法的算法评价。要求完全掌握线性表的定义、描述、操作以及用java语言实现该结构并对不同的实现方式先的操作算法进行评价。义和实现,链式存储的一般概念和方法,线性表的链式存储和操作,有序线性表的链式存储实现。04栈和队列、树掌握堆栈和队列的基本定义和语法,以及这两种结构在计算机底层算法设计中所起到的作用。学习堆栈和队列在现实生活中对应的例子,并掌握堆栈的java语言实现方法,包括顺序存储结构的实现以及链式存储结构的实现。了解队列的java实现方式。堆栈和队列的顺序和链式存储结构的实现以及对关键操作的算法评价。深刻体会队列和人类社会的排队处理机制的相似性。05查询和排序了解查找和排序在编程中的作用,掌握顺序查找算法的实现方法以及算法评价,掌握折半查询算法的实现方法以及算法评价。了解排序在折半查找中的作用,掌握选择排序、插入排序、交换排序的基本算法,并能够根据现实场景使用对应的算法。顺序查找算法的实现、折半查找算法的实现。选择排序、插入排序、交换排序算法的实现。确立学以致用,在实践中理解理论的学习和实践习惯。四、课程内容授课内容主要包括:数据结构基本概念、集合、线性表、堆栈和队列、树和二叉树、查找和排序等。第一单元绪论1、基础性内容了解数据结构这么课程要讲解的内容,了解数据结构的课程地位、整体安排、教学进度及教学要求。掌握数据结构中的基本概念和术语,掌握数据结构中对算法的描述方法以及对算法的评价方式。2、提高性内容数据结构的基本概念和术语、对算法的描述方法和评价方式。3、拓展性内容了解信号灯的设计与数据结构之间的关系。第二单元集合结构1、基础性内容了解集合结构,以及集合在编程中的使用。要求能够利用java编程语言实现集合结构,包括使用顺序存储方式实现集合结构以及操作、使用链式结构存储方式实现集合结构以及操作。另外要求使用任意一种集合结构实现方式,去模拟数组的功能。2、提高性内容集合机构的定义和用途,集合结构的两种存储方式的实现。链式存储实现集合结构。比较两种存储方式的不同和使用范围。3、拓展性内容使用集合结构,了解数组的底层实现技术。第三单元线性表1、基础性内容本章是数据结构课程中的一个重点内容,该章节全面介绍了线性表结构的基本定义以及使用场景,另外包含了线性表的描述以及不同实现方法的算法评价。要求完全掌握线性表的定义、描述、操作以及用java语言实现该结构并对不同的实现方式先的操作算法进行评价。2、提高性内容线性表的定义和运算,线性表的顺序存储结构的操作和实现,有序线性表的定义和实现,链式存储的一般概念和方法,线性表的链式存储和操作,有序线性表的链式存储实现。3、拓展性内容找到现实生活中运用到线性表的实例。第四单元栈和队列1、基础性内容掌握堆栈和队列的基本定义和语法,以及这两种结构在计算机底层算法设计中所起到的作用。学习堆栈和队列在现实生活中对应的例子,并掌握堆栈的java语言实现方法,包括顺序存储结构的实现以及链式存储结构的实现。了解队列的java实现方式。2、提高性内容堆栈的实现方法、队列的实现方法。堆栈的链式存储结构的实现以及对关键操作的算法评价。3、拓展性内容尝试理解操作系统中的任务处理与堆栈和队列之间的联系。第五单元树和二叉树1、基础性内容了解树结构的定义,了解二叉树的概念以及使用场景,了解二叉树的遍历方法。2、提高性内容使用java语言描述树和二叉树结构3、拓展性内容遍历二叉树第六单元查找和排序1、基础性内容了解查找和排序在编程中的作用,掌握顺序查找算法的实现方法以及算法评价,掌握折半查询算法的实现方法以及算法评价。了解排序在折半查找中的作用,掌握选择排序、插入排序、交换排序的基本算法,并能够根据现实场景使用对应的算法。2、提高性内容顺序查找算法的实现、折半查找算法的实现。选择排序、插入排序、交换排序算法的实现。3、拓展性内容折半查找算法的实现、交换排序算法的实现,以及对算法的评价。五、课程实施1、理论课时安排序号内容类型模块名称教学课时实践课时总学时1基础性内容第一章绪论224+42第二章集合225提高性内容第三章线性表4412+126第四章栈和队列227第五章树和二叉树228第六章查找和排序44总计1616322、实践教学课时安排序号实验名称实验要求实验类型实验学时1利用java语言实现集合结构集合的顺序存储结构和操作实现集合的链接存储结构和操作实现验证性42利用java语言实现线性表结构线性表的顺序存储和操作实现线性表的链接存储和操作实施验证性43利用java语言实现堆栈和队列结构栈和队列的顺序存储结构和操作实现栈和队列的链接存储结构和操作实现验证性44利用java语言实现查找和排序算法顺序表查找的编码实现插入排序的编码实现选择排序的编码实现验证性43、教学建议(1)教学组织与形式本课程教学全部采用理论和实践相结合的模式,一次理论对应一次上机实践,,要求学生在课前加强预习,完成要求的任务,为机房上课做好准备;充分利用多媒体教学软件,对学生编程和学习进度进行控制;上课采用小班教学,进一步提高教学质量,关注每一个学生的学生进度,并加以辅导、充分调动和发挥学生主体性;案例式教学,提供程序列表,和教学进度和知识点匹配;(2)教学方法与手段①教学方法:理论课教学根据所授内容的不同,采用恰当的教学方法实施教学,如:讲授法、讨论法、直观演示法和任务驱动教学法等;实验课采用训练与实践式教学方法使学生巩固、丰富和完善所学知识,培养学生解决实际问题的能力和多方面的实践能力;项目实训采用项目教学法,以实际应用为目的,通过师生共同完成教学项目而使学生获得数据库相关技术知识和数据库应用系统的开发能力。②教学手段:采用多媒体现代化教学手段和传统的黑板教学手段相结合,有利于提高课堂教学效果,进行在线答疑。(3)教学环境与策略多媒体计算机与大屏幕投影仪为中心的多媒体教学环境,在这种环境下,教师主要播放教学课件进行讲授,利用软件课堂编写程序进行讲解;以网络技术为核心的教学环境,学生根据教师的安排进行自主式教学;多媒体实验中心和实训实验室教学环境,进行实验和项目实训操作。3、考核方法采用“N+2”成绩评定方式,主要构成及比例如下:(1)考勤(30%):课前点名;(2)课堂笔记(10%):教师讲解主要内容,重点和难点,含平时作业;(3)期末考试(60%):考试分制、形式与时间:百分制,闭卷、笔试,120分钟。题型:填空题、选择题、简答题、程序分析设计题。六、教材建设选用与参考书目教材建设选用:采用自编讲义参考书目:1.《Java程序设计教程》,段新娥等编著,人民邮电出版社,2014.12.《Java编程思想》(美),BruceEckel著,侯捷译,(ThinkinginJava,SecondEdition),机械工业出版社,2012.93.《数据结构》,徐孝凯编著,清华大学出版社,2014.11.01