Home → Blogs → [email protected] → Computing: Art, Magic, Science → Full Text

Computing: Art, Magic, Science

By Bertrand Meyer

September 29, 2014

[article image]

This Tuesday, Sept. 30, EdX will start airing our new MOOC (online course): Computing: Art, Magic, Science [1], an official ETH release.

I have taught introductory programming at ETH for ten years now (and am right now teaching it again, with the biggest class ever, a sign of renewed interest in computer science). The Touch of Class textbook [2] embodies our approach, based on introducing full-fledged object technology right from the start, and emphasizing software quality through abstraction and Design by Contract, with Eiffel as the supporting language. The course relies on a graphical library, Traffic, modeling traffic in a city; the current version was written by Nadia Polikarpova. With Michela Pedroni and other colleagues I have published extensively about this "outside-in" approach, also known as the  "inverted curriculum", at SIGCSE and other CS education venues; the idea is that students can first learn to use the library through abstract interfaces including contracts, then progressively dive into the internals, understand how the software is built, and add their own extensions. The approach addresses several critical problems of teaching introductory courses today, such as students' various levels of initial knowledge (some having already written significant programs and learned several programming languages, some at the other extremes having never programmed, and the rest with some limited programming experience) and how to teach abstraction techniques effectively (that is to say, by example rather than preaching).

Under the impulse of my colleague Marco Piccioni, we have enthusiastically embraced MOOC technology to support and spread our teaching of introductory topics. In February we released of our first MOOC, embodying the essentials of our ETH course and making it available not only to ETH students but to the whole world. The course does not just include video lectures: it also supports active student participation through online exercises and programs that can be compiled and tested on the cloud, with no software installation. These advanced features result from our research on support for distributed software development (by Christian Estler and Martin Nordio, with Carlo Furia and others).

That first course was a skunkworks project, done on our own without an endorsement from ETH or any of the main MOOC players. We and our students have very much benefited from the consequent flexibility, and the use of homegrown technology relying on the MOODLE framework. We will keep this course for our own students and for any outside participant who prefers a small-scale, "boutique" version. The EdX brand will, however, enable us to reach a broader audience, as we want -- with typical modesty -- to provide the best introductory computing course on the market. In addition, the full support of media services at ETH helped us reach a higher standard on the technical side. (For our first course, the home-brewed one, we did not have a studio, so that every time an ambulance drove by — our offices are close to the main Zurich hospital — we had to restart the current take.)

The course's content is not exactly the same: we have broadened the scope from just programming to computing, although it retains a strong programming component. We introduced additional elements such as an interview with Professor Peter Widmayer of ETH on the basics of computer science theory.

For both new material and the topics retained from the first version we have adapted to the accepted MOOC practice of short segments, although we did not always exactly meet the eight-minute upper limit that was suggested to us. We hope that many newcomers, will like the course and benefit from it and of course will be grateful for comments and suggestions.


[1] EdX course: Computing: Art, Magic, Science, available here.

[2] Bertrand Meyer: Touch of Class: Learning how to Program Well, with Objects and Contracts, Springer Verlag, revised printing, 2013, book page here.

[3] Learning to Program, Online, article on my personal blog, 3 February 2014, see here.


No entries found