John Lindsay Orr

Course Builder, Google's Open-Source MOOC Platform

Course Builder is Google's open source product for delivering scalable educational content in the form of MOOCs (Massive Open On-line Courses). The product was launched in 2012 with Dan Russell's "Power Searching with Google" course and has since been used by millions of students in courses offered by Google and by universities, not-for-profits, and companies.

Course Builder is a Google App Engine application with Python back-end. Users can download Course Builder, customize it to meet their needs, deploy it on Google's cloud, and pay just for the computational resources they use. Leveraging App Engine, the system scales to classes with a million students, and it provides users with full ownership of student data.

Course Builder has been used in high visibility Google MOOCs such as Power Searching with Google , YouTube Creator Academy , Google Analytics Academy , Making Sense of Data , Google Basics for Teaching , Computational Thinking for Educators , and Google Digital Garage . External adopters include Sesame Street and International Red Cross (IRFC).

I contribute code across the stack of Course Builder, with particular emphasis on extensibility, interactive content creation, and innovative educational features. See my contributions to Course Builder on GitHub.

Some Courses Built Using Course Builder

Advanced Power Searching with Google
Computational Thinking with Google
Google Digital Garage
Google Analytics Academy
Google Basics for Teaching
IFRC Healthy Lifestyle Community
Making Sense of Data
Power Searching with Google
YouTube Creator Academy

Skill mapping:

Skill Maps are a feature which supports adaptive learning and enable students using CB to pursue non-linear, personalized learning paths. I led the team working on research and design of the skill mapping features which were key features in 1.8 and 1.9 releases of Course Builder. I led collaboration with the Stanford OLI group . I co-authored a paper on skill mapping which has been accepted at Learning@Scale 2016. Promoted CB skill maps an informational video on YouTube.

Internationalized Course Content

MOOCs have the potential for global reach, but to fulfill that potential they need to be accessibleto students in multiple different languages. This is hard because educational content is very heterongenous; it mixes rich text, videos, images, structured interacive content such as multiple-choice questions, and structural/tagging information. Furthermore, the pace of innovation means that the range of content types is a moving target.

Translation can be outsourced, but to make this practical, there has to be a workflow to flatten all the course content into chunks of text which can be given to translators and then re-integrated into the course. And because courses are continually being modified by instructional designers this workflow has to allow for continual iterative improvemnts of the content..

I designed and implemented a workflow for translators to manage the lifecycle of creation and maintenance of translations of rich course content. I developed an infrastructure for Course Builder to assemble localized views of a course from translated bundled. This feature was a critical requirement for the course Google Basics for Teaching which was the first-ever fully-internationalized MOOC and ran in English, Portuguese, and Russian. See details in my informational video about the workflow.
Google Basics for Teaching in English
Google Basics for Teaching in Portuguese
Google Basics for Teaching in Russian

XBlock integration:

When Google partnered with edX, I led the research into edX's content component model (XBlocks) and realeased an implementation of XBlock Runtime for App Engine. I led a full integration of XBlock technology into Course Builder which was the basic of the successful Making Sense of Data MOOC. Published an informational video about the integration.

Extensible component model

This enables content creators to drop rich content objects such as videos or questions into course content using the visual editor. The container architecture allows other developers to add new components using the API. I designed and implemented the component object model and the UI tools to add components to course content. (Demo video)

Other features

Related Links