101
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | https://bbs.csdn.net/forums/FZU_university_2026 |
|---|---|
| 这个作业要求在哪里 | https://bbs.csdn.net/topics/620532999 |
| 这个作业的目标 | 组队确定选题以及绩效考核方案,对选题进行一定的说明与设想 |
| 其他参考文献 | 构建之法第四版 |
我们的团队名称是 NULL。
在程序设计中,NULL 通常代表“空”或“尚未指向具体对象”。但对我们而言,NULL 并不意味着什么都没有,而意味着一切尚待定义。
同时,NULL 与我们的项目——数据结构可视化网站——也有着天然的联系。无论是链表末尾的空指针,还是树结构中的空节点,NULL 都是学习数据结构时经常遇到的概念。
我们希望从 NULL 出发,从最初的想法开始,通过需求分析、设计、开发和测试,一步步构建出一个真正具有使用价值的软件项目。
NULL 不是终点,而是一切结构建立之前的起点。
| 项目 | 信息 |
|---|---|
| 学号 | 102400133 |
| 姓名 / 昵称 | 詹志瑜 |
| CSDN 地址 | https://blog.csdn.net/2603_96864390?type=bbs |
| 性格 | 外向开朗 |
| 擅长的技术 | C++,HTML,C语言 |
| 兴趣爱好 | 打CS |
| 希望的软工角色 | 测试 |
| Slogan | 有志者事竟成 |
| 项目 | 信息 |
|---|---|
| 学号 | 102400118 |
| 姓名 / 昵称 | 林嘉祚 |
| CSDN 地址 | https://blog.csdn.net/2503_9260809 |
| 性格 | 神秘 |
| 擅长的技术 | web |
| 兴趣爱好 | 羽毛球 |
| 希望的软工角色 | 前后端 |
| Slogan | 少说多做 |
| 项目 | 信息 |
|---|---|
| 学号 | 102400119 |
| 姓名 / 昵称 | 林俊杰 |
| CSDN 地址 | https://blog.csdn.net/jie111jie?type=blog |
| 性格 | 开朗外向,乐于沟通 |
| 擅长的技术 | c++ |
| 兴趣爱好 | 打羽毛球和乒乓球 |
| 希望的软工角色 | 前端或者测试 |
| Slogan | 时间改变一切 |
| 项目 | 信息 |
|---|---|
| 学号 | 102400134 |
| 姓名 / 昵称 | 郑伟航 |
| CSDN 地址 | https://blog.csdn.net/2401_88196572?spm=1000.2115.3001.5343 |
| 性格 | 开朗外向 |
| 擅长的技术 | 代码编写,数据库的使用,ai的运用】 |
| 兴趣爱好 | 测试 |
| 希望的软工角色 | 【前端 / 后端 / 测试 / PM / 其他】 |
| Slogan | 用心做产品(doge) |
| 项目 | 信息 |
|---|---|
| 学号 | 102400131 |
| 姓名 / 昵称 | 姚浩然 |
| CSDN 地址 | https://blog.csdn.net/Ding_China_Zhen |
| 性格 | 儒雅随和 |
| 擅长的技术 | golang cpp |
| 兴趣爱好 | 羽毛球 |
| 希望的软工角色 | 后端与测试与产品 |
| Slogan | 加油大家 |
| 项目 | 信息 |
|---|---|
| 学号 | 102400325 |
| 姓名 / 昵称 | 离鸽 |
| CSDN 地址 | https://blog.csdn.net/u014680416?type=bbs |
| 性格 | 阳光开朗 |
| 擅长的技术 | 什么都会一点点 |
| 兴趣爱好 | 健身打游戏耍起 |
| 希望的软工角色 | 后端 |
| Slogan | 不气不骄不躁 |
| 项目 | 信息 |
|---|---|
| 学号 | 102400125 |
| 姓名 / 昵称 | 苏林 |
| CSDN 地址 | https://blog.csdn.net/2403_88052187?spm=1000.2115.3001.5343 |
| 性格 | 随和 |
| 擅长的技术 | C++ |
| 兴趣爱好 | 打游戏 |
| 希望的软工角色 | 前端/测试 |
| Slogan | 天天向上 |
| 项目 | 信息 |
|---|---|
| 学号 | 102400136 |
| 姓名 / 昵称 | 邹毅轩 |
| CSDN 地址 | https://blog.csdn.net/2403_88683169?type=bbs |
| 性格 | 乐观、细心、善于沟通 |
| 擅长的技术 | 前端开发(HTML/CSS/JavaScript)、Vue.js、React |
| 兴趣爱好 | 阅读技术博客、打篮球、听音乐 |
| 希望的软工角色 | 前端开发 |
| Slogan | “用代码书写未来,用热爱点亮每一行。” |
数据结构是计算机相关专业的重要基础知识,但链表中的指针变化、树的节点关系、图的遍历过程等内容具有较强的抽象性。
传统教材、PPT 和板书通常使用文字与静态图片进行讲解,而数据结构的插入、删除、查找和遍历本身是一个动态变化的过程。学习者往往需要在脑中自行模拟程序执行后的结构变化,理解成本较高。
因此,我们希望解决以下需求:
针对上述需求,我们计划采用:
Web + 动态可视化 + 交互操作 + 步骤讲解
的方式实现数据结构可视化学习网站。
主要包括:
数据结构图形化
将数组、链表、栈、队列、树、图等数据结构转换为直观的图形,通过节点、连线、下标等方式展示其内部结构。
操作过程动画化
将插入、删除、查找、遍历等操作拆分为若干步骤,通过动画展示每一步产生的结构变化。
代码与动画同步
在动画执行过程中同步展示代码或伪代码,并高亮当前执行步骤,使用户建立:
代码执行 → 数据变化 → 可视化结果
三者之间的联系。
支持用户交互
用户可以自定义数据,并主动执行不同的数据结构操作。
自由控制演示过程
提供开始、暂停、下一步、上一步、重新开始、速度调整等功能,使用户可以按照自己的学习节奏观察算法执行过程。
相比单纯依靠教材、静态图片或固定教学视频进行学习,本项目希望通过动态和交互的方式降低数据结构的理解成本。
| 用户需求 | 项目带来的收益 |
|---|---|
| 数据结构过于抽象 | 将节点、指针、边、下标等信息直观展示 |
| 难以理解结构变化 | 使用动画逐步展示操作过程 |
| 代码与图形难以对应 | 将代码执行步骤与可视化状态进行关联 |
| 固定案例缺少互动 | 支持用户输入自己的数据进行实验 |
| 学习节奏存在差异 | 支持暂停、单步执行和速度调整 |
| 复习知识成本较高 | 提供集中、直观的数据结构学习入口 |
我们希望用户不只是记住某种数据结构的定义,而是能够真正理解:
数据结构是什么、代码做了什么、结构又是如何一步步发生变化的。
目前,数据结构学习主要依赖教材、PPT、教学视频、博客教程以及已有的数据结构可视化工具。
| 现有方式 | 优势 | 存在的不足 | 我们的改进方向 |
|---|---|---|---|
| 教材 / PPT | 理论完整、内容系统 | 以文字和静态图片为主 | 使用动态演示展示变化过程 |
| 教学视频 | 讲解详细 | 用户主要被动观看,交互能力有限 | 允许用户主动执行操作 |
| 博客 / 教程 | 获取方便、内容丰富 | 内容相对分散 | 集中展示常见数据结构 |
| 可视化工具 | 能够直观展示数据结构 | 不同工具在教学内容、中文支持和交互方式上各有侧重 | 强化代码、动画和步骤讲解之间的联系 |
我们的项目并不只是追求“把数据结构做成动画”,而是希望围绕学习过程进行设计。
项目将重点关注:
项目初期,我们计划首先在团队内部进行测试,检查动画效果、交互逻辑以及知识讲解是否清晰。
随后邀请班级同学进行体验,重点收集:
在此基础上不断修改和完善项目。
项目成熟后,可以将其应用于:
同时通过 CSDN、课程社区以及项目展示等方式进行分享,根据真实用户的反馈持续进行迭代。
打造一个面向数据结构学习者的 Web 可视化学习平台,将抽象的数据结构及其操作过程转化为直观、动态、可交互的可视化演示。
选题 PDF 文档: 点击查看
我们选择数据结构可视化作为项目方向,是希望解决数据结构学习过程中“概念抽象、过程难以观察”的问题。我们计划围绕数组、链表、栈、队列、树、图等常见数据结构,实现插入、删除、查找、遍历等核心操作的动态可视化,并逐步加入代码同步、步骤讲解、自定义数据等交互功能。我们希望项目不仅能够完成课程实践要求,还能真正应用于数据结构课程的预习、课堂演示、课后复习和自主学习,成为一个让初学者能够直观看懂数据结构运行过程的学习工具。让初学者更快的领悟到数据结构的重要性以及奇妙,使得初学者通过我们的网站来学习数据结构的知识。通过生动的动画使初学者更容易理解,同时也支持自己添加数据结构的实例,并可操作其增删改查的操作,通过动画演示
为了更加客观地评价每名成员在团队项目中的实际贡献,我们采用:
任务完成度 + 工作质量 + 实际工作量 + 团队协作 + 参与度与纪律
相结合的绩效考核方式。
所有成员,包括组长,均按照相同的基本规则进行考核。
团队绩效考核遵循以下原则:
每名成员每个阶段的绩效总分为 100 分。
| 考核指标 | 权重 | 考核内容 |
|---|---|---|
| 任务完成度 | 30% | 是否按时完成任务、是否达到任务要求、是否存在无故延期 |
| 工作质量 | 25% | 代码、测试、文档、设计等成果的质量与规范程度 |
| 实际工作量 | 20% | 承担任务的数量、难度、耗时以及责任大小 |
| 团队协作 | 15% | 沟通、Code Review、帮助成员、解决问题等 |
| 参与度与纪律 | 10% | 会议参与、任务响应、进度汇报及团队制度执行情况 |
| 合计 | 100% | — |
主要根据成员负责的任务完成情况进行评价,包括:
由于需求变化、技术难题等合理原因导致延期,并且提前与团队沟通的,不按照无故延期处理。
根据成员最终交付成果的质量进行评价。
开发任务主要考虑:
非开发任务则根据对应成果进行评价,例如文档完整性、测试充分程度、UI 设计质量、PPT 制作质量等。
团队在分配任务时,根据任务复杂程度确定任务点:
| 任务点 | 任务复杂程度 |
|---|---|
| 1 Point | 工作量较小 |
| 2 Points | 较简单任务 |
| 3 Points | 中等工作量任务 |
| 4 Points | 较复杂任务 |
| 5 Points | 核心任务或工作量较大的任务 |
阶段结束后,根据成员实际完成的任务点、任务难度以及临时承担的额外工作综合评价。
如果实际任务难度与最初预估存在明显差异,可以经过团队讨论后调整任务点。
以下行为计入团队协作贡献:
如果出现长期不回复团队消息、拒绝必要协作并影响项目推进等情况,则根据实际影响进行扣分。
主要根据以下方面评价:
有合理原因并提前说明的请假或延期,不作为无故缺席或无故延期处理。
设成员的:
TQWCP则该成员的阶段绩效分数为:
$$
S=T\times30%+Q\times25%+W\times20%+C\times15%+P\times10%
$$
需要计算团队成员最终贡献比例时,对所有成员的绩效分数进行归一化。
设第 i 名成员的绩效分数为 $S_i$,则其贡献比例为:
$$
C_i=\frac{S_i}{\sum_{j=1}^{n}S_j}\times100%
$$
对于以下额外贡献,经过团队讨论后可在对应考核项目中适当加分:
对于无故延期、无故缺席、长时间失联、交付成果明显不符合要求等情况,根据实际影响在对应考核项目中扣分。
所有加分和扣分均需要说明具体原因,并以实际任务和工作记录为依据。
如果成员对绩效结果存在异议,可以提交任务记录、代码、文档等实际工作证明,由团队共同讨论复核。
我们的绩效考核目标是做到:有任务、有记录、有成果、有依据。