Uploaded avatar of iHiD

自动化导师支持项目

@iHiD
7年多前

更新:我们很高兴地宣布,Mozilla 已为这个项目授予我们一项开源支持奖。你可以在这里了解更多。

这篇博客文章标志着 Exercism 的自动化导师支持项目正式启动。在这个项目中,我们将开发一套框架,以编程方式分析用户提交的解答,从而改善学习者的反馈循环,并减轻导师的负担。我们的短期目标是自动批准符合既定验收标准的解答,并针对常见的改进点提供反馈。

这篇文章的目的是说明我们试图解决的问题,以及未来几个月我们将如何应对它的大致计划。后续我们还会发布更多文章,深入探讨这个问题的背景、Exercism 上自动化分析的历史,以及我们实现策略的更多细节。

为什么要自动化导师支持?

Exercism 面临的最大障碍是如何应对规模。

我们的志愿导师对 Exercism 的成功至关重要。他们负责审阅学习者的解答,分析这些解答是达到了练习的成功标准还是仍需改进,设身处地理解学习者的思路,给出鼓励而有帮助的反馈,并指导人们掌握一门语言的惯用法。如今,我们勉强才能跟上指导需求。要想继续发展,我们需要比“增加更多导师”更好的策略。

对于构成 Exercism 语言轨道主干的那些核心练习,我们估计大约 25% 的提交在第一次尝试时就足够好,可以直接标记为完成。另有 55% 的提交存在一些常见类别的问题,只需复制粘贴反馈片段就能完成指导。只有大约 20% 的解答需要导师发挥创造力和思考来给出反馈。

那 80% 并不真正需要导师动脑的解答,对愿意志愿花时间帮助他人的人来说是令人沮丧的时间黑洞,也没有充分发挥他们的专业能力。

同样,学习者可能要等上一天到一周才能收到反馈,在此期间无法在轨道上继续前进。对于那些提交的迭代属于那 25% 完全合格的解答的人来说,这种延迟尤其令人沮丧。对其余人来说,这顶多算不上理想。学习者常常因为这种延迟而失去动力,并对整个流程感到失望。

通过开发一个能够自动分析解答、并要么予以批准、要么针对已知问题给出标准反馈的系统,我们估计可以消除那些“无聊”的部分,从而大幅减轻导师的工作量,同时显著改善学习者的体验。额外的好处是,在结构和风格问题上,人们会收到更一致的反馈,这也为他们就那些不太明确的主题展开更有趣的对话做好了铺垫。

它将如何运作?

我们的长期目标是开发深度学习算法,用来分析自 Exercism 于 2013 年首次上线以来提交的近一百万份解答的抽象语法树(AST)。这样的工具或许能发现常见的模式以及导师给出的相关评论。短期内,我们的目标是利用静态分析来确定:基于导师们最常重复看到的错误,可以给出哪些反馈。

这个项目大致分为以下几个方面:

  1. **产品改动:**我们需要弄清楚这种自动化分析如何与当前的指导界面配合,我们如何传达这些反馈(系统消息、“机器人”等等),然后为 Exercism 网站实现这些功能。
  2. **基础设施:**我们将设计并构建一套基础设施,能够高效支持跨多种语言运行静态分析。
  3. **静态分析原型:**开发一个示例分析器,能够自动批准 Ruby / Two-fer 的合格解答,并记录这一过程,以便更广泛的社区能够参与贡献。

我们计划在 2019 年年中发布最初的原型。一旦基础工作就绪,我们希望能把它扩展到 Ruby 以外的语言,以及 Two Fer 以外的练习。虽然在原型取得进展之前,我们还无法把其他语言和练习集成到网站的框架中,但如果你想为自己喜欢的语言和练习编写分析器,完全没有必要等待!请到这个项目的 GitHub 仓库上提交一个 issue,告诉我们你想做什么。

我们非常期待与 Exercism 社区中已经在用静态分析辅助指导的其他人合作,比如 tehsphinx 和 bitfield,他们为 Go 语言轨道的导师开发了一个静态分析工具。它让这条轨道从积压了大量待处理请求,变成 Exercism 上响应最及时的语言轨道之一,这充分说明了自动化导师支持可以带来多大的影响。

在接下来的几周里,我们会进一步介绍这些最初的关键步骤,以及整个机制将如何运作。

我们很乐意在下面的评论区回答你的任何问题!:)

2019年02月07日 · 觉得有用吗?