open edx 是一个开源的集合多种机器学习资源、分布式、负载均衡等最新技术的一个开源平台
一. 简介
- 可以使用
studio X
创建课程 blendedX
进行混合学习videoX
创建视频
安装,配置和运行open edx 平台:https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/
EDX-plateform Github: https://github.com/edx/edx-platform
学习者指南: https://edx.readthedocs.io/projects/open-edx-learner-guide/en/latest/
浏览器支持:
- Chrome
- Safari
- Firefox
- Microsoft Edge & Microsoft Internet Explorer 11
二、Open edX 架构:
This service is supported by a collection of other autonomous web services called independently deployed applications (IDAs)
Open edX
项目中的几乎所有服务器端代码都是Python
,Django
作为Web
应用程序框架。
关键组件
2.1 LMS: Learning Management System
LMS
使用许多数据存储。课程存储在MongoDB
中,视频由YouTube或Amazon S3提供。每个学习者数据存储在MySQL
中。
MS
和其他地方的Django
服务器端代码使用 Mako 进行前端模板生成。客户端代码的一部分使用 Backbone.js 框架(迁移)。Open edX
项目使用 Sass 和 Bourbon 框架来编写 CSS
代码。
Open edX课程由XBlocks
的单元组成,可扩展课程的方法:课程作者可以嵌入LTI工具,将其他学习工具集成到Open edX课程中。可以使用JS Input集成JavaScript组件。可以使用OLX(open learning XML)导出和导入课程,这是一种基于XML的课程格式。
2.2 Studio
Studio是课程创作环境,课程团队使用它来创建和更新课程。Studio将其课程写入LMS使用的同一Mongo数据库。
2.3 Comments
comments (or called forums)。comments组建是使用 Sinatra框架用Ruby编写的为数不多的非Python组件之一。
2.4 APP
Open edX项目包括一个适用于iOS和Android的移动应用程序,允许学员观看课程视频等。
2.5 Analytics
open edx的分析管道捕获学习者的行为事件,这些事件在S3中存储为JSON,使用Hadoop进行处理,然后将消化后的聚合结果发布到MySQL。结果通过REST API提供给Insights,这是一个IDA,教师和管理员用它来探索数据,让他们知道他们的学习者正在做什么以及他们的课程如何被使用。
2.6 后台程序
A number of tasks are large enough that they are performed by separate background workers, rather than in the web applications themselves. This work is queued and distributed using Celery and RabbitMQ. Examples of queued work include:
- Grading entire courses
- Sending bulk emails (with Amazon SES)
- Generating answer distribution reports
- Producing end-of-course certificates
The Open edX project includes an IDA called XQueue that can run custom graders. These are separate processes that run compute-intensive assessments of learners’ work.
Open edX项目包含一个名为XQueue的IDA,可以运行自定义分级器。这些是单独的过程,对学习者的工作进行计算密集型评估。
2.7 Search
Elasticsearch 课程 & 评论
三、扩展平台
3.1 可将xblocks与edx集成
xblocks扩展的功能有 LMS
studio
test
部署xblock
*还可以使用XBlock URL在HTML中呈现单个XBlock
要为同一视频组件构建XBlock URL,请获取它 usage_id,然后使用以下URL格式。
https://courses.edx.org/xblock/block-v1:edX+VideoX+1T2016+type@video+block@47faf3a03c4f4023b187528c25932e0a
3.2 定制JavaScript应用程序
在课程中包含自定义JavaScript应用程序
在创建JavaScript应用程序时,Studio会将问题嵌入到内联框架(HTML iframe标记)中,以便学习者可以在LMS中与其进行交互。
- 在edX Studio中,上传包含您要向学员展示的JavaScript的HTML文件。
- 复制文件的嵌入URL。
- 创建自定义JavaScript显示和评分 问题。该问题的模板包含示例JavaScript应用程序的定义,该应用程序需要并对学习者交互进行评分。
- 编辑组件的XML以删除评分信息并参考您上传的HTML文件:
<customresponse> <jsinput width = "显示应用程序所需的宽度" height = "显示应用程序所需的高度" html_file = "嵌入HTML文件的URL" sop = "false" /> </ customresponse>
exp:
<customresponse> <jsinput width = "400" height = "400" html_file ="/static/electrol_demo.html" sop = "false" /> </ customresponse>
要使用JavaScript
应用程序进行总结性评估并通过edX评分系统
计算学习者结果,您必须:
在JavaScript
应用程序中包含这些必需的函数:
getState()
函数setState()
函数getGrade()
函数
问题XML
中的引用函数。
使用Python
对学生响应进行评分。
Python代码会解析应用程序getGrade()函数返回的JSON字符串, 并确定学习者的提交是否正确。
在Studio
中定义的用于为学习者提供JavaScript
应用程序的问题组件XML具有以下结构:
<problem> <!-- Optional script tag for summative assessments --> <script type="loncapa/python"> import json def vglcfn(e, ans): """ Code that parses ans and returns True or False """ </script> <customresponse cfn="vglcfn"> <jsinput gradefn="JSObject.getGrade" get_statefn="JSObject.getState" set_statefn="JSObject.setState" width="100%" height="360" html_file="/static/file-name.html" sop="false"/> </customresponse> </problem>
Reference: https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/extending_platform/javascript.html
3.3 自定义显示评分示例模版
四、 edX Modulestores
edX平台使用多个不同的模块存储来存储课程数据。这些模块商店中的每一个都在edx.org上使用
4.1 概述
XMLModuleStore是第一个用于edX平台的模块库。
XMLModuleStore使用存储基于XML的课程的文件系统。当LMS服务器启动时,XMLModuleStore将每个进程的每个块加载到内存中。
XMLModuleStore是只读的,不允许用户在不重新启动服务器的情况下更改课程。
DraftModuleStore是下一代模块存储,它允许随机访问课程块并在请求上加载块,从而提供更高的可扩展性。
DraftModuleStore允许在不重新启动服务器的情况下编辑课程。
此外,DraftModuleStore存储某些类型块的草稿版本。
Split Mongo是最新的模块库
4.2 MixedModuleStore
MixedModuleStore为所有模块存储功能提供通用API。
此外,MixedModuleStore允许您选择存储特定课程的模块库(XMLModuleStore,DraftModuleStore,Split Mongo),并将该课程的请求路由到正确的模块库。
MixedModuleStore还可以处理从一个模块库到另一个模块库的一些转换。
4.3 Split Mongo Modulestore
Split Mongo中的“分裂”指的是课程如何分为三类信息
- 课程标识,简称课程索引
- 课程结构
- 课程内容,简称XBlock定义。
五、Testing
版权声明:《 [学习笔记]Open edX 》为DYBOY原创文章,转载请注明出处!
最后编辑:2018-10-7 12:10:43
2019-03-06 23:02
2019-03-09 21:57