Allgemeines
News
03.12.2012 — Übung 10 ist online. Die Lösung dieser Übung ist für das Testat erforderlich. Weil die Übung das Abschlussprojekt enthält, bekommen Sie mehr Zeit als bisher um sie zu lösen (bis zum 19. Dezember).
27.11.2012 —
Ankündigung:
Die zweite Probeklausur findet am nächsten Mittwoch, den 5. Dezember,
während der Übungsstunde
(in den normalen Übungsräumen)
statt.
Die Anwesenheit an der Probeklausur ist für das Testat erforderlich!
Falls Sie berechtigte Gründe haben,
nicht an der Probeklausur teilzunehmen,
kontaktieren Sie bitte Ihren Assistenten bzw. Ihre Assistentin im Voraus.
Es gibt kein Übungsblatt mit Falligkeit am 5. Dezember;
bitte benutzen Sie diese Woche,
um sich für die Probeklausur vorzubereiten.
12.11.2012 — Während der zweiten Vorlesungsstunde am Dienstag, 20. November, wird Emmanuel Stapf, Chefentwickler von Eiffel Software, einen Gastvortrag geben. (Während der ersten Stunde findet die normale Vorlesung statt).
12.11.2012 —
Emmanuel Stapf, Chefentwickler von Eiffel Software, besucht am 19. und 20. November die ETH.
Bei seinem Besuch möchte er Studenten treffen, die Probleme mit EiffelStudio hatten, um diese Probleme zu besprechen.
Wir organisieren ein Treffen am Montag 19. November von 15.15 bis 17.00 Uhr (nach der Vorlesung)
und/oder am Dienstag 20. November von 13.15 bis 15.00 Uhr.
Wenn du etwas im Zusammenhang mit EiffelStudio diskutieren möchtest,
trage bitte in der doodle Umfrage ein,
welche der zwei Tage dir passen (gib deinen Namen und Legi-Nummer an).
30.10.2012 —
Ankündigung:
Die erste Probeklausur findet am nächsten Mittwoch, den 7. November,
während der Übungsstunde
(in den normalen Übungsräumen)
statt.
Die Anwesenheit an der Probeklausur ist für das Testat erforderlich!
Falls Sie berechtigte Gründe haben,
nicht an der Probeklausur teilzunehmen,
kontaktieren Sie bitte Ihren Assistenten bzw. Ihre Assistentin im Voraus.
Es gibt kein Übungsblatt mit Falligkeit am 7. November;
bitte benutzen Sie diese Woche,
um sich für die Probeklausur vorzubereiten.
24.09.2011 — Die Übungsgruppen wurden zusammengestellt. Wenn du deine Legi-Nummer in keiner Gruppe findest, kontaktiere bitte Julian Tschannen und gib die bevorzugte Stufe und Sprache an.
23.09.2012 — Übungsblatt 1: Die EiffelStudio Installationsanleitung fur Linux wurde aktualisiert.
11.09.2012 — Der Selbsteinschätzungsfragebogen ist online. Bitte fülle ihn bis Ende Freitag 21. September aus, damit wir dich in eine Übungsgruppe zuteilen können.
10.09.2012 — Änderung Vorlesungszeit/-ort: Die Lektion am 25. September (Dienstag) findet nicht statt. Eine Ersatzlektion wird am Freitag 21. September um 13:15-15:00 im HG E7 stattfinden.
10.09.2012 — Die erste Lektion findet am Dienstag, den 18. September, statt. Das erste Übungsblatt wird am Montag publiziert. Es gibt keine Übungstunden in der ersten Woche.
Kursbeschreibung
252-0021-00 Einführung in die Programmierung
Inhalt der Vorlesung
- Grundlagen der objekt-orientierten Programmierung
- Objekte und Klassen
- Konzept der Schnittstellen von Klassen
- Vor- und Nachbedingungen, Invarianten, Design by Contract
- Elementare Kontrollstrukturen
- Zuweisungen und Referenzierung
- Grundbegriffe aus der Hardware
- Elementare Datenstrukturen und Algorithmen
- Rekursion
- Vererbung und "deferred classes"
- Einführung in Event-driven Design und Concurrent Programming
- Grundkonzepte aus Software Engineering wie dem Softwareprozess, Spezifikation und Dokumentation, Reuse und Quality Assurance
Unterlagen
Bertrand Meyer: Touch of Class, Learning to Program Well with Objects and Contracts, Springer 2009, ISBN: 978-3-540-92144-8. Elektronische Version (Nur innerhalb des ETH Netzwerks verfügbar)
Helfen und Hilfe bekommen
Um mit der Traffic Software zu starten, könnte es helfen diese Einführung zu lesen. Wenn du einen Fehler in Traffic entdeckst, besprich das mit einem Assistenten und melde es dann als Fehlerbericht.
Falls du einen Absturz in der EiffelStudio Programmierumgebung hast, klicke bitte den "Submit bug report" Knopf und benutze den Login ethinfo1 mit Passwort ethinfo1.
Auf dem Hilfe-Forum können inhaltliche Fragen, die sich auf die Vorlesung oder Übungen beziehen, gestellt werden. Die Assistenten werden bemüht sein, diese so schnell wie möglich zu beantworten.
Downloads
Die genauen Angaben, welche Software benötigt wird und wie man diese installiert, befinden sich auf dem ersten Übungsblatt. Es ist auch möglich öffentliche Computerräume (CAB H56 und H57) zu benutzen, in welchen die nötige Software bereits installiert ist.
Zusätzliche Materialien:
- Troubleshooting (bekannte Probleme mit der EiffelStudio Installation)
- Blog für die Anfänger Übungsgruppen
- Übersetzungsliste (Vorlesungsterminologie auf Deutsch und Englisch)
- Do it with style (Übersicht über die Stilregeln von Eiffel)
- Einführung in Eiffel
Weiterführende Literatur
- 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
- David Parnas hat das Konzept "Information Hiding" erstmals dokumentiert.
- In der Vorlesung von Woche 13 (Montag) wurde das Software-Problem mit der Patriot Rakete beschrieben.
Vorlesung
Stundenplan
Tag | Zeit | Ort |
---|---|---|
Montag | 13:00-15:00 | HG F1 |
Dienstag | 8:00-10:00 | HG F1 |
Vorlesungsfolien und Video-Aufnahmen
Video-Aufnahmen der Vorlesungen (Folien + Stimme) anschauen.
Video-Aufnahmen aus dem Jahr 2009 auf Englisch anschauen.
Hinweis: in den PDF-Dateien sind die verwendeten Animationen nicht enthalten, deshalb könnten einzelne Slides schwierig zu verstehen sein.
Datum | Vorlesung | Titel | Folien | Lesematerial |
---|---|---|---|---|
Di. 18.09 | 1.2 | Einführung | pdf pptx | Kapitel 1, 2 |
Fri. 21.09 | 2.1 | Handhabung von Objekten I | pdf pptx | Kapitel 2 |
Mo. 24.09 | 2.2 | Handhabung von Objekten II | pdf pptx | Kapitel 3 |
Mo. 01.10 | 3.1 | Die Schnittstelle einer Klasse | pdf pptx | Kapitel 4 |
Di. 02.10 | 3.2 | Invarianten und Logik | pdf pptx | Kapitel 5 |
Mo. 8.10 | 4.1 | Objekterzeugung | pdf pptx | Kapitel 6 |
Di. 9.10 | 4.2 | Zuweisung, Referenzen, und die Objektstruktur | pdf pptx | Kapitel 9 |
Mo. 15.10 | 5.1 | Steuerstrukturen I | pdf pptx | Kapitel 7 |
Di. 16.10 | 5.2 | Steuerstrukturen II | pdf pptx | Kapitel 7 |
Mo. 22.10 | 6.1 | Abstraktion | pdf pptx | Kapitel 8 |
Di. 23.11 | 6.2 | Das dynamische Modell | pdf pptx | Kapitel 8 |
Mo. 29.10 | 7.1 | Vererbung und generische Klassen I | pdf pptx | Kapitel 16 |
Di. 30.10 | 7.2 | Vererbung und generische Klassen II | pdf pptx | Kapitel 16 |
Mo. 5.11 | 8.1 | Rekursion I | pdf pptx | Kapitel 14 |
Di. 6.11 | 8.2 | Rekursion II | pdf pptx | Kapitel 14 |
Mo. 12.11 | 9.1 | Daten Strukturen I | pdf pptx | Kapitel 13 |
Di. 13.11. | 9.2 | Daten Strukturen II | pdf pptx | Kapitel 13 |
Mo. 19.11 | 10.1 | Mehrfachvererbung | pdf pptx | Kapitel 16 |
Di. 20.11 | 10.2 | Beschreibung von Syntax | pdf pptx | Kapitel 11 |
Mo. 26.11 | 11.1 | Topologisches Sortieren I | pdf pptx | Kapitel 15 |
Di. 27.11 | 11.2 | Topologisches Sortieren II | pdf pptx | Kapitel 15 |
Mo. 03.12 | 12.1 | Ereignisbasierte Programmierung und Agenten I | pdf pptx | Kapitel 17, 18 |
Di. 04.12 | 12.2 | Ereignisbasierte Programmierung und Agenten II | pdf pptx | Kapitel 17, 18 |
Mo. 10.12 | 13.1 | Ein Beispiel: Undo/Redo | pdf pptx | Kapitel 17 |
Di. 11.12 | 13.2 | Vom Programmieren zum Software Engineering I | pdf pptx | Kapitel 19 |
Mo. 17.12 | 14.1 | Vom Programmieren zum Software Engineering II | pdf pptx | Kapitel 19 |
Di. 18.12 | 14.2 | Einige Forschungsthemen unseres Lehrstuhls (Software Engineering) |
= Temporäre Version = Endgültige Version
Übungen
Übungsgruppen
Hier findest du die Einteilung in die Übungsgruppen sowie die allgemeinen Informationen über die Gruppen.
Die Einteilung der Studenten in die Übungsgruppen basiert auf einer Selbsteinschätzung. Die Studenten werden dann anhand ihrer Erfahrung eingeteilt.
Übungsblätter
Die wöchentlichen Übungen werden jeden Montag vor 18:00 publiziert. Du musst deine Lösung innerhalb der nächsten neun Tage (bis Mittwoch Abend) abgeben. Der vorgeschlagene Ablauf für die Abgabe ist, die Übungen per Email zu schicken. Sie werden überprüft, aber nicht bewertet; der Abgabestatus kann online eingesehen werden. Die Musterlösung einer Übung wird nach dem Abgabedatum (Donnerstags) hier publiziert. Studenten wird empfohlen, die Musterlösung anzuschauen und bei Unklarheiten nachzufragen.
Während des Semesters werden in den Übungsstunden zwei Probeklausuren durchgeführt. Die Probeklausuren werden überprüft und benotet an die Studenten zurückgegeben.
Um das Testat zu erhalten und an die Abschlussprüfung zugelassen zu werden, müssen Studenten die beiden Probeklausuren und alle bis auf eine Übung abgegeben haben.
Woche | Übung | Links |
---|---|---|
Woche 1 | Getting started | Übungsblatt |
Woche 2 | Give me your feature name and I'll call you | Übungsblatt Lösung |
Woche 3 | Of objects and features | Übungsblatt Lösung |
Woche 4 | Object creation and logic | Übungsblatt Lösung |
Woche 5 | Assignments and control structures | Übungsblatt Lösung |
Woche 6 | Loopy games | Übungsblatt Lösung |
Woche 7 | Probeklausur 1 | Probeklausur Lösung |
Woche 8 | Inheritance and Polymorphism | Übungsblatt Lösung |
Woche 9 | Recursion | Übungsblatt Lösung |
Woche 10 | Data structures | Übungsblatt Lösung |
Woche 11 | Probeklausur 2 | Probeklausur Lösung |
Woche 12 | Agents and board games | Übungsblatt Lösung |
Folien der Übungsstunden
Datum | Material (PDF) | Material (PowerPoint) |
---|---|---|
26.09.2012 | pptx | |
03.10.2012 | pptx | |
10.10.2012 | pptx | |
17.10.2012 | pptx | |
24.10.2012 | pptx | |
31.10.2012 | pptx | |
14.11.2012 | pptx | |
21.11.2012 | pptx | |
28.11.2012 | Übungsblatt | Lösung |
12.12.2012 | pptx |
Zusätzliche Themen | Material (PDF) | Material (PowerPoint) | Material (Anderes) |
---|---|---|---|
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 |