Einführung in die Programmierung (252-0027) [Herbst 2019]

6. Juli 2020 -- Alle Studierenden, die sich für die Prüfung am 28. August angemeldet haben, wurden per eMail angeschrieben. 

22. Jan. 2020 -- Alle Studierenden sollten jetzt Ihre Raumzuteilung (und separat eine Nachricht mit ausführlichen Hinweisen) erhalten haben.  Wenn Sie in mehr als einen Raum (oder keinen Raum) eingeteilt sind, dann melden Sie sich bitte.  Lesen Sie die bitte die Hinweise!

9. Jan. 2020 -- Alle Studierenden, die sich für die Prüfung angemeldet haben, wurden per eMail informiert, wie sie eine Präferenz für ein US Keyboard anmelden können. Es gibt am 16. Jan. von 15-17  eine Feriensprechstunde im CAB H52.   Probeprüfungen finden Sie in der VIS Aufgabensammlung.

30. Dez. 2019 -- Alle Slides in einer Datei finden Sie unter "Vorlesungsplan" (Ende).

19. Nov. 2019 -- An diesem Tag findet keine Vorlesung der "Einführung in die Programmierung" statt.  Statt dessen gibt es eine Vorlesung der "Algorithmen und Datenstrukturen" (als Ersatz für den Tausch am Anfang des Semesters).

1. Nov. 2019 – Die Bewertung der ersten Bonusaufgabe wurde vorgenommen. Sie finden sie im "u04"-Ordner in Ihrem Git-Repository. Für mehr Details beachten Sie bitte die heute versendete E-Mail.

18. Sept. 2019 – Bitte füllen Sie die Umfrage bis Freitag Mittag aus.

17. Sept. 2019 Slides von heute sind online.  (In Zukunft kein Hinweis wenn die Slides online sind, siehe Vorlesungsplan).

14. Sept. 2019 In den ersten beiden Wochen findet die Vorlesung auch am Donnerstag von 13:15 -- 14:00 statt (also am 19. 9. und 26. 9). Die Vorlesung " Algorithmen und Datenstrukturen" findet an diesen Tagen nur vormittags statt.  

10. Sept. 2019 – Herzlich willkommen.  Bitte registrieren Sie sich in "myStudies" bis zum 18. Sept. um 12:00 mittags wenn Sie diese Vorlesung belegen möchten. Wir können Sie sonst nicht per eMail erreichen und Sie haben keinen Zugang zur Videoaufzeichnung. (Sie können sich später wieder abmelden wenn Sie Ihre Meinung ändern.)

In der ersten Woche finden keine Übungen statt. Die Einschreibung in Übungsgruppen findet später statt und wird per eMail angekündigt.  Die erste Übung findet am 24. 9. (bzw. 25. 9.) statt.

14. Okt. 2019 Beginnend mit Übung 4 gibt es jede Woche eine Bonusaufgabe. Die allgemeinen Regeln dazu finden Sie Downloadhier (PDF, 125 KB).

Nach Besuch der Veranstaltung sollen Sie einfache Programme in Java systematisch entwickeln können.  Sie können Programme schreiben und auch lesen.  Sie sollten in der Lage sein, Java Anweisungen zu einer Methode zusammenzufassen,  einen Algorithmus mit Methoden zu implementieren und die dazu benötigten Datenstrukturen mit Klassen in Java zu realisieren. Ihre Programme können Daten aus einer Datei lesen (und ggf. Daten in eine Datei schreiben).  Sie verwenden zweckmässige Basisklassen der Java Umgebung.  Sie wissen wie ein Java Programm entwickelt wird und können Tests erstellen, die demonstrieren wie Ihre Implementation die Anforderungen erfüllt. 


1 Satz: Einführung in grundlegende Konzepte der modernen Programmierung. Vermittlung der Fähigkeit, Programme von höchster Qualität zu entwickeln. Einführung in Prinzipien des Software Engineering mit objekt-orientiertem Ansatz. 

N Sätze: Viele Menschen können Programme schreiben. Die Ziele der Vorlesung "Einführung in die Programmierung" gehen aber darüber hinaus: sie lehrt die fundamentalen Konzepte und Fertigkeiten, die nötig sind, um professionelle Programme zu erstellen. Nach erfolgreichem Abschluss der Vorlesung beherrschen Studenten die fundamentalen Kontrollstrukturen, Datenstrukturen, die Verfahren zur Problemlösung und Mechanismen von Programmiersprachen, die die moderne Programmierung auszeichnen. Sie kennen die Grundregeln für die Produktion von Software in hoher Qualität. Sie haben die nötigen Vorkenntnisse für weiterführende Vorlesungen, die das Programmieren in spezialisierten Anwendungsgebieten vorstellen.

Inhalt: Grundlagen der objekt-orientierten Programmierung. Objekte und Klassen. Vor- und Nachbedingungen, Invarianten. Elementare Kontrollstrukturen. Zuweisungen und Referenzierung. Elementare Datenstrukturen und Algorithmen. Rekursion. Vererbung und Interfaces. Collections und generische Typen.  Grundkonzepte aus Software Engineering wie dem Softwareprozess, Spezifikation und Dokumentation, Reuse und Quality Assurance.

Die Vorlesungen finden statt

  • Dienstags 10:15–11:55 und
  • Freitags 8:15–10:00

im ML D 28 mit Videoübertragung in den ML E 12. (Zusätzlich am 19.9. und 26.9. von 13:15 -- 14:00, aber nicht am 19.11.)

Die Übung finden statt

  • Dienstags, 13:15–15:00 oder
  • Mittwochs, 08:15–10:00  

Die Übertragungen der Vorlesung vom D28 in den E12 werden aufgezeichnet und sind nach (in der Regel) 1-2 Tagen via das  ETH Videoportal erreichbar. 

Fragen sollten generell an den/die Assistent/in Ihrer Übungsgruppe gerichtet werden. Haben Sie jedoch ernstere Probleme oder/und wissen nicht, wie weiter, dann können Sie sich per E-Mail an die folgende Adresse wenden: . Sie können auch auf diese Weise einen Termin mit dem Dozenten vereinbaren (eine  Sprechstunde findet nur nach Bedarf statt).

Hauptassistent der Vorlesung: Felix Wolf

Dies ist der Plan ...   

Alle Folien  (Zugriff mit ETH Password für Web Applicationen (LDAP)) in einer protected pageDatei (oder noch protected pagegrösser mit besserer Auflösung der Screenshots).

Weiteres Übungsmaterial

Hier finden Sie weiteres Übungsmaterial, welches von den Übungsgruppenleitern zur Verfügung gestellt wurde. Sie können es für die Prüfungsvorbereitung nützen, aber es wird nicht erwartet, dass Sie das Material bearbeitet haben.

Lehrbücher:

Es gibt eine grosse Anzahl von Lehrbüchern die Java als Programmiersprache verwenden. Sie können auf solche Bücher zugreifen, wenn Sie z.B. ein Thema nachbearbeiten oder vertiefen wollen.  Auch die Java Tutorials (siehe unten) sind evtl. hilfreich.  Die Vorlesung orientiert sich an zwei Lehrbüchern,  aber es steht Ihnen frei, andere Bücher zu konsultieren. Wir verwenden Java 10 (aber ein Buch, das auf Java 8 basiert, sollte auch gehen, nicht aber eines, das Java 7 verwendet).

S. Reges und M. Stepp, "Building Java Programs",  Pearson.  Die neueste Auflage (5.) ist (noch) nicht in Europa erhältlich.  Sie können aber  die 4. Auflage, in der die Beispielprogramme für Java 8 angepasst sind, verwenden.  Einige Beispiele aus der Vorlesung finden Sie auch in diesem Buch. Die Informatik Bibilothek hat Exemplare.

R. Sedgewick und K. Wayne, "Einführung in die Programmierung mit Java", 2011, Pearson Higher Education, ISBN 978-3-86894-0476-3. Deutsche Übersetzung, auch auf Englisch (neuere Ausgabe!) erhältlich.  Enthält viele interessante Beispiele von Programmen die Anwendungsprobleme lösen. Auch in der Informatik Bibliothek.

Dokumentation:

Sie finden auf dem Web die vollständige external pageSpezifikation der Programmiersprache Java. Diese ist allerdings auf Englisch. Es gibt diese auch in Buchform, aber vermutlich finden Sie die Online-Version praktischer.

Die external pageJava Web Seiten von Oracle enthalten Tutorials, API Dokumentation und vieles mehr, auch für frühere Versionen von Java.  

JavaScript has been disabled in your browser