Search:
Lehrstuhl  |  Institut  |  Fakultät  |  LMU
print

Einführung in die Programmierung im WS 2014/15

Aktuelles

  • 22.04.2015: Die Ergebnisse der Nachholklausur können Sie bei https://uniworx.ifi.lmu.de/ einsehen. Es besteht die Möglichkeit einer Einsichtnahme am Donnerstag, den 30.04.15 von 10 bis 12 Uhr s.t. im Raum 156 (Oettingenstr. 67). Bitte beachten Sie die Möglichkeit eines großen Andrangs und planen etwas Wartezeit mit ein.
  • 23.02.2015: Die Klausurergebnise können in https://uniworx.ifi.lmu.de/ eingesehen werden. Die Klausureinsicht findet am Dienstag, den 03.03.2015 von 14-17 Uhr in Raum 156 (Oettingenstr. 67) statt. Um lange Wartezeiten zu vermeiden, bitte wir alle Teilnehmer sich folgendermaßen zeitlich aufzuteilen:
    • Anfangsbuchstaben A-I: 14-15 Uhr,
    • Anfangsbuchstaben J--R: 15-16 Uhr,
    • Anfangsbuchstaben S-Z: 16-17 Uhr.
  • 05.02.2015: Die Nachholklausur findet statt am Freitag den 10. April von 14-16 Uhr. Eine Anmeldung wird im Laufe der nächsten Woche freigeschalten.
  • 04.02.2015: Wichtiger Hinweis zur Wertung der Klausur: Die Klausur am 06.02.2015 zählt als angetretener Versuch. Es gibt keine "Freischussregelung" oder "0. Versuch", die Aussage aus der Vorlesung von Dr. Kröger beruhte hierbei auf einem Missverständnis. Genauere Information zu den Grundlagenorientierungsprüfungen und deren sechs Versuche finden sich unter http://www2.tcs.ifi.lmu.de/~letz/informationen.shtml#GOP.
  • 02.02.2015: Die Veranstaltung "Javakurs für Anfänger" von Laith Raed, in der die Probeklausur (redundant für jene die den Termin am 03.02.2015 nicht wahrnehmen können) besprochen wird, findet statt von 10-16 Uhr in Raum B001 in der Oettingenstrasse 67 (großer Hörsaal).
  • 30.01.2015: Am Dienstag 03.02.2015 findet von 14-16 Uhr die Probeklausurbesprechung statt. Achtung: Die Probeklausurbesprechung findet in der großen Aula (Raum E 120 im Hauptgebäude) statt.
  • 28.01.2015: Übungsblatt 13 wird aus der Bewertung genommen - da relevante Teile erst am Tag der Abgabe in der Vorlesung besprochen wurden.
  • 21.01.2015: Wichtiger Hinweis zum Übungsbetrieb: Am Montag, 02.02.2015, finden keine Übungen statt! Bitte besuchen Sie die Übungen am Mittwoch, 28.01.2015, oder Freitag, 30.01.2015!
  • 20.01.2015: Die Abgabefrist für Übungsblatt 12 wurde bis morgen, Mittwoch 21.01., 10:00 verlängert.
  • 17.12.2014: Die vorgegebene Datei Matrix.java für Übungsblatt 10 wurde überarbeitet. Der Rückgabewert der Methode transponieren(int[][] matrix) soll natürlich int[][] sein, und nicht boolean.
  • 11.12.2014: Die Vorlesung heute muss wegen Krankheit leider entfallen!
  • 10.12.2014: Der Angabentext zur Übungsaufgabe 9-2 wurde leicht angepasst, um Unklarheiten zu beseitigen.
  • 09.12.2014: Der Code aus der Vorlesung ist online.
  • 09.12.2014: Für die heutige Vorlesung gibt es kein Skript. In dieser Vorlesung werden die Grundlagen der imperativen Programmierung zusammengefasst und anhand von Beispielen vertieft.
  • Ab Blatt 08 müssen alle Code-Aufgaben als .java Dateien abgegeben werden. Lösungen in anderen Formaten wie .PDF werden für Code-Aufgaben nicht mehr akzeptiert. Zur Errinerung: Nicht kompilierbare Abgaben werden mit 0 Punkten bewertet.
  • Bei Aufgabe 5-2 hat sich der Fehlerteufel eingeschlichen: Es soll das Literal 1e4f anstelle des Literals 1e4c abgeleitet werden! Eine neue Version des Übungsblattes ist verfügbar!
  • Die Abgabe für Übungsblatt 05 wurde freigeschaltet.
  • Eine weitere Ergänzung zu Blatt 04: Die initiale Anzahl der Karteikarten soll Element der natürlichen Zahlen sein. D.h. keine halbe Karten, keine negativen Karten, nicht unendlich viele Karten, usw.
  • Aufgabe 4-2 auf Übungsblatt 04 wurde angepasst. Wir empfehlen Ihnen bei dieser Aufgabe, Ihre Lösungen kurz zu begründen, damit wir leichter Punkte als Folgefehler geben können!
  • Aufgabe 1-4 auf Übungsblatt 01 wurde angepasst!
  • Wegen großen Interesses wurde Montags von 10:00 bis 12:00 ein weiterer Übungstermin geschaffen (Gruppe 08B). Die Anmeldung ist jetzt über Uniworx möglich.
  • Die Termine für die wöchentlichen Übungssprechstunden stehen fest: Dienstag und Mittwoch, je 09:00 bis 12:00 (siehe unten).
  • In der Übungswoche vom 15.10.2014 bis 20.10.2014 finden alle Übungen ausnahmsweise im Raum LU114(Sibirien) (Untergeschoss), Oettingenstr. 67 (CIP-Raum) am Rechner statt. Diese Übungen richten sich vor Allem an Studierende, die Fragen oder Probleme bei der Umsetzung des Übungsblattes 0 haben, und ist nicht verpflichtend.
  • Der Übungsbetrieb beginnt am 15.10.2014. Insbesondere finden am Montag den 13.10.2014 keine Übungen statt.
  • Bitte beachten Sie das Merkblatt zum Übungsbetrieb. Download

Inhalt

Thema der Vorlesung ist die Einführung in die imperative und objektorientierte Programmierung sowie die Behandlung grundlegender Datenstrukturen und Algorithmen. Vermittelt werden begriffliche Grundlagen, Konzepte, Methoden und Techniken zur Darstellung und Strukturierung von Daten und zur Entwicklung von Algorithmen. Programmiersprache ist Java.


Organisation

  • Umfang: 4+2 Semesterwochenstunden
  • Vorlesung: PD Dr. Peer Kröger, Dr. Andreas Züfle
  • Übungen: Daniel Kaltenthaler, Klaus Schmid
  • Hörerkreis: Für Studierende der Informatik, Medieninformatik, Bioinformatik und Informatik-Lehramt sowie Nebenfach Informatik mit 60 ETCS Punkten.
  • Tutoren/Korrektoren: Felix Borutta, Erik Daxberger, Christian Frey, Raffaella Germano, Werner Hoffmann, Johannes Knaut, Peter Knoll, Felix Mößbauer, Alexander Neitz, Joschka Rinke, Maximilian Schwarzfischer

Zeit und Ort

Gruppe Veranstaltung Zeit Ort Beginn
Vorlesung Di, 14.00 - 16.00 Uhr Raum B 101 (Hauptgebäude) 07.10.2014
Vorlesung Do, 12.00 - 14.00 Uhr Raum B 101 (Hauptgebäude) 09.10.2014
Gruppe 01 Übung Mi, 10.00 - 12.00 Uhr Raum A 015 (Hauptgebäude) 15.10.2014
Gruppe 02 Übung Mi, 12.00 - 14.00 Uhr Raum A 015 (Hauptgebäude) 15.10.2014
Gruppe 03 Übung Mi, 14.00 - 16.00 Uhr Raum A 015 (Hauptgebäude) 15.10.2014
Gruppe 04 Übung Mi, 16.00 - 18.00 Uhr Raum A 015 (Hauptgebäude) 15.10.2014
Gruppe 05 Übung Mi, 18.00 - 20.00 Uhr Raum A 015 (Hauptgebäude) 15.10.2014
Gruppe 06 Übung Fr, 12.00 - 14.00 Uhr Raum C 112 (Theresienstr. 41) 17.10.2014
Gruppe 07 Übung Fr, 14.00 - 16.00 Uhr Raum A 015 (Hauptgebäude) 17.10.2014
Gruppe 08 Übung Mo, 10.00 - 12.00 Uhr Raum A 014 (Hauptgebäude) 20.10.2014
Gruppe 08B Übung Mo, 10.00 - 12.00 Uhr Raum 133 (Oettingenstraße) 20.10.2014
Gruppe 09 Übung Mo, 14.00 - 16.00 Uhr Raum A 014 (Hauptgebäude) 20.10.2014
Gruppe 10 Übung Mo, 14.00 - 16.00 Uhr Raum A 105 (Amalienstr. 17) 20.10.2014
Gruppe 11 Übung Mo, 16.00 - 18.00 Uhr Raum A 014 (Hauptgebäude) 20.10.2014
Gruppe 12 Übung Mo, 18.00 - 20.00 Uhr Raum M 101 (Hauptgebäude) 20.10.2014

Für weitergehende Fragen während des Übungsbetriebs haben wir wöchentlich zwei Übungs-Sprechstunden eingerichtet. Ab Mittwoch, 15.10. steht je ein Tutor im CIP-Pool zur Verfügung, erkennbar am roten "Tutor" T-Shirt.

Die Termine der Sprechstunde:

Dienstags 09:00 bis 12:00 CIP-Pool "Sibirien" Felix
Mittwochs 09:00 bis 12:00 CIP-Pool "Sibirien" Werner

Vorlesungsskript

Datum Thema Material
07.10.2014 Abschnitt 1: Organisatorisches Folien Abschnitt 1
09.10.2014 entfällt (Taschenausgabe)
14.10.2014 Abschnitt 2: Einführung Folien Abschnitt 2
16.10.2014 Abschnitt 3: Mathematische Grundlagen (Teil 1) Folien Abschnitt 3.1
21.10.2014 Abschnitt 3: Mathematische Grundlagen (Teil 2 und 3) Folien Abschnitt 3.2 und 3.3
23.10.2014 Abschnitt 3: Mathematische Grundlagen (Teil 2 und 3, Forts.)
28.10.2014 Abschnitt 4: Daten und Algorithmen (Teil 1)

Folien Abschnitt 4.1 und 4.2

30.10.2014 Abschnitt 4: Daten und Algorithmen (Teil 1 und 2, Forts.)
04.11.2014 Abschnitt 4: Daten und Algorithmen (Teil 3 und 4)

Folien Abschnitt 4.3 und 4.4

06.11.2014 Abschnitt 4: Daten und Algorithmen (Teil 3 und 4, Forts.)
11.11.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 1)

Folien Abschnitt 5.1 und 5.2

13.11.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 2)

Folien Abschnitt 5.3 und 5.4

18.11.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 3)

Folien Abschnitt 5.4 (Forts.)

20.11.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 4)

Folien Abschnitt 5.5 und 5.6

25.11.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 5)

Folien Abschnitt 5.6 (Forts.)

27.11.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 6)

Folien Abschnitt 5.6 (Forts.)

02.12.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 6 Forts.)
04.12.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung. (Teil 7, 8 und 9)

Vorläufige Folien Abschnitte 5.7, 5.8 und 5.9

09.12.2014 Abschnitt 5: Grundlagen der funktionalen und imperativen Programmierung - Zusammenfassung und Beispiele

Beispiel-Java-Code aus der Vorlesung

11.12.2014 Entfällt wegen Krankheit
16.12.2014 Abschnitt 6: Grundlagen der objektorientierten Programmierung (Teil 1 und 2)

Folien Abschnitt 6.1
Folien Abschnitt 6.2

18.12.2014 Abschnitt 6: Grundlagen der objektorientierten Programmierung (Teil 2 (Forts.) und 3)

Folien Abschnitt 6.3

23.12.2014 Abschnitt 6: Grundlagen der objektorientierten Programmierung (Teil 3, Forts.)

Folien Abschnitt 6.3 (Forts.)

08.01.2015 Frohes neues Jahr!
Abschnitt 6: Grundlagen der objektorientierten Programmierung (Teil 4 u. 5)

Folien Abschnitt 6.4
Folien Abschnitt 6.5

13.01.2015 Abschnitt 6: Grundlagen der objektorientierten Programmierung (Teil 6)

Folien Abschnitt 6.6

15.01.2015 Abschnitt 6: Grundlagen der objektorientierten Programmierung (Teil 6, Forts.)
Abschnitt 7: Weiterführende Konzepte der oo Programmierung (Teil 1)

Folien Abschnitt 7.1

20.01.2015 Abschnitt 7: Weiterführende Konzepte der oo Programmierung (Teil 2)

Folien Abschnitt 7.2

22.01.2015 Abschnitt 8: Datenstrukturen (Teil 1)

Folien Abschnitt 8.1 und 8.2

27.01.2015 Abschnitt 8: Datenstrukturen (Teil 2)
29.01.2015 Abschnitt 9: Korrektheit Imperativer Algorithmen

Folien Abschnitt 9


Übungsbetrieb

Übungsblatt  Dateien Abgabefrist Besprechung
Übungsblatt 0 HelloWorld.java Addition.java Durchschnitt.java keine Abgabe 15./17./20.10.14
Übungsblatt 1 Euklid.java relationen.txt 21.10.14 14:00 22./24./27.10.14
Übungsblatt 2 28.10.14 14:00 29./31.10./3.11.14
Übungsblatt 3 boole.txt p-adisch.txt 04.11.14 14:00 05./07./10.11.14
Übungsblatt 4 11.11.14 14:00 12./14./17.11.14
Übungsblatt 5 18.11.14 14:00 19./21./24.11.14
Übungsblatt 6 Koordinaten.java Physik.java Zustand.java inkrement.txt
Lösungsvorschlag 6-4: loesung_6-4.pdf
25.11.14 14:00 26./28.11./01.12.14
Übungsblatt 7 GlobalLokal.java GlobalLokal-Vorschlag.java Rekursion.java Rekursion-Vorschlag.java typkonversion.txt
Lösungsvorschlag 7-3: loesung_7-3.pdf
02.12.14 14:00 03./05./08.12.14
Übungsblatt 8 Wuerfeln.java Iteration.java
Lösungsvorschlag: u08-loesung-code.pdf
09.12.14 14:00 10./12./15.12.14
Übungsblatt 9 ArrayProgrammierung.java Klausurpunkte.java Medoid.java Parameteruebergabe.java Primfaktoren.java
Lösungsvorschlag: u09-loesung-code.pdf
16.12.14 14:00 17./19./22.12.14
Übungsblatt 10 Addition.java Algorithmen.java Matrix.java
Lösungsvorschlag: u10-loesung-code.pdf
23.12.14 14:00 07./09./12.01.15
Übungsblatt 11 Punkt2D.java Geschenk.java Grinch.java Haus.java Lösungsvorschlag GrinchLoesung.zip 13.01.15 14:00 14./16./19.01.15
Übungsblatt 12 Schifffahrt.java Matrix.java Vektor.java
Lösungsvorschlag: ReelleMatrix.java ReellerVektor.java
21.01.15 10:00 21./23./26.01.15
Übungsblatt 13 SortierteListe.java Fuellung.java Geschmacksrichtung.java Konditor.java Krapfen.java Krapfenkauf.java Kunde.java Marmelade.java Senf.java
Wichtig!
Kein Übungsbetrieb am Montag, 02.02.2015!
Bitte besuchen Sie eine der anderen Übungen!


Lösungsvorschlag SortierteListe-Loesung.java
27.01.15 14:00 28./30.01.15
EiP Probeklausur Keine Abgabe 03.02.15

Klausur

  • Die Klausur findet statt am 06.02.15, von 14-16 Uhr.
  • Bitte beachten Sie, dass es eine Neuregelung der Prüfungsdokumentation zur Auflistung nicht bestandener Prüfungen gibt. Achten Sie insbesondere darauf, dass eine unentschuldigte Abwesenheit von einer Klausur zu der Sie angemeldet sind als nicht bestanden gewertet wird, und nicht bestandene Prüfungsleistungen fortan in den Transkripts of Records nicht mehr ignoriert, sondern dokumentiert werden. Falls Sie sich bereits zu einer Klausur angemeldet haben, und nicht mehr teilnehmen wollen, melden Sie sich rechtzeitig von der Klausur ab. Von der EiP Klausur können Sie sich bis zum Donnerstag 05.02.2015, 23:55 Uhr abmelden. Nähere Informationen zur Neuregelung der Prüfungsdokumentation finden Sie unter http://www2.tcs.ifi.lmu.de/~letz/informationen.shtml#NeuregelungPruefungen.

Nachholklausur


Zusatzangebote

Hilfsmittel

Die Programmiersprache Java ist eine wichtige Grundlage, um der Vorlesung zu folgen. Wir verwenden die Java Standard Edition 7.0, die auch am CIP-Pool installiert ist. Falls Sie zuhause arbeiten möchten, benötigen Sie das Java Development Kit (JDK 7), das Sie unter http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html frei herunterladen können. Achtung: Sie benötigen das JDK, nicht das JRE!

Die Standardbibliothek, die mit der Standard-Edition zu Verfügung steht, ist vollständig dokumentiert unter http://docs.oracle.com/javase/7/docs/api/ .


Literatur

Es gibt zahlreiche Bücher und Online-Materialien zu Java. Wir empfehlen besonders:

  • http://java.sun.com/docs/books/tutorial/
    Eine Sammlung von Tutorials von sun. Wenn Sie keine Vorkenntnisse haben, sind sicher die Tutorials im Trail Language Basics besonders hilfreich.
  • Cornelia Heinisch, Frank Müller-Hofmann, Joachim Goll: Java als erste Programmiersprache. Vom Einsteiger zum Profi, 5. Auflage, B. G. Teubner, 2007.
  • Patrick Niemeyer, Jonathan Knudsen: Learning Java, 3rd Edition, O'Reilly 2005.
  • Guido Krüger, Thomas Stark: Handbuch der Java-Programmierung, 5. Auflage 2007, Addison-Wesley, 2007.
    Zu diesem Buch gibt es auch eine Online-Version unter http://www.javabuch.de

Nützliche Links

  • Hier finden Sie Video-Aufzeichnungen aller Vorlesungen aus dem Wintersemester 2008/09. Deren Inhalt entspricht im wesentlichen den Inhalten der aktuellen Veranstaltung.
  • Der wichtigste Link für jeden, der mit Java arbeitet, ist: http://docs.oracle.com/javase/7/docs/api/ (siehe oben).
  • Zeichenkodierung in Java folgt der Unicode-Kodierung: http://www.unicode.org
  • Um "schöne" javadoc-Kommentare zu schreiben, kann es manchmal nützlich sein, sich mit html auszukennen. Wir empfehlen zur Einarbeitung: http://de.selfhtml.org/.
  • Unter http://www.die-informatiker.net betreuen Informatik-Studenten der LMU ein Diskussionsforum für Informatik-Studenten der LMU. Ein eigenes Forum für diese Vorlesung gibt es dort unter https://www.die-informatiker.net/forum/eip1415 . Dort können Fragen von allgemeinem Interesse gestellt werden und finden oft auch eine Antwort. Für die Korrektheit der Aussagen in diesem Forum übernehmen wir im Allgemeinen selbstverständlich keine Gewähr. Wir werden aber auch versuchen, im Rahmen dieses Forums Ihre Fragen zu beantworten, und empfehlen Ihnen die Benutzung diese Forums.
  • Unter http://www.fs.lmu.de/gaf finden Sie Informationen zu der Fachschaftsvertretung für die Fächer Mathematik, Informatik und Physik, Meteorologie, Medieninformatik, Bioinformatik und entsprechende Lehramststudiengänge.

Vorhergehende Semester

WS 14/15, WS 12/13, WS 09/10, WS 08/09

blank