General
News
06.10.2015 — Student can check the status of their submitted exercises online.
22.09.2015 — The edX MOOC is here!
21.09.2015 — We assigned students to exercise groups. If you don't find your Legi-Number in any group, please contact Alexey and tell him your preferred level and language.
14.09.2015 — The MOOC is here!
14.09.2015 — To be assigned to an exercise session make sure you answer our questionnaire within Thursday 17 September.
20.07.2015 — The first lecture will take place on Tuesday 15.9. There will be no exercise sessions during the first week.
20.07.2015 — The course page goes online.
Course description
252-0021-00 Introduction to Programming
Content:
- Foundations of object-oriented programming
- Objects and classes
- Interface of a class
- Design by Contract, preconditions, postconditions, class invariants
- 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, Learning to Program Well with Objects and Contracts, Springer 2009, ISBN: 978-3-540-92144-8. Electronic version (only available inside ETH network).
Helping and getting help
To get started with the Traffic software, you might want to read this introduction. If you think you have found a bug in Traffic, share your thoughts with your assistant, and possibly submit a bug report.
In case you encounter a crash of the EiffelStudio development environment, please click the "Submit bug report" button and provide the following credentials: login ethinfo1, password ethinfo1.
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.
Downloads
The precise description of which software is needed and how to install it can be found on the first exercise sheet. It is also possible to use public computer rooms (CAB H56 and H57) where the required software is already installed (Windows only).
The lecture slides (in PowerPoint and PDF format), the exercise session slides, the exercise sheets, the masters solutions for the exercises and the mock exams can be downloaded from this page.
Additional materials:
- Troubleshooting (reported EiffelStudio installation issues)
- Glossary (terminology used in the course, in English and German)
- Do it with style (summary of style guidelines for Eiffel)
- Eiffel introduction
- Eiffel Tutorial
- Eiffel instructional videos from York University
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
- The concept of information hiding was first documented by David Parnas in this paper.
- Patriot missile software problem.
- "On the Criteria To Be Used in Decomposing Systems into Modules", D.L. Parnas, 1972
- "Models-Views-Controllers", Trygve Reenskaug, 1979
Lecture
Schedule
Day | Time | Location |
---|---|---|
Monday | 13:15-15:00 | HG E7 |
Tuesday | 8:15-10:00 | HG E7 |
Slides and video recordings
You can also watch video recordings from 2009 in English.
Note: in the PDF version of the slides animation is not retained and some slides can become unclear.
Date | Lecture | Title | Slides | Readings |
---|---|---|---|---|
Tue. 15.09 | 1.2 | Introduction | pdf pptx | Chapter 1, 2 |
Mon. 21.09 | 2.1 | Dealing with objects I | pdf pptx | Chapter 2 |
Tue. 22.09 | 2.2 | Dealing with objects II | pdf pptx | Chapter 3 |
Mon. 28.09 | 3.1 | Interface of a class | pdf pptx | Chapter 4 |
Tue. 29.09 | 3.2 | Invariants and logic | pdf pptx | Chapter 5 |
Mon. 05.10 | 4.1 | Object creation | pdf pptx | Chapter 6 |
Tue. 06.10 | 4.2 | Object creation II | pdf pptx | Chapter 6 |
Mon. 12.10 | 5.1 | Assignment, references, and object structure | pdf pptx | Chapter 9 |
Tue. 13.10 | 5.2 | Describing syntax | pdf pptx | Chapter 11 |
Mon. 19.10 | 6.1 | Control structures I | pdf pptx | Chapter 7 |
Tue. 20.10 | 6.2 | Control structures II | pdf pptx | Chapter 7 |
Mon. 26.10 | 7.1 | Abstraction | pdf pptx | Chapter 8 |
Tue. 27.10 | 7.2 | Dynamic model | pdf pptx | Chapter 8 |
Mon. 2.11 | 8.1 | Inheritance and genericity I | pdf pptx | Chapter 16 |
Tue. 3.11 | 8.2 | Questions and Answers | ||
Mon. 9.11 | 9.1 | Inheritance and genericity II | pdf pptx | Chapter 16 |
Tue. 10.11 | 9.2 | Inheritance and genericity III | pdf pptx | Chapter 16 |
Mon. 16.11 | 10.1 | Inheritance and genericity IV | pdf pptx | Chapter 16 |
Tue. 17.11 | 10.2 | Recursion I | pdf pptx | Chapter 14 |
Mon. 23.11 | 11.1 | Recursion II | pdf pptx | Chapter 14 |
Tue. 24.11. | 11.2 | Data structures | pdf pptx | Chapter 13 |
Mon. 30.11 | 12.1 | Topological Sort | pdf pptx | Chapter 15 |
Tue. 1.12 | 12.2 | Multiple Inheritance | pdf pptx | Chapter 16 |
Mon. 7.12 | 13.1 | An example: Undo/Redo | pdf pptx | Chapter 17 |
Tue. 8.12 | 13.2 | An example: Undo/Redo II | pdf pptx | Chapter 17 |
Mo. 14.12 | 14.1 | Event-driven programming and agents | pdf pptx | Chapter 17, 18 |
Tue. 15.12 | 14.2 | From programming to software engineering | pdf pptx | Chapter 19 |
= Tentative version = Final version
Exercises
Exercise Groups
Here you will find the distribution of students into exercises groups as well as general information about the groups.
The distribution of students in the exercise groups is based on a self assessment questionnaire. The students are then grouped according to their experience. Access the self assessment questionnaire here.
Assignments and mock exams
The weekly assignments are published every Monday before 18:00. You should submit your solution within the next nine days (by the end of Wednesday). The suggested way to submit the solutions is by email. They will be checked but not graded. you can check the status of your submissions online. Master solutions will be published online after the due date (on Thursday). Students are strongly encouraged to look at the solutions and ask questions.
Two mock exams will take place during the exercise sessions, be graded and returned.
Week | Exercise | Links |
---|---|---|
Week 1 | Getting started | Sheet |
Week 2 | Give me your feature name and I'll call you | Sheet Solution |
Week 3 | Of objects and features | Sheet Solution |
Week 4 | Object creation and logic | Sheet Solution |
Week 5 | Assignments and control structures | Sheet Solution |
Week 6 | Loopy games | Sheet Solution |
Week 7 | Mock exam 1 | Exam Solution |
Week 8 | Inheritance and polymorphism | Sheet Solution |
Week 9 | Recursion | Sheet Solution |
Week 10 | Data structures | Sheet Solution |
Week 11 | Agents and board games | Sheet Solution |
Week 12 | Mock exam 2 | Exam Solution |
Exercise session slides and exercises
Date | Material (PDF/code) | Material (PowerPoint/code) | ||
---|---|---|---|---|
23.9 | ppt | |||
30.09 | ppt/role play game source | |||
7.10 | ppt | |||
14.10 | ppt | |||
21.10 | ppt | |||
28.10 | ppt | |||
18.11 | ppt/binary search tree source | |||
25.11 | ppt | in-class exercise | in-class exercise 2 | 9.12 | ppt |
Additional Topics | Material (PDF) | Material (PowerPoint) | Material (Other) |
---|---|---|---|
Syntax comparison Eiffel/Java | pptx | ||
Invariants / Marriage example | pptx | code | |
Once routines | pptx | code | |
Void safety | pptx | code | |
Programming paradigms | pptx | ||
CAT calls | pptx | ||
Verification | pptx | ||
Beyond Eiffel | pptx |