Sunday, 1 June 2014

Designing a virtual fruit fly lab using HTML5

This blog post first appeared as Surviving the semester: Designing a virtual lab - HTML5 over at my Nature Scitable blog on eLearning. I have reproduced it here, with a few edits, and some updates to the material.


I few years back (20111 to be precise) we were faced with a 'crisis' in the delivery of a first year fruit fly genetics lab. The students didn't seem to be getting as much from the lab as we would have hoped, and it was getting increasingly expensive and difficult to run the session with large groups (we had ~350 students in the year and we running the lab four times).

When the lab was first put together it was being offered to students studying the genetics degree. For them it made a lot of sense as fruit fly genetics was at the core of the degree. However, when we introduced the practical to students studying other degrees in the school the session became problematic. Yes, it was needed as we felt that the students studying the life sciences needed the basic genetics training, but we felt the students were not really taking as much from the session as we would have liked.

Having thought long and hard about the problem we decided to make the lab virtual.

The problem

Having run a number of virtual labs over the years in bioinformatics and protein analysis I was aware of the problems involved in delivering such material and also how the static nature of a web page, and of websites in general, can be very boring and tedious for students. Click, click, click.... Therefore, it was decided that what we needed to do for the online fruit fly practical was to deliver something that was interactive and moved, and where possible reproduced some of the experiences the students gained in the traditional fruit fly practical. It was clear that there was a need for animation, and possibly some 'gamification'* (a word I don't like) to engage the students. It turned out that the solution to this was to use HTML5.

The solution

HTML5 is a new web standard for the language that describes how webpage should look and feel in a web browser. HTML5 is not a finished standard (and judging by the speed that W3C is moving at it never will be a finished standard), and therefore it is in a state of flux and is liable to change. However, a number of the major web browsers such as Internet Explorer, Firefox, Safari and Chrome have already decided to adopt a parts of the new HTML5 standard, and one part of the new standard that has been adopted, and was most useful for dealing with this lab, was animation.

Using the animation commands and tools that are available as part of HTML5 it was possible to produce a number of 'virtual' fly labs, and the final version of the practical had three such labs:

  1. Sexing fruit flies;
  2. Identifying fruit fly mutant;
  3. Determining the genetics behind the mutation.

All three 'labs' had the same underlying idea in that there was a small window with a number of fruit flies running around which the students were able to 'anaesthetise', so they stopped moving, and which they could then examine by clicking to get an enlarged image (see figure below). The students then answered questions associated with that particular section of the lab, such as what was the sex of the fruit fly, the type of mutation (if any), and determining the inheritance patterns for different crosses of fruit fly mutants.

Screen Shot 2012 02 23 at 07 24 02

Virtually sexing fruit flies

The above image is of the fruit fly 'sexing' lab - unfortunately I cannot show you the animated version of the lab as I am unable to add the necessary javascript to this page to get the flies to move.

Screen Shot 2012 02 23 at 07 22 46

'Anaesthetised' flies

In the above image the student has 'anaesthetised' the flies so they are no longer moving, and then clicked on a fly to get an enlarged view. The student can then answer the question as to the sex of the fly.

Two final problems - one mine, one HTML5

Coding up the lab was fairly straight forward and after some initial fiddling and debugging of the code everything was working. However, there were still two problems.

The first problem was that the virtual labs would only work in 2011 on the latest versions of the browsers for Internet Explorer, Safari and Chrome, and would not work at all in Firefox. For me this was a real shock as I was expecting any problems to be associated with Internet Explorer. (It turned out that the reason the lab would not work in Firefox was because Firefox had not yet implemented one of the key animation calls that is used to control the animation.)

The other problem was purely down to my code, and I have still not got to the bottom of it. The virtually labs rely on a number of 'random' number generators and some trigonometry functions to control the movement of the flies. Somewhere in the code I have something wrong because if I leave a lab running for an extended period of time all the flies end up wandering around the bottom right-hand corner of the screen. Although this does not detract from the experience of the lab, it is annoying!

Why do my flies end up in the bottom right-hand corner?

Summary

The lab was designed to run in a 3 hour slot with the students exploring the virtual fly labs for the first two hours, as well as completing a number of other tasks, including answering a number of formative questions, with the last hour used to start the online summative assessment. I was surprised to find that the students managed to work through the lab section in about 90 minutes, however, those that rushed the lab did find the summative assessment more difficult. I have now run the lab with over 1000 students in the past 3 years and this is a reoccurring theme, even when they are warned not to rush.

The lab seemed to work very well and there were no obvious problems or complaints on the day. The final marks for the online summative assessment were inline with other modules, and other work completed by the students, so overall I think the lab was a success, and met the learning outcomes for the session. In the feedback I have had from students taking the labs I have had no complaints.

One problem that I have encountered is the site does require significant maintenance as the code base needs changing every year as the HTML5 standard, and the support offered by the different browsers, continues to evolve.

(* gamification is the use of game-like ideas and strategies to help students learn, that is, the students learn whilst they are having fun and playing a game. A sort of learning by stealth.)