《数据结构课程设计》教学大纲 (Data Structure Course Design)teaching program 一、课程基本信息 课程代码:19110132 课程名称:数据结构课程设计 英文名称:Data Structure Course Design 合运用课 田 计算机科学与技术 考核方式:考查 先修课程:程序设计、数据结构 二、课程设计的目的 课程 贵蜀美垫胃设社号机赣整於素用门修金翻贸餐失的 数据结构课程设 软件开 数据结课程新学知识的综运用和 所解决的问题 2更接近 初肉部表示这些数据及其逻关系, 法》 提 :设想 力 本课程配套 的理论课程“数据结 过程 思想 已经依据救学内容在讲解算法 过中伞 关思想让学生更第 中应用这 之这些思想, 写大识的 理
《数据结构课程设计》教学大纲 《Data Structure Course Design》teaching program 一、课程基本信息 课程代码:19110132 课程名称:数据结构课程设计 英文名称:Data Structure Course Design 课程类别:综合运用课 学 时:32 学 分 :2 适用对象:计算机科学与技术 考核方式:考查 先修课程:程序设计、数据结构 二、课程设计的目的 《数据结构课程设计》是面向计算机科学与技术专业的一门综合运用课。数据结构 课程平时的实验题目,往往局限于当时所讲授章节的知识运用,所解决的问题规模小, 与实际有差距;数据结构课程设计题目则着眼于整个数据结构课程所学知识的综合运用和 软件开发整个流程的综合训练,所解决的问题也更接近实际。 本课程指导学生针对实际问题,归纳和抽象描述实际问题的数据及其逻辑关系,选 择合适的存储结构在计算机内部表示这些数据及其逻辑关系,进而设计出整个软件架构 和具体算法来解决实际问题。 本课程要求学生完成程序的编码、调试与测试,撰写实验报告。实验报告要求全面 反映设计流程,充分描述主要设计环节,分析测试结果,分析主要算法的时间和空间效 率,提出改进设想。 通过上述综合训练,力图培养学生综合运用数据结构知识分析问题、解决问题的能 力,培养学生软件开发和软件调试能力,培养学生软件文档和科学论文的写作能力。 在本课程配套的理论课程“数据结构”的教学过程中,已经依据教学内容在讲解算法 思想的过程中,注重渗透中华文化的思想。既让学生感受到中华文化的博大和思想精髓, 从而爱上中华文化;也透过中华文化的有关思想让学生更容易理解相关算法。而本课程提 供了在实践中应用这些思想,感受这些思想,加深相关理解与认识的机会;在实践让学生 通过自身编写和调试程序,真切体会到任何粗枝大叶和思维不缜密都会带来bug 和隐 患,从而培养其工匠精神,树立起科技报国的家国情怀和使命担当
三、课程设计的内容 现程鞏达攀馨况套根器摩染突墨醒法鲍内窘个凰酷首塑管合送雾 称 茗轻条学武的综合运用和软件开发整个流程的综合训 练,解决的问题 构在 医日覺示提空秋碧毚逵賓泉墨邈务援基養希架 充分猫述主要设计环节,分析测试结果,分析主 要算 瘦雅金去 牛开 以下是我们曾经使用过的选题: 选题编号 选题名称 活期储蓄账耳管理系闲 会员卡管理系统 表达式求值 重言式判别 G 米宫间飘 马踏棋盘问题 哈夫曼树编码解码 校园导游系统 连接校园景点的最小生成树(基于Prim算法) 10 连接校园景点的最小生成树(基于Kruskal算法) 11 各种排序算法的比较 17 基于散列表的电话号码查找系统(链地址法) 13 基于散列表的身份证信息管理系统(链地址法) 基于散列表的电话号码查找系统(开放地址法) 15 基子散列表的身份证信息管理系统(开放地址法) 16 基于二叉排序树的身份证管理系统 17 基于三义排序树的通信录管理系统 18 快速排序 19 药店的药品销售统计系统 20 各种瘦索树效率比较 21 最短路径的应用:拯救007 22 最小生成树的应用:室内布线 23 运动会分数统计系统 24 毓班订票系统
2 三、课程设计的内容 课程设计的选题,在很大程度决定了课程设计的内容,因此我们每学期结合学科发 展现状,理论教学情况等,提出十余个课程设计选题,每个题目包括题目编号、题目名 称、涉及的主要知识点、设计任务与要求等。 选题着眼于整个数据结构课程所学知识的综合运用和软件开发整个流程的综合训 练,解决的问题应更接近实际。 设计任务要求学生针对实际问题,归纳和抽象描述实际问题的数据及其逻辑关系, 选择合适的存储结构在计算机内部表示这些数据及其逻辑关系,进而设计出整个软件架 构,完成程序的编码、调试与测试,撰写实验报告。 实验报告要求全面反映设计流程,充分描述主要设计环节,分析测试结果,分析主 要算法的时间和空间效率,提出改进设想。 通过上述综合训练,力图培养学生综合运用数据结构知识分析问题、解决问题的能 力,培养学生软件开发和软件调试能力,培养学生软件文档和科学论文的写作能力。让 学生透过自身编写和调试程序,真切体会到任何粗枝大叶和思维不缜密都会带来 bug 和隐患,从而培养其工匠精神,树立起科技报国的家国情怀和使命担当。 以下是我们曾经使用过的选题: 选题编号 选题名称 1 活期储蓄账目管理系统 2 会员卡管理系统 3 表达式求值 4 重言式判别 5 迷宫问题 6 马踏棋盘问题 7 哈夫曼树编码解码 8 校园导游系统 9 连接校园景点的最小生成树(基于 Prim 算法) 10 连接校园景点的最小生成树(基于 Kruskal 算法) 11 各种排序算法的比较 12 基于散列表的电话号码查找系统(链地址法) 13 基于散列表的身份证信息管理系统(链地址法) 14 基于散列表的电话号码查找系统(开放地址法) 15 基于散列表的身份证信息管理系统(开放地址法) 16 基于二叉排序树的身份证管理系统 17 基于二叉排序树的通信录管理系统 18 快速排序 19 药店的药品销售统计系统 20 各种搜索树效率比较 21 最短路径的应用:拯救 007 22 最小生成树的应用:室内布线 23 运动会分数统计系统 24 航班订票系统
四、课程设计基本要求 (一)对教师的要求 1、 瀑充往务製家的教学大蜗。确定优质的课程设计选题明确每个选题的目的、 2、积极进行指导:对学生的提问,回答时做到耐心,准确、全面。 4、对学生提交的成果及时批阅,做到评分和评语公正、具体。 、熟悉实验室的规章制度,并自觉遵守,对学生尽到提醒和监督的责任 6、 在教学过程中教师应注重引导和激发学生的专业报国意识 树立起昂扬向上的精神风 貌,注重中华文化相关思想的渗透,激发学生对中华文化的热爱。 (二)对学生的要求 ·新费著黎昌发精髓斋器提界老除瓷提舒 份设计报 3、 使用是在阅读理 的基础 晋,爱最稳森的 照 4 馨来及花酸个著门罢学上资源,一伴视严重程度扣分。较严 凡照抄 5、必须按老师制定进度安排如期完成各个时间段的课程设计任务,提交阶段性成果。 6、在实验室上课期间必须遵守实验室的规章制度。 7、要求学生最终提交的成果清单: A.纸质文档:课程设计实验报告,一式一份。 B.电子文档:全部资料,建议按如下方式打包: C.压缩包命名规则:学号姓名课程设计题名RAR,例如: 1225110210林永坡搜索算法效率比较RAR 0 压缩包的内容,包括: (1)文档文件夹,包括: 》课程设计实验报告的word文档,该文档命名规则: 3
3 四、课程设计基本要求 (一)对教师的要求 1、备课充分,制定完善的教学大纲,确定优质的课程设计选题,明确每个选题的目的、 内容、任务要求等。 2、积极进行指导;对学生的提问,回答时做到耐心、准确、全面。 3、在实验室上课时,耐心指导和启发学生,切实培养学生的实验能力和科学探索精神, 加深对相关理论的理解。维护好课堂纪律,营造出井然有序、生动活泼的课堂氛围。 4、对学生提交的成果及时批阅,做到评分和评语公正、具体。 5、熟悉实验室的规章制度,并自觉遵守,对学生尽到提醒和监督的责任。 6、在教学过程中教师应注重引导和激发学生的专业报国意识,树立起昂扬向上的精神风 貌;注重中华文化相关思想的渗透,激发学生对中华文化的热爱。 (二)对学生的要求 1、对于要求独立完成的题目必须独立完成。鼓励同学之间的讨论和相互启发,但也仅 限于启发思路和解决局部疑难问题的作用,绝不允许照抄、照搬同学的代码和设计 报告。 2、对于难度或规模大的选题,可以在征得老师同意的情况下几个学生组成小组分工合 作完成,共同提交一份设计报告。设计报告中必须清楚的体现分工情况,注明各自 完成了哪些部分,按贡献大小给出排名。 3、参考资料包括各种图书,网上资源。课程设计离不开参考资料,但是对参考资料的 使用是在阅读理解的基础上加以借鉴,仅限于启发思路和解决局部疑难问题的作用, 绝不允许照抄、照搬的行为。 4、凡照抄、照搬者,无论来自同学、图书、网上资源,一律视其严重程度扣分。较严 重者不及格,代码和设计报告雷同者记零分。 5、必须按老师制定进度安排如期完成各个时间段的课程设计任务,提交阶段性成果。 6、在实验室上课期间必须遵守实验室的规章制度。 7、要求学生最终提交的成果清单: A. 纸质文档:课程设计实验报告,一式一份。 B. 电子文档:全部资料,建议按如下方式打包: C. 压缩包命名规则:学号_姓名_课程设计题名.RAR,例如: 1225110210_林永坡_搜索算法效率比较.RAR D. 压缩包的内容,包括: (1) 文档文件夹,包括: ➢ 课程设计实验报告的 word 文档,该文档命名规则: 学号_姓名_课程设计题名.doc(扩展名也可能是.docx) 例如:2025110210_林永坡_搜索算法效率比较.doc
你认为必要的文档。 ”商圣德条中有荷个及以上的文指。圆侯e以文休告知读者正确 (2)代码文件夹,包括: >代码文件.cpp,*.h) >源代码对应的可执行文件(*,©x©)(以备教师所用编译器版本不同无法编译) >readme..tt文件,告知读者如何编译源代码,生成可执行文件。 贷、对超梦日期的提每识交4小时开扣应公的10 注重感 件 础地位,认识到我国系 鉴警树。出中毅和美香老美音精精 实进取 相关算法所 (三)对实验条件的要求安 装下列软件的计算机: ①Windows操作系统: ②CodeBlocks或Visual C+6.0 五、课程设计进度安排 风 教学内容 教学 学 课外作业与 方式 媒体 平时考核内容 数据结构课程设计概要: 新求里在下周正课 课积设计的音义 讲课 版 1、实验报告提纲 课程设计实验报告撰写的基本 要求 的撰写 课程设计的组织与评分方法 郎分 2介 课程设计的步骤,进度安排 任务落实,如何利用资料: 将课程设计的具体任务落实到人 讲课 格新 个绍 下次上课一开始就提 料? 指导学售霸。做设计分析。写实验报 势警
4 ➢ 你认为必要的文档。 ➢ 若该文件夹中有两个及以上的文挡,则必须提供readme.txt 文件,告知读者正确 的阅读顺序。 (2) 代码文件夹,包括: ➢ 代码文件(*.cpp,*.h) ➢ 源代码对应的可执行文件(*.exe)(以备教师所用编译器版本不同无法编译) ➢ readme.txt 文件,告知读者如何编译源代码,生成可执行文件。 8、对超过截止日期的提交,每迟交 24 小时罚扣应得分数的 10% 9、 学生在设计与实验过程中,应注重感受本课程对软件开发的基础地位,认识到我国系 统软件的薄弱。树立起加强基础,踏实进取,立志专业报国的意识。留意相关算法所 蕴含的思想,注重品味中华文化相关思想在解决实际问题中的作用和智慧。 (三)对实验条件的要求 安 装下列软件的计算机: ①Windows 操作系统; ② CodeBlocks 或Visual C++6.0 五、课程设计进度安排 周 次 教学内容 教学 方式 教学 媒体 学 时 课外作业与 平时考核内容 一 数据结构课程设计概要: 课程设计的意义 课程设计实验报告撰写的基本 要求 课程设计的组织与评分方法 课程设计的步骤,进度安排 讲课 投 影 计算机 1 要求学生在下周上课 前完成: 1、实验报告提纲 2、完成课程设计实验 报告第一部分的撰写, 即:(一、简介 这一部分需简单介绍 题目内容, 即该实验 到底要做什么。如果涉 及明确的算法,最好再 简单介绍一下算法产 生的背景。) 下次上课一开始就提 交! 任务落实,如何利用资料: 将课程设计的具体任务落实到人 指导学生查资料,以及如何利用资 料? 讲课 投 影 计算机 1 指导学生开题,做设计分析,撰写实验报 告提纲 讲练 结合 投 影 计算机 2
指导学生完成"概要设计,包括 求在下周上课 ◆ 势警 4 乐的 数据结构的选择与定义 芬翻警成果是完成实验报告概要设计部 程图的绘制。 确定模块的算法实现,绘制流程图: 子生在下周上保 势繁 广数赔的要景想察的设计文片(实 2、准各资料,开始 写代码。 编写代码: 碧礬警 有 提瓷:本调试过 次上课一开始就提 终联调。 着告褐编譬然复代码。本周应完成所 碧警 棉影 始就提交! 撰写实验报告的以下部分 簦 ◇测试结果 交哦! ◇附录 ◇分析与探讨 赛限酸括实攀报的其他部分,使整个 薯警 棉质 ★对整个课程设计进行总结回顾, 下次上课一开始就损 交哦! 敏、答样、总结、就共性问园 轻
5 二 指导学生完成“概要设计”,包括: 确定系统的总体设计方案, 即系统包括哪些功能模块,绘制模块关 系结构图,绘制函数调用关系图,各 函数功能的定义与说明等。 数据结构的选择与定义 本周最终成果是完成实验报告“概要设计” 部 分的撰写。 讲练 结合 投 影 计算机 4 要求学生在下周上课 前完成: 1、完成实验报告“概要 设计”部分的撰写。下 次上课一开始就提交! 2、准备资料:每个模 块的算法思路,相应流 程图的绘制。 三 确定模块的算法实现,绘制流程图: 依据系统的总体设计方案, 针对每个模块研究其实现算法,画出相 应的流程图. 同时编写相应的设计文档(实 验报告的“算法说明”部分); 讲练 结合 投 影 计算机 4 要求学生在下周上课 前完成: 1、完成实验报告“算 法说明”部分。下次上 课一开始就提交! 2、准备资料,开始编 写代码。 四 编写代码: 学生依自身情况,确定本周要 完成哪些模块的代码编写,以及测试。 注意:不要等到所有代码写 完了,一起测试,那样很难确定问题所 在。应局部调试通过,再逐渐加入, 最终联调。 讲练 结合 投 影 计算机 4 回答:本周你调试通过 了 那 几 个 模 块 的 代 码? 占整个代码的 百 分之几? 提交:本周调试通过的 代码,及运行截图(下 次上课一开始就提 交!) 五 类似上周,继续编写代码。本周应完成所 有代码的编写和调试。 讲练 结合 投 影 计算机 4 本周应完成所有代码 的编写和调试。 提交调试通过的代码, 及运行截图(下次上课 一开始就提交!) 六 进行整个系统的联调和全面测试,记录 和整理测试数据。 撰写实验报告的以下部分: 测试结果 附录 分析与探讨 讲练 结合 投 影 计算机 4 左边的工作你完成了 没有? 下次上课一开始就提 交哦! 七 撰写包括实验报告的其他部分,使整个 文档风格统一,符合规范。 对整个课程设计进行总结回顾。 讲练 结合 投 影 计算机 4 本周应准备好老师要 求提交的文档、代码 等全部内容。 下次上课一开始就提 交哦! 八 成果验收、答辩、总结、就共性问题 进行探讨。 投 影 计算机 4
六、考核方式与标准 (一)考核方式:考查 (二)考核标准与成绩计算方法 70%1、按照学校统一安排,平时成绩占课程总成绩的30%,期末成绩占误程总成绩的 2、由于时间关系,无法做到人人答辩,一个学生是否答辩由随机程序决定。 3、对于答辩的学生按以下方法计算期末成绩=答辩x15%十程序部分×35%+测试 部分×15%+文档部分×35% 4、对于没有答辩的学生按以下方法计算期末成绩=程序部分×40%+测试部分× 20%十文档部分×40% 5、各部分的评分标准 项目 评分标准 得分 赜 臭晓绩毒鹅姿的干作羲嚎等买壁检查工作进度 计无7 未完成度扣分。 主题明确, 徐魏 时间掌握合适尖出:逻辑性强,培言流畅、严谨: 8~10 内容尚清楚,重点不太突出,语言表达无大的错漏, 6~7 时间掌握相差不大。 陈述不清楚,对论文内容不熟悉,逻辑混乱。 3~5 热悉相关内容、思路清晰、反映敏捷,能准确全面地 5 籡謂 回答问题。 较熟悉相关内容,基本能回答问题 3一4 不熟悉相关内容,不能正确回答基本的问题。 02 能够完成所要求主要功能,正确地输入、输出相关内 可得该部分满分的 醒劈 容,并且有充分的注释。 800% 能对输入内容进行数据合法性检测并进行相应的异常 外理」 可该部食分的 薯籀州创箭7能,狭发要馨大留家 面,增加了用户与程序的交互性。 可得该部分满分的 100% 鄙棼 提供多个测试用例,包括正常的、边界的以及不合法 的测试输入,并根据测试结果填写测试报告 可分满分的 完成测试结果分析与探讨。 可得该部分满分的 25%
6 六、考核方式与标准 (一)考核方式:考查 (二)考核标准与成绩计算方法 70% 1、按照学校统一安排,平时成绩占课程总成绩的 30%,期末成绩占课程总成绩的 2、由于时间关系,无法做到人人答辩,一个学生是否答辩由随机程序决定。 3、对于答辩的学生按以下方法计算期末成绩=答辩×15%+程序部分×35%+测试 部分×15% +文档部分×35% 4、对于没有答辩的学生按以下方法计算期末成绩=程序部分×40% +测试部分× 20% +文档部分×40% 5、各部分的评分标准 项目 评分标准 得分 平时成绩 由平时成绩考勤情况,工作态度,平时检查工作进度 完成情况,每周提交的工作成果等决定。 缺课、上课时做与课 程设计无关的事,每 次扣 3 分;没有按进 度完成工作,每次视 未完成度扣分。 答辩陈述 主题明确,重点突出;逻辑性强,语言流畅、严谨; 时间掌握合适。 8~10 内容尚清楚,重点不太突出,语言表达无大的错漏, 时间掌握相差不大。 6~7 陈述不清楚,对论文内容不熟悉,逻辑混乱。 3~5 答辩提问 熟悉相关内容、思路清晰、反映敏捷,能准确全面地 回答问题。 5 较熟悉相关内容,基本能回答问题。 3~4 不熟悉相关内容,不能正确回答基本的问题。 0~2 程序部分 能够完成所要求主要功能,正确地输入、输出相关内 容,并且有充分的注释。 可得该部分满分的 80% 能对输入内容进行数据合法性检测并进行相应的异常 处理。 可得该部分满分的 10% 数据结构、算法设计巧妙,在正确的基础上提高效率 或者增加创新的一些功能,提供友好的输入、输出界 面,增加了用户与程序的交互性。 可得该部分满分的 10% 测试部分 提供多个测试用例,包括正常的、边界的以及不合法 的测试输入,并根据测试结果填写测试报告。 可得该部分满分的 60% 完成测试结果分析与探讨。 可得该部分满分的 25%
可得该部分满分的 下运行数据的差异,形成直观结论。 15% 畜募 雾牙倦迷光芬碧安,需奛鹭雀:格符春规 范,文挡风格统一。 (三)参考资料的使用与抄袭行为的处罚 人对于要求独立完成的题目必须独立完成。 的选 全魔全 共同提 作用 3、鼓励同学 但也仅限于启发思路和解决局部疑难问题的 的果 料的使月 凡照抄、照搬者, 无论来自同学、图书、网上资源,一律视其严重程度扣分。 较严重者不及格,“代码和设计报告雷同者记零分。 七、推荐教材和散学参考书 教材: 《数据结构课程设计C语言描述第3版第三版微课版》阮宏一,电子工业出版社, 2022年. 《数据结构教程(第5版)上机实验指导》李春葆,清华大学出版社,2017年8 月第1版 《数据结构课程设计(第2版)》苏仕华.北京:机械工业出版社,2010 参考书: [】阮宏一,数据结构课程设计(CC+描述).北京:电子工业出版社. 年1月第2版
7 测试用例考虑全面,给出多个测试用例,得到在不同 条件下不同运行数据,并对不同条件下不同运行数据 进行整理归纳,通过画折线图等形象地反映不同条件 下运行数据的差异,形成直观结论。 可得该部分满分的 15% 文档部分 符合课程设计实验报告撰写的基本要求,内容齐全, 各部分论述充分,行文流畅,简明易懂。格式符合规 范,文挡风格统一。 (三)参考资料的使用与抄袭行为的处罚 1、对于要求独立完成的题目必须独立完成。 2、对于难度或规模大的选题,可以在征得老师同意的情况下几个学生组成小组分 工合作完成,共同提交一份设计报告。设计报告中必须清楚的体现分工情况,注明各自 完成了哪些部分,按贡献大小给出排名。 3、鼓励同学之间的讨论和相互启发,但也仅限于启发思路和解决局部疑难问题的 作用,绝不允许照抄、照搬同学的代码和设计报告。 4、参考资料包括各种图书,网上资源。课程设计离不开参考资料,但是对参考资 料的使用是在阅读理解的基础上加以借鉴,仅限于启发思路和解决局部疑难问题的作 用,绝不允许照抄、照搬的行为。 5、凡照抄、照搬者,无论来自同学、图书、网上资源,一律视其严重程度扣分。 较严重者不及格,代码和设计报告雷同者记零分。 七、推荐教材和教学参考书 教材: 《数据结构课程设计 C语言描述 第3版第三版 微课版》阮宏一,电子工业出版社, 2022年. 《数据结构教程(第 5 版)上机实验指导》李春葆,清华大学出版社,2017 年 8 月第 1 版. 《数据结构课程设计(第 2 版)》苏仕华.北京:机械工业出版社,2010. 参考书: [1] 阮宏一.数据结构课程设计(C/C++描述).北京:电子工业出版社. [2] 马巧梅.数据结构课程设计案例教程.北京:人民邮电出版社,2012. [3] 严蔚敏,李冬梅,吴伟民.数据结构(C 语言版).北京:人民邮电出版社,2015 年1 月第2 版.
八、课程设计的组织 1、每学期提供十余个选题,由抽签决定题目与学生的对应关系。 2、班级学生人数决定平均有多少人会抽到同一个题,要求大家独立完成,抄袭在 评分标准中有明确的处罚措施。 3提 若干个难度较大的题,供有兴趣的同学自由选择, 不受抽签结果的影 结构密切相关的选题,可以在征得老师 意的情说天同意支变选影园寺的情况下个学牛绍皮小 工合作完成,共同提交一份设计报告。设计报告中必须清楚的体现分工情况,注明各自 完成了哪些部分,按贡献大小给出排名。 大纲修订人:李汇熙 修订日期:2022年12月 大纲审定者:李汇熙 审定日期:2020年12月
8 八、课程设计的组织 1、每学期提供十余个选题,由抽签决定题目与学生的对应关系。 2、班级学生人数决定平均有多少人会抽到同一个题,要求大家独立完成,抄袭在 评分标准中有明确的处罚措施。 3、提供若干个难度较大的题,供有兴趣的同学自由选择,不受抽签结果的影响。 4、如果同学有自己更感兴趣,并且与数据结构密切相关的选题,可以在征得老师 同意的情况下改变选题。禁止未经同意改变选题。 5、对于难度或规模大的选题,可以在征得老师同意的情况下几个学生组成小组分 工合作完成,共同提交一份设计报告。设计报告中必须清楚的体现分工情况,注明各自 完成了哪些部分,按贡献大小给出排名。 大 纲 修 订 人 :李汇熙 修 订 日 期 :2022 年 12 月 大纲审定者:李汇熙 审定日期:2020年12月