2016年Open edX年会:共享的教育

https://open.edx.org/blog/announcing-open-edx-con-2016-education-shared

2016年Open edX年会将在斯坦福召开,今年的主题为:共享的教育(education shared),会议日期为6月14-17日。

斯坦福从Open edX创始起就一直是项目支持者。斯坦福团队参与了Open edX开源项目,持续贡献自己的代码以及对项目的热情。

做为成千上万个技术创新的发源地,湾区驱动着edX和Open edX社区来实现伟大的新事物。斯坦福大学校园位于硅谷核心,6月举办也有利于更多学校的参与。

会议演讲报名

会议注册

如果有国内老师想去参与此次年会,欢迎联系我们组团:) (email: info@edustack.org)

Xblocks概念及目录

https://openedx.atlassian.net/wiki/display/COMM/XBlocks+Directory

http://xblocks.org/

https://github.com/edx/edx-platform/wiki/List-of-XBlocks

 

  • 3D Model Viewer XBlock: to include and view 3D .obj models within an edX course
  • ACID Xblock: a block for testing the implementation of the XBlock runtime.
  • Adventure XBlock: creating a simple “Chose Your Own Adventure” style simulation.
  • Animation XBlock: shows students an animation they can go through. There is a set of images with corresponding text, and a slider for going through these images.
  • Audio XBlock
  • Brightcove Video XBlock: to include Brightcove videos within an edX course
  • Carousel XBlock– XBlock to provide carousel of multimedia instructional content including images, video, documents. This XBlock currently supports three web hosted media formats in a unified media carousel for course content presentation. This XBlock also provides a way to integrate instructional media with a separate workspace that could be used for hands-on activities.Click here for the demo
  • CarouselWorkspace XBlock– This is our second XBlock to combine learning content and practice space within the same window. The first XBlock provided a multimedia carousel to host learning contents here. This XBlock along with providing a multimedia carousel, focuses on embedding a separate url of a web-enabled workspace for hands-on activities. In the example below, we demonstrate this XBlock with terminal emulator using open source Gateone application. Click here for the demo
  • Drag and Drop XBlock: exercise which asks students to drag and drop text or image elements into different buckets according to their content
  • Drag and Drop XBlock v2: enhanced version of the Image Explorer XBlock. Due to incompatible data model with v1, the original XBlock still remains
  • Flash XBlock: Embed Flash (.swf) files into your course.
  • Google Drive XBlock: enables embedding of Google Documents or Google Calendar within edX.
  • hastexo XBlock: enables course authors to define and integrate arbitrarily complex computing environments running on private or public clouds, which auto-suspend when not in use. Currently supports OpenStack Heat.
  • Image Explorer XBlock: to display tooltips on top of an image within the course content
  • Image Modal XBlock
  • LeaderBoard XBlock: allows to display an arbitrary number of top scoring threads in an inline discussion, as well as top scores in a graded exercise.
  • Mathematica Cdf XBlock
  • Personality Test
  • Problem Builder XBlock: Set of interactive exercises, and tools to automate the workflow of real-life mentoring within an edX course. It supports: free-form answers (textarea) which can be shared accross different XBlock instances (for example, to remind a student of an answer he gave before), MCQs (multiple choice questions), MRQs (multiple responses questions), rating scales, progression tracking (allowing to check that the student has completed the previous steps before allowing to complete a given XBlock instance).
  • Ooyala Video Player XBlock: to include Ooyala videos within an edX course. It supports transcripts, overlays (to place raw text or html content at a specific moment in your video) and player tokens (to secure your video content using a token with an expiration time)
  • OfficeMix XBlock – allows for the embedding of lectures hosted on Office Mix directly into an edX course.
  • ORA2: Version 2 of the Open Response Assessor Project. Provides functionality for peer assessment, self assessment, student training.
  • Paella Video XBlock
  • PDF XBlock
  • PDF XBlock (alternative): Another XBlock to embed PDF, with XBlock title and download buttons.
  • Pie Chart XBlock: to include Pie chart within an edX course
  • Poll & Survey XBlock: enables a course author to create survey/poll elements to get feedback from students. Poll XBlocks have one question, and a series of answers. Survey XBlocks have several questions.
  • Rating XBlock: Rating and comment the video unit.
  • School Yourself: This repository contains XBlocks for displaying School Yourself (SY) content on the edX platform. These will be used in the upcoming AlgebraX and GeometryX courses, developed for the High School Initiative.
  • Staff graded assignment: Allows students to upload files to be graded by course staff.
  • Table XBlock: Table XBlock is powerful tool used to create user-editable tables.
  • Video JS XBlock: Use Video.js HTML5 player (www.videojs.com) instead of the default one.
  • SSH XBlock: Provides a web-based terminal emulator through which students can send commands to a server via ssh. The server details and credentials are set by the tutor in the XBlock settings and are not visible to the student.
  • Voice Recognizer XBlock: This XBlock allows students to recognize their voice and can see the what they spoken in text format. It supports multiple languages. This version works best on Google Chrome.

Experimental XBlocks:

  • Discussion XBlock: a prototype of the discussion XModule as a separate, pure XBlock. Functional, but requires patches to edx-platform at the moment.
  • Group Project XBlock: to allow students to work as a group of 2-5 on a group project, with peer grading between projects and team members. Functional, but requires patches to edx-platform at the moment.
  • Group Project XBlock v2 – second generation Group Project XBlock: allow students to work as a group of 2-5 on a group project, with peer grading between projects and team members, embedded discussions support and richer project navigation. Functional, but requires patches to edx-platform at the moment.

Open edX DogWood版本特性

参考

2015年底将发布的Open edX第4个大版本Dogwood

http://blog.just4fun.site/try-open-edx-master-20151214.html

前一阵子在社区发现一个有意思的点,Open edX的版本顺序为:Aspen、Birch、Cypress、DogWood、Eucalyptus,正好是字母表的ABCDE。以后可以不用这些复杂的全称,直接用D版本来简称DogWood就行。

目前D版本的特性已经公布在https://openedx.atlassian.net/wiki/display/COMM/Dogwood,由于距离正式发布时间很接近,特性应该不会有大的变化。

根据现有的安装情况来看,安装过程中问题少了很多,看来Open edX在易用性方面逐渐在提升。

版本中含有的主要服务和升级

  • Badging in Dogwood
    • 未完成
  • Ecom Services for Dogwood
    • 只有部分文档
  • Insights in Dogwood
    • 计划中
  • Student Notes in Dogwood
    • 可能不会完成
  • Python upgrade
    • Working with Ops 目测已经完成
  • Django Upgrade 1.4 to 1.8
    • Working with T&L Lahore 目测已经完成
  • NLTK upgrade  TNL-2486 – 更新到新版NLTK 3   (拖延到 Eucalyptus版本 )
  • OPEN-507 – 切换 Open edX 使用新的逻辑流ICEBOX
    • SSO 和 LTI 应用需要可用
    • 需要放到下一个发行版
  • MongoDB/Pymongo Upgrade
    • Feanil Patel to provide some tickets for this work (Ops & Platform work)
  • CohortMembership fix ( TNL-3478 – JIRA project doesn’t exist or you don’t have permission to view it. )
    • Includes a management command, course_groups/post_cohort_membership_fix, to be run after data migrations.
  • Python 2.7.10 Upgrade
    • 用户需要重建virtualenvs
    • 新的 vagrant images 会有正确的 virtualenvs 和 python 版本
  • Course Overviews as source of truth for list of courses.
    • Includes a management command, “manage.py lms –settings=X generate_course_overview –all”, to be run after data migrations.
    • If this management command is not run,
      • deployments that run with ENABLE_COURSE_DISCOVERY set to False, may see courses missing on their Course Catalog page
      • the Courses API “/api/courses/v1/courses/” may not include all courses in the system

废弃的部分

  • “shoppingcart” 功能应该在Dogwood中考虑为废弃,将来的版本中会被移除。类似服务将由”Otto” 来取代。
  • ORA1 代码完全被移除。
  • Legacy instructor dash is turned off by default, and will be removed entirely in Eucalyptus
  • 移除的旧代码:
    • 管理面板
    • abtest_module
    • Psychometrics
    • “Licenses” djangoapp
    • FoldIt XModule
    • Studio 的课程核对表
  • Removed support for the outdated ispublic field on the Course Module, including its corresponding ACCESS_REQUIRE_STAFF_FOR_COURSE feature flag.  Instead, operators should use COURSE_CATALOG_VISIBILITY_PERMISSION and COURSE_ABOUT_VISIBILITY_PERMISSION settings.
  • The “graphical_slider_tool” is deprecated, and will no longer be available starting in in Eucalyptus (the code has been removed from Master).

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数据返回到前端显示。

 

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

 

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

 

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.

Open edX涉及到的License

参考:

http://www.unclekevin.org/?p=137

http://my.oschina.net/yangsheng/blog/190917

Open edX uses both the AGPL and the Apache license.  The code in Open edX is spread across a number of repositories on GitHub, and each is licensed under either the AGPL or the Apache license.

The AGPL (GNU Affero General Public License) is maintained by the Free Software Foundation. It allows for use and sharing of unmodified code, modifying code, and the use and sharing of modified code.

Under the AGPL, when you modify the Open edX platform, you must share those modifications.

The Apache License is maintained by the Apache Foundation. It allows for the same use, sharing, and modification as the AGPL, but modifications can be shared under a license other than the AGPL.

The Open edX code falls into three main categories: core components of the Open edX platform, libraries used by others to access the platform through our APIs, and tools that are not particular to the Open edX platform. Each of these categories has its own licensing considerations.

Code that is essential to the Open edX platform is AGPL. This license ensures that all changes to the platform are shared, guaranteeing that the platform is truly an open resource and that everyone will benefit from the improvements. This includes, but is not limited to:

Code that is used by others to access edX APIs is Apache. The propagating nature of the AGPL makes it difficult for some people to adopt. For repositories where broad use is more important than shared improvements, edX uses the Apache license. This includes API libraries such as XBlock.

Broad-interest, or developer, tools are also Apache. These are tools that have nothing in particular to do with Open edX, and do not run as part of the platform. They could be of interest to any Python developer, for example. Tools like this will be Apache-licensed to enable their broader use and adoption. This includes tools such as bok choy.

To figure out which license a given repository uses, read the licensing file contained in the GitHub repository.

If you have any questions about edX’s licensing strategy, feel free to ask on the edx-code mailing list.

Open edX 及其模块授权协议 Affero GNU General Public License
http://www.gnu.org/licenses/agpl-3.0.html

Nginx Web服务器授权协议 2-clause BSD-like license
http://nginx.org/LICENSE

mongoDB 数据库授权协议 GNU AGPL v3.0 License,
http://www.mongodb.org/about/licensing/

Mysql 数据库授权协议 GNU General Public License v2
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Django 框架授权协议 BSD license
http://code.djangoproject.com/browser/django/trunk/LICENSE

Python 授权协议 Python License
http://www.python.org/download/releases/2.6.5/license/

Node.js 授权协议 MIT License
https://raw.github.com/joyent/node/v0.6.18/LICENSE

Ruby授权协议 Ruby License and GPLt
http://www.ruby-lang.org/en/LICENSE.txt

Rails授权协议 MIT license
http://www.opensource.org/licenses/mit-license.php

RubyGems 授权协议 Ruby License
http://www.ruby-lang.org/en/LICENSE.txt

Rake 授权协议 Ruby License
http://www.ruby-lang.org/en/LICENSE.txt

ImageMagick授权协议
https://www.imagemagick.org/subversion/ImageMagick/trunk/LICENSE

Rmagick授权协议 MIT license,
http://www.opensource.org/licenses/mit-license.php

OpenSSL 授权协议 Apache License
http://www.openssl.org/source/license.html

Ncurses 授权协议 MIT license,
http://www.opensource.org/licenses/mit-license.php

Readline 授权协议 GPL license
http://www.gnu.org/copyleft/gpl.html

Zlib 授权协议 zlib License
http://www.gzip.org/zlib/zlib_license.html

Libiconv 授权协议 LGPL license
http://www.gnu.org/licenses/lgpl.html

Expat 授权协议 MIT license
http://www.opensource.org/licenses/mit-license.php

Freetype 授权协议 The Freetype Project License
http://freetype.sourceforge.net/FTL.TXT