12.01.2015 Views

zmWmQs

zmWmQs

zmWmQs

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

A Platform that Integrates Quizzes into Videos<br />

Robin Woll, Sven Buschbeck, Tino Steffens, Pascal Berrang, Jörn Loviscach<br />

by Google for more than six years; hence it is one of the<br />

most mature web development frameworks available.<br />

Third, Java is adopted widely in the academic community;<br />

hence it was easy to find well-experienced developers.<br />

Fourth, we are using - like the Khan Academy does - the<br />

Google AppEngine (GAE) to host our services. The GAE<br />

is easy to use, serves 100,000 users per month for about<br />

US-$ 20 and offers almost infinite scalability as it is build<br />

on Google’s infra-structure.<br />

Figure 3. Thanks to MathJax, quizzes can comprise almost any<br />

mathematical expression.<br />

The centerpiece of the platform is an efficient and intuitive<br />

“what you see is what you get”-style editor used to<br />

build the quizzes in a web browser, see Figure 4. Placing<br />

a quiz every 30 seconds in a course of ten hours of video<br />

playtime would mean having to create 1200 quizzes. As<br />

one major step to reach the efficiency required to achieve<br />

this target, we implemented a template mechanism. The<br />

templates are created simply by saving any existing quiz,<br />

as a template and can be reused from the template gallery.<br />

In the optimum case, the author just needs to alter<br />

the captions of the elements.<br />

Figure 4. To build a quiz, basic elements are arranged in a layer over<br />

the video. These can then be edited in terms of HTML, CSS, LaTeX<br />

and the proprietary DSL for checking mathematical expressions.<br />

Implementation<br />

Our platform is built with the Google Web Toolkit (GWT),<br />

which allows writing highly structured web applica-tions<br />

in Java as common programming language for both the<br />

server and the client. GWT includes a Java-to-JavaScript<br />

compiler that generates the appropriate JavaScript for<br />

the browser on the client side. This compiler produces<br />

highly efficient JavaScript and also caters for the different<br />

versions of JavaScript code required to support all major<br />

browsers. We have chosen GWT over other frameworks<br />

for four main reasons: First, large-scale development in<br />

JavaScript is troublesome as it is a scripting language.<br />

Since Java is (in opposite to JavaS-cript) strongly typed,<br />

development helpers such as code completion, refactoring,<br />

unit testing, code synchroniza-tion in a team can work<br />

much better. Second, GWT has been strongly supported<br />

All personal progress is saved locally in the user’s<br />

browser using the HTML5 Storage API. Since we are using<br />

YouTube to host the videos and the GAE to host our<br />

application, we cannot ensure that there is no personal<br />

data saved by third parties. We can assure, however, that<br />

the personal learning progress cannot be easily related to<br />

any personal data by third parties because the access to<br />

HTML5 storage is protected by a same-origin policy.<br />

The main remaining technical problem is the compatibility<br />

with the wide range of browsers. In a first approach we<br />

used the regular Flash-based version of the YouTube API.<br />

We had to learn, however, that some implementa-tions of<br />

Flash for Linux cannot display HTML as a layer above the<br />

video. Hence, we switched to the HTML5 version of the<br />

YouTube player. This and our use of modern features of<br />

HTML5 and CSS3 such as full screen mode or transformations<br />

to scale the quizzes with the size of the video means<br />

that we only support up-to-date browsers, in particular<br />

current versions of Google Chrome and Mozilla Firefox.<br />

A different compatibility problem occurs on mobile devices.<br />

They do implement HTML5 and CSS3, but many of<br />

them do not implement video playback in the same manner<br />

as desktop browsers do. For instance, Apple’s Safari<br />

for iOS opens videos in the QuickTime player, which is<br />

separate from the browser. With our current ap-proach<br />

there is no way to overcome this problem in the browser;<br />

the only way to get our platform to work on iPhones<br />

would be to write a native app. On Apple iPads we have<br />

to work with Webkit CSS extensions, other-wise the native<br />

browser displays the video within the browser, but<br />

the video player captures all touch events so they are not<br />

propagated to our HTML displayed above. This problem<br />

does not occur with Google Chrome on the iPad; however,<br />

most users do not have installed this browser. On the<br />

iPhone, even Google Chrome opens videos in the Quick-<br />

Time player. It is hard, anyway, to support our platform on<br />

smartphones due to the small screen size: There is hardly<br />

enough space to show both an embedded quiz and an onscreen<br />

keyboard in a usable manner.<br />

GWT is great at dealing with JavaScript differences<br />

between browsers. One cannot, however, hope for any<br />

framework to automatically deal with quirks in a browser’s<br />

interpretation of HTML in a layer above a video or in<br />

a browser’s implementation of the HTML5 video player.<br />

Research Track |157

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!