At Stanford University a group of scientists has been involved in an interactive science experiment involving understanding proteins in various diseases.
Now I don't imagine they think of this work as teaching about biology and such, although I don't know. They need a lot of computing power so much of their effort has been to try to harness other's to help them by contributing computer power. This is an example of "distributed computing." Rather than them processing all the data, they have written a program that you can download and let your computer run. When your computer completes its analysis it returns the results to them. What to contribute to this interesting experiment-- download the software here.
If just the chance to "fold a protein" isn't engaging enough, read some of their results, participate in one of their communities, see a map of all the computer/people processing this data across the world. Getting intrigued now? They hope so.
My computer geek son found this work when he was a teen.... I kept finding the computer on all night long and was wondering what was happening. Despite my repeated insistence that he turn the computer off at night, it continued to run over a couple of weeks. Finally, he let on..... he was folding proteins..... he was interested in the distributed computing aspect more than the biology, but still one evening at dinner he described reading the latest results published in recent issues of Science. When some of the software had a problem on some types of computers, he wrote a simple fix to the problem. In the course of this work, he got feedback from other programmers who suggested ways to streamline his computer code. In short, he participated in an interesting learning environment that taught him some science and some computing.
This work seems like an interesting way to build elearning.