[an error occurred while processing this directive]
  [an error occurred while processing this directive]

Introduction to Programming

Deutsche Version dieser Seite

Bertrand Meyer, winter semester 2006/2007

General: news | reading assignments | course description | course book | help forum | downloads | further reading
Lecture: schedule | slides and video recordings
Exercises: Tootor | groups | sheets



Current news on the course are only available in German, please check the German version of this page.

Reading assignments

Course description

Title and ID

Introduction to Programming
ID (Vorlesungsnummer): 252-0001-00


Foundations of object-oriented programming. Objects and classes. Interfaces of a class. Preconditions and postconditions, invariants, Design by Contract. Basic control structures. Assignment and referencing. Basic knowledge about the hardware. Basic data structures and algorithms. Recursion. Inheritance and deferred classes. Introduction to event-driven and concurrent programming. Fundamental concepts of software engineering: software production process, specification, documentation, reuse, quality assurance.

Course book

Bertrand Meyer: Touch of Class, lecture book (in preparation).

Help forum

You can use the help forum to ask course- and exercise-related questions. The assistants will do their best to answer your questions as soon as possible.


The precise descriptions about which software is needed and how to install it, can be found in exercise sheet 2

Further reading

  • Bertrand Meyer: Object-Oriented Software Construction, Second Edition, Prentice Hall, ISBN 0-13-629155-4
  • Pete Thomas, Ray Weedon: Object-Oriented Programming in Eiffel, Second Edition, Addison-Wesley Eiffel in Practice Series, ISBN 0-201-33131-4
  • Frieder Monninger: Eiffel. Objektorientiertes Programmieren in der Praxis, H. Heise Verlag, Hannover, ISBN 3-882-29028-5
  • Bertrand Meyer: La produzione del software object oriented. Prentice Hall International, Hemel Hempstead, ISBN 88-256-0205-7
  • Giuseppe Callegarin: Nuovo corso di informatica. Basi di dati e sistemi informativi. Per le Scuole superiori. CEDAM, ISBN 8-813-19565-6






Montag 13:00-15:00 HG E7  
Dienstag 8:00-10:00 HG F1  

 Slides and video recordings




Slides (EN)

Video (mpeg4)

Week 1 Tu, 2006-10-24 Introduction  
Week 2 Mo, 2005-10-30 Dealing with objects I  
  Tu, 2006-10-31 Dealing with objects II  
Week 3 Mo, 2006-11-06 The interface of a class  
  Tu, 2006-11-07 Invariants and logic  
Week 4 Mo, 2006-11-14 Object creation  
  Tu, 2006-11-15 References and assignments  
Week 5 Mo, 2006-11-20 Describing the syntax  
  Tu, 2006-11-21 Control structures I  
Week 6 Mo, 2006-11-27 Control structures II  
  Tu, 2006-11-28 Abstraction  
Week 7 Mo, 2006-12-04 The dynamic model  
  Tu, 2006-12-05 Inheritance and genericity  
Week 8 Mo, 2006-12-11 More inheritance and genericity  
  Tu, 2006-12-12 Recursion  
Week 9 Mo, 2006-12-18 Multiple inheritance, project presentation  
  Tu, 2006-12-19 EiffelMedia
Week 10 Mo, 2007-01-08 Data structures  
  Tu, 2007-01-09 Topological Sort I  
Woche 11 Mo, 2007-01-15 Topological Sort II  
  Tu, 2007-01-16 An example: Undo/Redo  
Week 12 Mo, 2007-01-22 Project Management  
  Tu, 2007-01-23 Event Driven Programming and Agents  
Week 13 Mo, 2007-01-29 From programming to software engineering  
  Di, 2007-01-30 Summary
= In preparation    = Final version



The software Tootor is an interactive guide through parts of the course curriculum. The software is available at http://www.dcs.bbk.ac.uk/~gngch01/tootor.html.


The distribution of students to the groups happens during the first lecture. Students that are not present in the first lecture are requested to contact Andreas Leitner directly to be assigned to a group.






Exercise time and place


Ilinca Ciupa RZ J4 044 632 44 49 Ilinca Ciupa Nygaard Mo, 15:00-16:00, IFW B42
Di, 13:00-15:00, ETZ K91
Beat Herlig Beat Herlig Torvalds Mo, 15:00-16:00, ML H37.1
Di, 13:00-15:00, LFW C5
Philipp Krähenbühl Philipp Krähenbühl Goldberg Mo, 15:00-16:00, ML F39
Di, 13:00-15:00, LEC C18
Hermann Lehner RZ F6 044 632 85 39 Hermann Lehner Lovelace Mo, 15:00-16:00, ML J37.1
Di, 13:00-15:00, ETZ E9
Andreas Leitner RZ J4 044 632 30 21 Andreas Leitner Wirth Mo, 15:00-16:00, IFW A 36
Di, 13:00-15:00, LEC C14
Piotr Nienaltowski RZ J3 044 632 44 68 Piotr Nienaltowski Dijkstra Mo, 15:00-16:00, ML H34.3
Di, 13:00-15:00, HG F3
Michela Pedroni RZ J8 044 632 76 84 Michela Pedroni Liskov Mo, 15:00-16:00, ML J34.1
Di, 13:00-15:00, HG F5
Marco Piccioni RZ J5 044 632 65 32 Marco Piccioni Knuth Di, 13:00-14:00, IFW B42
Do, 15:00-17:00, HG G26.3





Master solution

Week 1 Hello ETH Sheet Solution
Week 2 Taking off Sheet Solution
Week 3 Of Objects and Features Sheet Solution
Week 4 Object creation Sheet Solution
Week 5 Loops Sheet Solution
Week 6 Classroom exercise 1 Sheet Solution
Week 7 Smarties Sheet Solution
Week 8 Inheritance Sheet Solution
Week 9 Project Sheet
Week 10 Classroom 2 Sheet Solution

The slides used in the exercises are available here: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

E-Mail: Bernd Schoeller