This MOOC (Massive Open Online Course) brings to the world for the first time in 2013 the introductory programming course offered to all computer science students at ETH Zurich, the Swiss Federal Institute of Technology. The course has been divided into easy-to-follow individual segments, typically 10 to 20 minutes. It includes numerous quizzes and exercises, and lets you use a special cloud-based version of the Eiffel compiler so that you can write, compile and run programs on the fly, and test your answers against the correct results. The 2014/15 edition brings 7 more programming exercises, and a progressive hint system meant to support students in solving the programming exercises autonomously.
What’s special about this course?
Being able to program is no big deal. Anyone can learn to hack a program together. What this course is about is teaching you quality programming. We use the most advanced techniques of modern software construction, from object-oriented programming to Design by Contract. We start from scratch (no previous programming experience required!) and reach advanced concepts including lambda expressions, recursion and event-driven programming.
Work at your own paceSome MOOCs require that you take lectures at given times and according to a rigid schedule. We think that the idea of a cloud-based course is precisely that you should work as you want and when you want! All the lectures are made available as soon as they are ready. Feel free to take the full course in a single sitting, or space out the lectures, according to your own working style and availability. Our role is to help you master modern high-quality programming, not to tell you how you should work.
The textbook: Introduction to Programming Well Using Objects and Contracts, by Bertrand Meyer (Springer, revised printing, 2013), see book page
ETH StudentsIf you are an ETH student taking this online course, you will be automatically enrolled in an online exercise group with the same name as your exercise group. Each exercise group has a dedicated teaching assistant providing personalized timely support for any question you might have.
You will be able to submit your solutions to the programming exercises as part of your weekly assignments. Your teaching assistant will give you feedback in addition to the automatic feedback produced by the testing framework.
Tell us what you think!This course is still experimental and in progress: new lectures will be added regularly in the coming months, and existing lectures will be revised. Your feedback is essential. Tell us what you think by writing to Marco Piccioni.
Marco Piccioni and
Bertrand Meyer started the project
with the idea of making the popular ETH course Introduction to Programming
even more attractive to ETH students and available to the rest of the world through the Internet.
Bertrand is contributing most of the lectures; the remaining ones are given by Marco Piccioni,
Julian Tschannen, and Scott West.
Marco Piccioni, in addition to being in charge of the project, created all the quizzes.
Christian Estler wrote the Eiffel 4 Mooc framework, making it possible to compile and execute Eiffel programs on the cloud from a browser.
Andre Macejko helped with many aspects of the course, in particular programming the
Curious about why and how we produced this MOOC? See our "making of" video directed by Andrey Rusakov:
DisclaimerThis course is an initiative of the ETH Chair of Software Engineering and is an experiment in Web teaching. It is not an official ETH offering and does not entitle participants to any diploma or any other formal recognition. Take it for the sheer challenge and fun of learning programming the modern way.
AddressChair of Software Engineering, Meyer
Phone: +41 44 632 65 32
Fax: +41 44 632 14 35