C in your Browser

Rémi Sharrock

In the academic world, teaching and carrying out research often go hand-in-hand. This is especially true for Rémi Sharrock, a computer science researcher at Télécom Paris, who has developed a C Language learning program comprising 7 MOOCs. The teaching approach used for his online courses called for the development of innovative tools, drawing on the researcher’s expertise. Rémi Sharrock was rewarded for this work in November 2019 by the edX platform, a leading global MOOC provider, who presented him with the its 2019 edX Prize. He talked to us about the story behind this digital learning program developed in partnership with Dartmouth College in the United States.


What led you to undertake research in order to create an online learning program?

Rémi Sharrock: The original aim was to propose a new way of learning C language. To do so, we had to develop a number of tools that didn’t exist at the time. This work carried out with Dartmouth College gave rise to research opportunities. Our goal was always to facilitate  exchange with the learner, and to make it a central part of the learning process. The tools we developed made it possible to carry out learning activities directly on the user’s computer, with many features that had never been seen before.

What are some examples of the tools you developed?

RS: The idea of a MOOC is that it’s open to as many people as possible. We didn’t know what type of computer users would connect with, or what operating system or browser they would use. But regardless of their system, we had to be able to provide users with a high-quality learning experience. The first tool we developed for this was WebLinux. It met the challenge of being able to code in C Language with Linux from any computer, using any browser. We didn’t want to make learners download an application, since that could discourage beginners. WebLinux therefore allowed us to emulate Linux for everyone, directly on the web-based learning platform.

How did you do this from a technical perspective?

RS: Technically, we run Linux directly in the browser, without going through a server. To do so, we use an openRisc processor emulator that is run in the browser, and a Linux that is compatible with this type of processor. That allows us to do without servers that run Linux, and therefore operate on a large scale with limited server resources.

That’s an advantage in terms of access to education, but does the tool also facilitate educational activities?  

RS: For that part we had to develop an additional tool, called Codecast. It’s a C language emulator that runs on any browser and is synchronized with the professor’s audio explanation. It was a real challenge to develop this tool because we wanted to make it possible for anyone to run C language instructions directly on their browser, without having to go through a remote computer server, or use third party software on their computer. We created a specialized C language interpreter for the web, which works with all browsers. When you’re watching the professor’s course in the video, you can directly edit lines of code and run them in your browser, right from the course web page. And on top of that, when the teacher integrates an instruction to be learned and tested that he’s sent you as part of the lesson, you can pause the video, edit the instruction and try different things, then resume the video without any consequences.

You also responded to another challenge with this type of MOOC: assessing learners.

RS: Yes, with a third tool, Taskgrader. In a traditional classroom course, the teacher assesses codes proposed by students one by one, and corrects them. This is inconceivable with a MOOC since you have tens or hundreds of thousands of learners to correct.  Taskgrader makes it possible to automatically assess students’ codes in real time, without the professor having to look them over, by providing personalized feedback.

Do all these tools have applications outside the scope of the MOOC C language learning program?

RS: Codecast could be of interest to big community-driven development websites like  Github. Amateur and professional developers share bits of code for applications on the website. But cooperation is often difficult: to correct someone’s code you have to download the incorrect version, correct it, then send it back to the person who then has to download it again. An emulator in the browser would make it possible to work directly online in real time. And as for Taskgrader, it’s a valuable tool for all computer language teachers, even outside the world of MOOCs.

Is your research work in connection with these MOOCs over now that the learning program has been completed?  

RS: No, since we’ve also committed to a second type of research. We’ve teamed up with Cornell and Stanford universities to carry out large-scale sociological experiments on these MOOC learners in an effort to better understand our learner communities.

What kind of research are you conducting to that end?

RS: We have 160,000 learners in the MOOC program worldwide from a wide range of social, ethnic and demographic backgrounds. We wanted to find out whether there are differences in the way in which men and women learn, for example, or between older and younger people. We therefore implement the differences in the given courses according to individuals’ profiles, based on A/B testing – the sample of learners is split in two, and each group has a learning parameter that changes, such as the teacher’s age, voice or gender. This should eventually allow us to better understand learning processes and adapt them to provide each individual with a program that facilitates knowledge transfer.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *