(3)设计开发解决方案:掌握面向对象的程序设计方法、技术与工具,具有对应的实 践能力和技能,针对复杂信息系统,予以设计和解决: (4)研究:具有一定的创新和批判性思维能力,结合面向对象设计方法,能够对复杂 信息类工程问题进行研究,并通过信总综合得到验证: (5)使用现代工具:使用主流集成编辑环境,进行信总系统设计与开发: (6)工程与社会:熟悉面向对象的概念和特性,灵活应用于各类信总系统工程中: (7)环境和可持续发展:了解面向对象程序设计的相关理论、核心技术,能够理解、 评价各种信息系统及应用场景对环境、社会可持续发展的综合影响: (8)职业规范:了解本门课程对就业指导的帮助,特别是Java程序员等相关认证的重 要性,理解职业道德和工作规范,为互联网时代的职业规划奠定基础: (9)个人和团队:通过分组课程设计,独立或协作进行实践,能够在团队中承担个体、 团队成员以及负责人的角色: (10)沟通:通过课堂提问、上机实验、课程设计等活动锻炼沟通、交际交流能力,包 括撰写实验报告、设计报告、项目答辩等: (1)项目管理:理解并掌握信总系统项目管理方法,并能在实践环节中应用: (12)终身学习:具有自主学习和终身学习的意识和能力,不断适应社会的发展。 三、课程教学目标 通过完成教学目标,让学生熟悉面向对象的特征和设计方法,掌握面向对象编程工具软 件的使用,为大型应用软件设计与开发打下良好的理论和实我基础。 四、课程教学内容提要与基本要求 实验(上机)部分 实验项目名称 实验内容、要求及时间安排、仪器要求 必开1实验 选开 类型 内容:模拟实现基于文本界面的客户信息管理 软件,堂挥类的封装、数组的插入、刑除和档 换、对象的聚集处理、多对象协同工作等。 客户信息管理软件 要求:进一步掌握编程技巧和调试技巧,熟悉 必开综合 面向对象编程的设计模式 时间安排:面向对象程序设计课程之后 仪器要求:PC机、Jdk软件、Eclipse软件。 五、说明 依据专业培养方案,本课程是面向对象程序设计的实践课程,放在同一学期且在面向对 象程序课程之后。 六、学生成绩考核与评定方式 课程考核采用实训平台审核形式
23 (3)设计/开发解决方案:掌握面向对象的程序设计方法、技术与工具,具有对应的实 践能力和技能,针对复杂信息系统,予以设计和解决; (4)研究:具有一定的创新和批判性思维能力,结合面向对象设计方法,能够对复杂 信息类工程问题进行研究,并通过信息综合得到验证; (5)使用现代工具:使用主流集成编辑环境,进行信息系统设计与开发; (6)工程与社会:熟悉面向对象的概念和特性,灵活应用于各类信息系统工程中; (7)环境和可持续发展:了解面向对象程序设计的相关理论、核心技术,能够理解、 评价各种信息系统及应用场景对环境、社会可持续发展的综合影响; (8)职业规范:了解本门课程对就业指导的帮助,特别是 Java 程序员等相关认证的重 要性,理解职业道德和工作规范,为互联网时代的职业规划奠定基础; (9)个人和团队:通过分组课程设计,独立或协作进行实践,能够在团队中承担个体、 团队成员以及负责人的角色; (10)沟通:通过课堂提问、上机实验、课程设计等活动锻炼沟通、交际交流能力,包 括撰写实验报告、设计报告、项目答辩等; (11)项目管理:理解并掌握信息系统项目管理方法,并能在实践环节中应用; (12)终身学习:具有自主学习和终身学习的意识和能力,不断适应社会的发展。 三、课程教学目标 通过完成教学目标,让学生熟悉面向对象的特征和设计方法,掌握面向对象编程工具软 件的使用,为大型应用软件设计与开发打下良好的理论和实践基础。 四、课程教学内容提要与基本要求 实验(上机)部分 序 号 实验项目名称 学 时 实验内容、要求及时间安排、仪器要求 必开/ 选开 实验 类型 1 客户信息管理软件 16 内容:模拟实现基于文本界面的客户信息管理 软件,掌握类的封装、数组的插入、删除和替 换、对象的聚集处理、多对象协同工作等。 要求:进一步掌握编程技巧和调试技巧,熟悉 面向对象编程的设计模式。 时间安排:面向对象程序设计课程之后; 仪器要求:PC 机、Jdk 软件、Eclipse 软件。 必开 综合 五、说明 依据专业培养方案,本课程是面向对象程序设计的实践课程,放在同一学期且在面向对 象程序课程之后。 六、学生成绩考核与评定方式 课程考核采用实训平台审核形式
成绩比例:上机实验成绩占60%(按照要求分步提交到实训平台中):课程设计报告占40%, 七、建议教材与参考书 建议教材:耿样义编著,Java2使用教程,清华大学出版社,2017.5。 参考书:1.CayS.Horstmann等著、周立新等译,Java核心技术卷I基础知识(原书第l0 版),机械工业出版社,20116.9。 2.Bruce Eckel著、陈吴鹏译,Java编程思想(第4版),机械工业出版社,2007.6。 八、课程中英文简介 面向对象程序设计实践是信息管理与信息系统专业的专业基础课。课程以一个完整的 Java项目案例,采用迭代开发的方式,引领学生熟悉面向对象程序设计思路,进一步掌握程 序开发和调试技巧。课程酒盖面向对象的重要特征和方法,循序渐进地启发学生完成课内实 践,培养学生实际分析问题、解决问题的能力,提高学生综合素质。 Object-oriented Programming Practice is the professional basic course for the major of Information Management and Information System.With a complete Java project case,this course uses an iterative development approach to lead students to be familiar with object-oriented programming ideas.Furthermore,it could help students master the skills of the program development and debugging.The course covers the important characteristics and methods of bject-oriented programming and gradually inspires the students to complete the practice in class cultivating the students 'ability of analyzing and solving problems,and improving the students comprehensive quality 《数据结构》 课程编号 0BH06912 学分 总学时 64 实验/上机学时实验:0学时,上机:8学时 课程名称 数据结构 英文名称 Data Structure 课程类别 必修 适用专业 信息管理与信息系统 执笔人 赵庆聪 审核人 崔嫩 先修课程 程序设计离散数学 一、课程的地位与作用 数据结构课程是信息管理与信总系统专业本科学生必修的一门专业基础课程。 数据结构是信总系统软件设计的重要理论和实践基础,数据结构设计和算法设计是信息 系统软件设计与实现的核心。数据结构课程的任务是,讨论数据的各种逻辑结构、在计算机
24 成绩比例:上机实验成绩占 60%(按照要求分步提交到实训平台中);课程设计报告占 40%。 七、建议教材与参考书 建议教材:耿祥义编著,Java2 使用教程,清华大学出版社,2017.5。 参考书:1. Cay S. Horstmann 等著、周立新等译,Java 核心技术卷Ⅰ基础知识(原书第 10 版),机械工业出版社,20116.9。 2. Bruce Eckel 著、陈昊鹏译,Java 编程思想(第 4 版),机械工业出版社,2007.6。 八、课程中英文简介 面向对象程序设计实践是信息管理与信息系统专业的专业基础课。课程以一个完整的 Java 项目案例,采用迭代开发的方式,引领学生熟悉面向对象程序设计思路,进一步掌握程 序开发和调试技巧。课程涵盖面向对象的重要特征和方法,循序渐进地启发学生完成课内实 践,培养学生实际分析问题、解决问题的能力,提高学生综合素质。 Object-oriented Programming Practice is the professional basic course for the major of Information Management and Information System. With a complete Java project case, this course uses an iterative development approach to lead students to be familiar with object-oriented programming ideas. Furthermore, it could help students master the skills of the program development and debugging. The course covers the important characteristics and methods of object-oriented programming, and gradually inspires the students to complete the practice in class, cultivating the students 'ability of analyzing and solving problems, and improving the students' comprehensive quality. 《数据结构》 课程编号 0BH06912 学 分 4 总 学 时 64 实验/上机学时 实验:0 学时,上机:8 学时 课程名称 数据结构 英文名称 Data Structure 课程类别 必修 适用专业 信息管理与信息系统 执 笔 人 赵庆聪 审 核 人 崔巍 先修课程 程序设计 离散数学 一、课程的地位与作用 数据结构课程是信息管理与信息系统专业本科学生必修的一门专业基础课程。 数据结构是信息系统软件设计的重要理论和实践基础,数据结构设计和算法设计是信息 系统软件设计与实现的核心。数据结构课程的任务是,讨论数据的各种逻辑结构、在计算机
中的存储结枸以及各种操作的算法设计。数据结构课程的主要目的是,培养学生掌握处理数 据和编写高效率软件的基本方法,为学习后续专业课程以及进行信息系统建设打下坚实基 础。 二、课程对应的毕业要求 数据库系统基础课程对应的毕业要求: (1)工程知识:具有扎实的数据结构理论基础和专业知识,能够将数据结构知识用于 各种信息系统建设工程中: (2)问题分析:能够延续计算思维的训练,综合应用学习过的T知识和数据结构等方 面的基本理论和基本知识,识别、表达、并通过文献研究分析复杂数据结构设计及算法设计 方面问题,以获得有效结论: (3)设计开发解决方案:掌握数据逻辑结构特点、数据存储结构的设计与实现,掌握 各类经典算法,具有数据抽象和数据结构设计的实践能力和专业技能,能够设计针对复杂软 件功能的算法,满足特定系统需求的流程,并能够在设计环节中体现创新意识: (4)研究:具有初步的数据分析与抽象能力,具有一定的创新和批判性思维能力,能 够基于科学原理并借助算法描述对复杂的数据组织及处理问题进行研究: (5)使用现代工具:基本掌握某种主流的程序设计语言设计并实现常见数据结构及经 典算法: (6)工程与社会:熟悉掌握各类常见数据结构及操作,能将其运用于基于信息系统和 数据分析等相关工程背景和场景的应用: (7)环境和可持续发展:了解数据结构最新的研究领域、发展方向和应用前沿,能够 理解和评价数据结构对各种信息系统和数据分析问题的工程实践对环境、社会可持续发展的 影响: (8)职业规范:了解本门课程对未来职业的影响,特别是了解软件开发工程师的职责 范围、以及工作性质的重要性,为将来在职业生涯中理解并遵守职业道德和规范奠定基础: (9)个人和团队:通过相关知识理解信息系统软件开发的各种角色,通过分组实验能 够在项目背景下的团队中承担个体、团队成员以及负责人的角色: (10)沟通:通过分组实验、数据库设计、组内交流、课堂发言、项目答辩等锻炼学生 的沟通和交流能力,包括撰写实验报告和设计文稿、陈述发言等: (11)项目管理:理解并掌握信息系统软件的设计与实施管理方法,并能在实践环境中 应用: (12)终身学习:具有自主学习和终身学习的意识,有不断学习和适应发展的能力。 三、课程教学目标 数据结构是理论与实践并重的课程,既要掌握数据结构的基础理论知识,掌握算法设计 和分析方法,熟练运用一种程序设计语言编制具有中等难度的应用程序:也要掌握运行和调
25 中的存储结构以及各种操作的算法设计。数据结构课程的主要目的是,培养学生掌握处理数 据和编写高效率软件的基本方法,为学习后续专业课程以及进行信息系统建设打下坚实基 础。二、课程对应的毕业要求 数据库系统基础课程对应的毕业要求: (1)工程知识:具有扎实的数据结构理论基础和专业知识,能够将数据结构知识用于 各种信息系统建设工程中; (2)问题分析:能够延续计算思维的训练,综合应用学习过的 IT 知识和数据结构等方 面的基本理论和基本知识,识别、表达、并通过文献研究分析复杂数据结构设计及算法设计 方面问题,以获得有效结论; (3)设计/开发解决方案:掌握数据逻辑结构特点、数据存储结构的设计与实现,掌握 各类经典算法,具有数据抽象和数据结构设计的实践能力和专业技能,能够设计针对复杂软 件功能的算法,满足特定系统需求的流程,并能够在设计环节中体现创新意识; (4)研究:具有初步的数据分析与抽象能力,具有一定的创新和批判性思维能力,能 够基于科学原理并借助算法描述对复杂的数据组织及处理问题进行研究; (5)使用现代工具:基本掌握某种主流的程序设计语言设计并实现常见数据结构及经 典算法; (6)工程与社会:熟悉掌握各类常见数据结构及操作,能将其运用于基于信息系统和 数据分析等相关工程背景和场景的应用; (7)环境和可持续发展:了解数据结构最新的研究领域、发展方向和应用前沿,能够 理解和评价数据结构对各种信息系统和数据分析问题的工程实践对环境、社会可持续发展的 影响; (8)职业规范:了解本门课程对未来职业的影响,特别是了解软件开发工程师的职责 范围、以及工作性质的重要性,为将来在职业生涯中理解并遵守职业道德和规范奠定基础; (9)个人和团队:通过相关知识理解信息系统软件开发的各种角色,通过分组实验能 够在项目背景下的团队中承担个体、团队成员以及负责人的角色; (10)沟通:通过分组实验、数据库设计、组内交流、课堂发言、项目答辩等锻炼学生 的沟通和交流能力,包括撰写实验报告和设计文稿、陈述发言等; (11)项目管理:理解并掌握信息系统软件的设计与实施管理方法,并能在实践环境中 应用; (12)终身学习:具有自主学习和终身学习的意识,有不断学习和适应发展的能力。 三、课程教学目标 数据结构是理论与实践并重的课程,既要掌握数据结构的基础理论知识,掌握算法设计 和分析方法,熟练运用一种程序设计语言编制具有中等难度的应用程序;也要掌握运行和调
试程序的基本技能,在实践中培养独立分析问题和解决问题的作风和能力。 本课程采用aa语言及面向对象程序设计方法描述数据结构和算法。 四、课程教学内容提要与基本要求 理论部分 序号 教学内容提要 基本要求 学时 了解数据结构的基本概念,了解数据的逻辑结构、 数据的存储结构和数据操作,了解抽象数据类型与 第一章绪论 数据结构的关系。 1.1数据结构的基本概念 4 12算法 了解算法、算法描述、算法设计目标和算法分析方 法, 掌握算法的时间复杂度和空间复杂度的分析方 法 理解线性表的罗辑结构和基本操作,堂挥线性表抽 第一章线性表 象数据类型的描述方法。 21线性表抽象数据类型 掌握线性表的顺序存储结构和实现方法 2 2.2线性表的顺序存储和实现 掌握线性表的链式存储结构及其特点 8 2.3线性表的链式存储和实现 掌握实现单 链表、循环单链表、双链表、循环双链表基本操作 2.4线性表应用 的设计方法。比较两种存储结构的特点和性能。 理解串的概念和串的基本操作,熟悉串的顺序存储 策一音电 结构和链式存储结构 3.1串抽象数据类型 3 32串的存储与实现 掌握串的定义和基本操作的实现方法 3.3串的模式匹配 掌握两种串的模式匹配算法:Bute-Force算法和 KMP算法。 理解栈的概念和作用,掌握顺序栈和链式栈的设计 第四章栈和队列 方法,熟悉使用栈的算法设计方法。 4.1栈 理解队列的概念和作用,掌握顺 循环队列和链式 4 42队列 队列的设计方法,熟悉使用队列的算法设计方法。 6 4.3递归 熟悉优先队列的概念、设计和使用方法。 理解递归定义,掌握递归算法设计方法。 理解数组的概念,理解一维数组和二维数组的存储 第五章数组和广义表 结构 5.1数组 熟悉 三角矩阵等特殊矩阵的压缩存储方法:熟悉稀 4 5.2特殊矩阵的压缩存储 琉矩阵的各种压缩存储方法。 5.3广义表 理解广义表的概念。 理解树的定义、术语、表示方法、遍历规则和多种 第六章树和一叉树 6.1树及其抽象数据类型 存储结构,掌握采用树的孩子兄弟链表存储树并实 二叉树及其抽象数据类型 现树的遍历、插入、除等操作 6.2 理解二义树的定义、性质、遍历规则和存储结构, 6 6.3二叉树的表示和实现 64线索一叉树 掌握采用二叉链表或三叉链表存储结构存储二叉树 6.5 Huffman编码与Huffman 的特点,掌握二叉树的遍历、构造、插入、删除等 操作算法,比较一叉树历的递归算法与非递归第 6.6树的表示和实现 法的特点」 理解线索二叉树概念,热悉其存储结构,掌握中序
26 试程序的基本技能,在实践中培养独立分析问题和解决问题的作风和能力。 本课程采用 Java 语言及面向对象程序设计方法描述数据结构和算法。 四、课程教学内容提要与基本要求 理论部分 序号 教学内容提要 基本要求 学时 1 第一章 绪论 1.1 数据结构的基本概念 1.2 算法 了解数据结构的基本概念,了解数据的逻辑结构、 数据的存储结构和数据操作,了解抽象数据类型与 数据结构的关系。 了解算法、算法描述、算法设计目标和算法分析方 法,掌握算法的时间复杂度和空间复杂度的分析方 法。 4 2 第二章 线性表 2.1 线性表抽象数据类型 2.2 线性表的顺序存储和实现 2.3 线性表的链式存储和实现 2.4 线性表应用 理解线性表的逻辑结构和基本操作,掌握线性表抽 象数据类型的描述方法。 掌握线性表的顺序存储结构和实现方法。 掌握线性表的链式存储结构及其特点,掌握实现单 链表、循环单链表、双链表、循环双链表基本操作 的设计方法。比较两种存储结构的特点和性能。 8 3 第三章 串 3.1 串抽象数据类型 3.2 串的存储与实现 3.3 串的模式匹配 理解串的概念和串的基本操作,熟悉串的顺序存储 结构和链式存储结构。 掌握串的定义和基本操作的实现方法。 掌握两种串的模式匹配算法:Brute-Force 算法和 KMP 算法。 4 4 第四章 栈和队列 4.1 栈 4.2 队列 4.3 递归 理解栈的概念和作用,掌握顺序栈和链式栈的设计 方法,熟悉使用栈的算法设计方法。 理解队列的概念和作用,掌握顺序循环队列和链式 队列的设计方法,熟悉使用队列的算法设计方法。 熟悉优先队列的概念、设计和使用方法。 理解递归定义,掌握递归算法设计方法。 6 5 第五章 数组和广义表 5.1 数组 5.2 特殊矩阵的压缩存储 5.3 广义表 理解数组的概念,理解一维数组和二维数组的存储 结构。 熟悉三角矩阵等特殊矩阵的压缩存储方法;熟悉稀 疏矩阵的各种压缩存储方法。 理解广义表的概念。 4 6 第六章 树和二叉树 6.1 树及其抽象数据类型 6.2 二叉树及其抽象数据类型 6.3 二叉树的表示和实现 6.4 线索二叉树 6.5Huffman 编码 与 Huffman 树 6.6 树的表示和实现 理解树的定义、术语、表示方法、遍历规则和多种 存储结构,掌握采用树的孩子兄弟链表存储树并实 现树的遍历、插入、删除等操作。 理解二叉树的定义、性质、遍历规则和存储结构, 掌握采用二叉链表或三叉链表存储结构存储二叉树 的特点,掌握二叉树的遍历、构造、插入、删除等 操作算法,比较二叉树遍历的递归算法与非递归算 法的特点。 理解线索二叉树概念,熟悉其存储结构,掌握中序 8
理论部分 序号 教学内容提要 基本要求 学时 线索二叉树的遍历、线索化、求后继结点、插入等 基本操作算法。 理解Huffman绵码在数据压缩中的作用,理解 Huffiman树的概念,掌握Huffman算法实现构造 Huffman树。 理解图的基本概念和术语。 第七章图 7.1图及其抽象数据类型 掌握图的邻接矩阵和邻接表存储结构。 实现图的深度代先谝历和一度优先遍历算法。 72图的表示和实现 > 7.3图的遍历 理解最小生成树的概念,熟悉两种构造图的最小生 7.4最小生成树 成树算法:Prim和K skal算法 理解最短路径问题的概念,了解求单源最短路径的 7.5最短路径 Dijkstra算法和求所有最短路径的Floyd算法。 理解查找的基本概念和杏找算法效率的分析方法。 掌握线性表的顺序查找、有序顺序表的折半查找 第八章查找 索引顺序表的分块查找算法。 8.1查找的基本概② 理解散列表的概念,熟悉散列函数的构造方法,熟 8.2基于线性表的查找 悉解决冲突的多种方法,掌握链地址法散列表的构 83散列 造、插入、删除、查找等操作算法。 84二叉排序树和平衡二叉树 理解一义推序树的概今和作用。掌握二义排序树的 查找、插入和别除等操作算法:了解平 二叉树的 基本概念和保持平衡性的调整规则 第九章排序 理解排序的基本概念和排序算法效率的分析方法。 9.1排序的基本概念 掌握直接插入排序、折半插入排序、希尔排序、冒 0 92插入排序 泡排序、快速排序、百接洗搔排序、堆排序、归并 9.3交换排序 排序算法:比较各排序算法的特点、 算法设计思想 6 9.4选择排序 和适用的存储结构,分析各排序算法的时间效率和 9.5归并排序 空间效率。 实验(上机)部分 实验项目名称 实验内容、要求及时间安排、仪器要求必开 实验 号 时 选开 类型 理解用顺序表实现线性表的特点:熟练 堂挥顺序表的基本操作。 顺序表的实现 2 时间安排:第二章2.2线性表的顺序存 储与实现授课后: 必开 设计 仪器要求:PC机、支持iava程序编译运 行的开发平台 理解用链表实现线性表的特点:熟练掌 握链表的基本操作。 链表的实现 2 时间安排:第二章2.3链表的顺序存 必开 设计 与实现授课后: 仪器要求:PC机、支持java程序编译运
27 理论部分 序号 教学内容提要 基本要求 学时 线索二叉树的遍历、线索化、求后继结点、插入等 基本操作算法。 理解 Huffman 编码在数据压缩中的作用,理解 Huffman 树的概念,掌握 Huffman 算法实现构造 Huffman 树。 7 第七章 图 7.1 图及其抽象数据类型 7.2 图的表示和实现 7.3 图的遍历 7.4 最小生成树 7.5 最短路径 理解图的基本概念和术语。 掌握图的邻接矩阵和邻接表存储结构。 实现图的深度优先遍历和广度优先遍历算法。 理解最小生成树的概念,熟悉两种构造图的最小生 成树算法:Prim 和 Kruskal 算法。 理解最短路径问题的概念,了解求单源最短路径的 Dijkstra 算法和求所有最短路径的 Floyd 算法。 8 8 第八章 查找 8.1 查找的基本概念 8.2 基于线性表的查找 8.3 散列 8.4 二叉排序树和平衡二叉树 理解查找的基本概念和查找算法效率的分析方法。 掌握线性表的顺序查找、有序顺序表的折半查找、 索引顺序表的分块查找算法。 理解散列表的概念,熟悉散列函数的构造方法,熟 悉解决冲突的多种方法,掌握链地址法散列表的构 造、插入、删除、查找等操作算法。 理解二叉排序树的概念和作用,掌握二叉排序树的 查找、插入和删除等操作算法;了解平衡二叉树的 基本概念和保持平衡性的调整规则。 8 9 第九章 排序 9.1 排序的基本概念 9.2 插入排序 9.3 交换排序 9.4 选择排序 9.5 归并排序 理解排序的基本概念和排序算法效率的分析方法。 掌握直接插入排序、折半插入排序、希尔排序、冒 泡排序、快速排序、直接选择排序、堆排序、归并 排序算法;比较各排序算法的特点、算法设计思想 和适用的存储结构,分析各排序算法的时间效率和 空间效率。 6 实验(上机)部分 序 号 实验项目名称 学 时 实验内容、要求及时间安排、仪器要求 必开/ 选开 实验 类型 1 顺序表的实现 2 理解用顺序表实现线性表的特点; 熟练 掌握顺序表的基本操作。 时间安排:第二章 2.2 线性表的顺序存 储与实现授课后; 仪器要求:PC 机、支持 java 程序编译运 行的开发平台 必开 设计 2 链表的实现 2 理解用链表实现线性表的特点; 熟练掌 握链表的基本操作。 时间安排:第二章 2.3 链表的顺序存储 与实现授课后; 仪器要求:PC 机、支持 java 程序编译运 必开 设计