第 11 课

给老师们的 TeleAgent 实战课 11

两份成绩表,看懂年级真实成长(SGP)
TeleAgent,让你工作效率倍增的工作搭子

两份成绩表,让 AI 看懂一个年级的真实成长

这一次,我们把 SGP 做成一个真正能重复使用的 Skill

前言

各位老师们大家好!

我是来自苏州电信智云中心 AI 团队的 TeleAgent 技术支撑小南。

昨天我们第一次尝试了:

让 AI 帮我们计算一个学生的 SGP。

我们从一张成绩表出发,

寻找学生的“学术同伴”,

再根据后续成绩,

计算这个学生在同起点学生中的成长位置。

昨天我们解决的是:

一个学生,怎么分析他的成长?

但是昨天其实只是:

开胃小菜。

因为学校真正进行成绩分析的时候,

面对的肯定不只是:

一个学生、一门成绩。

真实情况往往是:

一个年级上百名学生,

每名学生又有:

语文、数学、英语、物理、化学……

多门学科。

而且老师真正拿到手里的,

通常也不是一张已经整理好的:

“初始成绩 + 后续成绩”表。

更可能就是:

第一次考试成绩单

和

第二次考试成绩单。

所以今天,

我们把昨天的实验真正往前推进一步:

直接把前后两次成绩单交给 TeleAgent,让它自己匹配学生、识别科目,分别计算每个学生各科和总分的成长百分位,再分析整个班级和年级的成长情况。

最后,

我们再把整套方法做成一个:

“学生学业成长分析助手(简易SGP)” Skill

大家可以到TeleAgent的技能广场上搜索该技能,下载安装后直接使用哦!

以后换一个班,

换一个年级,

甚至科目数量发生变化,

都可以继续使用。

一、今天的数据,更像一份真正的学校成绩单

昨天为了先把 SGP 原理讲清楚,

我们的模拟数据只有:

学生编号、

班级、

初始成绩、

后续成绩。

而今天,

我们准备了一套更接近学校实际情况的模拟数据。

学校:

阳光中学

年级:

七年级

一共:

3个班

每班:

50名学生

全年级:

150名学生。

考试科目包括:

语文、

数学、

英语、

物理、

化学。

另外还有:

总分。

更重要的是:

今天我们没有提前把两次考试整理到同一张表里。

而是准备了两份独立文件:

《阳光中学七年级第一次考试成绩.xlsx》

和

《阳光中学七年级第二次考试成绩.xlsx》

这才更接近老师实际工作中拿到成绩单的样子。

操作截图
▲ 操作截图

二、今天不再一步一步写提示词,先把方法做成 Skill

昨天,

我们每一步都是自己告诉 AI:

先找学术同伴,

再计算 SGP,

再解释结果。

但是如果以后学校每次考试都要分析,

每次还重新输入这么多提示词,

还是比较麻烦。

所以今天第一件事:

我们直接把昨天验证过的方法,

升级成一个可以反复使用的:

“学生学业成长分析助手(简易SGP)” Skill

这个 Skill 要做的事情很明确:

读懂成绩表

↓

识别前后两次考试

↓

匹配同一个学生

↓

自动识别考试科目

↓

分别寻找各科和总分的学术同伴

↓

批量计算SGP

↓

分析学生、班级和年级成长情况

我们直接告诉 TeleAgent制作该Skill的提示词(见文末附件),然后等待 TeleAgent 创建完成。

操作截图
▲ 操作截图

这里大家会发现:

我们今天不是:

让 AI 帮我们算一次。

而是把:

“怎么算”

这套规则直接保存下来。

以后再换一份成绩表,

继续使用这个 Skill 就可以了。

三、今天我们把昨天的“±10分”也升级了

这里还有一个非常重要的变化。

昨天为了让大家快速理解什么是“学术同伴”,

我们用了一个很简单的规则:

初始成绩上下浮动10分,作为学术同伴。

昨天的最终教程里也是按照这一规则完成个人案例的。

给老师们的 TeleAgent 实战课 10

但是到了今天:

150名学生 + 5门学科 + 总分

以后,

如果所有地方还统一使用:

“上下10分”,

问题就来了。

比如:

数学85分附近,

可能有很多学生。

但是化学85分附近,

可能只有几个人。

再比如:

单科满分100分,

而总分满分500分。

显然:

单科的“±10分”

和总分的“±10分”

也不是一个概念。

所以今天,

我们把学术同伴规则升级成:

动态寻找学术同伴

简单理解就是:

不先规定一定要上下几分,而是优先寻找一定数量、初始成绩最接近的学生。

我们今天默认:

每名学生、每门学科,优先寻找约15—25名初始成绩最接近的学生作为学术同伴。

比如:

某个学生第一次考试:

数学85分。

如果:

82~88分之间,

已经能够找到足够多的学术同伴,

那就不用再扩大范围。

但是另一个科目:

可能需要扩大到:

80~90分,

才能找到足够数量的同伴。

所以:

不同学生、不同科目,实际使用的成绩范围可以不一样。

而且如果学校本身已经有自己的评价规则,

比如规定:

“数学统一按照上下5分寻找同伴。”

也可以直接告诉 Skill,

让它按照学校自己的规则执行。

也就是:

默认自动找,需要的时候也可以自己定。

四、同一个学生,每门课其实都有自己的“学术同伴”

这一点,

也是今天特别重要的地方。

比如某个学生:

第一次语文:

92分。

第一次数学:

65分。

那么计算:

语文SGP

应该寻找:

语文92分附近的学生。

但是计算:

数学SGP

应该寻找:

数学65分附近的学生。

不能:

先按照总分找一批学术同伴,

然后拿这一批学生计算所有学科。

所以今天这个 Skill,

会分别计算:

语文SGP

数学SGP

英语SGP

物理SGP

化学SGP

以及:

总分SGP。

这样我们才能看到:

一个学生到底是:

整体都在成长,

还是:

某一门学科成长特别明显。

五、现在,把两份成绩单直接交给 Skill

Skill 创建完成以后,

我们马上测试。

把:

《阳光中学七年级第一次考试成绩.xlsx》

和

《阳光中学七年级第二次考试成绩.xlsx》

一起上传。

然后直接告诉 TeleAgent:

请使用“学生学业成长分析助手(简易SGP)”

分析我上传的阳光中学七年级两次考试成绩。

本次使用默认动态学术同伴规则。

请先检查两份成绩表,

识别哪份是初始考试、哪份是后续考试,

匹配学生和科目。

确认数据没有明显问题后,

再完成全年级SGP分析。

本次暂时不需要生成所有学生的详细个人报告。

请按照Skill默认流程输出:

1数据识别和匹配情况;

2年级整体成长情况;

3各学科成长情况;

4各班级、各学科成长情况;

5高成长、正常成长、低成长学生比例;

6学生SGP明细;

7选择2名有代表性的学生进行成长案例展示。

然后:

让 TeleAgent 自己开始工作。

操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图
操作截图
▲ 操作截图

我们已经不是在演示一个公式了。

而是在看:

整个年级的成长结构。

六、现在看到的,就不只是“谁考了多少分”

普通成绩分析,

最容易看到的是:

谁考第一名?

哪个班平均分最高?

谁这次提高了20分?

但是今天,

我们多了另外一个观察角度:

这个学生和自己起点相近的人相比,后来成长到了什么位置?

比如:

一个学生第二次数学考了82分。

在全年级里,

82分可能并不算最高。

但是如果:

他第一次数学只有65分,

而和他起点相近的学生,

第二次大部分只考到70多分,

那么:

他的数学SGP依然可能比较高。

反过来:

有一个学生第二次数学考了95分。

绝对成绩非常高。

但是如果:

他第一次就已经94分,

而和他同起点的学生第二次普遍保持在95分左右,

那么:

他的SGP未必特别高。

这也是成长评价和普通成绩排名最大的区别:

一个看结果位置,

一个看同起点下的成长位置。

七、150个学生,可以从年级一直看到班级和学科

完成所有学生的计算以后,

Skill首先可以帮我们看:

整个年级

比如:

语文整体成长分布怎么样?

数学怎么样?

英语怎么样?

物理、化学又有什么特点?

然后继续往下:

看不同班级

比如:

七(1)班数学成长分布有什么特点?

七(2)班英语呢?

七(3)班物理呢?

这里有一个非常重要的地方:

虽然最后我们会按班级汇总,

但是计算学生SGP的时候,

学术同伴仍然优先从全年级150名学生中寻找。

而不是:

七(1)班只和七(1)班比较,

七(2)班只和七(2)班比较。

这样三个班使用的是:

同一个年级参照系。

最后再按照班级进行汇总,

班级之间的成长分析才更有意义。

八、什么是高成长、正常成长和低成长?

按照我们这次简易 SGP 模型采用的规则:

SGP ≥ 65

高成长

35 < SGP < 65

正常成长

SGP ≤ 35

低成长

所以 Skill 不仅会告诉我们:

某个班数学SGP大概处在什么位置,

还可以继续统计:

这个班:

高成长学生有多少?

正常成长学生有多少?

低成长学生有多少?

这样看到的就不只是:

一个平均数。

而是:

整个班级学生的成长结构。

当然,

这里也要特别说明:

这三个区间是我们这套简易模型采用的:

成长分层规则。

它不是给学生贴:

“优秀、中等、差”

这样的标签。

学校如果有自己的评价方案,

这个区间也可以继续调整。

九、班级和学科分析,不能直接变成“给老师排名”

做到这里,

大家可能马上想到一个问题:

既然能够看到:

不同班级、不同学科的成长情况,

是不是就可以直接判断:

哪个老师教得最好?

这里一定要谨慎。

比如我们发现:

七(2)班数学成长分布相对靠前。

这个结果当然可以帮助学校开展:

学科教研、

班级分析、

教学复盘。

但是不能简单写成:

“所以七(2)班数学老师教学水平最高。”

因为学生成长还会受到:

学生基础、

班级构成、

考试情况、

学习投入等很多因素影响。

所以这个 Skill 更适合帮助学校:

发现值得进一步研究的现象

而不是直接替学校:

给学生或者老师下结论。

十、150个学生,要不要每个人都生成一份长报告?

当然可以。

但是我没有让 Skill 默认这么做。

因为150名学生,

如果一上来就生成:

150份长篇个人报告,

反而不方便老师先看整体情况。

所以默认情况下,

Skill先提供:

年级分析

班级分析

学科分析

以及:

学生SGP明细表。

然后自动从150名学生中选择:

2名比较有代表性的学生

例如:

一个学生:

总分成长比较明显,但是不同学科成长差异较大。

另一个学生:

总分变化不明显,但是某一门学科成长特别突出。

然后展示:

初始成绩、

后续成绩、

各科SGP、

总分SGP、

学术同伴情况,

以及简单的成长分析。

操作长图
长图 · 在框内上下滑动查看
操作长图
长图 · 在框内上下滑动查看

如果老师真的需要:

某一个学生,

或者某一个班所有学生的详细成长报告,

再继续告诉它:

请根据刚才已经完成的SGP分析结果,

为七(1)班全部学生生成个人学业成长报告。

每名学生分别说明:

1各科初始成绩;

2各科后续成绩;

3各科SGP;

4各科成长位置;

5初始总分和后续总分;

6总分SGP;

7需要教师进一步关注的成长特点。

报告用于教师教学参考。

不要给学生贴能力标签,

不要简单评价学生“优秀”“落后”。

这样:

需要的时候再生成就可以了。

十一、如果学校上传的不是两份整齐的年级成绩单呢?

今天为了方便大家演示,

我们上传的是:

两份格式比较规范的年级成绩单。

但是实际学校使用的时候,

文件不一定这么整齐。

比如:

老师可能一次上传:

七(1)班第一次考试、

七(2)班第一次考试、

七(3)班第一次考试、

七(1)班第二次考试、

七(2)班第二次考试、

七(3)班第二次考试……

也可能:

两次考试放在同一个 Excel 的不同 Sheet 里。

甚至:

下一次考试多了一门学科。

这些情况,

我们在 Skill 里也提前考虑了。

它会先做的不是:

马上计算。

而是:

先读懂文件。

识别:

哪些属于第一次考试?

哪些属于第二次考试?

有哪些班级?

有哪些科目?

哪些学生能够前后匹配?

如果确实无法判断:

哪一次是初始成绩,

哪一次是后续成绩,

它应该:

先问老师。

而不是自己猜。

这也是今天我们把它做成 Skill,

而不是只写一条提示词的原因。

十二、今天我们真正完成的,不只是一次计算

昨天,

我们做的是:

AI帮我分析一个学生。

今天,

我们已经把它升级成:

学校上传前后两次成绩 → AI自动完成整个年级的成长分析。

从:

一个学生

到了:

150名学生。

从:

一个总分

到了:

每一门学科 + 总分。

从:

一次提示词

到了:

可以反复使用的 Skill。

而且以后:

学生人数变了,

班级数量变了,

科目数量变了,

都不需要重新写一整套分析流程。

这才是 Skill 真正有价值的地方:

把一次成功的 AI 操作,变成以后可以重复使用的工作方法。

十三、最后还要说明一点

今天我们制作的是:

简易SGP学生学业成长分析助手

它保留的是 SGP 最核心的思想:

不要只比较学生最后考了多少分,而要看看他和相似起点的学生相比,成长到了哪里。

但是:

真正标准的 SGP 模型,

还会使用更加复杂的统计方法。

所以今天这个 Skill,

更适合作为学校开展:

学生成长观察、成绩诊断、学科教研和教学分析

的一种辅助工具。

而不是:

仅凭一次计算结果,

就评价一个学生、

一个班级,

或者一位老师。

十四、这个 Skill 后面还能继续升级

做到这里,

这个 Skill 已经可以真正拿来试用了。

但是后面其实还有很多可以继续升级的地方。

比如:

现在是:

两次考试。

以后可以继续做:

第一次考试

↓

第二次考试

↓

第三次考试

↓

第四次考试

把一个学期甚至一个学年的多次考试串起来。

这样我们看到的,

就不再只是:

“这个学生这一次成长怎么样?”

而是:

“这个学生一段时间以来的成长轨迹是什么样?”

还可以继续增加:

班级成长趋势图、

学科成长趋势、

学生个人成长曲线、

不同考试阶段变化分析……

这些我们以后还可以慢慢继续升级。

今天大家可以先拿:

“学生学业成长分析助手(简易SGP)”

试试看。

我是小南,

我们下期见!

附件

“学生学业成长分析助手(简易SGP)”完整Skill创建提示词:

提示词
请帮我创建一个可以反复使用和分享的 Skill。

Skill名称:

学生学业成长分析助手(简易SGP)

【一、Skill定位】

本Skill用于学校学生成绩的纵向成长分析。

用户可以上传同一批学生前后两次考试成绩,包括班级成绩表、年级成绩表,或者由多个班级文件组成的成绩数据。

Skill需要自动完成:

数据识别与匹配;

科目识别;

学术同伴确定;

各科SGP计算;

总分SGP计算;

学生成长分层;

班级分析;

年级分析;

典型学生案例分析;

结果解释与报告生成。

本Skill采用“简易SGP”方法进行教学和学校内部分析辅助,不等同于使用分位数回归等方法建立的标准统计SGP模型。

分析结果只用于教学研究和成长观察,不直接用于判断学生能力、教师教学水平或教师绩效。

【二、第一步:自动识别上传数据】

用户可能上传:

1两份完整年级成绩表;

2多个班级的第一次、第二次考试成绩表;

3一个Excel中包含两次考试的不同Sheet;

4文件名不规范但表格内容可以判断考试批次的数据。

首先检查全部上传文件,不要立即计算。

自动识别:

学生唯一编号/学号;

班级;

考试名称或考试时间;

科目;

单科成绩;

总分;

满分信息(如有)。

必须判断哪些数据属于“初始考试”,哪些属于“后续考试”。

优先依据:

考试日期、考试名称、文件名、Sheet名称和用户说明。

如果无法可靠判断先后顺序,必须询问用户,不得自行猜测。

【三、学生匹配】

以前后两次考试中的学生唯一编号作为首选匹配字段。

如果没有学生编号但存在其他稳定唯一标识,先向用户说明并确认后使用。

不得仅凭学生姓名进行模糊匹配后直接计算。

输出:

初始考试人数;

后续考试人数;

成功匹配人数;

仅存在于初始考试的人数;

仅存在于后续考试的人数;

重复编号或异常记录。

只有成功匹配且具有有效成绩的学生进入对应SGP计算。

【四、科目自动识别】

不要预设固定科目数量。

根据上传成绩表自动识别所有学科字段。

例如可能是:

语文、数学、英语;

也可能增加物理、化学、历史、道法等。

对于每一门可匹配的学科分别计算SGP。

如果存在总分字段:

检查总分与各科之和是否一致。

如果没有总分字段:

在各科具有统一、可加总口径时自动计算总分。

如果总分与各科之和明显不一致,或者可能存在赋分、折算、不同权重,先提示用户确认,不要擅自修改。

缺考、免考、空白、“-”等不得自动视为0分。

【五、学术同伴规则】

重要:

每一个科目必须根据该科目的“初始成绩”独立确定学术同伴。

例如:

计算数学SGP时,只依据初始数学成绩寻找数学学术同伴;

计算语文SGP时,只依据初始语文成绩寻找语文学术同伴;

计算总分SGP时,只依据初始总分寻找总分学术同伴。

不得使用总分学术同伴组直接计算所有单科SGP。

默认使用“动态学术同伴”模式:

以目标学生的初始成绩为中心,从相同成绩开始,逐步向上下扩大成绩范围,寻找初始成绩最接近的学生。

目标同伴规模:

优先达到15—25人(包含学生本人)。

当达到至少15人后停止继续扩大。

如果边界成绩存在多人并列,则边界同分学生全部纳入,允许同伴人数超过25人。

同伴优先从本次上传数据中同一年级、同一考试体系的全部可用学生寻找,不因班级不同而排除。

如果全年级有效样本不足15人,则使用所有能够合理匹配的最近邻学生,并在结果中标记:

“同伴样本较小,本次SGP稳定性有限,仅供参考。”

同时支持用户覆盖默认规则。

如果用户明确指定:

“±5分”

“±10分”

“每5分一个区间”

或其他同伴规则,

则按照用户规则执行,并在报告中注明。

每次分析必须记录:

该学生该科目实际使用的同伴人数;

实际初始成绩范围;

采用的同伴规则。

【六、简易SGP计算】

在每个学生、每个科目的学术同伴组内,根据后续考试成绩计算百分等级。

公式:

SGP = (L + 0.5 × E) × 100 / N

其中:

L = 同伴组中后续成绩低于该学生的人数;

E = 同伴组中后续成绩等于该学生的人数;

N = 学术同伴组总人数(包含学生本人)。

结果保留两位小数。

总分使用同样方法独立计算总分SGP。

【七、成长分层】

默认采用以下业务规则:

SGP ≥ 65:

高成长

35 < SGP < 65:

正常成长

SGP ≤ 35:

低成长

必须说明:

这是本简易模型采用的成长分层规则,可以根据学校自己的评价方案调整,不代表对学生能力高低的判断。

【八、群体统计】

完成所有学生、所有科目和总分SGP以后,分别进行:

1年级分析;

2班级分析;

3学科分析。

群体中心指标优先报告:

SGP中位数(MGP)。

同时可以补充:

平均SGP;

高成长人数及比例;

正常成长人数及比例;

低成长人数及比例;

有效样本数。

输出:

年级 × 学科成长总览表;

班级 × 学科成长比较表;

各班各科高/正常/低成长结构表。

不得仅根据SGP结果直接得出:

“某教师教学水平高/低”

“某班教师最好/最差”

等结论。

可以指出:

“该班该学科学生成长分布相对靠前/靠后,建议结合学生基础、教学安排、考试难度等进一步分析。”

【九、学生明细】

生成学生SGP明细表:

学生编号;

班级;

各科初始成绩;

各科后续成绩;

各科SGP;

各科成长层级;

初始总分;

后续总分;

总分SGP;

总分成长层级。

默认提供表格,不默认生成所有学生的长篇个人报告。

【十、典型学生案例】

默认从数据中选择2名具有分析价值的学生进行展示。

优先选择:

案例A:

总分成长较明显,但各学科成长存在差异的学生。

案例B:

总分整体较平稳,但某一学科明显成长或明显偏低的学生。

对每名案例学生展示:

初始与后续各科成绩;

各科SGP;

总分SGP;

同伴组情况;

成长特点;

教师可进一步关注的方向。

不要给学生贴“优秀、差生、能力不足”等标签。

【十一、个人报告按需生成】

只有用户明确提出:

“生成所有学生个人报告”

“生成某个学生详细报告”

“生成某个班全部学生报告”

时,才生成详细个人成长报告。

否则默认只提供:

学生SGP明细表 + 2名典型案例。

【十二、数据质量与异常处理】

分析前必须检查:

缺失值;

重复学生;

重复编号;

成绩超出合理满分;

前后考试学生无法匹配;

科目缺失;

总分异常;

疑似缺考;

文件结构差异。

对于不能可靠处理的数据,不要自行猜测或补造成绩。

先列出问题,并询问用户是否继续或如何处理。

【十三、默认输出顺序】

完成分析后按以下顺序输出:

1数据识别与匹配情况;

2本次SGP计算规则说明;

3年级成长总览;

4各学科成长分析;

5班级 × 学科成长分析;

6高/正常/低成长结构;

7学生SGP明细表;

8两名典型学生成长案例;

9数据质量及分析限制说明;

10可继续执行的操作建议。

如果当前工具支持生成Excel或Word文件,同时生成:

《学生SGP成长分析明细.xlsx》

和

《学生学业成长分析报告.docx》

【十四、隐私与使用原则】

优先使用学生编号,不要求真实姓名。

如果上传数据包含真实学生姓名或其他个人信息,只在完成任务所必需范围内使用,不在报告中重复展示不必要的个人信息。

SGP描述的是相对于相似起点学生的成长位置,不等于学生能力评价。

一次或少量考试结果不能单独代表学生整体发展。

分析结果用于教学诊断和教研参考,不直接作为学生、班级或教师的单一评价依据。

请按照以上规则创建一个可以反复使用、方便学校教师上传不同格式成绩数据进行分析的Skill。

📎 本期附件
  • lesson11.pdf本教程 PDF 版,适合打印与离线阅读下载 →

《给老师们的 TeleAgent 实战课》系列 · 第 11 期 · 苏州电信智云中心 AI 团队出品 · ← 返回总目录