一套面向 C 语言程序设计教学的编程辅助能力多维评估基准 🚀 系统性量化 LLMs 在编程教育场景中的教学适配性
能力域 | 描述 | 关键评估维度 |
---|---|---|
1. 📝 代码注释生成 | 生成精准、简洁、自然的代码注释 | 准确性 · 简洁性 · 自然性 · 有用性 |
2. 🎯 语法点案例解释生成 | 提供语法点相关且易懂的代码案例 | 准确性 · 相关性 · 易懂性 |
3. ✅ 测试样例生成 | 覆盖全面边界条件的测试样例 | 正确性 · 全面性 |
4. 💻 代码生成 | 高效、可读性强的代码生成 | 正确性 · 可读性 · 性能 |
5. 🔧 代码纠错 | 有效提升代码正确性的纠错建议 | 纠正有效性 · 可理解性 |
维度 | 1 分 | 3 分 | 5 分 |
---|---|---|---|
准确性 | ❌ 与代码无关,严重误导 | ✅ 精准全面,含优化建议 | |
简洁性 | ❌ 语法混乱,难以阅读 | ✅ 简洁流畅,逻辑清晰 | |
自然性 | ❌ 表述杂乱无章 | ✅ 自然流畅,快速理解 | |
有用性 | ❌ 仅重复代码表面信息 | ✅ 涵盖背景、场景、注意事项 |
维度 | 1 分 | 3 分 | 5 分 |
---|---|---|---|
准确性 | ❌ 完全偏离官方定义 | ✅ 完全符合语法规则 | |
相关性 | ❌ 充斥无关信息 | ✅ 紧密围绕语法点 | |
易懂性 | ❌ 术语堆砌,逻辑混乱 | ✅ 通俗易懂,无需额外指导 |
评分 | 描述 |
---|---|
1️⃣ | ❌ 覆盖率极低,忽略边界条件 |
3️⃣ | |
5️⃣ | ✅ 全面涵盖典型、边界和特殊情况 |
维度 | 1 分 | 5 分 |
---|---|---|
可读性 | ❌ 命名混乱,无注释 | ✅ 模块化设计,注释全面 |
性能 | ❌ 严重超时/内存溢出 | ✅ 接近最优解,高效稳定 |
评分 | 描述 |
---|---|
1️⃣ | ❌ 术语晦涩,示例关联性差 |
3️⃣ | |
5️⃣ | ✅ 示例丰富,逻辑连贯,激发探索欲 |
每个能力域需要的测试数据:
每个能力域的测试方法:
你是{model},你是帮助C语言初学者编程的人工智能助手。
请为以下编程题目的一份正确代码生成代码注释。以下是编程题目:\n{problem_description}\n以下是代码:\n{code}
你是{model},你是帮助C语言初学者编程的人工智能助手。
请你针对 “{knowledge}” 这个 C 语言语法点生成案例解释。
你是{model},你是帮助C语言初学者编程的人工智能助手。接下来我会给你一道编程题,请你生成一些测试样例。请注意生成的每个测试样例字符不要太多。\n请严格按照给定的json格式输出内容。输出示例:
{
"comment": "以下是我生成的测试样例,测试了xx边界情况...",
"test_case": [
{
"input": "1 2 3\n",
"output": "3\n2\n1\n"
},
{
"input": "3 2 1\n",
"output": "1\n2\n3\n"
}
]
}
请根据以下编程题目生成测试样例。以下是编程题目:\n{problem_description}
你是{model},你是帮助C语言初学者编程的人工智能助手。接下来我会给你一道编程题,请你生成一份完整的正确代码。\n请严格按照给定的json格式输出内容。输出示例:
{
"comment": "以下是我生成的代码,使用xx算法...",
"code": "code"
}
请根据以下编程题目用C语言生成正确代码。以下是编程题目:\n{problem_description}
你是{model},你是帮助C语言初学者编程的人工智能助手。接下来我会给你一道编程题,以及一份未通过的代码,请你修改该代码以通过题目。\n请严格按照给定的json格式输出内容。输出示例:
{
"comment": "以下是我纠错后的代码,修改了...",
"code": "code"
}
请根据编程题目对错误的代码进行纠错。以下是编程题目:\n{problem_description} \n以下是错误代码:\n{code}
请按以下json格式输出
{
"accuracy": 2,
"simplicity": 4,
"naturalness": 3,
"usefulness": 5
}
请对我提供的代码注释按照以下标准对每个维度进行打分:
一、准确性(accuracy):
1 分:注释与代码的关键操作、核心功能和重要变量毫无关联,对理解代码毫无帮助,甚至严重误导对代码功能的判断。
2 分:仅部分提及代码相关内容,但包含大量错误和偏差,只能大致反映代码意图,核心信息不准确。
3 分:能反映代码主要功能,但存在遗漏或不准确之处,可让读者大致明白代码功能,但对部分细节不清楚。如计算平均值的函数,注释提及了平均值计算功能,但未说明特殊情况处理。
4 分:准确反映代码功能及关键细节,仅存在少量不影响整体理解的小瑕疵,能有效辅助理解代码逻辑。例如复杂算法的注释,核心步骤描述准确,但个别变量含义解释不细致。
5 分:精准、全面地反映代码意图,涵盖所有关键细节,与代码紧密相关,不仅帮助理解代码,还能提供优化方向等额外信息。像加密算法代码的注释,解释了加密流程及安全性考量和优化方向。
二、简洁性(simplicity):
1 分:注释充斥大量语法错误、拼写错误,语句不通顺,严重影响阅读和理解,让人难以读懂。
2 分:存在较多语法错误或语句结构混乱,主谓不一致、用词不当等,阅读时需花费大量精力梳理,影响整体感受。
3 分:存在少量语法错误或语句稍不流畅,可能有标点使用不当、表述拗口等问题,但基本不影响理解,阅读会有短暂停顿。
4 分:语法基本正确,语句通顺,文字流畅,符合正常表达习惯,能轻松阅读和理解。
5 分:语法完全正确,语言简洁流畅,表达清晰准确,富有逻辑性和条理性,阅读体验好。
三、自然性(naturalness):
1 分:注释有大量错误,包括语法、拼写和语句问题,读起来很不自然,难以理解其意思,如表述杂乱无章。
2 分:较多语法和语句问题,主谓宾使用混乱,语言表达不自然,阅读困难,需费力理解。
3 分:少量语法错误或语句不流畅,部分表述稍显生硬,阅读时会感到不自然,但不影响整体理解。
4 分:语法基本正确,语句自然,符合正常语言表达习惯,阅读顺畅。
5 分:语法正确,表达自然流畅,逻辑清晰,让人能快速理解注释含义。
四、有用性(usefulness):
1 分:注释只是简单重复代码表面信息或与代码无关,对理解代码无价值,如仅重复函数名和参数名,无解释说明。
2 分:仅提供少量基础信息,对深入理解代码帮助不大,如对复杂算法仅说明基本功能,不涉及核心逻辑。
3 分:提供一定量信息,能辅助理解部分代码逻辑,但解释不全面,对工作原理和用途解释不足。例如对函数的注释仅提及部分功能,未解释关键步骤和参数作用。
4 分:包含较多有助于理解的信息,能解释主要功能、基本逻辑和关键细节,但未涉及适用场景、潜在风险等。
5 分:提供丰富且有深度的信息,涵盖功能、逻辑、实现思路,还提供背景知识、使用场景、优化方向和注意事项等,全面支持理解和使用代码。
以下是编程题目:
{problem_description}
以下是带有注释的代码:
{code}
在对上述代码注释进行评估时,请务必保持打分标准的一致性。
请按以下json格式输出
{
"accuracy": 2,
"correlation": 4,
"understandability": 3
}
请你对我提供的“{knowledge_point_content}”这个C语言语法点生成的案例解释按照以下标准对每个维度进行打分:
一、准确性(accuracy):
1 分:案例完全不符合语法点的官方定义和标准用法,代码示例存在严重错误,解释内容具有极大的误导性,基本无参考价值,严重干扰学生学习。
2 分:案例存在较多错误,对语法点解释偏差明显,部分内容误导学生,学生难把握正确含义与用法,需大改。
3 分:案例能大致体现语法点主要内容,但有小错误或解释不精确之处,会使学生产生困惑,经思考或指导可纠正。
4 分:整体符合语法点要求,仅极个别细微瑕疵,不影响理解,基本无阻碍学生掌握知识。
5 分:案例对语法点解释与官方定义、标准用法完全一致,代码示例遵循语法规则,各方面精准无误,提供可靠知识。
二、相关性(correlation):
1 分:案例及解释与给定语法点关联度极低,多为无关信息,深度不适合学习阶段,无法助学生理解,需重新设计。
2 分:案例与语法点有一定关联,但无关信息多或深度不符,使学生困惑,需大量删减或补充内容。
3 分:案例和解释大部分相关,有偏离主题内容或深度不匹配情况,会分散注意力、增加理解难度,适当引导可抓重点。
4 分:案例和解释与语法点高度相关,少量无关信息,深度符合要求,对理解和应用有较好帮助,细节可优化。
5 分:案例及解释紧密围绕语法点,无无关信息,深度适配难度与学习阶段,对基础或复杂语法点呈现恰当,助力学生掌握。
三、易懂性(understandability):
1 分:语言表达晦涩难懂,大量专业术语且无解释,结构混乱无逻辑,学生几乎无法理解语法规则与案例关系,需重编。
2 分:语言晦涩,专业术语多且缺解释,结构不清晰,逻辑乱,学生理解困难,需教师或资料大量辅助。
3 分:语言基本能懂,有一定专业术语,结构有一定条理,但逻辑衔接不紧密,学生需花时间精力梳理。
4 分:语言较通俗易懂,专业术语少不影响理解,结构清晰,逻辑连贯,学生简单阅读就能理解关系,少量提示可掌握。
5 分:语言极其通俗易懂,无专业术语或解释清晰,结构非常清晰,按先规则、再案例、后说明的方式,学生轻松理解,无需额外指导。
以下是案例解释:
{knowledge_point_exp}
在对上述案例解释进行评估时,请务必保持打分标准的一致性。
请按以下json格式输出
{
"comprehensive": 2,
}
请你根据提供的编程题目和测试样例,按照以下标准对全面性维度进行打分:
全面性(comprehensive):测试样例能否覆盖题目的典型情况、边界情况和特殊情况。
1分:样例覆盖率极低,缺少基本情况,完全不考虑边界条件。
2分:样例覆盖了一部分常见输入,但未考虑边界情况或特殊情况。
3分:样例覆盖了大部分常见输入,部分边界和特殊情况。
4分:样例较全面,涵盖典型情况、常见边界条件,特殊情况覆盖少量缺失。
5分:样例非常全面,涵盖了所有典型、边界和特殊情况,无明显遗漏。
以下是编程题目:
{problem_description}
以下是测试样例:
{case_json}
在对上述测试样例进行评估时,请务必保持打分标准的一致性。
请按以下json格式输出
{
"readability": 2,
"performance": 5
}
请你根据提供的编程题目和代码,按照以下标准对每个维度进行打分:
一、可读性(readability):
1分:代码完全缺乏可读性,变量名和函数名无语义,且没有注释或结构化设计。
2分:代码部分可读,命名有一定意义,但注释较少且逻辑混乱,不易理解。
3分:代码基本可读,命名清晰,注释覆盖常见逻辑,但部分结构仍不够清晰。
4分:代码易于阅读和理解,命名规范,注释覆盖主要逻辑,结构较为清晰。
5分:代码非常直观,命名语义明确,注释全面且简洁,结构清晰且模块化,无冗余逻辑。
二、性能(performance):
1分:时间和空间效率极差,运行时间远超题目限制,内存使用严重超出题目限制。
2分:时间和空间效率较差,运行时间接近或略超题目限制,内存使用接近题目限制的上限。
3分:时间和空间效率一般,运行时间接近题目限制,内存使用明显高于最优解但未超限。
4分:时间和空间效率较高,运行时间稍高于最优解,但在合理范围内,内存使用接近题目限制。
5分:时间和空间效率均非常高,运行时间接近最优解,内存使用远低于题目限制。
以下是编程题目:
{problem_description}
以下是代码:
{code}
在对上述代码进行评估时,请务必保持打分标准的一致性。
请按以下json格式输出
{
"understandability": 2,
}
请你根据提供的编程题目和代码,按照以下标准对易懂性维度进行打分:
易懂性:评估AI纠错建议的清晰度和易理解程度。
1 分:全用晦涩术语,无学生知识相关解释、示例,像天书,难寻与所学编程知识关联。
2 分:含少量专业词汇,表述生硬、简略不连贯,有简单示例但关联不明,逻辑缺推导。
3 分:多用专业词汇,有解释、简单示例围绕错误,深度不够,未拓展知识,较碎片化。
4 分:专业词汇恰当,示例丰富阐释错误、修复方法与知识拓展,逻辑连贯,答疑解惑。
5 分:表述极清晰,用刚学专业词汇,幽默形象阐释,示例多且能拓展知识体系,激发探索欲。
以下是编程题目:
{problem_description}
以下是代码:
{code}
在对上述代码进行评估时,请务必保持打分标准的一致性。