General
News
03.12.2010 — Assignment 10 is online. There are two versions: English and German. Note that solving this assignment is required for the testat. Because the assignment includes the final project, you are given more time than usual to solve it (until December 19).
03.11.2010 — Announcement: the second mock exam will take place during the exercise session next week (for the Monday groups: December 6, 15:15-17:00; for the Tuesday groups: December 7, 13:15-15:00). The place is your regular exercise rooms. Your presence at the Mock exam is required for the Testat. If you have a justifiable reason for not coming, please, contact Scott West in advance.
26.10.2010 — Announcement: the first mock exam will take place during the exercise session in two weeks (for the Monday groups: November 8, 15:15-17:00; for the Tuesday groups: November 9, 13:15-15:00). The place is your regular exercise rooms. Your presence at the Mock exam is required for the Testat. If you have a justifiable reason for not coming, please, contact Scott West in advance.
05.10.2010 — The video of this year's lectures is available online.
29.09.2010 — Some additional materials are now available for download.
28.09.2010 — The required version of EiffelStudio is now installed in the computer rooms CAB H56 and H57.
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
If you think you are having issues with the Traffic software, first check if it is a known bug and if there are already workarounds published. Then share your thoughts with an assistant, and possibly submit a bug report. You can also 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. 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)
- Handout for students
- Glossary (terminology used in the course, in English and German)
- Do it with style (summary of style guidelines for Eiffel)
- Eiffel introduction
- Eiffel syntax description in BNF-E (extract from "Eiffel: the language")
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.
Lecture
Schedule
Day | Time | Location |
---|---|---|
Monday | 13:00-15:00 | HG E3 |
Tuesday | 8:00-10:00 | HG F1 |
Slides and video recordings
Watch video recordings of the lectures (slides + voice).
You can also watch last year's video recordings (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. 21.09 | 1.2 | Introduction | pdf pptx | Chapter 1, 2 |
Mon. 27.09 | 2.1 | Dealing with objects I | pdf pptx | Chapter 2 |
Tue. 28.09 | 2.2 | Dealing with objects II | pdf pptx | Chapter 3 |
Mon. 04.10 | 3.1 | Interface of a class | pdf pptx | Chapter 4 |
Tue. 05.10 | 3.2 | Interface of a class | pdf pptx | Chapter 4 |
Mon. 11.10 | 4.1 | Invariants and logic | pdf pptx | Chapter 5 |
Tue. 12.10 | 4.2 | Object creation | pdf pptx | Chapter 6 |
Mon. 18.10 | 5.1 | Assignment, references, and object structure | pdf pptx | Chapter 9 |
Tue. 19.10 | 5.2 | Control structures I | pdf pptx | Chapter 7 |
Mon. 25.10 | 6.1 | Control structures II | pdf pptx | Chapter 7 |
Tue. 26.10 | 6.2 | Control structures III | pdf pptx | Chapter 7 |
Mon. 01.11 | 7.1 | Abstraction. Dynamic model | pdf pptx pdf pptx | Chapter 8 |
Tue. 02.11 | 7.2 | Inheritance and genericity | pdf pptx | Chapter 16 |
Mon. 08.11 | 8.1 | Inheritance and genericity | pdf pptx | Chapter 16 |
Tue. 09.11 | 8.2 | Inheritance and genericity | pdf pptx | Chapter 16 |
Mon. 15.11 | 9.1 | Recursion | pdf pptx | Chapter 14 |
Tue. 16.11. | 9.2 | Data structures | pdf pptx | Chapter 13 |
Mon. 22.11 | 10.1 | Multiple Inheritance | pdf pptx | Chapter 16 |
Tue. 23.11 | 10.2 | Describing syntax | pdf pptx | Chapter 11 |
Mon. 29.11 | 11.1 | Event-driven programming and agents I | pdf pptx | Chapter 17, 18 |
Tue. 30.11 | 11.2 | Event-driven programming and agents II | pdf pptx | Chapter 17, 18 |
Mon. 06.12 | 12.1 | Topological Sort I | pdf pptx | Chapter 15 |
Tue. 07.12 | 12.2 | Topological Sort II | pdf pptx | Chapter 15 |
Mon. 13.12 | 13.1 | An example: Undo/Redo | pdf pptx | Chapter 17 |
Tue. 14.12 | 13.2 | From programming to software engineering | pdf pptx | Chapter 19 |
Mon. 20.12 | 14.1 | From programming to software engineering II | pdf pptx | Chapter 19 |
= Temporary version = Final version
Exercises
Exercise Groups
The distribution of students in the exercise groups is based on an initial self assessment questionnaire. Students are then assigned to an exercise group according to their declared level of experience. Levels are: Beginner, Intermediate, Experienced. If you haven't fill in the self-assessment questionnaire and you would like to be assigned to an exercise group, please contact Scott West, specifying your experience level and your preferred language (German or English).
Assistant | Group (Mailing List) | Time and Place | Language | Experience Level |
---|---|---|---|---|
Christian Estler | Nygaard | Tue, 13:15-15:00, HG D1.2 | English | Beginner |
Alexandre Lagadec | Goldberg | Tue, 13:15-15:00, CAB G52 | German | Intermediate |
Daniela Meier | Knuth | Tue, 13:15-15:00, ML F38 | German | Beginner |
Max (Yu) Pei | Dijkstra | Mon, 15:15-17:00, IFW B42 | English | Intermediate |
Marco Piccioni | Wirth | Tue, 13:15-15:00, IFW A34 | English | Advanced |
Daniel Schweizer | Turing | Tue, 13:15-15:00, LFW C5 | German | Intermediate |
Marco Trudel | Lovelace | Mon, 15:15-17:00, IFW A34 | German | Advanced |
Sandra Weber | Liskov | Mon, 15:15-17:00, CHN D48 | German | Beginner |
Scott West | Torvalds | Tue, 13:15-15:00, IFW B42 | English | Beginner |
Valentin Wüstholz | Hoare | Tue, 13:15-15:00, IFW A32.1 | German | Intermediate |
Assignments and mock exams
The weekly assignments are published every Friday before 17:00. You have to submit your solution within the next eleven days (by the end of Tuesday). The suggested way to submit the solutions is by email. They will be checked but not graded. Master solutions will be published online after the due date (on Wednesday). 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.
To get the testat and be allowed to take the final exam, students must do both the mock exams and hand in all but one assignment.
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 | Sheet Solution |
Week 5 | References and assignments | Sheet Solution |
Week 6 | Loops and conditionals | Sheet Solution |
Week 7 | Mock exam 1 | Exam Solution |
Week 8 | More peachy loops | Sheet Solution |
Week 9 | Inheritance and polymorphism | Sheet Solution |
Week 10 | Recursion | Sheet Solution |
Week 11 | Mock exam 2 | Exam Solution |
Week 12 | Agents and board games | English German Solution |
Exercise session slides
Date | Material (PDF) | Material (PowerPoint) |
---|---|---|
27/28.09.2010 | pptx | |
04/05.10.2010 | pptx | |
11/12.10.2010 | pptx | |
18/19.10.2010 | pptx | |
25/26.10.2010 | pptx | |
01/02.11.2010 | pptx | |
15/16.11.2010 | pptx | |
22/23.11.2010 | pptx | |
29/30.11.2010 | pptx |
Back-office assistant: Nadia Polikarpova