Eiffel: Analysis, Design and Programming

Bertrand Meyer (Fall semester 2009)


General info: News | Course description | Grading | Project | Course books | Downloads | Further reading
Lectures: Subjects and Slides

General info


Arrangement changes in course project is available here.
An explanation to the clarification is available here.
Clarification about the grading policy is now available.
Please also notice the date and venue information about final exam and project demonstration inside the document.
Course exercise 8 available.
Policy regarding the persistent storage in course project explained here.
Course exercise 7 available.
Slides for lecture 7, 8, and 9 available.
Course exercise 6 available.
The chapter Agents, iteration and introspection from the book draft "The Eiffel Language, 3rd" is now available here.
Course exercise 5 available.
The exercise session on Nov. 10 will be devoted to Q&A  concerning the course project.
Fabio and Sandro would be there, so if you have any questions about the project, please get your questions ready and attend this session.
Course exercise 4 available.
Slides for lecture 5 updated.
Course exercise 3 available.
Slides for lecture 4 updated.
A forum dedicated to Xebra related discussions is not available.
Project description is now available.
The contact information of the teaching assistants, especially for the course project, is available.
Slides for lecture 3 updated.
!!! Please DO attend the class on Oct. 6, we will introduce the Xebra, using which you are going to finish your project.
!!! Lectures will start from 13:30 in the future.
Slides for lecture 1 and 2 are available.
Course exercise 2 available.
Grading policy updated.
Course exercise 1 available.
Course schedule updated.
Course dates and venue updated.
02.07.2009 Initial version of the course page.

Course description

Eiffel: Analysis, Design and Programming

Web page at the computer science department: 251-0291-00

Eiffel is a programming language but also a general method for producing quality software, applicable to all stages of the lifecycle starting with requirements analysis. This course provides a hands-on introduction to the method and language, enabling students to master the technology and start doing analysis, design and programming in Eiffel.


70% project, 30% exam

  • Project will be a web-based system using the new EiffelWeb
  • The grading of the course will be based on a closed book written exam (90 minutes), on last lecture slot of the semester: 15 Dec..


  • Online bug reporting using Xebra
  • Teaching assistants:
    • Fabio Zünd: fzuend 'at' student.ethz.ch
    • Sandro De Zanet: dezanets 'at' gmail.com
  • Xebra forum
    • You're suggested to post your questions here, so other students can also benefit from the discussions as well as answers.
  • About persistent storage
    • Persistent storage of the data IS REQUIRED for the project. We don't constrain which specific technique you should use. However, whichever technique you choose, scalability should be one of your major concerns in making such decision.
    • One most obvious solution for this would be using a database, and Eiffel has provided a library for this purpose: EiffelStore. To know more about EiffelStore, you may find http://docs.eiffel.com/book/solutions/eiffelstore to be helpful, where you may find relevant class references and examples.
    • If you decide to choose other solutions, please be prepared to justify your choice and convince the others both in your report and during the demo.
  • Arrangement changes

Course books


Further reading


The lecture will be held every Tuesday between September 22 (Tue.), 2008 and December 18 (Fri.), 2008.

Max Pei is the organizing assistant for the course. Please contact him if you have any questions.

Time Location
Lecture Tue. 13:30 -- 15:00
HG F 26.3
Exercise Tue. 15:15 -- 16:00
HG G 26.1

Detailed Course Plan