zmWmQs
zmWmQs
zmWmQs
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