87
社区成员
发帖
与我相关
我的任务
分享为了不遗漏作业内容,这里有一份checklist方便同学们快速查阅。
本次作业截止时间为 2026年9月24日23时59分。
注:博客发布后需要审核,请同学们记得提前发布博客,避免影响作业提交。
AI编程助手已经深入程序员的日常开发,成为一位"随叫随到的结对伙伴"。本次结对作业顺应这一趋势,每位同学单独与AI组成人机结对,在理解需求的基础上,与AI协作设计出解决问题的系统界面原型,再与AI协作编程实现,并最终部署到华为云服务器。
与传统的"人人结对"不同,本次结对对象是AI。请结合《构建之法》第4章"两人合作"中关于结对编程的论述,思考并实践:如何与AI高效协作?如何审查、验证并改进AI产出的设计与代码?AI结对与传统人人结对有何异同? 这是本次作业的核心考察点。
小刚是一个电影迷,他最近看了一部电影:里面的机器人能够快速地分类出它视野里的各个物体,这让他觉得十分酷炫,并激发了他对计算机视觉领域的兴趣。于是他决定通过阅读论文来了解这个领域的研究现状。但令人苦恼的是,他不知道近几年计算机视觉领域的热门研究方向,根据论文列表去一篇一篇查找总结,效率又实在太低,于是想求助"软件工程实践"的同学们,希望我们能帮助他设计一个平台解决现阶段的需求。
计算机视觉领域世界三大顶级会议分别为:国际计算机视觉与模式识别会议(CVPR)、国际计算机视觉大会(ICCV)和欧洲计算机视觉国际会议(ECCV)。以CVPR为例,据会议官网显示,2025年大会有 13008 篇论文投稿,其中录取 2878 篇。论文数量如此庞大,靠人工逐篇阅读来总结研究热点几乎不可行。
希望此平台至少具备以下功能:
- 功能1:论文信息爬取
- 获取待爬取论文列表及论文信息爬取;
- 支持用户输入单个论文题目,也支持批量导入论文列表;
- 通过论文列表,爬取论文的摘要、关键词、原文链接。
- 功能2:论文列表管理
- 对已爬取的论文列表进行操作,可对论文列表进行增、删、改操作;
- 可对论文列表进行查询:输入论文题目精确查询,也支持模糊查询(输入论文编号、关键词等基本信息);
- 若在论文列表中不存在所要检索的论文,则根据输入的查询语句到网站爬取并返回论文的摘要、关键词、原文链接。
- 功能3:热门方向分析
- 分析已爬取到的论文信息,提取 Top 10 热门领域或热门研究方向。
- 功能4:关键词图谱
- 形成如关键词图谱之类直观的查看方式,点击某个关键词可展现相关的论文。
- 功能5:热度走势对比(动图)
- 可对多年间、不同顶会的热词呈现热度走势对比,以动图的形式呈现(此功能范畴限定在计算机视觉的三大顶会CVPR、ICCV、ECCV内)。
以上是本次作业的基础要求,希望同学们可以在满足总的设计思路和用户需求不变的前提下,尽量发挥自己的想象能力,设计出一个交互友好的原型。例如:
年度热词演变:展示历年Top 10热词榜单的演变对比。
了解更多:介绍CVPR、ICCV、ECCV顶会背景与统计口径说明,通过图文使平台更具吸引力。
注:
每位同学必须与至少一个AI编程助手结对完成本次作业(如豆包、通义灵码、CodeGeeX、GitHub Copilot、ChatGPT、Claude等),并在博客中如实、完整地记录人机协作过程:
本次作业继续沿用 CodeArts 和 华为云服务器 提供的功能和服务,在第一次个人作业Git使用的基础上,针对 Git 使用 与 人机协作 的相关内容进行考察。
.gitignore 进行忽略,并确保不会提交到项目仓库中。README.md,内容包括:作业链接、学号、项目介绍、数据来源、AI使用说明。dev分支,在dev分支上开发,开发结束后再合并到main分支;在基本功能开发完成后发布 release包,标注版本为1.0.0,后续完成更多功能可以继续发布新的release包。编写一份 codestyle.md 作为代码规范,要求该代码规范来自于主流的官方规范或者大公司推荐的规范,并在代码规范顶部标注来源。
本次作业不限制语言,不限制库和框架的使用。
本次作业总分100分
请确认目录可以正确跳转!
务必包含以下大标题(标题含义相近即可,你可以个性化你自己的标题):
| 这个作业属于哪个课程 | <班级的链接> |
|---|---|
| 这个作业要求在哪里 | <作业要求的链接> |
| 这个作业的目标 | <写上具体方面> |
| 其他参考文献 | ... |
markdown代码
|这个作业属于哪个课程|<班级的链接>|
|-- |-- |
|这个作业要求在哪里|<作业要求的链接>|
|这个作业的目标|<写上具体方面>|
|其他参考文献|... |
班级群如果发布相关通知也是作业要求一部分,请及时查看群通知; 若需要在群填写相关信息,未能在deadline之前完成填写的,扣实际得分的50% ; 如对作业存在疑问,请在deadline之前三天在班级群提出; 若助教对作业要求有修改,会在群内公告,请务必查看并按新的要求完善作业; 请及时回复老师或助教的点评并作出相应修改。即使提交了作业,也应该关注班级群中助教的公告!
若有对题意不清或者有不理解的地方,可在该博客下方留言,或者在QQ群/微信群中直接提问。
PSP是卡耐基梅隆大学(CMU)的专家们针对软件工程师所提出的一套模型:Personal Software Process (PSP, 个人开发流程,或称个体软件过程)。
| PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
|---|---|---|---|
| Planning | 计划 | ||
| • Estimate | • 估计这个任务需要多少时间 | ||
| Development | 开发 | ||
| • Analysis | • 需求分析 (包括学习新技术) | ||
| • Design Spec | • 生成设计文档 | ||
| • Design Review | • 设计复审 | ||
| • Coding Standard | • 代码规范 (为目前的开发制定合适的规范) | ||
| • Design | • 具体设计 | ||
| • Coding | • 具体编码 | ||
| • Code Review | • 代码复审 | ||
| • Test | • 测试(自我测试,修改代码,提交修改) | ||
| Reporting | 报告 | ||
| • Test Report | • 测试报告 | ||
| • Size Measurement | • 计算工作量 | ||
| • Postmortem & Process Improvement Plan | • 事后总结, 并提出过程改进计划 | ||
| 合计 |
一个功能完备的程序不是一蹴而就的。通过将顶会热词统计平台的需求划分为论文爬取、列表管理、热词分析、关键词图谱、热度走势等功能模块,可将一个大任务划分为可操作的小任务,同时最好按照任务难度或紧急程度指定各个任务的完成次序。因此,在动手开发之前,要先估计将在程序各模块开发所需耗费的时间,以及完成整个项目所需的时间,将这个[估计值]记录下来,写成PSP 的形式。
PSP的目的是:记录工程师如何实现需求的效率,和我们使用项目管理工具(例如微软的Project Professional,或者禅道等)进行项目进度规划类似。
有关PSP的更多内容,请自行阅读邹欣老师的博客:工程师的能力评估和发展
请阅读邹欣老师的博客:源代码管理,了解源代码管理的10个实践问题。
本次作业要求使用华为云进行源代码管理,代码有进展即签入华为云。签入记录不合理的项目会被助教抽查询问项目细节。
对代码签入的具体要求如下:根据需求划分功能后,每做完一个功能,编译成功后,应至少commit一次。具体的功能划分,请自行定义,并在撰写博客时体现出来,遵循自己对需求的功能划分来提交代码即可。