edX 学习一:了解 edX 相关组件

edX 概览

edX 平台主要采用 Python 语言实现,还包括了个别的 Ruby 和 Node.js。部分服务使用到了 Java ,数据库使用了 MySQL 和 MongoDB,所有这些代码都是在 AGPL 协议下开源的。

XBlock 是 edX 的下一代组件架构。对机器学习评分感兴趣可以看 Ease 和 Discern 。部署和配置工具方面可以看 Configuration。各主要组件的详细介绍可以看下边。

edx-platform

主代码库 edx-platform 中包含 LMS(Learning Management System)、创作工具(Authoring Tool)、制作环境(Studio)。

它还包括 XModules(课件组件,在接下来的几个月准备升级到新 XBlock 架构)和不同的评分器。

XBlock

XBlock 是一个构造课件的组件。

XBlock API 目前还处在 pre-alpha,这个代码库中包含了 XBlock 实现的核心代码,一个简单的应用工作台和一个小型的、简单的运行环境。

ORA (Open Response Assessor)

Open Response Assessor(开放响应评估员)从 XQueue 获得消息,通过机器学习的评分、同行的评分和适当的人工评分,并返回结果到 LMS。

Discern 和 Ease

Discern 是一个允许任何人使用的基于机器学习的自动文本化分类 API 服务。提供了一个高性能的、可扩展的解决方案,可以有效地帮助学生学习。反馈是这个过程的一个重要组成部分,该反馈系统非常灵活。注意,你需要 Ease 代码库使用这里所有的功能。

Ease(增强的 AI 评分引擎)是一个基于机器学习的文本内容分类库。这对于诸如学生论文评分的任务非常有用。它提供预测任意文本和数值得分的功能。这里的目标是提供一个高性能的,可扩展的解决方案,可以预测任意值的目标。请注意,这仅仅是一个库。你需要实现你自己的代码才可以运行。Discern API 是对 Ease 的进一步封装。

CS Comments Service

这是一个独立的评论系统,支持投票和嵌套的评论。它还是一个教师备课和教学目标讨论平台。这个系统的不同之处是用 Ruby 实现,并且用到了 elasticsearch 做分布式实时搜索引擎。

Configuration

Configuration 提供了一个简单、灵活的配置,让任何人都能搭建 edX 平台,运行一个实例。使用 Amazon CloudFormation Template 创建一个新的 AWS 虚拟私有云。配置阶段是由 Ansible 管理的。

CodeJail

CodeJail 提供了一个安全沙盒,管理不受信任代码的执行。它的主要目的是为 Python 执行,也可用于其他语言。强制使用 AppArmor ,如果操作系统不支持 AppArmor,那么 CodeJail 不会起到作用。

XQueue

XQueue 定义了一个 LMS 和外部服务的接口,实际使用的是 RabbitMQ。例如,当一个学生在 LMS 提交一个问题,它就会被发送到XQueue。XQueue 有一个外部服务分级的机制,然后发回响应到 LMS。

XServer

XServer 接受学生从 LMS 提交的代码,并使用课件检查器运行。

Notifier

Notifier 为订阅用户发送新内容的每日摘要,目标是最终支持实时和各种类型的内容在不同渠道(如短信)的批量通知。

Django-wiki

一个有着出色的界面和复杂的功能的维基系统、知识库。