跳到主要内容

评分标准模式(MS Pattern)

伪代码题通用评分模式

结构分(M marks — Method)

| 类型 | 常见 M 点 | 分值 |

|------|-----------|------|

| 搜索/排序 | 正确设置循环/边界 | 1 |

| ADT 操作 | 正确检查满/空条件 | 1 |

| 递归 | 正确识别 base case | 1 |

| 链表 | 正确声明 Node 结构 | 1 |

执行分(A marks — Accuracy)

| 类型 | 常见 A 点 | 分值 |

|------|-----------|------|

| 搜索 | 正确的比较和区间更新 | 1-2 |

| 排序 | 正确的元素移动/插入 | 1-2 |

| Stack | 正确的指针操作顺序 | 1-2 |

| Queue | 正确的 Front/Rear 管理 | 1-2 |

| 递归 | trace table 值正确 | 1-2 |

理解分(B marks — Breadth)

| 类型 | 常见 B 点 | 分值 |

|------|-----------|------|

| 边界 | 处理未找到/空结构的情况 | 1 |

| 效率 | 理解算法的复杂度 | 1 |

| 对比 | 与另一种算法对比 | 1 |

关键词与指令词

| 指令词 | 要求 | 常见陷阱 |

|--------|------|----------|

| Write | 写出完整伪代码 | 忘记声明变量 |

| Complete | 填空完成伪代码 | 忽略上下文提供的变量名 |

| Trace | 填写执行表格 | 调用顺序错误 |

| State | 直接陈述(如 Big O) | 不需要解释 |

| Explain | 解释原理 | 只说名字不给解释不得分 |

| Describe | 描述特征 | 至少 2-3 个特征 |

| Compare | 比较异同 | 必须说清区别 |

MS 中的特殊规则

Follow-through(FT)

  • 如果 A 部分的排序结果错了,但 B 部分基于 A 的(错误)结果正确执行了操作,B 部分仍然可以得分

  • 在 linked list 题中:如果插入位置找错了,但 pointer 更新逻辑正确,可以得到 pointer 操作分

Error Carried Forward(ECF)

  • 上一问的答案用于下一问,即使上一问的答案错了,只要下一问的方法正确,就可以给分

伪代码的宽容度

  • MS 通常接受多种等价的伪代码写法

  • 变量名不必完全匹配,但要有意义

  • 不需要严格的语法,逻辑正确即可

典型扣分点

| 错误类型 | 扣分 |

|----------|------|

| 当写伪代码时未声明变量 | 通常扣 1 分 |

| 循环条件边界错误(如 < 而不是 <=) | 1-2 分 |

| 数组索引从 0 开始但写成 1(或反之) | 1 分(如果上下文明确) |

| 缺少错误处理(栈空、未找到等) | 1 分 |

| Big O 写错(如 binary search 写成 O(n)) | 1-2 分 |