二、最重要的是:上课前不要现场装环境

我非常赞同你说的:

VS Code + WSL / Ubuntu + AI

但我会要求学生在 开课前一天就全部准备完成。

Windows 学生统一:

 1Windows 11
 2    ↓
 3WSL2
 4    ↓
 5Ubuntu
 6    ↓
 7g++ / gdb / git
 8    ↓
 9VS Code
10    ↓
11VS Code Remote/WSL
12    ↓
13AI Agent

有 Linux 实机的学生直接 Ubuntu 即可。

我反而不推荐 Ubuntu 虚拟机作为第一选择。因为大学生 ACM 编程,本质上只需要 Linux terminal + gcc,WSL2 足够,而且文件、剪贴板、VS Code 集成都方便很多。

统一要求能运行:

1g++ --version
2git --version
3gdb --version

再让学生提前编译:

1#include <bits/stdc++.h>
2using namespace std;
3
4int main() {
5    cout << "ACM Ready!" << endl;
6    return 0;
7}

统一编译命令可以直接教:

1g++ main.cpp -std=c++20 -O2 -Wall -Wextra -o main
2./main

甚至第一周都不需要 CMake。


三、AI 工具我会和你的方案稍微不同

你提到:

Cherry Studio + VS Code + Cline

我不建议三个东西都作为“必装软件”。

2026 年的 VS Code 自身已经把 Agent 能力做得非常完整,目前官方支持 GitHub Copilot、Anthropic Claude 和 OpenAI Codex 等 agent harness,也可以在编辑器里进行 Plan、Agent、代码编辑、终端执行和测试。VS Code 官方现在已经把这种 agent 工作流当作核心开发方式之一。

所以我会设计成:

工具定位是否必需
VS Code编程环境必须
VS Code AI Agent / Cline编程 AI二选一必须
Cherry Studio问概念、总结知识、读题可选
Git保存代码/比较 AI 修改必须

如果让我给学生统一,我现在更倾向于

安装 deepseek-v4-for-copilot 插件

这个插件的官方使用文档: https://github.com/Vizards/deepseek-v4-for-copilot/blob/main/README.zh-cn.md

第一步: 安装deepseek-v4-fro-copilot插件

SCR-20260925-kfzv

第二步: 配置 API -key

注册 deepseek 首先充值deepseek,然后来到deepseek api key页面,创建一个 key

配置 API如下: vscode 快捷键 ctrl + shift + p 打开命令面板:

SCR-20260925-kmaj

然后粘贴自己key

开始聊天

SCR-20260925-koef

1不要重写我的代码。
2
3请根据题目检查我的 main.cpp:
41. 判断算法复杂度
52. 找可能的边界情况
63. 如果存在 bug,只告诉我 bug 的位置和原因
74. 不要直接给完整答案

AGENTS.md

 1# ACM Learning Rules
 2
 3你是一名 ACM 算法助教。
 4
 5目标不是替学生完成题目,而是帮助学生掌握算法。
 6
 7当学生询问题目时:
 8
 91. 不要直接给出完整代码。
102. 首先询问学生当前的思路。
113. 优先给提示,而不是答案。
124. 提示顺序:
13   - 数据范围
14   - 时间复杂度
15   - 算法方向
16   - 关键性质
17   - 伪代码
185. 只有学生已经写出代码后,才允许帮助 Debug。
196. Debug 时优先指出问题位置,不直接重写完整程序。
207. AC 后帮助学生分析:
21   - 时间复杂度
22   - 空间复杂度
23   - 边界情况
24   - 是否存在更优解法
258. 每道题最后要求学生自己总结算法。

2. 第一个实验:直接让 AI 看整个工程

比如创建:

1acm-test/
2└── main.cpp

main.cpp:

 1#include <bits/stdc++.h>
 2using namespace std;
 3
 4int main() {
 5    vector<int> a = {5, 1, 4, 2, 3};
 6
 7    sort(a.begin(), a.end());
 8
 9    for (auto x : a)
10        cout << x << " ";
11
12    return 0;
13}

8. 对 ACM,我最推荐的是这个 Prompt

例如一道题,学生先自己思考,然后告诉 Agent:

 1你是我的 ACM 助教。
 2
 3请阅读题目和我当前的 main.cpp。
 4
 5不要直接给我完整答案,也不要直接重写代码。
 6
 7请按照下面顺序帮助我:
 8
 91. 根据数据范围判断允许的时间复杂度
102. 判断我的算法思路是否正确
113. 如果错误,只给我一个提示
124. 如果代码有 bug,指出大概位置和原因
135. 等我修改后再继续检查

这个用法非常好。

再比如 WA:

1我的程序在 OJ 上 WA。
2
3不要直接修改代码。
4
5请:
61. 阅读 main.cpp
72. 分析可能遗漏的边界情况
83. 给我构造一个能 Hack 掉当前程序的数据
94. 告诉我实际输出和正确输出为什么不同

这个比“帮我改代码”有教学价值太多。

9. Agent 最厉害的地方:可以把多个动作串起来

以后学生甚至可以说:

 1阅读当前目录里的题目说明和 main.cpp。
 2
 3先编译程序。
 4
 5然后自己生成 10 组小规模测试数据。
 6
 7如果程序崩溃或者出现明显错误,
 8告诉我失败的测试数据以及原因。
 9
10不要修改代码。

Agent 可以形成:

 1读取文件
 2   ↓
 3理解代码
 4   ↓
 5调用 Terminal
 6   ↓
 7g++ 编译
 8   ↓
 9运行测试
10   ↓
11分析结果
12   ↓
13回答学生

这才是真正的 Coding Agent,也是它和 Cherry Studio 普通聊天最大的区别。