1、大连东软信息学院,数据结构(C+),Data Structure,目 录,五、教材使用,四、课程评价与考核方案,三、教学方法和教学手段,二、课程教学目标与内容体系,一、为什么学习,数据与信息的关系,数据,信息,处理器,数据存储,数据结构,1、课程定位,一 为什么学习,现实中有计算机处理的两大类问题:数值问题和非数值问题计算机使用初期:主要是处理数值计算问题(归结为解方程、求值)。涉及的运算对象是简单,不重视数据结构。发展之后:非数值计算问题越来越显得重要。据统计,当今处理非数值计算性问题占用了90%以上的机器时间。数据结构更为复杂;数据元素之间的相互关系无法用数学方程式加以描述;要分析所处理的
2、数据必要分析数据间的关系。,一 为什么学习,例1 学生信息检索系统,该系统的主要操作之一便是按照某个特定要求(如给定姓名)对学生信息文件进行查询。当我们需要查找某个学生或查询某个专业或年级的学生的有关情况的时候,只要我们建立了相关的数据库,按照某种算法编写了相关程序,就可以实现计算机自动检索。 根据需求分析,可以建立以下四张表:,一 为什么学习,一 为什么学习,例1 学生信息检索系统,学号顺序排列的学生信息表 姓名顺序排列的索引表 专业顺序排列的索引表 年级顺序排列的索引表,学生信息检索系统的数学模型,相对每一张表,表中的每一行的信息,我们可以成为一个数据元素,每张表中的数据元素之间是一个序列
3、的关系,我们称之为线性关系。,一 为什么学习,例2 八皇后问题,该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。,为了描述方便,将八皇后问题简化为四皇后问题:,一 为什么学习,在八皇后问题中,处理过程不是根据某种确定的计算法则,而是利用试探和回溯的探索技术求解。为了求得合理布局,在计算机中要存储布局的当前状态。从最初的布局状态开始,一步步地进行试探,每试探一步形成一个新的状态,整个试探过程形成了一棵隐含的状态树。每一个状态,也是一个数据,而所有的数据之间是一种树型关系。,一
4、 为什么学习,例3 教学计划编排问题,一个教学计划包含许多课程。课程之间,有些必须按规定的先后次序进行,有些则没有次序要求。即课程之间有先修和后修的关系,有些课程可以任意安排次序。某个专业的教学计划的各个课程之间的次序关系可用一个称作图的数据结构来表示。,一 为什么学习,一 为什么学习,由以上三个例子可见,描述这类非数值计算问题的数学模型不再是数学方程,而是根据数据元素之间构成的线性关系、树型关系、网状关系等,抽象出来的描述各自问题的表、树、图。,数据结构课程主要是研究非数值计算的程序设计问题中所出现的计算机操作对象以及它们之间的关系和操作的学科。,一 为什么学习,学习数据结构的目的是为了了解
5、计算机处理对象的特性,将实际问题中所涉及的处理对象在计算机中如何表示出来并对它们进行处理。与此同时,通过算法训练来提高学生的思维能力,通过程序设计的技能训练来促进学生的综合应用能力和专业素质的提高。,一 为什么学习,程序=数据结构+算法,这是世界著名计算机科学家、图灵奖获得者N沃思(Niklaus Wirth)提出一个公式。因为一个好的程序无非是选择一个合适的数据结构和好的算法,而好的算法的选择很大程度上取决于描述实际问题的数据结构的选取。该公式指出了数据结构和算法是程序设计的灵魂,没有算法和数据结构的软件技术专业教学是丢了魂的教学。 基于程序设计对数据结构知识的需求,确定课程目标为: 在基础
6、方面,要求学生掌握常用数据结构的基本概念及其不同的实现方法;学会分析研究计算机加工的数据结构的特性; 在技能方面,通过系统学习能够在不同存储结构上实现不同的运算,并对算法设计的方式和技巧有所体会。,1、课程目标,二、课程教学目标与内容体系,2、课程内容体系-理论,二、课程教学目标与内容体系,基本数据结构,查找,排序,线性结构,线性表 栈 队列,非线性结构,集合 树 图,2、课程内容体系-实践,二、课程教学目标与内容体系,平时课内实践随堂实践三级项目,实践内容,课外实践,2、课程内容体系-理论与实践结合即 三级项目,二、课程教学目标与内容体系,(1)约瑟夫问题实现问题描述:15个教徒和15 个非
7、教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。 要求学生能用线性结构(循环链表、栈、队列)解决此问题,即为15个教徒合理编号使其能避免遇难。,2、三级项目,二、课程教学目标与内容体系,2、三级项目,二、课程教学目标与内容体系,(2)家谱管理系统实现介绍本项目需要完成的主要功能,引导学生分析系统。采用树形结构来实现该系统。通过该项目的练习,让学生掌握树的基本操作和算法。 项目成果物详细描述: 学会使用树形结构的
8、基本操作,实现家谱管理系统的主要功能,主要包括以下功能: 成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡) 显示第n 代所有人的信息。 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 输入两人姓名,确定其关系。 为某人添加孩子、修改、删除某人(若其还有后代,则一并删除)。,2、三级项目,二、课程教学目标与内容体系,(3)校园导游系统实现 项目构思: 随着高校校园的逐渐扩建来访校园的各界人士逐渐增多,为了提高学校的知名度,需要给来访者提供校园景点信息查询服务,利用计算机建立一个自动的导游系统可以很好的解决这个问题。介绍本项目需要完成的主要功能
9、,引导学生分析系统。采用图形结构来实现该系统。通过该项目的练习,让学生掌握图的基本操作和算法。 项目成果物详细描述: 学会使用图形结构的基本操作,实现校园导游系统的主要功能。设计你的学校的校园平面图,所含景点不小于10个。以图中的顶点表示学校的各个景点,存放景点名称,代号,简介等信息;以边表示路径,存放路径名称,存放路径的长度等相关信息。 此系统的主要功能至少包括: 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的最短路径。 为来访客人提供图中任意景点的相关信息的查询。 除此之外,学生可以自由发挥。,2、课程内容体系,内容模块顺序及对应的学时如下表,(逻辑结构存储结构运算)贯穿内
10、容体系,课程内容的组织注重基础: 第2章对基本存储结构(顺序表、链表)的介绍十分详细,它是全课程存储结构的重要基础。第2、3章紧紧围绕线性结构充分讲解。第5章对二叉树分配了足够的学时,以便为非线性结构、二叉链表存储结构和基本遍历算法打下基础,并且适当予以拓展,它们是全课程的重中之重。,二 课程内容体系,讲练结合互动教学,多媒体形象化教学,讲授法理论教学,任务驱动教学法,多种教学方法并用,提高教学效果 由于数据结构是一门综合性、实践性强,覆盖面广的课程,课程内容抽象而又严密。算法的动态运行过程、数据结构的存储实现只靠传统黑板、粉笔来讲解,不仅枯燥无味,而且难以表达清楚。因此,根据岗位要求设置教学
11、模块,采用以学生自主学习、教师引导的教学方法以提高教学效果。,演示法 (PPT或FLASH) 直观教学 算法动态演示,1、教学方法(手段),三 教学方法和教学手段,1、教学方法(手段)续,对具体的一堂课,采取如下方法进行组织教学过程:,三 教学方法和教学手段,信息技术与商务管理系,管理方式 科代表 小组式学习 3-7个人一小组 角色 组长负责协调 全员参与项目的设计与成果展示 分组方式 自行分组 项目成绩分配方式 组长给出本组内成员的权重,教师给总分,学习方法:自学 向同学学习 向老师学习,三 教学方法和教学手段,2、学习方法,四 课程评价与考核方案,五 教材使用与建设,数据结构-使用C+语言描述人民邮电出版社,陈慧楠主编。该教材编著指导思想: “以应用为主体”,强调理论知识的理解和运用,实现教学以实践体系及技术应用能力培养为主的目标。,数据结构学习指导和习题解析学生可以自己到书馆找一本数据结构的习题,多做练习有助于大家的理解。,教书者必先强己,育人者必先律己,谢谢,