辅导系统的行为:内循环与外循环
The Behavior of Tutoring Systems | Kurt VanLehn(LRDC, University of Pittsburgh, Pittsburgh, PA, USA;[email protected])| International Journal of Artificial Intelligence in Education, 16(3), 227–265, 2006
摘要
辅导系统(tutoring system)通常被描述为具有两个循环。外循环(outer loop)对每个任务(task)执行一次,而任务通常是求解一个复杂的多步骤问题。内循环(inner loop)对学生在解题过程中走出的每一步(step)执行一次。内循环可以对每一步给出反馈(feedback)和提示(hint)。内循环还可以评估学生不断发展的能力并更新学生模型(student model),外循环则利用学生模型来选择下一个适合学生的任务。对于对辅导系统知之甚少的读者,本文旨在提供一篇去神秘化的入门介绍。对于辅导系统领域的专家,本文的描述表明:尽管辅导系统在任务领域、用户界面、软件结构、知识库等方面差异巨大,它们的行为实际上相当相似。
关键词:智能辅导系统(Intelligent tutoring systems)、知识成分(knowledge components)、学习事件(learning events)、辅导(tutoring)
引言
人们普遍相信,人类辅导是地球上最有效的教学形式,实验工作也证实,专家级的人类辅导者能产生极其巨大的学习增益(Bloom, 1984)。自计算机被发明以来,它似乎就有潜力成为专家人类辅导者不知疲倦而又经济的替代品。这一梦想被证明难以实现,但已经取得了重大进展。
本文主要关注智能辅导系统(Intelligent Tutoring System,ITS),这是一种特别有效的教育技术,始于 20 世纪 60 年代末,如今正走出实验室、进入实际应用。尽管已有的 ITS 综述(Beck, Stern, & Haugsjaa, 1996; Corbett, Koedinger, & Anderson, 1997; Rickel, 1989; Shute & Psotka, 1996; Woolf, 1992)强调的是它们的结构(即软件模块与知识源),本文强调的却是它们的行为。也就是说,本文讨论辅导系统往往会做什么,以及辅导行为空间中一些重要的设计选项。尽管关于哪些设计选项在哪些情境下有效已有大量认识,但要涵盖这些实证工作需要一本书的篇幅。因此,本文只呈现各种选项,而不对它们加以评价。
本文是为两类读者写的。对于对 ITS 知之甚少的读者,本文可作为一篇非技术性的入门介绍。对于对 ITS 了解甚多的读者,本文是对 ITS 行为描述的一种标准化提议。其基本主张是:尽管 ITS 的内部结构千差万别,它们的行为在根本上是相似的。虽然已被发明出来的教学特性只有少数几类,但不同的辅导系统提供了这些特性的不同组合,并且往往对同一概念使用不同的术语。这造成了一种印象:ITS 是一种非常复杂的技术,以至于只有拥有人工智能高级学位的人才能理解并开发它们。“ITS”中”智能(intelligent)“一词又助长了这种不幸的印象。本文旨在消除这种印象,方法是表明:只要坚持每个概念只用一个名称,并聚焦于它们的行为而非内部结构,ITS 其实很容易理解。
术语
为了刻画辅导系统行为之间的相似性,有必要引入一些技术术语。这些术语列于表 1,并在本节中加以讨论。为了说明这些术语以及后文引入的其他概念,附录描述了 6 个辅导系统。
辅导系统试图让学生获得的能力称为任务域(task domain)。对于附录中的 6 个系统,其任务域分别是:
- Algebra Cognitive Tutor:高中代数课程中的问题解决。
- Andes:大学物理导论中的定量问题解决。
- AutoTutor:若干领域,其中包括大学物理中的定性问题解决。
- Sherlock:对一台大型航空电子设备进行排障(troubleshooting)。
- SQL-Tutor:用 SQL 语言构造对关系数据库的查询。
- Steve:操作复杂设备,例如一间房间大小的空气压缩机。
除 Sherlock 外,这些系统都被设计为作为课程的一部分使用。也就是说,它们假定学生拥有教科书、授课教师,或许还有其他资源。Sherlock 则面向在职培训。
大多数辅导由学生借助辅导者(tutor)完成的一系列按时间顺序排列的任务构成。对于这 6 个示例辅导系统而言,一个任务是:
- Algebra Cognitive Tutor:求解一道复杂的多部分代数题。单道题可能要求填写一张表格、在图上描点并求解一个方程。
- Andes:求解一道标准的定量物理题。这类题的解答通常包括画矢量图、写出若干方程,然后用代数方法求解方程组。
- AutoTutor:回答定性的物理问题,例如:“一辆质量很大的卡车与一辆轻便小汽车迎面相撞。假设两车初速度相同,哪一个受到的冲击更大?请解释你的推理。”
- Sherlock:找出设备(模拟的)中的故障并修复它。这包括进行电气测量、拨动开关和旋钮以及更换部件。
- SQL-Tutor:编写一条能从给定数据库中检索出数据的 SQL 查询。要检索的数据的描述是给定的。
- Steve:在给定条件下执行特定规程,例如在 2 号热交换器停机维修的情况下,启动一台(模拟的)舰用柴油机。
表 1|术语
| 术语 | 简要定义 |
|---|---|
| 任务域(Task domain) | 辅导者所教授的信息与技能。 |
| 任务(Task) | 一项耗时数分钟的活动,可以被跳过或与其他任务互换。 |
| 步骤(Step) | 完成一个任务由多个步骤组成。每个步骤是一个用户界面事件。 |
| 知识成分(Knowledge component) | 任务域的概念、原理、事实等。完成任务时应加以使用的持久性、领域特定信息的任何片段。 |
| 学习事件(Learning event) | 一种心理事件;知识成分的建构或应用,常发生在努力完成任务的过程中。 |
| 外循环(Outer loop) | ITS 的行为表现就好像它有一个针对任务的外循环(迭代)。 |
| 内循环(Inner loop) | ITS 的行为表现就好像它有一个针对步骤的内循环。 |
| 错误(Incorrect) | 与辅导者当前的教学目标不一致。 |
一个任务通常需要几分钟到一个小时左右。大多数辅导系统假定学生独立完成任务,但有些系统(如 Zachary et al., 1999)让学生作为多学生团队的一名成员来工作。
任务与辅导系统的用户界面通常被设计成:完成一个任务需要多个步骤,步骤是学生为完成任务而采取的一个用户界面动作。例如,假设任务是求解方程 2.34*x-19.01=23.44,而学生已经输入了三行:
2.3*x = 23.44 +19.01 2.3*x = 42.45 x = 18.46
每一行是一个步骤,所以学生用三步解出了这道题。并非所有用户界面动作都是步骤。例如,点击”保存”按钮不算一个步骤,因为它并不直接有助于求解方程。点击”帮助”按钮也不算步骤,尽管辅导系统由此给出的有用信息很可能对这名学生解决该问题至关重要。再举几个单一步骤的例子:
- Andes:定义”mc”为小汽车的质量。
- Andes:画一个经过旋转的笛卡尔坐标系,使 x 轴平行于某个斜面。
- Andes:输入方程”mc = 20 kg”。
- Sherlock:测量电缆插口 B 上 21 号引脚的电压。
- Sherlock:关闭电源。
- Sherlock:更换 A1A2A5 印刷电路卡。
- AutoTutor:在回答辅导者的提问”你能再多说一些吗?“时,输入回答:”这是因为牛顿的某条定律。我忘了是哪条。也许是第三条?”
- Steve:拔出油尺并检查油位。
- SQL-Tutor:在 WHERE 字段中填入”aawon>1 and year>=1988”。
我们用知识(knowledge)一词指学生所拥有的、决定其在任务上的行为的信息。我们还假定知识可以被分解,并用知识成分一词指知识被分解成的单元。知识成分可以是一条原理、一个概念、一条规则、一个程序、一个事实、一种关联,或任何其他任务特定信息的片段。尽管”知识”一词带有某种暗示,知识成分却可能是错误的(incorrect),即教师宁愿学生在完成任务时不要应用这一知识成分。
学习事件是知识成分的建构或应用,常发生在努力完成任务的过程中。学习事件是心理事件,而步骤是物理事件。学习事件发生在学生的头脑中,因而无法被观察;而步骤发生在用户界面上,计算机可以观察到它。在前文提到的代数例子中,步骤 x=18.46 可以被视为由三个学习事件产生:2.3*x=42.45 → x=42.45/2.3 → x=18.4565… → x=18.46。虽然有些辅导系统(如 Steve)坚持步骤与学习事件之间的一一对应关系,但许多辅导系统(如 Andes、Algebra Cognitive Tutor)假定每个步骤对应多个学习事件。
下面的例子说明了”学习事件”和”知识成分”这两个术语:
Andes:假设题目是”一辆保时捷从静止起步,在 3 秒内达到 10 m/s 的速度。假设其加速度恒定且沿直线行驶,它在这段时间内行驶了多远?“在定义 d_p 为位移、t_p 为时间、vf_p 为赛车的末速度之后,学生输入了”d_p=(vf_p/2)*t_p”。这一步骤由以下 3 个知识成分产生,每个知识成分应用于这道题时都产生一个学习事件(在本例中是一个针对该题的方程):
- 从静止开始的物体初速度为 0,所以 vi_p = 0。
- 匀加速物体的平均速度是其初速度与末速度的平均值,所以 v_avg_p = (vi_p+vf_p)/2。
- 沿直线行驶的物体,其位移等于平均速度乘以行驶时间,所以 d_p = v_avg_p*t_p。
该步骤由 3 个学习事件 d_p=v_avg_p*t_p、v_avg_p=(vi_p+vf_p)/2 和 vi_p=0 经代数组合而产生。Andes 并不把代数运算本身表示为学习事件,因为它不对代数运算进行辅导。
Steve:假设学生开始执行发动机启动规程,按下”低油位”指示灯下方的”灯测试”按钮,使该灯亮起。学生应用了这样一条知识成分:“启动发动机之前,所有带有灯测试按钮的指示灯都应通过按下按钮并确认灯亮来进行检查。”特定的学习事件则是:“由于低油位灯下方有一个灯测试按钮,而我还没有检查过它,我应该按下灯测试按钮。”
AutoTutor:假设辅导者问:“关于钥匙的运动你能说什么?”学生回答:“钥匙处于自由落体状态,因为作用在它们上面的只有重力。”系统用统计语言理解技术从这个步骤中提取出两个学习事件:“钥匙处于自由落体状态”和”作用在钥匙上的唯一的力是重力”。这些学习事件源自以下知识成分:“如果作用在物体上的唯一的力是重力,那么该物体处于自由落体状态。”“如果一个物体正在下落且空气阻力可以忽略,那么作用在它上面的唯一的力就是重力。”
SQL-Tutor:给定图 5 所示的题目,假设学生的步骤是在 FROM 字段中填入”movie”。学生使用了这样的知识:“如果 SELECT 子句中有某个属性,那么相应表的名称应在 FROM 子句中给出。”这一知识成分产生了学习事件:“因为题目要求给出若干电影的片名和数量,而这些字段出现在’movie’表中,我应该在 FROM 字段中填’movie’。”
人类的推理可以在多种粒度上加以分析,从神经元放电的层面往上皆是。例如,对于 x=18.46 这一步骤,除了指派三个学习事件(2.3*x=42.45 → x=42.45/2.3 → x=18.4565… → x=18.46)之外,也可以只指派一个:2.3*x=42.45 → x=18.46。此外,即使在同一粒度上,把一段推理划分为学习事件、或把一批知识划分为知识成分,也可能有几种同样合理的方式。如何确定应采用哪种分解?
有一些实证技术可用于确定学生实际使用的知识成分。一种技术涉及对迁移(transfer)建模:给定一组知识成分上的掌握水平,预测在新题目上的表现(Singley & Anderson, 1989)。例如,假设学生已掌握完成某任务所需的 20 个知识成分中的 15 个。这可以预测学生在这道题上的行为——学生会在哪里求助、解题要花多长时间、会出现哪些错误,等等。然而,如果假定的知识成分并不能准确反映学生实际理解任务域的方式,这些预测就可能不准确。因此,迁移实验中的表现可以用来确定辅导系统对知识成分的表征。
第二种确定学生知识成分的实证技术涉及预测学习曲线(learning curve)(Croteau, Heffernan, & Koedinger, 2004)。一个知识成分的学习曲线描绘的是其各学习事件的耗时(或出错概率)。按理论,学习曲线应当是一条平滑下降的幂律曲线或指数曲线。例如,某个知识成分的第一个学习事件可能耗时 50 秒,因为学生正在通过查阅教科书和向辅导系统求助来建构该知识成分。第二个学习事件可能只需 25 秒,因为学生在重构该知识成分。第三个学习事件时,学生在短暂的挣扎后回忆起了该知识成分,因此耗时 12 秒。第四次耗时 6 秒,第五次耗时 3 秒,依此类推。然而,如果知识的表征不准确,某个知识成分的学习曲线可能在中间出现巨大的跳变,或者相当参差。学习曲线可以用来确定辅导系统对知识成分的表征。
由于辅导系统的开发者通常无力开展必要的实证研究来确定最能准确反映学生认知的知识成分,粒度的选择通常由设计者的教学目标决定。例如,考虑是否用单个学习事件(2.3*x=42.45 → x=18.46)或用三个学习事件的序列(2.3*x=42.45 → x=42.45/2.3 → x=18.4565… → x=18.46)来建模前文提到的代数步骤。如果辅导系统的设计者想检测舍入误差并给出针对特定错误的建议,那么他们就需要采用后一种细粒度分析,并且还要纳入错误的学习事件 x=42.45/2.3 → x=18.45,并配上某种针对该错误的反馈,例如”错误。你可能在把答案四舍五入到 2 位小数时出了错。请再试一次。“另一方面,如果设计者假定学生能够并且应当自行诊断舍入误差,那么他们就可以对这一步骤采用粗粒度分析。这样,如果学生输入 x=18.45,辅导系统就会给出其默认回应,例如”错误。看看你能否找出自己的错误并改正它。“因此,设计者关于哪些学习事件应被辅导系统检测并给予建议的决定,决定了哪些知识成分被纳入辅导系统的知识表征。
通过把辅导分析为一系列任务、每个任务又可通过多个步骤完成,我们把辅导系统的职责划分为两个循环:针对任务的外循环,和针对步骤的内循环。外循环的主要职责是为学生选择一个有助于其学习的任务。内循环则既负责从学生那里引出正确的步骤,又帮助学生学习。作为说明,表 2 展示了一个特别简单的辅导系统的两个循环。外循环每个任务执行一次,内循环每步执行一次。这个辅导系统总是在学生步骤之后给出反馈,但在学生尝试某一步骤之前,可能会也可能不会给出提示。在真实的辅导系统中,内循环可能比表 2 所示的更复杂。以下是一些例子:
- Andes:每一步之后,学生都会得到如表 2 所示的即时反馈。步骤错误时被标为红色,正确时标为绿色。不过,Andes 从不主动给出提示。只有当学生点击提示按钮时它才给出提示,此时 Andes 会选取一个学生尚未完成的步骤,并就如何完成该步骤给学生一个提示。
- Algebra Cognitive Tutor:内循环在每个学生步骤之后给出即时反馈,与 Andes 一样。它也在被要求时给出提示,与 Andes 一样。但此外,当学生刚刚连续走了两个错误步骤时,它还会主动给出一个提示。
- SQL-Tutor:内循环在学生输入步骤时既不提供反馈也不提供提示。在学生点击”提交答案”按钮之前,它一直保持沉默。然后,辅导系统会分析到目前为止输入的所有步骤,并决定给出何种帮助。默认策略是从最小反馈开始逐级上升,在每次后续提交时给出更多信息。不过,在任何一次提交时,学生都可以通过从菜单中选择自己想要的反馈级别来覆盖这一默认策略。
- Sherlock:在学生给设备排障的过程中,只有当学生刚刚走出的步骤会严重损坏设备或伤害学生时,Sherlock 才给出反馈。它不允许这类安全违规发生。在学生完成排障问题之后,Sherlock 会提供各种形式的反思活动。例如,它把学生的步骤列表与专家的步骤列表并排显示。学生可以点击某些步骤以获得反馈。
表 2|即时反馈辅导系统的两个循环
在辅导结束之前,反复执行: - 辅导者布置一个任务 - 在该任务达成之前,反复执行: - 辅导者可以给出一个提示 - 学生走一步 - 辅导者对该步骤给出反馈 - 学生提交该任务的解答
组织内循环的方式有很多,因为提示和反馈可以是即时的或延迟的,也可以是应请求的(应学生请求而给出)或主动提供(unsolicited)的。后文有一节将详细讨论设计空间的这一部分。不过,所有内循环的一个共同点是:它们处理的是步骤,而不是任务。
最后来谈一谈颇有争议的术语”错误(incorrect)“。它在辅导系统文献中被广泛使用,以至于许多教育者因为拒绝”绝对正确标准”这一整个观念而拒绝辅导系统。然而,这个术语实际上有一种良性的技术含义。一个步骤、学习事件或知识成分是”错误的”,仅当辅导系统为了达成其当前教学目标而应当对它说点什么。也就是说,正确性不是绝对的,而是相对于辅导者当前对学生的目标而言的。一般而言,对一个学生在某一时刻正确的步骤,对另一个学生、或同一学生在另一时刻可能就是错误的。不过,在大多数辅导系统(包括附录中的所有系统)中,正确性并不随时间或学生而变。尽管如此,它仍然是在教育学意义上定义的。例如,一个教学问题是:某个步骤位于一条比理想解路径长得多得多的解题路径上,该怎么办?长解法的步骤应被视为错误还是正确?通常,这类问题只能由课程教师来回答,而教师本应是辅导系统开发团队的一员。
由于正确性相对于教学目标而言,避免让反馈消息把辅导系统描绘成绝对权威往往很重要。例如,就 Sherlock 而言,某个空军基地的教官与另一个空军基地的教官在正确性分类上有分歧,因为两个基地对排障时间和更换备件成本的重视程度不同。由于正确性是相对的,Sherlock 的反馈消息不说”动作 X 是错的”,而是说”动作 X 节省时间但提高了解法的成本;一些专家会改为做 Y”。
用”辅导者”这个术语来结束这场关于术语的讨论是恰当的。鉴于建构主义观念和术语的盛行,“辅导者”这一老式的、带有威权色彩的含义妨碍了这项技术的广泛传播。然而,辅导系统并不必取代教师,也不必主持课后补习班。它在学生学习生态(learning ecology)中的角色可以是任何东西——一张聪明的纸;一位鼓舞人心的教练;一个激发思维的同伴,等等。这项技术本身相当中性。正是教师和开发者的教学策略决定了”辅导者”如何行为、扮演什么角色。例如,已经有人构建了根本不教授其任务域、而是鼓励学生去发现其原理的辅导系统(如 Shute & Glaser, 1990)。
作为一个更详细的说明,来看看 Algebra Cognitive Tutor 的角色,它是目前世界上使用最广泛的 ITS。Algebra Cognitive Tutor 通常在高中代数课上每周使用两天;其余三天用于小组活动、项目以及其他不涉及该辅导系统的活动(Koedinger, Anderson, Hadley, & Mark, 1997)。一项民族志研究(Schofield, 1995; Schofield & Evans-Rhodes, 1989)发现,在班级使用辅导系统的日子(实际上,他们使用的是一个教几何的前身系统),一种任何建构主义教师都会为之自豪的活跃文化蓬勃兴起。学生们在使用该辅导系统时,经常与邻座交谈——寻求帮助、提供帮助、比较进度,或纯粹社交。当辅导系统的帮助和邻座的帮助都宣告失败时,学生会举手从老师那里获得个别化的帮助。老师们乐于如此,因为这让他们可以集中与真正需要这类讨论的学生讨论复杂问题。另一方面,一些学生选择退出这种喧闹的协作学习,更愿意独立学习,只与辅导系统和老师分享自己的错误和求助。这项民族志研究表明,几乎所有学生都对使用辅导系统满怀热情。对于城市高中数学课来说,班级使用辅导系统的日子的出勤率通常高于不使用的日子。
本文其余部分围绕两个循环来组织。下一节讨论外循环。其余各节讨论内循环。
有些辅导系统没有内循环。这类系统给学生分配一个任务,收集学生的答案,对答案给出反馈,然后继续——或者再给学生一次机会正确回答该题,或者进入下一个任务。没有内循环的系统通常被称为计算机辅助教学(Computer-Aided Instruction,CAI)、计算机化训练(Computer-Based Training,CBT)或基于网络的作业(Web-Based Homework,WBH)。有内循环的系统则被称为智能辅导系统(Intelligent Tutoring System,ITS)。下文关于外循环的所有论述对两类系统都适用。关于内循环的论述只适用于 ITS。
外循环
外循环的主要职责是决定学生接下来应做哪个任务。它的其他职责,比如向学生呈现任务,较为平淡,不再赘述。主要的设计问题是:(1)智能地选择任务;(2)获得一个可供选择的丰富任务集。
任务选择
为学生选择任务已有四种基本方法。下面按简单程度排列,最简单的方法在前。
(1)外循环显示一个菜单,让学生选择下一个任务。例如,Andes 显示一个分层的任务菜单,其中每个任务是供学生求解的一道物理题。学生选择接下来做哪道题。这一设计是合适的,因为 Andes 在正常的物理课中被用作”作业帮手”。也就是说,学生照常上课、做实验和习题课;他们只用 Andes 来完成家庭作业。课程的每个班级由不同的教师任教,而教师们喜欢布置不同的作业题。而且,随着课程进展,他们有时会更改作业。让教师通过电子邮件把作业发给学生,比重新配置 Andes 本身更简单。此外,有些学生可能想做额外的题目。在答疑时间,教师和学生可以选一道未布置的题目一起做。让学生自己选择任务,简化了由多位教师任教多个班级的大型课程的后勤管理。
(2)外循环按固定顺序分配任务。例如,假设辅导系统让学生先读一篇短文,然后观察辅导者演示如何解一道题,接着在辅导帮助下解 10 道题,最后参加一场由 3 道题组成、无帮助的测验。这是一个包含 15(=1+1+10+3)个任务的固定序列。AutoTutor 和许多其他辅导系统都采用过这种方法。其主要优点是学生必须完成一个任务才能进入下一个,这增加了学生在开始某任务之前已掌握其先决知识的机会。
(3)外循环实现一种称为精熟学习(mastery learning)的教学法(Bloom, 1984)。Sherlock 和许多其他辅导系统采用过这种方法。课程被组织成单元序列或难度级别序列。当学生正在学习某个单元(或难度级别)时,辅导系统会不断从该单元中分配任务,直到学生掌握了该单元的知识;只有那时才允许学生进入下一个单元。这样,一些学生完成课程所做的任务会比其他学生少。这种外循环设计主要用于自定步调的课程。它很少用于班级统一进度的课程,在后者中,所有学生齐头并进地推进课程非常重要。一个常见的错误是:开发了一个带有花哨外循环的辅导系统,然后才发现由于课程的班级统一进度性质,教师无法使用其特性。
精熟学习要求辅导系统有某种办法来评估学生对单元所授知识的掌握程度。理想情况下,这种评估由内循环在帮助学生完成每个任务的过程中完成;但如果这不可行,那么辅导系统就必须既分配教学任务,也分配评估任务(如测验)。
(4)在外循环的四种常见设计中,最复杂的是基于一种称为宏适应(macroadaptation)的教学法(Corbett & Anderson, 1995; Shute, 1993)。例如,Algebra Cognitive Tutor 就采用这种方法。对于辅导系统可以分配的每个任务,它知道该任务训练哪些知识成分。对于每个知识成分,辅导系统维护一个对学生掌握该知识成分程度的估计。当学生完成一个任务、辅导系统需要选择下一个任务时,它会根据任务的知识成分与学生已掌握知识成分之间的重叠情况来选择。例如,它可能分配这样一个任务:它需要许多学生已经掌握的知识成分,而只有两个尚未掌握的知识成分。
一些辅导系统更进一步。除了表征学生应当学习的正确知识成分外,它们还表征错误的知识成分。如果辅导系统推断学生具有某个特定的错误知识成分,它就会选择一个已知能矫正那种误解的任务。
还有一些辅导系统不仅表征正确和错误的知识成分,还表征学生的其他稳定特质。它们可能表征学习风格和偏好,例如对视觉解释或言语解释的偏好,以便选择标记为与该学生的风格或偏好相容的任务。
为使外循环在多个任务和多次会话中正确运作,关于学生的信息必须存储在服务器上或学生计算机的磁盘上。这种持久信息通常称为学生模型(student model)。它究竟包含什么,取决于外循环的类型。对于沿任务有序列表一路推进的外循环,学生模型可以简单到只是指向列表中下一个任务的指针。对于宏适应的外循环,学生模型会列出属性-值对,其中属性是特质的名称(即某个知识成分、某种学习风格等),值是辅导系统对学生具有该特质的估计。除了包含辅导系统推断出的关于学生的信息外,学生模型还可以包含关于学生的其他信息,如标准化考试分数、学生的大学专业、学生的平均绩点等。它还可以包含关于哪些任务已经完成、花了多长时间、求助次数或出错次数以及其他易于获得的绩效数据。任务选择过程可以利用所有这些信息来决定接下来分配哪个任务。尽管对于如此异质的数据集合而言,“学生模型”是个相当奇怪的名字,但它是传统术语。
除了选择任务之外,一些辅导系统还为任务选择模式(mode)。例如,Steve 可以:(1)通过亲自执行每一步并加以解释来演示如何完成任务;或(2)在学生尝试每一步之前给出提示;或(3)让学生在没有这种主动提示的情况下尝试解决任务。其中每一种都是一个模式。对于有模式的辅导系统,外循环必须同时选择任务和模式。模式选择的一个典型策略是:从给学生大量帮助的模式开始(如上列模式 1),逐渐减少帮助量(如移到模式 2,再到模式 3)。这是一个更一般策略的实例,该策略称为”支架式渐撤(fading the scaffolding)“(Collins, Brown, & Newman, 1989)。
一些辅导系统(如 http://www.cmu.edu/oli/courses/enter_logic.html)意在几乎完全取代一门课程,因此它们拥有多种不同类型的任务,而不仅仅是问题解决任务。例如,这样的辅导系统可能通过要求学生阅读几页超文本来开始一个单元的教学。这算作一个任务。然后它可能播放一段解题过程的视频。接着它可能分配若干问题解决任务。最后,它可能要求学生前往考试中心,向监考人员出示身份证件,登录辅导系统并参加一场考试。这也算作一个任务。
当课程复杂时,它几乎总是具有类似教科书”章-节-小节”结构的层级结构。任务是这种层级的叶节点。在这样的课程中,可以把任务选择看作由多个决策组成,层级每一层一个决策。层级的不同层次可以采用不同的选择方法。例如,假设辅导系统让学生选择想学习哪一章,也就是说,辅导系统对层级的顶层采用前文列举(并在下一段重复)的第一种选择方法。再假设学生选定一章后,必须按顺序完成该章的所有节,也就是说,辅导系统对层级的第二层采用第二种选择方法。最后,假设从一个节中持续选择任务,直到学生掌握了该节的教学目标,也就是说,辅导系统对层级的最低层采用第三种选择方法。
综上所述,有四种常见的外循环类型:
- 学生从包含所有任务的菜单中选择任务。
- 辅导者按预定顺序分配任务。
- 精熟学习:辅导者从一个单元的任务池中分配任务,直到学生掌握了该单元所教的知识。
- 宏适应学习:辅导者追踪多种特质,既包括学习风格等不变的特质,也包括正确与错误知识成分等可变的特质。它根据任务特质与学生特质的匹配来选择任务。
采用更复杂技术的外循环已被提出,有时也被实现(如 Macmillan, Emme, & Berkowitz, 1988; Peachy & McCalla, 1986; Zinn, Moore, & Core, 2002)。例如,辅导系统可以基于学生模型规划出一个具体的任务序列,然后开始执行该序列。执行到一半时,它可能发现学生存在一个严重的误解,于是修订其规划好的序列。规划的生成、监控与重规划属于人工智能与运筹学中一个发展成熟的子领域,称为规划(Planning)(Russell & Norvig, 2003)。从该子领域的视角看,即使是宏适应的外循环也只是一个简单的”反应式智能体(reactive agent)“。尽管如此,更复杂的、基于规划的智能体尚未在辅导系统中普及。
获取可供选择的丰富任务集
除了提供某种任务选择机制之外,设计者还必须提供一组供外循环选择的任务。要装备一个辅导系统需要多少道题目,常常出人意料。对于一个 13 周、每周 10 道题的学期,辅导系统至少需要 130 道题。如果教师希望自由选择自己的题目,或者外循环实现了宏适应或精熟学习,那么一个学期的课程可能需要 500 道题。教师常常惊讶于一道复杂的题目会多么快地”报废”:做过的学生向还没做过的朋友吹嘘自己的经历。例如,这种吹嘘可能泄露 Sherlock 希望学生自己去发现的那些故障。
理想情况下,辅导系统能在给定所需特征的规格说明时自行生成任务。例如,给定要教授的某个知识成分的规格说明,SQL-Tutor(Martin & Mitrovic, 2002)会生成一个涉及该知识成分的、用 SQL 写成的数据库查询。然后由人类作者为以该查询为解的题目撰写题面文本。利用这种技术,一位人类作者在大约 3 小时内创建了 200 道题——足够 SQL 课程一个 6 周的教学模块使用。这类程序称为题目生成器(problem generator)。
更常见的情况是任务由人类作者创建,因此设计者常常构建便于创建新任务的著作权工具(authoring tools)(Murray, 1999)。一个好的著作权工具会尽可能多地把工作做掉。许多系统内置了足够的领域知识,以至于著作权工具可以自己解出题目。例如,Andes 的题目著作权工具让作者以形式化方式描述一道物理题,同时也提供学生所看到的文本和图形。然后,该工具自己求解这个形式化的题目。如果解不出来,它会向作者”抱怨”。
对某些任务域来说,工具无法求解题目,但当作者向它展示一个解时,工具可以对该解进行泛化。例如,Steve 要求作者输入一长串虚拟动作(开阀门、按按钮等)。系统把这个动作序列泛化为完成给定任务的一个规程。为此,它必须向作者提出许多问题,例如哪些效果是有意的、哪些不是。它还会对演示的各种变体进行实验,请作者验证其正确性。
综上所述,一个通用辅导系统的外循环的全部要义在于为学生选择要做的任务。设计者面临两个主要问题:(1)提供一组教学任务;(2)设计一个决定接下来分配哪个任务(和模式)的算法。
内循环
外循环关乎任务,内循环则关乎任务之内的步骤。回顾一下,步骤是完成任务(例如解一道题)过程中的一个用户界面动作。由于各辅导系统在学生产生和回顾步骤时支持其学习的方式差异很大,我们不妨简化,假定它们在学生操作时向其提供服务。具体而言,以下可能是最常见的服务:
- 对某一步骤的最小反馈(minimal feedback)。在多数情况下,这只意味着指出该步骤是正确还是错误。
- 对错误步骤的针对错误的反馈(error-specific feedback)。这类信息旨在帮助学生理解某个特定错误为何是错的,以及如何避免再犯。
- 对下一步的提示(hints)。
- 对知识的评估(assessment)。
- 对解答的回顾(review)。
接下来的五节将详细讨论这些服务。不过还有许多其他服务未在讨论之列。举一个例子:考虑 Transom 辅导系统(Roberts, Pioch, & Ferguson, 2000)。Transom 教学生如何驾驶遥控水下航行器。由于航行器的感知输入有限(视频和声呐),学生常常对航行器的方位和位置感到困惑。当学生提出请求时,Transom 会从一个有用的视角显示这艘模拟航行器,例如一名站在离航行器几米远的海底上的虚拟观察者的视角。这能立刻消除学生的方向迷失感。这是一项只对某些任务域才有意义的服务。这里详细讨论的五项服务的用途则广泛得多。
虽然这些服务旨在帮助学生学习,学生却可能不按预期方式使用它们。例如,当辅导系统提供最小反馈时,学生可能快速猜测步骤,直到辅导系统指出某一步正确为止。服务的滥用可能发生在一切教育活动中,包括课堂教学和一对一的人类辅导。例如,我在大学做志愿辅导者时,有时会怀疑我的学生装傻,以便从我这里套出解答。在下文描述各项服务时,会提及已知会发生的滥用类型。不过,无论一项服务设计得多么周密,学生大概总能想出滥用它的办法。归根结底,控制学习过程的是学生本人。正如美国一句老话所说:“你可以把马牵到水边,但你不能强迫它喝水。”
为了简化论述,我们假定辅导系统有两个主要的内部功能:步骤生成(step generation)和步骤分析(step analysis)。这两个功能都可以访问辅导系统的全部状态。调用步骤生成器(step generator)时,它返回学生接下来应该走的一步。在给学生关于下一步做什么的提示时会用到步骤生成器,这是上列服务之一。其余服务则使用步骤分析器(step analyzer)。给它学生的步骤,它返回一个供最小反馈使用的分类,如”正确”或”错误”。如果学生的步骤正确,步骤分析器还可以返回学生推得该步骤时可能用到的知识成分——这是评估服务的关键部分。如果学生的步骤错误,步骤分析器可以返回学生所犯具体错误的描述,这是针对错误的反馈服务所必需的。
步骤分析器和步骤生成器的设计因辅导系统而异,差别相当大。虽然附录对其中 6 个辅导系统的这两个功能作了简要描述,但要充分描述一般意义上的步骤分析与生成,还需要另一篇文章。因此,本文将把它们当作黑箱。也就是说,本文只规定它们需要输出什么,而不描述它们如何计算这些输出。
最小反馈
本节讨论辅导系统的一项常见服务:对学生所走的步骤给出最小反馈。最小反馈通常指出一个步骤是正确还是错误,不过有时也会使用其他类别。以下是 6 个示例辅导系统所用的最小反馈类型:
- Andes 把正确的步骤标为绿色、错误的步骤标为红色;Algebra Cognitive Tutor 也通过改变步骤的外观来标记错误步骤。在某些错误步骤上,这些系统可能弹出诸如”忘记给数字加上单位”之类的消息。这类弹出式错误消息算作针对错误的反馈,而不算最小反馈。
- Steve 以点头或摇头表示”是”或”否”。
- AutoTutor 通过在辅导者话语前加上不同的开场语来给出最小反馈。反馈分为五个等级:否定性”不对”;负性中性”嗯,很接近了”;中性”好”;正性中性”嗯,不错”;肯定”答得非常好!”
- 学生第一次点击 SQL-Tutor 的”提交”按钮时,系统告诉他们整个解答是正确还是错误。再次点击时,它会高亮一个错误的步骤,但对此不作任何说明。
- 在学生用 Sherlock 解决排障问题的过程中,只有发生安全违规时它才给出反馈,而且这种反馈是非最小的,因为它既指出错误又说明为何错误。学生解完题后,Sherlock 回顾解答的默认方法是把学生步骤显示在一列、专家步骤显示在相邻的一列。这并不明确指出任何学生步骤的对错,所以也不是最小反馈。不过,Sherlock 另外一些回顾解答的方法确实提供最小反馈。
本节只讨论对步骤的反馈,而不是对学生能力的”反馈”,后者通常称为评估,由另一节讨论。反馈的一个已知问题是:学生可能把反馈解读为评估,从而灰心丧气、放弃努力等(Kluger & DeNisi, 1996)。
最小反馈的类别
虽然大多数辅导系统只用”正确”和”错误”两个类别,但也可以使用其他类别。本节讨论若干选项。
假设某个步骤不属于该题的理想解,但可能是某个非理想解的一部分。教师可能希望把它视为最小反馈的第三个类别——正确但非最优(correct but non-optimal)。例如,学生在 Andes 上解物理题时,可以输入一个对给定物理情形成立、但对解出该题并非必要的方程。由于 Andes 把正确的步骤标为绿色、错误的标为红色,教师们曾考虑对”正确但非最优”的步骤使用黄色,但最终出于简洁性的考虑放弃了这一做法。
如果教师们对什么才是该题的最佳解法意见不一,那么对”非最优”进行子分类可能是明智的。例如,由于一些 Sherlock 教官强调缩短时间、另一些强调降低成本,Sherlock 可以把非最优步骤细分为”浪费时间”或”浪费备件”。简言之,最小反馈所用的类别应反映教师的教学策略。
如果一个步骤无法归入任何一个最小反馈类别(正确、错误、非最优等),那么它就落入”无法识别”类别。处理这类无法识别的步骤,基本上只有三种方式。(1)一些辅导系统(如 Algebra Cognitive Tutor)假定自己能识别所有正确步骤,因此把无法识别的步骤当作错误的。(2)另一些辅导系统(如 SQL-Tutor)假定学生有时会给出新颖的正确解法,因此把无法识别的步骤当作正确的。(3)最后,辅导系统可以干脆告诉学生该步骤无法识别。在这种情况下,“无法识别”就成了最小反馈的又一个类别。
何时给出最小反馈
各辅导系统在何时给出反馈的策略上互不相同。作为示例,以下是我们 6 个示例系统的反馈策略:
- 即时反馈:Andes、Algebra Cognitive Tutor、Steve 和 AutoTutor 在每个学生步骤之后立即给出反馈。它们在反馈的呈现方式上差别很大。
- 延迟反馈:只有当步骤违反安全规程时,Sherlock 才会在学生解题过程中给出即时反馈。不过,题目解完之后,学生可以请求进入回顾模式,其中会给出最小反馈。具体来说,当 Sherlock 逐步回放学生的解答时,它会指出哪些步骤没有提供任何诊断信息。
- 按需反馈:SQL-Tutor 只在学生点击”提交”按钮时给出反馈。由于学生在收到这种反馈后还能继续修改自己的解答,这不算延迟反馈。
除了这 3 种简单策略(即时、延迟和按需)之外,还可以有更复杂的策略。辅导系统甚至可以在每一步之后决定是否给出最小反馈。反馈策略可以是学生能力的函数。例如,如果学生接近精熟,就延迟反馈;而能力较弱的学生做同一道题时会得到即时反馈。这种策略已在人类辅导中被观察到,它也是”支架式渐撤”(Collins et al., 1989)的一个实例,因为反馈是一种支架(教学上有用的帮助)。
总结本节关于最小反馈的内容:可以把辅导系统想象成在学生每输入一步时都调用步骤分析器。步骤分析器返回最小反馈类别之一,如正确、错误、非最优、无法识别等。然后,辅导系统决定是否立即、稍后或永不向学生显示这一分类。辅导系统可以依据固定的教学策略来做这个决定,也可以做得更具适应性。
下一步提示
学生常常卡壳,希望得到关于下一步该做什么的帮助。给出下一步提示涉及三个重要的设计问题,每个问题各用一个小节讨论:
- 辅导者应何时给出关于下一步的提示?应等待学生开口请求吗?当检测到学生在猜测或瞎摸乱撞(floundering)时,应主动给出提示吗?
- 辅导者应建议哪一步?例如,如果通往解答有多条路径,而学生似乎正沿着一条冗长复杂的路径前进,辅导者应建议从头再来吗?
- 辅导者如何给出既能最大化学习、又能控制挫败感、并让学生得以完成题目的提示?
给出最小反馈的辅导系统还应具备提示下一步的能力。没有最小反馈,学生会在无知无觉中越过自己的错误,一路走到一个错误的解答并把它提交上去。有了最小反馈却没有下一步提示,学生常常反复猜测,然后在挫败中放弃。因此,对于采用最小反馈的辅导系统而言,下一步提示是一项非常常见的服务。
何时提示
通常的看法是:只有当学生确实需要时,辅导者才应给出关于下一步的提示。如果学生通过足够认真的思考就能走出正确的一步,那么即使学生请求提示,系统也应拒绝给出。另一方面,如果学生很可能因徒劳尝试走出正确步骤而浪费时间、感到挫败,或者学生正在反复猜测而不是努力想出下一步,那么即使学生没有请求,辅导系统或许也应该给出提示。
DT Tutor(Murray, VanLehn, & Mostow, 2004)实现了这一理想辅导策略的一个版本。该辅导者运用决策论来决定是否给出提示。对于它可以采取的每一个辅导动作(如是否给提示、给哪种提示),它使用一个概率性的学生模型来预测学生对辅导动作的所有可能反应及其概率。预测的学生状态包括学习发生的可能性、变得沮丧的可能性、正确输入下一步的可能性等。DT Tutor 评估每个预测的学生状态的效用,把状态的效用乘以状态的概率,最终得出每个拟议辅导动作的期望效用。然后,它采取期望效用最高的辅导动作。虽然概率推理的进展使 DT Tutor 能够实时完成这一计算,但设定其学生学习模型中的参数仍需要来自人类学生的大量数据。尽管如此,对于辅导系统就是否给予帮助做出决策而言,这显然是一条合理的途径,尽管是数据密集型的。
Andes、Sherlock 和许多其他系统采用了一个简单得多的策略:只有当学生通过点击相应按钮明确请求时,才给出提示。然而,提示按钮有两个众所周知的问题(Aleven & Koedinger, 2000):
- 帮助滥用(help abuse):一些学生即使不需要帮助也请求帮助。在极端情况下,一些学生在每一步都请求帮助。
- 帮助拒绝(help refusal):一些学生即使需要帮助也拒绝请求。他们输入一长串错误的步骤(可能是猜测),而不是点击帮助按钮。
为了阻止帮助滥用,一些系统会记录分数,并对每次帮助请求扣分。为了阻止帮助拒绝,一些系统在学生连续输入三个错误步骤或长时间停顿时主动给出帮助。
虽然大多数辅导系统是在收到帮助请求或发现瞎摸乱撞的迹象时才给予帮助,但也有少数辅导系统试验过”主动”帮助,即在学生甚至尚未尝试某一步之前就给予帮助。例如,如果 DT Tutor 估计让学生在没有提示的情况下做某一步会导致尝试失败和沮丧,它就会说类似”下一步很棘手。记住链式法则的形式是 dx/dz = dx/dy*dy/dz”的话。Steve 使用了更为极端的主动帮助形式。如果下一步是学生从未做过或从未见过的,Steve 会说类似”下一步是新内容。让我演示给你看”的话,并亲自执行该步骤,而不是让学生去尝试。
总之,决定何时给出下一步提示的一般问题是复杂的。虽然固定策略实现起来简单、也便于向学生解释,但能够准确预测学生下一次尝试输入步骤之结果的辅导系统,相对于固定的帮助给予策略可能具有教学上的优势。
提示哪一步
本节讨论步骤生成器。在可访问辅导系统完整状态的条件下,它返回一个待提示的步骤。有几个标准决定辅导者应提示哪一步:
- 该步骤必须是正确的。
- 待提示的步骤不应是学生已经做过的。
- 应尊重教师的偏好。
- 如果学生对解题(甚至仅对下一步)已有计划,那么辅导者应提示学生正试图完成的那一步。
前两个标准无需讨论,其余的则需要。第三个标准是:待提示的步骤应符合教师的偏好。例如,如果一道题有多种解法,教师可能只偏爱其中一些。如果任务域允许学生跳步,教师可能偏好让需要提示的学生不跳过任何步骤。例如,假设学生想输入步骤 2-5x=12 → x=-2,却输入了 x=2。学生跳过了若干步骤,这可能正是导致出错的原因之一,因此教师可能更愿意提示 -5x=12-2 而不是 x=-2。
如果前三个标准不能唯一确定要提示的步骤,那么辅导系统可以考虑学生的偏好。为此,它必须推断学生正试图输入哪一步。虽然一般情况下这很难做到,但有几种简单情形可以在计算量不大的情况下确定学生的意图。
第一种简单情形是:一道题有多种解法,而学生已有的所有步骤都属于其中一种解法。显然,学生打算继续沿着该解法走下去,因此待提示步骤应是该解法中的下一步。
另一种简单情形出现在用户界面由一组图形”部件(widget)“构成时,例如按钮、下拉菜单和输入框。其中一些部件的操作方式是:先点击部件,然后输入或用鼠标做出手势。例如,点击一个框可能弹出一个菜单,用户从中选择一项。如果学生先点击了这样一个部件、然后请求提示,辅导系统就可以相当有把握地认为,学生想要的是关于如何完成该部件操作的提示。例如,如果学生点击了 Algebra Cognitive Tutor 电子表格中的一个单元格、然后请求提示,辅导系统就假定学生想要关于如何填写该单元格的提示。它可能给出这样的提示,也可能建议学生干脆尝试别的步骤。
一种稍复杂的情形是:学生刚走了一个错误步骤并收到了最小的负反馈。很可能学生想要的是关于如何把这一步做对的提示。如果辅导系统能确定哪个正确步骤对应于学生输入的那个错误步骤,它就可以放心地提示那个正确步骤。另一方面,如果辅导系统无法确定哪个正确步骤对应于学生的步骤,它可以问学生想输入的是什么步骤。对于学生想要帮助却又无法识别的方程,Andes 就是这么做的。
如果这些简单情形都不适用,那么辅导系统就必须设法弄清:在可能的下一步之中,哪一个最有可能属于学生正试图遵循的解法。在人工智能中,这称为计划识别问题(plan recognition problem)(Russell & Norvig, 2003)。大致思路是:把导向学生最近一步的步骤序列,与由规划器生成、或从计划库中提取的步骤序列进行匹配。一旦辅导系统确定了学生似乎在遵循的计划,它就能轻松确定该计划中的下一步。
我们建议步骤生成器先确定教师偏好的步骤集合,再用学生的偏好在其中进行选择。如果辅导系统有一种确定学生偏好的可靠方法,那么把这一过程反过来也许更合理。也就是说,辅导系统先确定学生想做的下一步,再检查该步骤是否属于理想解(即教师偏好的解法)。如果不是,辅导系统可以说类似”虽然我可以帮你改正那个步骤,但它其实不是解这道题的好办法。我建议你试试别的”的话。
如果推断学生对下一步的意图太过困难或不可靠,辅导系统可以试着直接询问学生。一些系统(如 Steve 和 Sherlock)列出可能的下一步,让学生选择。Andes 通过引出顶层目标(“题目要你求的是什么量?”)和实现它的方法(“你应该用什么原理来求出那个量?提示:当该原理的方程最终写出时,它会包含所求的量。”)来识别学生的顶层计划。学生通过分层菜单回答这两个问题,如果答案错误,会立即得到反馈。
在步骤生成中使用学生的计划和偏好有何教学收益,仍需研究。如果学生需要提示,那么他们可能根本没有连贯的计划,并且会对任何一步的提示心怀感激。因此,只使用教师偏好、而不使用学生偏好的辅导系统,也许同样有效。这是一个有待实证研究的课题。
如何提示下一步
一旦辅导系统决定提示某一步,它就必须真正把提示给出来。也许最常见的策略是为下一步构建一个简短的提示序列。最初的提示较弱——它们透露很少的信息,以鼓励学生自己完成大部分思考。后面的提示则更强。
如果该步骤只需要一个知识成分,那么一个标准的提示序列是点拨(Point)、讲解(Teach)和兜底(Bottom-out)(Hume, Michael, Rovick, & Evens, 1996)。点拨式提示提及题目的某些条件,这些条件应能让学生想起该知识成分的相关性。讲解式提示简要描述该知识成分,并展示如何应用它。兜底式提示直接把步骤告诉学生。例如,以下是 Andes 可能给出的一串提示:
- “注意电梯正在减速。”这是一个点拨式提示。
- “当物体减速时,其加速度方向与其速度方向相反。”这是一个讲解式提示。它由该知识成分的一般形式的简要陈述构成。
- “因为电梯正在减速,其加速度方向与其速度方向相反。它的速度向下,所以它的加速度向上。”这是另一个讲解式提示。它指出学生应如何把该知识成分应用到这道题上。
- “把加速度矢量竖直向上画。”这是兜底式提示。
如果辅导系统显式地表征知识成分,那么为每个知识成分关联一组文本模板通常会很方便。当步骤生成器返回待提示的步骤时,它也返回用于推导该步骤的知识成分应用。于是,提示序列可以通过用题目中的文本(如上例中的”电梯”)填充模板中的槽来生成。
如果推导待提示的步骤涉及不止一个知识成分,那么生成一个教学上有效的提示序列可能很困难。一个复杂的提示序列可能还不如没有。也就是说,直接给出兜底式提示也许更好。
记录先前给出的提示序列,有时可以简化提示序列。一个简单情形是:辅导者和学生先前讨论过某个目标或计划,而该目标或计划仍然相关。辅导者可以更简略地提及这一”共同基础(common ground)“。例如,如前所述,Andes 有时会通过基于菜单的对话从学生那里引出顶层目标和计划。如果该目标和计划对后续的提示序列仍然相关,Andes 就不会重新走一遍完整的菜单式对话。相反,它会说类似”我假定你仍在沿 y 轴应用牛顿第二定律,以求电梯的加速度”的话。也就是说,它把相关的计划和目标直接告诉学生,而不是从学生那里引出。语言学已经发现了许多使交流更高效的方法(Jurafsky & Martin, 2000),但要把它们从自然语言对话迁移到辅导系统,还需要大量研究,因为辅导系统把密集的、由辅导者控制的短时段交流(如提示序列)与稀疏的、由学生控制的长时段交流(如输入步骤且只得到最小反馈)混合在了一起。
提示序列通常以一种程式化的对话呈现。第一个提示与”完成”(Done)、“←”和”→“等按钮一同呈现。点击”→“会显示序列中的下一个提示;点击”←“会回到上一个提示;点击”完成”会关闭教学对话,以便学生继续做题。学生有时会点击”完成”,尝试输入下一步,失败,然后再次求助。在这种情况下,把学生已经看过的提示再显示一遍会违反格赖斯(Gricean)交流原则(Jurafsky & Martin, 2000),因此辅导系统会从学生尚未看过的第一个提示开始。
另一种策略称为权变辅导(contingent tutoring),其灵感来自对人类辅导者的研究。Wood, Wood and Middleton(1978)发现,有效的人类辅导者在回应学生的步骤时,并不总是像提示序列式辅导系统那样从最弱的提示开始。相反,初始帮助的水平取决于学生近期的表现。如果前几次帮助没有立即奏效,那么辅导者这次会以比上次更具体的帮助水平开始。例如,假设一个权变辅导系统(如 Quadratic(H. A. Wood & Wood, 1999))的提示序列长 5 个提示。假设辅导者从提示 2 开始,但学生一路看到提示 4 才成功输入该步骤。那么下一次辅导系统给出提示时,将从提示 3 开始。反之,如果提示 2 当时奏效了,那么下一次辅导者将从提示 1 开始。
提示常以超文本形式呈现。例如,链接置于技术术语下方;点击该术语会弹出其定义。
一种常见的帮助滥用形式是:学生快速连点”→“按钮,直到看到兜底提示(Aleven & Koedinger, 2000)。为了阻止这种行为,辅导系统可以在兜底提示被请求与其被显示之间插入一段延迟(Murray & VanLehn, 2005)。
虽然提示序列模仿了专家人类辅导者的行为(Hume et al., 1996),并且几乎被所有辅导系统采用,但针对替代性提示方法的研究却很少。例如,假设辅导者只给一个提示,即兜底提示,但要求学生解释该步骤为何正确。引出自我解释在其他情境中能带来学习增益(如 Chi, Bassok, Lewis, Reimann, & Glaser, 1989; Renkl, 2002),所以它作为一种提示策略或许同样有效。该领域将受益于更多样的提示策略,以及比较其有效性的实证研究。如果提示策略更好,帮助滥用可能会大大减少。
总结本节关于下一步提示的内容:主要问题是何时提示、提示哪一步以及如何提示。何时给提示的决定通常由一项策略确定,例如只有当学生请求时才给提示。提示哪一步的决定很复杂,需要找到一个正确、不与已有步骤重复、且为教师乃至学生所偏好的步骤。提示通常以序列给出,从最弱的提示开始,以兜底提示结束。虽然提示在计算上比最小反馈更复杂,但它在教学上可能更重要。提示是在学生卡壳时给出的,而卡壳可能是一种强大的学习动机。因此,把提示做对,可能会显著增加学生的学习。
针对错误的反馈
假设一名代数学生输入了错误步骤 2+3*x=20 → 5*x=20。对一位有经验的人类辅导者来说,这是一个熟悉的错误。学生把 2 和 3 相加得到 5,违反了运算符优先级。一个可能的提示序列是:
- 你似乎把 2+3 相加了。这样做真的合适吗?
- 你似乎把 2+3*x 组合成了 (2+3)*x。这样做合法吗?
- 因为乘法的优先级高于加法,你应把 2+3*x 组合成 2+(3*x)。如果你想复习优先级,请点击这里。
- 你需要孤立 x,而它嵌在两个表达式之中。外层表达式是”2+❑“,其中❑是一个含 x 的表达式。你需要剥去外层表达式,从而得到一个左边为❑的方程。如果你想复习单变量方程的解法,请点击这里。
- 为了从”2+3*x”中剥去”2+…“,你需要从方程两边同时减去 2。
- 你应输入 3*x=20-2。
虽然这并不是某个真实辅导者的提示序列,但它说明了两种提示。提示 1、2、3 讨论的是导致该错误的错误学习事件。提示 4、5、6 讨论的是学生接下来应输入的步骤。如果辅导系统只能确定步骤是错误的、而不能确定其出错原因,那么它只能给出提示 4、5、6。但如果它还能确定导致错误步骤的那个错误学习事件,那么它也能给出提示 1、2、3。
这说明了一项辅导系统可以提供给学习者的新服务。这项服务包括:分析一个错误步骤以确定导致它的错误学习事件,然后给出旨在防止该错误学习事件再次发生的教学。为了控制本文篇幅,我们假定第一阶段——诊断错误步骤——由我们的一个黑箱即步骤分析器完成。
具体而言,当给定一个错误步骤时,我们假定步骤分析器可以返回一个错误描述。错误描述指出错误的类型(如运算符优先级),以及生成教学所需的关于学生错误的信息。例如,为了生成刚才展示的提示序列,错误描述需要包括:(1)高优先级运算符:乘法;(2)低优先级运算:加法;(3)未知变量:x;(4)含未知数的外层表达式:2+❑;(5)方程中含未知数的一侧:2+3*x;(6)原方程:2+3*x=20;以及(7)新方程:3*x=20-2。为了生成前面展示的提示序列,辅导系统用这 7 个字符串填充文本模板中的槽。文本模板来自错误类型,本例中即运算符优先级。
诊断错误的技术有很多。大多数技术要求作者观察学生的错误、弄清某个常见错误的成因、为它编写一个合适的错误类型,并实现某种识别此类错误的方法。人们很容易被这一过程的挑战性冲昏头脑,试图为越来越多的学生错误构建识别器。然而,就会帮助学生学习的目的而言(相对于评估其知识——那将在后文讨论),如果对一个错误说不出任何教学上有用的东西,那么识别它就没有多大意义。例如,假设学生在展开二项式(如 (2x+1)(3y-5))时会犯 5 种常见错误。但如果在这 5 种情况下,教师都偏好让辅导者教授正确方法(即”你需要应用 FOIL 法则:首项、外项、内项、末项……“),那么区分这 5 种错误类型就没有意义,因为它不会影响辅导者对它们的回应。
如何给出针对错误的反馈
针对错误的反馈的主要目的是让学生改变自己的知识,从而不再犯这种错误。纠正自己的知识有时被比作调试一段软件(Ohlsson, 1996)。程序员必须首先找到缺陷存在的证据,然后查明缺陷是什么,最后修复缺陷。当学生不在辅导者身边时,他们必须自己完成整个自我调试(self-debugging)过程。他们必须首先注意到某个步骤是错误的,然后找出其推理和知识中的缺陷,再弄清正确的学习事件和知识成分应当是什么。虽然辅导者无法取代自我调试过程(因为只有学生本人能修改学生的知识),但它可以通过设计良好的针对错误的反馈来推进自我调试过程。学生与辅导者一起做的自我调试越多,在没有辅导者时,他就应当越擅长自我调试。
许多辅导者把反馈呈现为一系列与自我调试的各个阶段松散对应的提示。当学生输入一个错误步骤时,辅导者以给出最小反馈来开始这一序列。这相当于为学生提供了知识缺陷存在的证据,但对识别或纠正缺陷没有进一步的帮助。
通常,接下来的几个提示帮助学生识别缺陷。例如,如果步骤只有一部分是错误的,辅导者可以通过指出错误的部分来帮助学生诊断错误。例如,如果一名 Andes 学生输入了一个余弦出错的复杂方程,Andes 可能说:“检查你的三角函数。”另一类提示则暗示相关的知识成分。例如,对于正弦/余弦错误,Andes 可能提示说:“你似乎不恰当地应用了直角三角形法则。检查你的对边、邻边和斜边。”
序列中更靠后的提示,往往意在把学生在自我调试的路上越推越远。到了某个时点,提示不再涉及错误的步骤、学习事件和知识成分,转而涉及正确的步骤、学习事件和知识成分。例如,再次考虑输入了错误步骤 2+3*x=20 → 5*x=20 的那位代数学生,该步骤引出了如下提示序列:
- 这一步是错误的。[这是最小反馈。可以通过颜色等方式传达。]
- 你似乎把 2+3 相加了。这样做真的合适吗?
- 你似乎把 2+3*x 组合成了 (2+3)*x。这样做合法吗?
- 因为乘法的优先级高于加法,你应把 2+3*x 组合成 2+(3*x)。如果你想复习优先级,请点击这里。
- 你需要孤立 x,而它嵌在两个表达式之中。外层表达式是”2+❑“,其中❑是一个含 x 的表达式。你需要剥去外层表达式,从而得到一个左边为❑的方程。如果你想复习单变量方程的解法,请点击这里。
- 为了从”2+3*x”中剥去”2+…“,你需要从方程两边同时减去 2。
- 你应输入 3*x=20-2。
最初的几个提示聚焦于错误的步骤,最后几个提示聚焦于接下来应输入的正确步骤。这一转变可能很微妙,因为关于哪里错了的提示(反馈)与关于接下来该做什么的提示(下一步提示)往往难以区分。提示 4 是含糊的:它既可以被视为在讨论学生的错误步骤,也可以被视为在讨论下一步输入什么。不过,从开发者的角度看,提示 4 与提示 2、3 属于同类,因为它们都需要判定:错误步骤源于对运算符优先级的常见混淆。
何时给出针对错误的反馈
一旦辅导系统为某个步骤指定了错误描述,并且备好了一段要显示的提示序列,是否把它呈现出来未必总是明智的。虽然这一决定可以动态地、逐个错误地做出,但大多数辅导系统采用固定策略。本节提及几种较流行的策略。
如前所述,Algebra Cognitive Tutor 只给出最小反馈,除非学生此前已两次徒劳地尝试输入同一个步骤。到那时,它会从该步骤提示序列的第一个提示开始。不过,如果提示序列开始时学生的错误输入是某个错误类型的一个实例,那么针对错误的提示会在下一步提示之前给出。
如前所述,Andes 关于提示的总体策略是:未经请求即提供即时最小反馈,只在学生点击提示按钮时才提供提示。它还通过提供两个提示按钮,让学生控制自己获得何种提示。一个提供下一步提示;另一个标为”这有什么问题?“,对当前选中的任何错误步骤提供针对错误的反馈。
学生有时会犯粗心的错误,心理学上称之为”失误(slips)“(Norman, 1981),但未能察觉自己犯了错,这可能导致他们浪费时间寻找深层的潜在误解。为改善这一点,Andes 把错误类型分为失误和潜在误解(potential misunderstandings)。失误是专家(包括教师)也常犯的。潜在误解是一种可能由多种因素(包括错误信念)导致的错误类型,但在专家的工作中几乎从不出现。当学生输入一个被归类为失误的错误步骤时,Andes 会立即给出针对该错误的补救,例如”你忘了给某个数字加上单位。“如果错误被归类为潜在误解,Andes 只把该错误步骤标红,让学生在自己想要时再请求针对错误的提示。
一些学生步骤包含两个或更多错误。为了保持交流简洁,辅导系统大概只应回应其中之一。学生通常只修正那个错误,之后辅导系统就可以提及第二个错误。例如,假设一名 Andes 学生输入”vf = 5.2”,而正确步骤是”vf = -5.2 m/s”。学生既漏掉了负号,又漏掉了单位。Andes 回应单位错误,学生输入”vf = 5.2 m/s”。这一步仍有符号错误,于是 Andes 通过给出最小负反馈来提醒学生。
综上所述,到目前为止,我们对内循环的讨论已包括三项服务:最小反馈、下一步提示和针对错误的反馈。如果一个辅导系统提供全部三项服务——Andes、Algebra Cognitive Tutor、Steve 以及许多其他系统正是如此——那么其实现会把三者融合在一起。不过,每一项都要求辅导系统具备不同的专门知识。一个只能区分正确与错误步骤的辅导系统可以给出最小反馈,却无法给出任何提示。提供下一步提示的能力,需要关于如何选择合适下一步的知识。提供针对错误的反馈的能力,需要关于会出现哪些错误类型、以及如何就这些错误类型给出教学上有用的提示的知识。虽然在概念上相互独立,但下一步提示和针对错误的反馈的第一条”提示”通常就是最小反馈,因此该服务是其他两项的前提。于是,逻辑上可能的组合是:(1)最小反馈;(2)最小反馈+下一步提示;(3)最小反馈+针对错误的反馈;以及(4)全部三项服务。
评估知识
内循环常常被要求评估学生的知识和其他持久的学生特质。这项评估服务在概念上独立于前文讨论的三项服务,不过如果辅导系统拥有那些服务,其实现就会与它们交织在一起。通常的惯例是用”评估(assessment)“指对学生能力的分析,用”评价(evaluation)“指对辅导系统能力的分析(Lesgold, 1994; Mark & Greer, 1993; Regian & Shute, 1994; Shute & Regian, 1993; Siemer & Angelides, 1998)。本节只讨论评估。
需要何种评估?
有三类客户可能使用评估:教师、学生和辅导系统本身。设计者需要设计一种满足所有这些需求的评估。例如,教师往往不希望辅导系统给学生评定课程成绩,因为一旦学生质疑该成绩,教师将陷入为成绩辩护的尴尬境地。不过,教师往往确实希望不及格的学生能在学期早期就被指出来,以便教师能与其一起工作。学生往往想要与教师相同的信息,以便管理自己的学习。辅导系统可能需要评估来驱动其决策。例如,如果外循环采用精熟学习,那么它需要知道学生的能力何时超过精熟阈值,以便把学生推进到下一个课程单元或难度级别。
一个基本问题是评估的粒度(granularity)。评估的粒度指对任务域知识的聚合程度。如果一个评估能为任务域中的每个知识成分提供一个掌握概率,那它就是细粒度的。如果一个评估只提供一个表示学生总体能力的单一数字,那它就是粗粒度的。
评估是决策辅助,作为一条一般性的启发式原则:决策越大,所需评估越粗。如果一个决策影响整个学期,例如学生是否需要重修一门必修课,那么评估应覆盖整个学期并最终导向一个是/否决策,因此每个学生一个数字是合适的。如果一个决策只影响例如辅导者从提示序列的开头还是中间开始,那么细粒度评估中只有一小部分是相关的。一般思路是:如果决策很小——只影响少量教学时间——那么在这段时间内只能涉及领域知识的一小部分,因此相关的决策辅助就是学生在这部分知识上的能力。
这些只是启发式准则。它们提醒开发者:在开发精细的细粒度评估来辅助重大决策之前,应当三思。例如,教师对一个由 500 个数字(每个知识成分一个)组成的评估大概没什么用处。
辅导者要做许多小决策,因此它们是细粒度评估的主要客户。以外循环为例。宏适应的辅导系统试图分配一个能训练若干未掌握知识成分的任务;因此它必须有一种细粒度评估,为每个相关知识成分提供掌握概率。不过,辅导系统并非总是需要细粒度评估。只做精熟学习的系统,只需要一个估计学生对整个单元知识掌握程度的单一数字。而让学生自选下一个任务的辅导系统,可能根本不需要评估。
粗粒度评估
如果所需的评估是粗粒度的,例如报告学生在当前单元上的能力的一个单一数字,那么它通常由若干度量计算而来,例如:
- 进度和覆盖面的度量,如已解出的题目数或正确步骤数。
- 所给帮助量的度量,如启动的提示序列数,以及以兜底提示告终的比例。
- 能力的某种度量,如首个步骤出错的频率、输入正确一个步骤所需的时间,或一个步骤在被正确输入之前的尝试次数。
这些原始度量需要被合成为一个总体评估。心理测量学(psychometrics)是研究如何对常规测验(如选择题测验)做到这一点的领域。它的主要工具之一是项目反应理论(Item-Response Theory,IRT),该理论假定每个测验项目都有难度,且不同项目的难度不同(Embretson & Reise, 2000)。遗憾的是,IRT 通常假定在给定学生能力的条件下,各测验项目相互条件独立。这对辅导系统在步骤层面收集的原始度量来说很少成立。虽然 IRT 具有强大的特性,例如凭经验确定项目难度及其他参数的校准算法,但要把 IRT 应用于辅导系统,还需要大量工作。
教师需要充分参与粗粒度评估的设计。他们必须确定原始度量,如上面列举的那些。在 IRT 得到扩展之前,他们还需要参与设计把原始度量合成为总体度量的算法。
如果教师不确定、或无法参与评估设计,一种替代方案是:实现一个细粒度评估(下一节讨论),然后用某种有原则的算法,把细粒度评估产生的约 500 个数字组合起来(Martin & VanLehn, 1995)。例如,如果细粒度评估给出任务域中每个知识成分的掌握概率,那么答对一道选择题的概率就大致等于:答对该题所需的各个知识成分的掌握概率之乘积。再辅以关于猜测的一些额外假设,就可以用细粒度评估来预测学生在选择题期末考试中的得分。这只是从细粒度评估生成粗粒度评估的一种有原则的方法。其优点是易于向教师和学生解释。不过,如果决策由教师做出,那么由教师设计的评估可能更容易为他们所接受。
细粒度评估:计数学习事件
回顾一下,我们把步骤定义为用户界面事件。我们还假定一个步骤是一个或多个学习事件的产物,并把学习事件定义为基于知识成分的心理事件。学习事件和知识成分无法被直接观察,但步骤可以。本节讨论如何根据步骤数据来评估对各个知识成分的掌握。许多辅导系统都提供这种细粒度评估,包括 Algebra Cognitive Tutor、SQL-Tutor 和 Sherlock。
“掌握”的确切含义是:当一个知识成分应当被应用时,它确实会被应用的概率。如果学生的能力是冻结的、而不是因学习和遗忘而不断变化,那么掌握程度可以用该知识成分被应用的次数除以它本应被应用的次数来估计。因此,我们需要讨论三个问题:(1)如何检测一个知识成分的应用;(2)如何检测本应应用该知识成分的场合;(3)如何针对教学、学习和遗忘进行调整。
分析步骤以确定推导它所用的知识成分,方法有很多。为保持本文简短,我们假定这由我们的一个黑箱即步骤分析器负责。也就是说,给定一个正确的学生步骤,它返回学生推导该步骤所用的知识成分集合。
实际上,这个假定过于简单,因为在某些情况下,一个步骤的解读可能有歧义。也就是说,单个步骤可以对应几组学习事件中的某一组。例如,假设一个代数方程求解辅导系统要求学生解 3*(x-3)=3,而学生只写了 x = 4。学生在心理上可能完成的推导有好几种:
- 3(x-3)=3
- 3x-9=3
- 3x=12
- x=4
或者
- 3(x-3)=3
- x-3=1
- x=4
或者
- 试 x=1:3(1-3) = -6 ≠ 3
- 试 x=2:3(2-3) = -3 ≠ 3
- 试 x=3:3(3-3) = 0 ≠ 3
- 试 x=4:3(4-3) = 3
所有解法都正确,但它们使用的学习事件不同。如果辅导系统能分辨学生做了哪些学习事件,它就可以为相应知识成分的计数器加一。这种解读上的歧义被称为赋予学分问题(assignment of credit problem)。贝叶斯网络和人工智能不确定性(Uncertainty in AI,UAI)子领域的其他技术,已被用于处理赋予学分与归咎问题(Jameson, 1995)。
细粒度评估:计数失败
只统计知识成分的成功应用是不够的;我们还需要知道学生有多少次未能应用它。例如,假设某个知识成分已被应用 5 次。如果学生恰有 5 次应用机会,那么计数 5 表明高掌握度。如果学生有 50 次应用机会,那么计数 5 表明低掌握度。因此,为了评估知识,辅导系统不仅应统计该知识成分被应用了多少次,还应统计学生有多少次未能应用它。
一种方法是检测步骤的失败尝试。为简单起见,假设步骤与学习事件一一对应。如果学生未能完成该步骤,那么学生必定缺乏该学习事件背后的知识。因此,如果系统能检测到完成该步骤的失败,它就可以为相应知识成分的失败计数器加一。
如果辅导系统的用户界面具备某些性质,检测步骤的失败尝试就很简单。如果步骤必须位于特定位置(如 SQL 查询的 FROM 字段),或必须在特定时刻完成(例如 Steve 刚刚问过:“你现在何不测试一下警报面板?”),那么在该位置或该时刻的错误,就可以被解读为完成该步骤的一次失败尝试。许多辅导系统都采用这一基本思路。
然而,其他一些辅导系统无法采用这一基本思路,因为它们允许学生在任意位置、任意时刻走步骤。例如,Andes 允许学生在屏幕上任意方程框中以任意顺序输入方程。因此,当学生求助或输入一个错误方程时,Andes 无从知道学生想输入的是哪个方程(除非错误类型识别器识别出了那个错误方程,而这并无保证)。一般而言,辅导系统给予学生的自由,与其诊断学生失败的能力之间存在权衡(VanLehn & Niu, 2001)。
我们为简单起见,假定了步骤与学习事件一一对应。假设改为:该步骤需要更多思考,即对应于 3 个学习事件的合取。如果学生正确完成了该步骤,那么辅导系统应为所有三个学习事件所关联的知识成分的成功计数器加一,因为它们全都参与了该步骤的生成。另一方面,如果学生对该步骤的尝试失败了,辅导系统就不应为所有知识成分的失败计数器加一。因为只要缺少一个成分,就足以阻断该步骤。这是 ITS 文献中的一个经典问题,称为归咎问题(assignment of blame problem)。UAI 技术可用于处理它(Jameson, 1995)。
细粒度评估:其他问题
评估还涉及许多其他问题。以下列举数端:
- 证据稀少与证据混杂有很大区别。如果只取成功次数相对机会次数的频率,那么 0.5 既可以是 1 次成功加 1 次失败(证据稀少),也可以是 20 次成功加 20 次失败(证据混杂)。
- 学生应当在学习,所以他们的知识应当不断变化。旧证据应何时被忽略?
- 辅导系统给予的帮助,应被算作学习的证据,还是缺乏知识的证据?
- 所有学习事件的难度都相同吗?如果不是,那么可以使用项目反应理论(IRT),使得在容易的学习事件上的成功,比在困难的学习事件上的成功提供较少的能力证据。
- 如果辅导系统包含基于错误类型的针对错误的反馈,那么它是否应在评估中以某种方式纳入错误类型的发生频率?
- 掌握的先验概率并不相互独立。如果学生没有掌握课程早期教授的某个知识成分,那么他掌握较晚出现的知识成分的可能性也较小。
正如许多作者所指出的(如 Self, 1990),人们很容易被评估所固有的智力挑战冲昏头脑,把辅导系统的这部分做得过度。设计者必须清楚自己的辅导系统为什么需要评估,并且只做必要的评估设计,不做多余之事。
回顾完整解答
许多辅导系统只在学生提交解答之后才给出反馈和提示。有时这样做,是因为在解题过程中给出反馈和提示会构成干扰。例如,SCoT(Pon-Barry, Clark, Schultz, Bratt, & Peters, 2004; Schultz et al., 2003)和 DC-Train(Bulitko & Wilkins, 1999)协同训练海军损管军官扑灭火灾、水灾及其他灾害。DC-Train 观察他们处置一场模拟紧急情况,并且在观察时一言不发,因为说话会干扰演习。当学生完成了拯救军舰的任务(或者没能完成)之后,SCoT 会复盘学生在演习中犯下的错误。这种延迟反馈也用于其他教授实时技能的辅导系统,如战术空战(Ritter & Feurzeig, 1988)、在狭窄水域操纵大型军舰(Roberts, 2001),以及在作战情报中心做出关键决策(Zachary et al., 1999)。
即使在非实时任务域中,有时也会出于纯教学的原因使用延迟反馈和提示。如果在解题过程中给出反馈,学生就不必检查自己的作业,因为辅导者会向他们指出错误。他们也不必应对迷路和从头再来,因为感到迷茫时可以向辅导者求助。于是,某些元认知技能在解题过程中可能得不到练习,因为辅导者使它们变得不必要。当学生只得到延迟反馈时,他们就必须亲自练习这些元认知技能。这也许能为他们在辅导系统不再在场的情况下从解题中学习做好准备。如前所述,外循环可以通过先分配带即时反馈的任务、之后分配带延迟反馈的任务,来”渐撤支架”。
延迟反馈给开发者增加了一个新的设计问题。到了该给反馈的时候,解答中可能已经有许多毛病。应该讨论哪一个?这一问题将在下一节中处理,随后是一些把延迟反馈与即时反馈联系起来的评论。
回顾学生解答缺陷的计划与策略
当学生提交了解答、辅导系统也完成了对其步骤的分析之后,系统现在知道哪些步骤因为错误而需要提及。它可能还注意到某些步骤的解读存在歧义,其中一些可能也需要讨论。错误步骤和歧义步骤构成一组教学对话目标(tutorial dialogue goals)。
虽然辅导者可以就每个目标简单地做一次简短讲授,但考虑以下问题,可能产生教学上更有效的对话:
- 哪些教学对话目标不应提及?如果有很多教学对话目标要讨论,那么只聚焦于一两个也许更好。
- 应按什么顺序讨论这些教学对话目标?有时,必须先达成一个目标,才能讨论另一个。
- 每个目标应讨论到多深?
- 如何兼顾学生自己的对话目标,例如请求澄清?
一些辅导系统使用了基于经典的计划生成与执行技术的教学对话管理器(如 Carberry, 1990; Schultz et al., 2003; Zinn et al., 2002)。不过,大多数辅导系统采用了更简单的技术。这里描述几种,以展示其多样性。
SQL-Tutor 有一套管理教学对话的默认策略,但为学生提供了覆盖它的途径。该辅导者的反馈级别如下:
- 简单:错误的数量(如果有)。
- 错误标记:发生错误的子句(见图 5)。
- 提示:对错误的一般性描述。
- 详细提示:关于该错误的更多信息。
- 所有错误:包含对每一个错误的描述的列表。
- 部分解答:出现错误的那个子句的正确版本。
- 完整解答:该题的理想解。
首次提交答案时,辅导者给出级别 1 的反馈。之后每提交一次答案,反馈级别就加 1,最高到 5。不过,学生可以从菜单中选择反馈级别。菜单中包含级别 6 和 7,它们的功能有点像兜底提示。因此,SQL-Tutor 的对话管理策略是辅导者控制与学生控制的混合。
相比之下,Cove 把回顾环节的控制权完全交给学生(Roberts, 2001)。它显示一个由时间周期(列)和绩效指标(行)构成的矩阵。例如,一行报告操舵军官(即学生)是否正确地下达了口令。另一行指示学生是否注视了应当注视的部位。(学生的注视通过头戴式眼动仪监测。)最上面一行报告的,毫不意外,是学生的舰船是否撞到了不该撞的东西。按钮以颜色标示学生的表现如何(一种最小反馈)。点击某个按钮,会使辅导者显示一张图表、一幅地图、一段文字或其他某种解释,说明学生做了什么、哪些本可以做得更好。其中一些解释带有按钮,点击后会显示更多细节。这些对学生表现的分析,是一种把针对错误的反馈与下一步帮助结合起来的东西。这样,学生对讨论哪些学习事件、讨论到多深,拥有完全的控制。
正如这些例子所表明的,一个关键问题是如何在学生与辅导者之间分享对话的控制权。例如,讨论哪些学习事件的决定,可以属于学生(Cove)、属于辅导者,或两者兼有(SQL-Tutor)。
对人类辅导者的研究表明,他们常常既在学生表现进行中、也在表现结束后给予帮助(Katz, Connelly, & Allbritton, 2003)。而且,他们在表现结束后给予的帮助,常常是对表现进行中所给帮助的跟进。例如,在表现进行中,辅导者可能只标记一个错误;如果这不足以引出改正,辅导者就直接给出兜底提示。而在事后回顾学生表现时,辅导者会提及该错误,以便讨论它为什么错。这种能力将是辅导系统一个有趣的补充。
回顾解答:其他问题
在即时反馈、针对错误的反馈和提示各节中讨论的大多数问题,也是延迟反馈的问题。就像即时反馈的辅导系统一样,延迟反馈的辅导者在决定给提示时,可以使用提示序列或对话;如果使用提示序列,它可以从第一个提示开始,也可以采用权变提示策略。如果学生的解答中有一个错误步骤,延迟反馈的辅导者可能会、也可能不会识别出该错误。如果能识别,它必须决定该错误的分析是否值得与学生讨论。如果学生的解答不完整,且存在多种可选的补全方式,辅导者必须决定提示其中哪一种。
总而言之,回顾学生的解答会引出许多与在解题过程中、步骤之间给出反馈和提示相同的问题。不过,由于学生的解答中通常有多个需要讨论的错误步骤,题后回顾多出一个额外的设计问题,即如何组织讨论以最大化学习。一些系统让学生通过选择要讨论的步骤和讨论的深度来控制讨论。另一些系统则试图与学生分享讨论的控制权。此外,在解题之后设置一个讨论环节,还创造了新的教学机会,例如:把对错误步骤的讨论拆分为即时与延迟两部分,或讨论学生的元认知策略,或把本次解答与之前题目的解答进行比较,等等。
结束语
本文聚焦于辅导系统做什么,而不是它们如何构成。具体而言,它聚焦于外循环与内循环的区分:前者的主要职责是为学生选择下一个要做的任务;后者的主要职责是分析步骤、给出教学上有效的帮助,以及评估知识。“内循环”和”外循环”这两个术语应当被理解为行为描述,而不是软件结构,因为辅导系统的软件组织远比简单的双循环结构复杂(Devedzic & Harrer, 2005)。例如,一种有趣的软件结构是构建这样的软件对象:它既表示屏幕上的图形部件(如油尺),也表示辅导系统关于该对象所知的一切,包括操作它的方法、这些操作正确与错误的条件、各种条件下的提示序列、错误类型与针对错误的反馈。也就是说,该软件对象为那个特定部件表示了一个微型辅导系统。
如前所述,许多辅导系统没有内循环。例如,有些物理辅导系统让学生在草稿纸上解几分钟的题,然后把一个数值答案输入计算机。如果数字正确,辅导者就予以确认并布置下一题。如果答案错误、且恰好是作者们知道只有犯了某个特定错误才会得到的数字,那么辅导系统就指出该错误,并请学生再试一次。这些单循环系统与本文描述的系统类似,只是它们每个任务只获得一条证据,即一个数值答案。尽管证据稀少,它们仍试图依据学习事件来分析它。一旦分析成功,它们就基于找到的学习事件给出帮助。即使这些系统缺乏内循环,它们仍然试图在学习事件层面进行辅导。这表明,此处为辅导系统定义的描述框架也许更具普适性。事实上,它或许同样可以涵盖人类辅导乃至计算机辅导。
没有内循环的辅导系统,写起来可以相当容易。对每个任务,设计者记录正确答案,或许还有若干错误答案。对每个错误答案,作者撰写旨在修复相应学习事件及其背后知识的文字。就单位开发时间所带来的学生学习量而言,单循环系统也许是一个不错的选择。“渐撤支架”的策略提示我们:可以先使用双循环系统,再转向单循环系统。比较单循环与双循环系统有效性的实证工作仍有待开展。这可以帮助开发者确定:在什么样的学生条件和任务域条件下,ITS 值得付出额外的开发成本。
本文未涵盖若干重要话题,但它们是任何辅导系统开发者的必读内容。其一是如何实现步骤分析器和步骤生成器。其二是在开发过程中和结束时如何评价一个辅导系统(Shute & Psotka, 1996)。第三个问题是如何让教师参与设计与评价过程(Dick & Carey, 1990)。第四个话题是为学生设计合适的活动以及合适的用户界面。第四个话题尤为重要且复杂,远非一篇文章所能涵盖。它既包括简单的问题,如提示何时应以文本而非语音呈现(Clark & Mayer, 2002),也包括更复杂的问题,如应布置复杂的、定义良好的题目,还是开放式的、探究式的题目。
原则上,为每门课程的每个学生都配备辅导系统的梦想,已在我们的掌握之中。虽然人机交互存在种种局限,尤其是在理解口语和视觉输入方面,而这些局限限制了计算机辅导者与学生互动的能力,但即便在这些局限之内,也还有远多于现有的辅导系统可以且应当存在。正如这篇导论所提示的,一个新的辅导系统可以从简单起步,待经验表明有需要时,再添加更复杂的特性。
妨碍辅导系统被更广泛采用的最大障碍,也许是术语的不幸选择。“辅导者”暗示该软件取代教师而不是帮助教师。“正确”暗示该软件只适用于对明确定义的任务进行反复操练。对可观察量(步骤)与不可观察量(学习事件、知识成分)不加区分,令那些认为学生认知本质上不可窥探的人望而却步。对某些人来说,“学生模型”一词尤其令人反感,因为它暗示学生实际上可以被计算机建模。事实上,学生模型不外乎一个花哨的成绩册。希望本文既能消除该领域技术术语的一些不良含义,又能鼓励有创造力的教育者和开发者思考:这项技术如何才能帮助他们实现对学生的梦想。
致谢
我非常感谢 Min Chi、Art Graesser、Sandy Katz、Ken Koedinger、Tanja Mitrovic 和 Chas Murray 对本文提出的反馈。文中残留的任何错误,很可能都是在他们读过之后引入的!
ONR(美国海军研究办公室)认知科学项目支持了 Andes 的开发。Andes 的持续支持由匹兹堡学习科学中心提供,NSF 资助号 0354420。
参考文献
(参考文献共 69 条,此处从略。)
附录:ITS 实例
Steve
外循环:Steve 是一个教授层级式多步骤规程的辅导系统,例如如何启动一台大型空气压缩机(Johnson, Rickel, Stiles, & Munro, 1998; Rickel & Johnson, 1999)。设备是模拟的,Steve 以一个智能体的形象显示在虚拟现实中(图 1)。
内循环:学生通过操作图形部件来走步骤,例如点击阀门图标将其打开,或点击油尺查看油位。Steve 可以给出即时反馈(如”你让海水进得太快了。冷水损坏了滚烫的热交换器。“)。学生可以请求提示。Steve 可以给出主动提示(如”现在就继续初始化热交换器吧,别忘了海水的温度非常低。“)。Steve 还可以替学生执行某一步。事实上,它可以为学生演示整个规程,边做边解释每一步。这使它能够与学生协作:起初做完所有步骤,然后让学生做越来越多的步骤,同时主动提示越来越少。
图 1|Steve 正在描述一个电源指示灯。
步骤分析:Steve 通过把学生的步骤与一组预期步骤相匹配来解读它。具体而言,在每个学生步骤之后,Steve 计算出所有可能的正确下一步(通常只有一个)。它为每个预期步骤存储生成它所用的学习事件。如果学生的下一步与任何一个预期步骤匹配,那么就找到了一种解读。例如,假设学生通过把海水阀开到 100 刻度上的位置 10 来启动热交换器。(实际上,这个例子并非取自 Steve 的文献,而是为了紧凑地说明几个要点而编造的。)位置 10 落在某些阈值之内,所以学生的步骤与预期步骤 Crack_open_seawater_inlet(微开海水入口阀)匹配。由于这个预期步骤是正确的,Steve 以点头”是”给出正反馈。
Steve 用同一个基本框架来计算预期的错误步骤以及正确步骤。例如,在生成 Crack_open_seawater_inlet 时,它可能也生成错误步骤 Fully_open_seawater_inlet(全开海水入口阀)。如果受训者的步骤对应于后者,辅导系统就能产生一条教学上有用的错误消息,例如”当你把海水入口阀一路开到底时,冰冷的海水会冲击热交换器滚烫的金属,产生足以使金属开裂的热应力。作为一个一般性原则,当你把冷却剂放进一个可能滚烫的容器(如热交换器或发动机)时,务必让它逐渐进入,以避免热疲劳。”
让我们把这个例子映射到正文引入的主要概念上:
- 正确的步骤:Crack_open_seawater_inlet。
- 知识成分:“当把冷却剂放进一个可能滚烫的容器时,务必让它逐渐进入,以避免热疲劳。”
- 学习事件:“由于这台空气压缩机上的热交换器可能是滚烫的,而海水起冷却剂的作用,我应当只把海水阀打开一点点,让海水逐渐充满热交换器。”
注意,在步骤、学习事件和知识成分之间存在一一对应关系。这是 Steve 的分析如此简洁的主要原因。
步骤生成:按照定义,学生最近的正确步骤是所教规程的一部分。Steve 用即时反馈来阻断错误步骤,所以 Steve 总是知道学生在规程中所处的位置。当它需要就下一步做什么给出提示时,它只需挑选下一个步骤。如果学生最近的正确步骤之后可能有多个步骤,Steve 就把它们列出来,让学生选择。一般而言,所教知识越是程序性的,就越容易确定学生下一步应做什么。
Algebra Cognitive Tutor
图 2 显示了 Algebra 1 Algebra Cognitive Tutor 的屏幕,它最初由 Anderson 的团队开发(Anderson, Corbett, Koedinger, & Pelletier, 1995),后由 Carnegie Learning(www.carnegielearning.com)扩展并推向市场。由于它被如此广泛地使用,并经历了如此多积极的评估,它可以说是当今世界上最成功的 ITS。
图 2|Algebra I Cognitive Tutor 的屏幕。
内循环:内循环在学生解代数题的过程中监控其步骤。虽然大多数题目(包括图 2 中的这道)要求使用多种表征工具(图形、表格等)来分析一个问题情境,但也有题目只聚焦于特定工具,如方程求解器。在图 2 中,要解的题目显示在左上窗口。这道题有四个部分,标为 1 到 4。学生开始时,左下工作表窗口中表格的单元格全是空的。学生已在每个单元格中填入了数字、文本或代数公式。在弄清往单元格中填什么的过程中,学生使用了求解器窗口(右上)和绘图窗口(右下)。每当学生填写一个表格单元格、在图上描一个点、在求解器窗口输入一个方程等,辅导者都会给出即时反馈,告诉学生该步骤是正确还是错误。
Algebra Cognitive Tutor 还允许学生随时通过点击任意一个”?“按钮请求帮助。如果学生对同一步骤做出了两次或更多次尝试,它也会主动提供帮助。
知识成分:该辅导者对学生进行细粒度评估。当前课程单元中所教的每个知识成分的掌握概率,显示为一张条形图(见右上窗口)。
外循环:Algebra I Algebra Cognitive Tutor 的外循环为学生选择一道要做的代数题,并确保学生提交解答。辅导者利用其细粒度评估,来选择一个能训练若干学生尚未掌握的知识成分的任务。当学生掌握了一个单元中的所有知识成分(所有条形都变为金色)时,学生就被推进到代数课程的下一个单元。
步骤分析:辅导者依据一组预期步骤来分析每个学生步骤(S. Ritter, Blessing, & Wheeler, 2003)。一道题的预期步骤集合是预先计算的:通过运行一个基于规则的问题求解器,以一切可接受的方式求解该题。规则被编写成与知识成分相对应。在预计算过程中,每个步骤都与生成它所用的规则相关联。辅导时,把学生的步骤与这些预期步骤相匹配。对某些类型的步骤(如菜单选择),匹配算法很简单。对其他类型的步骤(如方程、图上的点),匹配算法则很复杂。当学生步骤与某个预期步骤匹配时,评估中就把相关联的知识成分记作学生已经应用。为了给出针对错误的反馈,一些预期步骤由错误规则(称为 buggy 规则)生成。针对错误的反馈的文本模板与 buggy 规则相关联。
步骤生成:当学生需要关于下一步做什么的提示时,辅导者按照”提示哪一步”一节所描述的策略选择一个步骤。提示序列由与生成该步骤所用规则相关联的文本模板组合而成。
Andes
外循环:Andes 物理辅导系统(http://www.andes.pitt.edu/)帮助学生学习如何解物理题(K. VanLehn et al., 2005; K. VanLehn et al., 2002)。图 3 显示其用户界面。一道物理题显示在左上窗口。学生从一个分层菜单中选择要解的题目。
图 3|Andes 的图形用户界面。
内循环:学生通过走一些步骤来解题,这些步骤与他们用纸笔解题时会走的步骤类似。一种步骤是往右侧窗口的某个编号框中输入方程。另一种步骤是画一个笛卡尔坐标系,如左下方所示的那个。第三种步骤是画一个矢量草图,然后填写定义它的对话框。截屏时,一个画矢量的操作正在进行,所以它的对话框遮住了部分屏幕。
学生每走一步,Andes 都给出即时反馈。对大多数类型的步骤,Andes 只是把正确的步骤标为绿色、错误的标为红色。在图 3 中,矢量 Fn1 是错误的,所以学生正在修改它的定义。
Andes 有两个帮助按钮,都位于顶部菜单栏。灯泡按钮启动一段关于下一步做什么的提示序列。“x?”按钮分析当前选中的步骤。如果它错误、且 Andes 能确定学生的错误类型,它就以提示序列的形式给出针对错误的反馈。
步骤分析:与 Algebra Cognitive Tutor 一样,Andes 通过预计算预期步骤、并把学生步骤与它们相匹配,来分析非方程步骤。然而,这一方法对方程步骤行不通,因为要生成的预期方程实在太多。例如,对于图 3 中的题目,Fn1_y+Fn2_y+W_y=0 和 W_y = –W 是两个正确方程。但它们的代数组合 Fn1_y+Fn2_y –W =0 也是正确的。如果有 N 个原始方程(即直接由应用某条物理原理而生成的方程),那么就存在数量级为 2^N 的可能的非原始方程(即经代数组合而生成的方程)。除了最简单的物理题之外,列出所有预期方程都是不可行的。这不仅对 Andes 是个问题,对数学、科学和工程中许多其他基于方程的问题解决辅导者也是如此。Andes 解决方案的简要描述见 VanLehn et al. (2005),完整描述见 Shapiro (2005)。
Sherlock
外循环:Sherlock(Katz et al., 1998)辅导对一台大型模拟电气设备——航空电子测试站——的排障。它提供了设备和原理图的多种视图,因此这里不含屏幕截图。Sherlock 在模拟设备中安装一个故障,让学生查找并修复它。每个排障问题都被指定一个难度级别,随着学生的练习,Sherlock 会逐渐提高问题的难度。
内循环:给设备排障需要走许多步骤,如测量电压、更换可疑部件。只有当某个步骤不安全时——即如果这一步在真实世界中执行,会严重损坏设备或伤害学生——Sherlock 才主动给出反馈。不过,学生可以在解题过程中请求几种不同的提示。Sherlock 还会在学生解完题之后提供大量的反馈。
Sherlock 默认的题后反馈,是把学生的解答与 Sherlock 的理想解答并排显示摘要。学生可以点击步骤以获得详细的反馈。注意,Sherlock 的题后讨论是在步骤层面进行的。可以把 Sherlock 看作拥有两个内循环:一个在解题过程中循环遍历步骤,另一个在解题结束后循环遍历步骤。不过,两个内循环都是每步执行一次。
AutoTutor
外循环:AutoTutor(http://demo.autotutor.org/)通过让学生参与自然语言(英语)对话来进行教学(Graesser et al., 2004; Graesser et al., 2003; Graesser, Wiemer-Hastings, Wiemer-Hastings, & Kreuz, 1999; Person, Graesser, Bautista, Mathews, & TRG, 2001)。对 AutoTutor 而言,一个任务对应一个需要复杂回答的问题,例如图 4 右上所示的问题。其外循环包括:选出这样一个问题,并与学生一起把它完全回答出来。
内循环:内循环从学生输入对顶层问题的初始回答开始(见图 4;学生在右下窗口输入;完整对话显示在左下窗口)。典型情况下,回答简短而模糊,如”钥匙朝地面落去。“AutoTutor 可能回应:”嗯,关于这一点你还能说些什么?“学生可能回答:”它们撞到电梯地板时就停了。“AutoTutor 可能给出负反馈说:”嗯,电梯和钥匙都在下落,而钥匙永远追不上电梯的地板。“AutoTutor 接着选择一个目标概念,并试图通过提问从学生那里把它引出来,例如”关于钥匙和电梯的加速度,你能说些什么?“这种对话持续进行,直到 AutoTutor 让学生把完整回答顶层问题所需的全部概念都清晰地表述出来。
AutoTutor 曾被用来比较输出模态。图 4 显示了它的一个说话头像。在这个版本中,辅导者不仅打印自己的回应,还让说话头像把它说出来,并同时做出手势。
图 4|AutoTutor 的屏幕。
一个 AutoTutor 对话由辅导者话轮与学生话轮交替构成。在大多数学生话轮上,学生对完成整个任务做出一点小贡献。这些学生话轮算作步骤,因为它们是有助于解决整个任务的用户界面事件。不过,学生也可以提出问题,如”什么是自由落体?“这样的问题是一种帮助请求,不算作步骤。
实际上,为了便于分析,把以下内容一并纳入步骤是方便的:不仅是学生的话轮,还包括学生话轮之前的那个辅导者提问,以及辅导者的最小反馈——它表达为学生步骤之后那个辅导者话轮的头一两个词。例如,在图 4 所示的对话中,可以看到两个步骤:
- 辅导者:关于它你还能说些什么? 学生:由于重力,钥匙和男孩有相同的加速度。 辅导者:对。
- 辅导者:所涉及的物体的加速度怎么样? 学生:相等。 辅导者:答得非常好!
步骤分析:为了说明 AutoTutor 对步骤的分析,让我们使用上面的步骤 1。对每个任务,AutoTutor 都有一份它预期在学生回答中看到的、正确与错误的任务特定知识条目的清单,步骤分析器指出学生的回答中出现了其中的哪些。例如,步骤分析器判定步骤 1 包含以下内容:
- 钥匙的加速度是 g,即重力加速度。
- 男孩的加速度是 g,即重力加速度。
- 男孩和钥匙有相同的加速度。
这些是应用知识成分所得到的结论。例如,上述前两项对应两个不同的学习事件,其中学生把同一个知识成分——“当物体处于自由落体状态时,其加速度是 g,即重力加速度”——应用于两个不同的对象:钥匙和男孩。让我们用”学习事件”一词来指 AutoTutor 的任务特定知识条目之一,尽管它更像学习事件的结果,而非事件本身。
除了有一份所有预期的正确学习事件的清单(如上文提到的那些)之外,AutoTutor 还有一份若干最重要的错误学习事件的清单。例如,本题中一个重要的错误学习事件是”钥匙落到电梯的地板上”。通过在编写题目时列出这类错误学习事件,作者可以为它们关联针对错误的补救教学。
为了找出学生的步骤背后是哪些学习事件,AutoTutor 度量学习事件的文本与步骤的文本之间的语义相似度。它使用一种称为潜在语义分析(Latent Semantic Analysis,LSA)的度量。粗略地说,如果语义相似度高于某个阈值,就认为该学习事件被包含在学生的步骤之中。如果学生的初始回答包含了全部正确学习事件、且不含任何错误学习事件,那么 AutoTutor 认为该任务已成功完成,并进入下一个任务。如果它检测到学生的回答含有某个错误学习事件,它就解释该学习事件为何不成立。如果它检测到缺少某个正确学习事件,它就通过给学生一串越来越具体的提示,试图从学生那里把它引出来。因此,学习事件决定了 AutoTutor 与学生进行的教学对话。
SQL-Tutor
外循环:SQL-Tutor(http://www.aw-bc.com/databaseplacedemo/sqltutor.html)教学生如何编写对关系数据库的查询(B. Martin & Mitrovic, 2002; Mitrovic, 2003; Mitrovic & Ohlsson, 1999)。每个任务由一个数据库和要从其中检索的信息组成。例如在图 5 中,学生得到一个电影信息数据库,并被要求编写一个查询,以”列出所有至少获得过一次奥斯卡奖、且制作于 1988 年或之后(含 1988 年)的电影的片名和数量”。
内循环:学生通过点击按钮和填写空白,用 SQL 语言编写查询。这可能花上几分钟。任何时候,他们都可以按下”提交答案”按钮。此前一直完全沉默的辅导者,这时才分析学生的查询以找出其缺陷。它给出多种级别的反馈和提示。例如,在某些条件下,它可能选出教学上最重要的缺陷,并显示一段简短的文字,描述该错误及如何改正。学生也可以选择自己想要收到的反馈级别。收到提示之后,学生修改自己的 SQL 查询,并再次提交。
理解 SQL-Tutor 内循环的一种方式是:学生走多个步骤,每个步骤由填写查询中的一个空白构成。与学生在某一步之后就立即给出反馈的辅导者不同,SQL-Tutor 把反馈推迟到学生请求时才给出。虽然学生可以在每一步之后请求反馈,但许多学生更愿意填完所有空白后再请求反馈。不过,无论反馈何时给出,它实质上都处于单一步骤的层面。例如,辅导者会定位所有错误步骤,挑出一个值得讨论的,并为它生成一个提示。
图 5|SQL-Tutor 的屏幕。
步骤分析:为了分析步骤,SQL-Tutor 拥有一组约束(constraint),每个约束由一个相关性条件(relevance condition)和一个满足条件(satisfaction condition)构成。如果相关性条件对学生的步骤为假,那么该约束不相关,辅导者对它不置一词。如果约束的相关性条件为真、且满足条件也为真,那么该约束被满足,辅导者对它也不置一词。如果相关性条件为真、而满足条件为假,那么学生的步骤违反了该约束,辅导者就找到了一个值得谈论的话题。具体而言,每个约束有两条消息。根据辅导者或学生所选择的反馈级别,当约束被违反时,其中一条消息可能呈现给学生。一条消息简要描述该约束及其违反。另一条则给出更多细节。
虽然这些约束与具体任务无关,但其中许多约束会引用该问题的正确解,后者存储在辅导系统中。例如,某个约束可能检查:查询中 FROM 子句的值是否等于正确解中的值。就图 5 而言,学生的值”movies”不等于正确值”movie”,因此该约束的满足条件未被满足。
在 SQL-Tutor 中,步骤、学习事件和约束之间的关系相当简单。每个约束对应一个知识成分。例如,检查 FROM 子句之值的约束,所表征的知识是:FROM 子句的值应当是包含 SELECT 子句中所提到字段的表的名称。学习事件是把一个约束应用于特定任务。对刚才提到的约束,相应的学习事件是:“因为 SELECT 子句的值是 title 和 number,FROM 子句的值应当是 movie,因为 movie 表包含 title 和 number 字段。”而步骤,就是输入由该约束的应用所决定的 SQL 查询的字段和值。
译注:本文译自 PDF 提取文本。原文中使用 Wingdings 字体的若干符号在文本提取时丢失,已对照原 PDF 补全:推导链中的箭头(如 2.3*x=42.45 → x=42.45/2.3)、提示按钮”←/→“、以及表示待填表达式的占位符”❑“。原文第 25 页”细粒度评估:其他问题”倒数第一、二条要点在原文排版中语句跨条断裂(“…the student has mastered. / Knowledge components that appear later.”),已按文意连读译出。原文第 15 页例子中”学生想输入 2-5x=12 → x=-2,却输入了 x=2”,其 x=2 与 x=-2 之别照原文保留。图 1 至图 5 为屏幕截图,文本无法呈现,仅译出图注并置于相应位置。