Oppia: a tool for interactive learning

Wednesday, February 26, 2014

"I hear and I forget; I see and I remember; I do and I understand." — Confucius

Lots of online education is delivered using video and text. However, opportunities for learners to do things and get feedback on their work are also important — after all, one does not learn to play the piano by watching videos of many virtuoso performances.

We're excited to announce Oppia, a project that aims to make it easy for anyone to create online interactive activities, called 'explorations', that others can learn from. Oppia does this by modeling a mentor who poses questions for the learner to answer. Based on the learner's responses, the mentor decides what question to ask next, what feedback to give, whether to delve deeper, or whether to proceed to something new. You can think of this as a smart feedback system that tries to “teach a person to fish”, instead of simply revealing the correct answer or marking the submitted answer as wrong. If you’d like to get an idea of what these explorations are like, you can try out some examples at

The Oppia learning interface. 

  The Oppia editing interface.

A unique feature of Oppia is that it allows multiple people from around the world to create and collaborate on explorations. They can do this through a web interface — no programming required.

Oppia gathers data on how learners interact with it, making it easy for exploration authors to spot and fix shortcomings in an exploration. They would do this by logging in, finding an answer that many learners are giving but which the system is not responding to adequately, and creating a new learning path for it, based on what they would actually say if they were interacting in-person with the learner. Oppia can then give this feedback to future learners.
A video by Yana Malysheva, one of the developers, explaining how Oppia works.
Oppia knows how to deal with numeric, text, and multiple choice inputs, as well as some more specialized types such as a clickable map and a code evaluator. We've also built an extensible framework that lets developers extend the range of input types that Oppia can understand.

The explorations created on an Oppia server can be embedded in any web page. These embeddings can refer to a particular version, so that further changes to the canonical version of the exploration do not automatically appear in the embedded one. This feature allows learning experiences that have been created using Oppia explorations to retain their integrity over time.

Oppia is built using Python and AngularJS on top of Google App Engine. You can download the source code; we hope you find it useful! Please feel free to contribute suggestions through our issue tracker, or contact us at our developers discussion group. We actively welcome new contributors, so if you would like to help out, please don't hesitate to get in touch.

By Sean Lip, Software Engineer, Google Research