编程证明指南

核心问题:代码相似(都用 VEX API + PID)的情况下,学生如何证明代码是自己写的? 背景:代码问题导致的 DQ 占所有 DQ 的 ~35%,是最大的单一原因


为什么编程最容易被 DQ

  1. 代码看起来都差不多 — 所有队都用 VEX API,PID 代码网上到处都是
  2. 学生容易背术语 — 说"我用了 PID"但说不清 PID 是什么
  3. 代码可以一秒复制 — 不像硬件还需要动手搭,代码复制粘贴就能跑
  4. 评审可以现场验证 — "打开代码给我看" 是最有效的测试手段

评审怎么测代码是不是你写的

评审策略 学生应对
"打开代码,我随便指一段你解释" 不是你选哪段,是评审随机指
"这个变量叫 XX,为什么这样命名" 自己写的代码命名有自己的逻辑
"如果我要加一个新功能,改哪里" 理解架构才能回答
"这段代码删掉会怎样" 理解依赖关系
"你的 PID 参数是多少,怎么调的" 要说过程不只是结果
"你和 XX 队的代码像不像" G4d 测试

真写了 vs 没写:评审怎么看

维度 自己写的学生 复制粘贴的学生
代码命名 有自己的命名习惯和风格 风格和网上模板一致
解释逻辑 用自己的话,可能不标准但理解正确 念变量名或背诵定义
bug 经历 能说出具体的 bug 和调试过程 "没遇到过 bug"
修改历史 "一开始写的 XX,后来改成了 YY 因为 ZZ" 只有最终版本
加功能 知道改哪里、怎么改 "需要想想"或完全说不出
PID 调参 能说出调参步骤和每步的效果 只知道最终参数值

证明框架:编程的 5 件事

1. 代码结构(架构证据)

"我们的代码分成 ___ 个部分,分别是 ___,这样组织是因为 ___"

怎么准备

常见错误

2. 关键算法(理解证据)

"我用了 PID 控制,P 是 ___,作用是 ___;I 是 ___,作用是 ___;D 是 ___,作用是 ___"

怎么准备(PID 专项)

怎么准备(其他算法)

常见错误

3. 调试过程(迭代证据)

"有一次自动赛 ___出了问题,我用 ___ 方法定位到原因是 ___,改了 ___ 后解决了"

怎么准备

常见错误

4. 开发过程(时间线证据)

"我是按 ___ 顺序写的代码,先写了 ___,因为 ___,然后加了 ___"

怎么准备

常见错误

5. 和别人的代码有什么不同(G4d 证据)

"虽然我们和 XX 队都用了 PID,但我们的 ___ 不同,因为 ___"

怎么准备

常见错误


编程面试的连带问题链

"你的代码是谁写的?"
    ↓
"打开给我看,解释这段"(随机指)
    ↓ 如果解释不清
"这个算法/函数是从哪学的?"
    ↓
"你自己改了什么?"
    ↓ 如果说不出改动
"教练有没有帮你写过代码?"  ← 到 G2
    ↓
"你和 XX 队的代码一样吗?"  ← 到 G4d
    ↓
"笔记本里有代码开发记录吗?给我看看"  ← 终极验证

"代码不是我写的"怎么办

情况 1:代码是队友写的,我负责其他工作

可以接受,但这个队友必须能完整解释代码。你需要:

情况 2:代码是教练写的

G2 违规。必须立刻补救:

情况 3:代码是从网上复制的

G4 违规(除非是 VEX 官方 Hero Bot 代码)。补救:


现在就做的行动清单

对每支队伍:

  1. 指定"代码代言人" — 谁最了解代码,谁负责回答编程问题
  2. 代码代言人完成"5件事"准备 — 架构、算法、调试、开发过程、差异
  3. PID 专项 — 每个用了 PID 的学生写一段自己的话解释 P/I/D + 自己的调参过程
  4. 准备一个 bug 故事 — 用"发现→排查→定位→修复→验证"结构
  5. 和同车型队伍做代码差异对比 — 列出具体差异点
  6. 检查代码有没有版本历史 — git commit 或笔记本代码日志
  7. 模拟"打开代码现场解释" — 让别人随机指代码,学生现场解释