跳转至

课程大作业

本课程只设置一个大作业,不另设小作业。每位同学独立完成一个 AI 辅助编程项目,四个检查点分别提交同一项目的阶段成果。

你可以开发软件、实现 Agent 应用、优化开源项目,或编写数据处理与可视化程序。项目需要有明确的目标、可运行的代码和可核查的结果,同时完整保留 AI 交互记录与 Git 版本历史。

基本要求

  • 独立完成。 可以讨论思路和工具使用经验,代码实现、调试与验证由本人完成。
  • 语言和工具自选。 课程使用 OpenCode 演示;项目中可以使用其他合适的 AI 编程工具,说明选择理由并保留使用记录。
  • 控制项目规模。 建议选择核心功能约 2–3 天能够初步跑通的题目,留出时间调试、改进和测试。
  • 审查 AI 生成的内容。 理解关键代码,核对运行结果,在报告中说明重要的判断和修改。
  • 说明个人贡献。 引用已有代码、框架和数据时注明来源;基于已有项目开发时,区分原有功能与本学期完成的工作。

选题类别

下列四类均可选,每类的参考项目只用于说明范围,不限制具体题目。Agent 是其中一个可选类别,其他类别的项目无需接入大模型。

类别 主要工作 主要成果
软件开发 面向具体需求开发应用、工具或游戏 可运行的软件、使用说明与测试
Agent 应用 结合模型、数据和工具完成具体任务 Agent 程序、执行记录与评估结果
开源项目优化 在已有项目中修复问题或改进功能、性能与工程流程 个人补丁、前后对比与回归验证
数据处理与可视化 处理数据、实现分析方法或展示算法过程 可重复运行的程序、示例数据与验证结果

跨类别项目按主要目标选择一类,并使用对应评分细则。例如,数据看板可以归入数据处理与可视化;若重点在于让模型选择工具、连续完成任务,则可以归入 Agent 应用。

类别之外的探索,请在正式开展前联系助教。 沟通时说明项目目标、已有基础、计划完成的工作和验证方式,确认项目范围与评分重点。推进中需要大幅调整选题时,也请及时联系助教。

软件开发

面向一项实际需求,完成从输入、处理到输出的使用流程。可以采用命令行、网页、桌面、移动端或游戏界面。

参考项目

参考方向 起步范围 验证示例
学习任务管理工具 任务增删改查、完成状态、日期筛选和本地保存 完整操作流程、重启后的数据、无效输入处理
文件整理与批量操作工具 按规则重命名或归类,执行前显示预览 测试目录前后对比、重名和无权限处理
课程或实验辅助工具 完成一种任务的录入、查询、计算或导出 用已知样例核对结果,演示完整使用流程
规则明确的小游戏 核心规则、胜负判断、重新开始和基本交互 正常对局、边界局面和非法操作

先做通一条主要流程,再考虑扩展。例如,任务管理工具可以先支持本地单人使用,再增加同步功能。

评分重点: 核心功能是否完整、结果是否正确、常见错误能否妥善处理,以及代码结构和测试。命令行工具同样可以获得高分,使用体验按项目的实际目标评价。

Agent 应用

选择一个具体场景,组织模型、数据和工具完成任务。可以使用现有框架,也可以自行实现工作流程。

参考项目

参考方向 起步范围 验证示例
本地资料检索助手 检索指定资料集,回答问题并给出出处 已知答案、证据不足和资料冲突的样例
文献整理助手 提取论文或元数据中的字段,整理主题与清单 人工核对结果、缺失字段和不确定内容处理
实验日志排查助手 读取一种日志,调用检查工具并给出诊断依据 预设故障、工具执行记录和无法确定原因时的反馈
文件归档助手 根据整理目标生成方案,经确认后在测试目录执行 计划与实际操作对照、冲突和失败处理

先限定输入、工具和操作范围,再逐步增加能力。使用外部模型服务时,记录模型与配置,保留固定测试样例,准备服务暂不可用时的测试或演示方式。

评分重点: 任务完成效果、场景与工具设计、执行控制和失败处理,以及模块结构和评估方法。模型价格、Agent 数量和工具数量不作为加分依据。

开源项目优化

从一个能运行的开源项目出发,选择范围明确的问题,借助 AI 理解代码、实施修改并验证效果。

参考项目

参考方向 起步范围 验证示例
可复现缺陷修复 复现一个问题,定位原因并修复 修复前失败、修复后通过的测试,相关功能回归
性能优化 针对实际瓶颈改进算法、数据结构或执行流程 同一环境和输入下的重复测量、正确性对照
功能或兼容性扩展 增加输入格式、插件能力或平台兼容功能 新功能演示、兼容性样例和旧功能验证
测试与工程流程改进 为薄弱模块补充测试,或改进构建、检查与持续集成 能暴露问题的测试,或可复现的流程改进

选题时注明原仓库、许可证和起始提交。可以从已有 Issue 入手,也可以自己发现问题。仅修改文字、主题或格式,通常不足以覆盖课程要求的开发、调试与验证过程。

评分重点: 原问题与基线是否清楚、个人改动是否有效、原有功能是否保持可用,以及补丁质量和回归测试。评分只看个人贡献,不要求 PR 被上游合并。

数据处理与可视化

围绕学习、科研或公开数据中的一个问题,实现可运行的处理程序,并检查输入、计算和输出是否一致。

参考项目

参考方向 起步范围 验证示例
实验数据处理工具 读取固定格式数据,完成清洗、统计和导出 人工可核对的小数据集,缺失值、单位和异常值处理
公开数据分析看板 围绕明确问题整理、筛选、汇总和展示数据 数据来源、计算口径、图表与原始记录对照
算法过程可视化 展示一种排序、搜索或图算法的逐步执行 每一步状态、边界输入和最终结果
文本或日志分析工具 结构化提取、统计和检索指定文本或日志 有标准答案的样例、误匹配分析和无效输入处理

可以使用本地文件或固定数据快照。采用专业领域方法时,需要解释计算口径、适用条件和主要结论的核对方式。

评分重点: 数据与计算是否正确、处理流程是否完整、结果是否表达清楚,以及运行过程的可复现性和测试。算法可视化项目重点核对算法状态与结果,无需使用外部数据集。

阶段提交

检查点 1 先说明项目目标、主要类别、技术栈和 AI 工具,记录环境配置与首次实践,并在本地建立代码仓库、完成首次提交。本次提交报告和首次实践的完整 AI 交互记录,无需提交代码仓库;含版本历史的仓库从检查点 2 起提交。详细任务分解、里程碑和 AGENTS.md 在第 5 讲学习后,随检查点 4 提交。

具体材料与自查清单见检查点 1:选题与启动,仓库操作见 Git 使用基础。

所有日期均为 2026 年,截止时间均为当日 23:59(北京时间)。提交方式见网络学堂。

节点 截止日期 主要材料
检查点 1:选题与启动 10 月 18 日,周日 报告(项目简介与目标、技术栈与 AI 工具、环境配置与首次实践、Git 启动情况)及完整 AI 交互记录;无需提交代码仓库
检查点 2:初始进展 10 月 25 日,周日 含版本历史的仓库、骨架代码、提示词与上下文实践记录及迭代对比
检查点 3:中期检查 11 月 8 日,周日 核心模块、代码生成与调试记录、最小可复现示例、当前问题清单
检查点 4:规范检查 11 月 15 日,周日 任务分解与计划、验收标准、里程碑、AGENTS.md、完成度自查、完整过程记录
最终提交 11 月 29 日,周日 完整代码、测试、项目报告,含 AI 使用方法与过程反思
同伴互评材料 12 月 6 日,周日 对展示项目的评分表与评论

开源项目在检查点 2 可提交已跑通的基线版本、初步补丁或测试骨架;检查点 3 提交核心改动及复现、测量结果;检查点 4 对照任务清单检查改动和回归验证。各类别的截止时间相同。

第 4 讲为客座讲座,不布置新检查点。最终提交的具体要求在 11 月 17 日第 6 讲公布,课堂展示在 12 月 1 日第 8 讲进行。各次反馈与展示安排见课程安排。

过程记录与最终材料

完整保存 AI 交互记录与 Git 版本历史。在关键任务旁补充简短说明:

  • 当时要解决什么问题,使用了哪些工具和模型;
  • 给 AI 提供了哪些需求、上下文和提示;
  • 接受、修改或拒绝了哪些建议,原因是什么;
  • 如何运行和核对结果,对应哪个代码提交;
  • 还有哪些问题未解决,完整记录放在哪里。

报告可选取代表性片段分析,但仍需保留完整记录。代码、测试和报告之外,可以附上演示样例、数据快照、执行记录或前后测量结果,帮助他人复现成果。

引用代码和数据时注明来源,遵守开源许可。不要把密钥或敏感信息写入提示和仓库,共享日志前检查并脱敏个人凭据。

评分方式

评分项 分值
选题与启动 10
阶段检查点 15(检查点 2、3、4 各 5 分)
功能实现 30
代码质量 10
项目报告 20
同伴互评参与 15
合计 100

功能实现和代码质量按所选类别评分,其余部分使用共同标准。具体分项见大作业评分细则。

课程组依据检查点 4 和最终提交材料,遴选约 10 个项目在第 8 讲展示,每个约 8 分钟。全体同学参与评分与评论,参与质量计入个人成绩。“最佳项目”等荣誉按教师 60%、同伴 40% 加权评出,仅用于荣誉评选。

相关资料

课程网站提供课程内容,网络学堂发布正式通知和提交说明,课程微信群用于提醒与交流。选题沟通请联系助教。