Open edX涉及的开发语言、框架和开源组件

本文首先总结所有Open edX相关的语言、框架、组件、服务,做一简要介绍。随后再分别撰文介绍每一项具体内容。

外部服务

##DataDog  https://www.datadoghq.com
SaaS 监测工具,针对 DevOps 团队,从你的 app 或者其他各种工具获取数据并提供数据可视化功能。它把从你基础设备和软件采集的数据统一处理并存储。允许你创建仪表盘和搜索访问你提供的数据。他们目前提供数据的聚合和展示而不是提供数据分析。
Datadog 的一个优点是了开放所有 API,可以让你很灵活的开发自己的指标或整合。

##AWS http://aws.amazon.com/

##NewRelic  https://newrelic.com/ 

服务器端性能监控,更多请见  性能监控的好工具 – NewRelic 简介

##splunkforwarder  http://www.splunk.com/zh-hans_cn

日志处理引擎,可扩展的日志分析平台。

语言和框架

Python&Django

Ruby&Sinatra

coffeescript

SASS

Node.js

Underscore.js   https://github.com/jashkenas/underscore  http://www.bootcss.com/p/underscore/

Backbone.js

Neat http://neat.bourbon.io/ 前端排版

开源组件

Ansible

cucumber  自动化测试工具

Ngnix

ElasticSearch

MySQL

MongoDB

RabbitMQ+Celery

Hadoop+Hive+Sqoop

Luigi

Annotator

Haystack

Gunicorn

协议

oAuth2

CAS

 

Open edX中国社区版分类功能需求文档

概述

实现二级分类的功能定制。该定制主要用于国内用户比较需要的首页展示需求。

edX的分类机制

原生代码中的分类其实是标签和搜索。通过扩展课程数据结构,并且把数据结构注册到搜索栏,可以在搜索的时候附加分类。这个分类是通过elasticsearch对课程数据的索引来做的,在查看所有课程/搜索页才可以筛选分类。

这个标签式的分类是一级的。在edX.org里面称为 Subjects,主题。

Cousera的分类机制

cousera有一个二级的机制。是在点击进入某个一级分类后的顶部有页面跳转链接。每个二级分类最多显示5个,还可以“更多”,将这个二级分类的内容全部呈现出来。一门课程可以属于多个二级分类。

而搜索界面实际上是个多维筛选器,和edX的搜索一样,分类只有一级。

观察搜索界面的分类方法,可以看到和目录的分类方法有明显不同。所以其实在Coursera里面这是两种检索方式:目录和类别。

目录法的类别为:

艺术与人文

历史|语言和文学|音乐与艺术|哲学

商务

领导与管理|金融|营销|创业|商务核心|商业战略

计算机科学

软件开发|移动和网络开发|算法|计算机安全和网络|设计和产品

数据科学

数据分析|机器学习|概率论与数理统计

生命科学

动物和兽医科学|生物信息学|生物|医疗保健|营养|临床科学

数学和逻辑

个人发展

物理科学与工程

社会科学

经济学|教育|政府与社会|法律|心理学

 

 

 

产品设计思路

社区二级分类产品可以借鉴cousera的方式。

Open edX搜索中的分类其实是标签tag,而且可以自己扩充很多标签。这个功能可以和要开发的二级分类完全独立。

二级分类可以有类似“目录”的形式,用于独立的展示,技术上做成容易调用的方式,在首页和其他页面方便的嵌入。

作为示例先在首页上实现。

 

 

分类的管理

分类信息

在MySQL中实现数据结构,

一级分类信息表Course_category_class1

id int(11)

category_name varchar(255)

category_cname varchar(255)

 

二级分类信息表Course_category_class2

id int(11)

category_name varchar(255)

category_cname varchar(255)

parent_id int(11)

 

 

在Django Admin实现二级分类信息的管理,

课程分类

课程对应分类表Course_category

id int(11)

course_id varchar(255)

category_id int(11)

 

在Django Admin里面实现课程对应分类的管理。

分类界面

edX.org

Cousera

xuetangX

社区二级分类模块可以采用国内习惯的二级菜单方式。菜单的样式可以多样,比如纵向一级展开横向二级;横向一级菜单展开纵向二级。

当前产品定义为横向一级分类展开纵向二级分类。

 

这个分类的菜单直接读取数据中的Course_category_meta。点击二级后即刷新下方的课程展示为对应二级。默认展示为全部最新的课程。

 

首页上可以同时存在别的课程区别,比如推荐课程。一般推荐课程会在最上面的区块,而分类课程展示在第二个区块。

 

分类的刷新采用ajax,分类传递到后端py程序后,封装为json数据返回到前端显示。

 

由于已经是二级分类,不再显示更多按钮,直接显示此二级分类下的全部课程。

 

一级分类不可点击(移动版本考虑)

 

为什么LTI(学习工具协同)应该成为你的LMS的一部分?

原文  http://elearningindustry.com/learning-tool-interoperability-part-elearning-application

LTI(中文名称:学习工具协同)

如果你在教育技术领域工作,你可能听说过LTI (Learning Tool Interoperability)。LTI是由IMS Global Learning Consortium建立的开放标准,在过去两年因为LMS平台的迅速发展变得越来越重要。

一个独立的开发商不可能提供所有的学校和组织需要的学习工具。因此,从不同开发商整合多种工具的能力对于学习系统来说变得必须。

使用Learning Tool Interoperability的几个提示

那么对于学习工具开发者来说这意味着什么?如果你正在建造一个教育应用,你应该考虑LTI支持。无论你是在建造LMS还是教育游戏,你的应用支持LTI的能力对于推广使用有着直接的影响。

下面的观点将对你开始使用LTI有所帮助。

imsglobal_image

 

图片来自IMS Global Learning Consortium, Inc.

1.Tool Consumer vs Tool Provider(学习工具使用者和学习工具提供者)
LTI使用者通常是一个应用程序,最终用户登录和访问各种内容和应用。常见的LTI使用者是LMS。

LTI提供者是教育应用程序;可以是练习题、动画、甚至是游戏。LTI提供者实现了LTI标准,允许LTI使用者连接。

2. 连接
在大多数案例中,LTI使用者和LTI提供者都是web应用程序。他们通过LTI标准连接彼此。本质上,连接是HTTP请求和响应。数据用常见web格式如JSON-LD交换。

3. LTI和SCORM的区别?
LTI 和 SCORM (Shareable Content Object Reference Model) 都是用于用户在LMS之间部署多样化的应用,但有两个主要区别:

  • SCORM 需要你把整个应用放到一个下载包的形式(例如 zip压缩目录)。这个包必须遵循一定的标准来组织包里的内容。
  • 另一方面,LTI应用并不需要下载,因为你的web应用可以在你的网站运行,跟Facebook一样。唯一的区别是你的应用必须支持LTI协议,这样其他web应用例如LMS可以连接到它。

4. 实现 LTI有什么诀窍?

  • 遵循标准;注意LTI标准有多个版本。
  • 考虑你的应用被嵌入到工具使用者如LMS中的外观和交互
  • 测试!这听起来很明显,但是确定你用多个LMS来测试你开发的LTI提供者。如果你开发LTI使用者,那么多测试几个LTI提供者。

当建造一个教育应用的时候,实现功能是很重要的;考虑应用如何被整合到别的应用系统中也同样重要。如果应用是直接被老师和学生使用,和其他工具的整合应该被及早考虑。

edX教学研究

edX.org网站在整理了一些联盟院校对教育和学习的研究,主要关注在以下方面:

  • 什么激励学生学习和坚持?
  • 什么帮助学生获得知识?
  • 教授复杂概念的最好方法是什么?
  • 我们怎么评估学生的学习?
  • 线上和线下教育哪个更好?

 

详细信息请看这里 https://www.edx.org/about/research-pedagogy

另外,Harvard和MIT公布了2012-2013年的edX学习数据 https://dataverse.harvard.edu/dataverse/mxhx,可以下载研究。

This release is comprised of de-identified data from the first year (Academic Year 2013: Fall 2012, Spring 2013, and Summer 2013) of MITx and HarvardX courses on the edX platform along with related documentation. These data are aggregate records, and each record represents one individual’s activity in one edX course. For more information about the existing analyses of these data and the first year of HarvardX and MITx courses, please see the HarvardX and MITx working paper “HarvardX and MITx: The first year of open online courses” by Andrew Ho, Justin Reich, Sergiy Nesterko, Daniel Seaton, Tommy Mullaney, Jim Waldo, and Isaac Chuang (http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2381263). The first release of this dataset is the HarvardX-MITx Person-Course Academic Year 2013 De-Identified dataset, version 2.0, created on May 14, 2014. File name: HMXPC13_DI_v1_5-14-14.csv The md5sum for this release (HMXPC13_DI_v2_5-14-14.csv) is: 2b09c674af772d45dae429045cf7acfc

 

 

 

Open edX安全警告: XSS Vulnerability in Teams Feature

Security Alert

Severity: High
Category: XSS
Affected Projects: edx-platform
Reporter: self-reported
Permanent URL: https://open.edx.org/CVE-2015-6960

During an internal code-review of the edx-platform code it was discovered that a bug allowed user submitted content to contain JavaScript that would execute in an end-user’s browswer.

The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2015-6960 to this issue. This is an entry on the CVE list (http://cve.mitre.org), which standardizes names for security problems.

More Information

This bug made it possible for an end user to create a team containing JavaScript code in its name and have this code executed in another user’s browser.

The fix is to correctly escape Javascript in team names before displaying them on the page.

The bug was fixed in this commit.

维基百科的SCORM(Sharable Content Object Reference Model)介绍

原文链接: https://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model

Sharable Content Object Reference Model (SCORM) 是一项基于web的电子教育技术(也称为e-learning)的标准和规范。它定义了客户端之间的通信内容和主机系统。它定义了客户端和一个主机系统之间(也称为”the run-time environment”)的通信内容,通常由 学习管理系统所支持。SCORM还定义了如何打包成一个可转让的ZIP 文件被称为”Package Interchange Format.”[1]

SCORM 是一个 高级分布式学习 (ADL) 的规范,由美国国防部官方倡导。

SCORM在2004年推出了一款名为测序的复杂想法,这是一组规则,指定学习者可能体验内容对象的顺序。简而言之,他们通过练习材料限制学习者一组固定的路径,允许学习者”标记”他们的进展在休息时,并保证学习者的考试成绩通过可接受性。这个标准使用 XML, 它是基于 AICC
and it is based on the results of work done by AICC, IMS Global, IEEE, and Ariadne完成的工作结果。

SCORM 版本

SCORM 1.1

SCORM 1.1是第一个生产版本。它使用课程结构格式的XML文件基于 AICC规范描述内容结构,但缺乏一个健壮的包装清单和支持元数据。在SCORM 1.2中很快就放弃支持。

SCORM 1.2

这是被广泛使用的第一个版本。它仍被广泛使用,在大多数学习管理系统中仍支持它。

SCORM 2004

这是当前版本。它是基于新的标准API和内容object-to-runtime环境沟通,有许多模棱两可的以前版本解决。包括指定自适应排序的活动的能力,使用内容对象。包括共享和使用信息的能力成功为多个学习目标状态或能力跨越内容对象和课程相同的学习者在学习管理系统。一种更健壮的测试套件帮助确保良好的互动操作性。

SCORM 2004 editions

  • 第3版(2005年10月)——澄清各种一致性的要求和内容对象之间的交互和测序的运行时环境,一些新的一致性要求提高互操作性。
  • 第四版(2009年3月31日)公布的更严格的互操作性需求、更灵活的数据持久性.[2]

SCORM 2004 specification books

  • 概述,介绍了SCORM和描述其他相关书籍
  • 运行时环境 — 描述了运行时API和数据模型用于内容对象和学习管理系统之间的通信
  • 测序和导航 — 描述了学习活动的定义和解释之间的排序
  • 遵循需求 — 详细清单的一致性要求,是验证的ADL SCORM一致性测试套件。

Experience API (Tin Can API)

Experience API (也叫 xAPI 或者 Tin Can API) 在2013年4月完成1.0版本. API的经验解决的许多问题固有的SCORM的旧版本.[3] 就像SCORM,ADL是经验API的管理者。 AICC 使用CMI-5计划利用 xAPI 作为他们的运输标准,但AICC成员决定解散组织和转移CMI-5 ADL.[4]

The Experience API (Tin Can API)是一个web服务,它允许软件客户阅读和写作经验数据的形式“statement”对象。最简单的形式,形式的语句是“I did this”,或者更一般的“actor verb object”。可以使用更复杂的表述形式。还有一个内置的查询API帮助过滤记录报表,和一种API状态,允许使用应用程序的“scratch space”。经验API声明都存储在 数据存储 也叫 学习记录存储, 它可以存在于自己的或是在学习管理系统.[5]

SCORM 时间表

  • 1999年1月 — Executive Order 13111 signed tasking the DoD to develop common specifications and standards for e-learning across both federal and private sectors
  • 2000年1月 — SCORM 1.0
  • 2001年1月 — SCORM 1.1
  • 2001年10月 — SCORM 1.2
  • 2004年1月 — SCORM 2004 (第1版)
  • 2004年7月 — SCORM 2004 (第2版)
  • 2006年6月 — 国防部指令 (DoDI) 1322.26 需要 DoD 使用 SCORM
  • 2006年10月 — SCORM 2004 (第3版)
  • 2009年3月 — SCORM 2004 (第4版)
  • 2009 —前三个规格书作为技术报告 ISO/IEC JTC1/SC36, ISO/IEC 标准编号 TR 29163.
  • 2010年10月 — ADL授予
    ADL awards a 广泛机构公告书(BAA) to Rustici软件 进行研究和社区访谈,以创建下一代SCORM的开始。 这就是所谓的Tin Can 项目.
  • 2011 9月 — 下一代的SCORM的初稿(叫做 Tin Can API) 发布.
  • 2012 6月— Tin Can API 的 .9 版本发布。
  • 2012 年8月 — Tin Can API 的 .95 版本发布。
  • 2013 年4月— 1.0.0 版本发布,项目被改变为”Experience API” 或者 xAPI, 但许多人仍然把它作为 Tin Can API.

也可以看

一些其他的链接

参考文献

  1. Jump up^ “Technical”. SCORM. Retrieved 2014-12-22.
  2. Jump up^ SCORM 2004 4th Edition Version 1.1 Overview
  3. Jump up^ “SCORM — Project Tin Can: Phase 3 — Capabilities”. SCORM — Project Tin Can: Phase 3 — Capabilities. Rustici Sofftware. Retrieved 27 August 2012.
  4. Jump up^ [1] AICC dissolves, transfers CMI-5 to ADL
  5. Jump up^ “Tech Overview – Tin Can API”. Tech Overview – Tin Can API. Rustici Software. Retrieved27 August 2012.

维基百科的LTI(Learning Tools Interoperability)介绍

Learning Tools Interoperability (LTI) 是一个由 IMS Global Learning Consortium创造的标准 .

它的主要目的是使用一个学习系统之间的标准方式,通过外部服务工具连接学习系统(例如学习管理系统 LMS) ,这个标准描述了连接系统作为LTI Tool Consumer和被连接工具作为LTI Tool Provider。

术语

LTI Consumer:
这是使用工具的服务。通常这是一个 学习管理系统 (LMS) 或者 用户门户。LTI Consumer需要提供用户信息和环境给LTI Tool Provider。此外LTI Consumer还要为用户提供认证担保给LTI Tool Provider。

LTI Tool Provider: 这是给LTI Consumer提供服务的服务。这可以是 on-premises software 也可以是托管在LTI Cousumer外部的服务。

历史

参考文献