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

Einführung in die Programmierung im WS 2016/17

Aktuelles

  • Merkblatt zur Klausur
  • Achtung: Wegen einer Störung im Stromnetz findet heute (24.01.2017) KEINE Vorlesung statt.
  • Die Anmeldung zur Klausur ist in UniWorX ab 12.01.2017, 14 Uhr freigeschaltet. Letzte Möglichkeit sich zur Klausur anzumelden ist am 10.02.2017. Das Ende der Abmeldung ist am 13.02.2017. Beachten Sie, dass wenn Sie zur Vorlesung angemeldet sind, Sie sich zur Klausur nocheinmal extra anmelden müssen, damit Sie mitschreiben dürfen.
  • Die Vorlesung am 10.01.2017 wird krankheitsbedingt nicht stattfinden.
  • Korrektur Übung 08: Es gibt ein paar geänderte Details in Aufgabe 8-1 und 8-2. Bitte schauen Sie sich die korrigierte Fassung an und modifizieren Ihre Lösung entsprechend (falls nötig). Für das Sortieren dürfen Sie auch eine beliebige andere Strategie wählen. Wenn nach dem Funktionsaufruf das Array in aufsteigender Reihenfolge sortiert vorliegt, ist die Aufgabe erfüllt. Der Aufgabentext sollte nur als eine mögliche Variante verstanden werden, falls sie keine Idee haben, wie man ein Array sortieren kann. Es gibt unzählige Sortieralgorithmen, implementieren Sie eine einfache Variante. Eine vielleicht hilfreichere grafische Erklärung gibt es hier.
  • Klausur: Die Klausur wird am Donnerstag, 16.02.2017 von 13-15 Uhr im Hauptgebäude stattfinden. Die Raumaufteilung wird später bekannt gegeben.
  • Falls bei den Übungsabgaben ein Abschreiben entdeckt wird, dann werden die entsprechenden Abgaben mit 0 Punkten bewertet!
  • Wichtiges zur Abgabe von Übungen:
    • Damit Ihre Übung korrigiert und bewertet werden kann, muss Ihre Abgabe für die Korrektoren zugänglich sein. Benutzen Sie daher als Dateiformate .txt oder .pdf (oder gegebenenfalls .java).
    • .txt.docx ist keine txt-Datei
    • Machen Sie durch klare Dateinamen ersichtlich, wo welche Lösung zu finden ist. Entweder nutzen Sie eine einzige Datei pro Übung oder verteilen die Lösungen auf eine Datei pro Unteraufgabe.
    • Da in UniWorX nur eine Datei hochgeladen werden kann, müssen Sie in letztem Fall alle Einzeldateien in ein .zip-Archiv packen. Auch hier achten Sie bitte darauf, dass dieses für die Korrektoren zugänglich ist (kein Passwort, Standardprogramm zum Zippen).
    • Bearbeiten Sie die Übungen. Dies ist ein wichtiger Bestandteil dieses Kurses. In den Kleingruppenübungen soll der Lösungsweg vorgestellt und erklärt werden, nicht die Aufgabenstellung zum ersten Mal gelesen. So bleibt mehr Zeit für Fragen und hilfreiche Erläuterungen.
  • Die Vorlesung am Donnerstag, 03.11.16, findet im Raum E120, der großen Aula statt!
  • Das Übungsblatt 1 kann nun in UniWorX abgegeben werden. Dieses Blatt gibt noch keine Punkte, aber testen Sie dennoch die Abgabe, damit es bei den weiteren Übungsblättern keine Probleme gibt.
  • Die Video-Mitschnitte dieser Vorlesung sind online. Um sie ansehen zu können müssen Sie sich mit Ihrer Campus-Kennung anmelden.
  • Donnerstag, 20.10.2016 findet die Vorlesung statt!
  • Merkblatt zum Übungsablauf
  • Die Organisationsfolien zum Java Einführungskurs sind online. Die Kursseite ist ebenfalls direkt erreichbar. Er ist nicht Teil des Prüfungsmoduls "Einführung in die Programmierung".



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: Prof. Dr. Peer Kröger
  • Übungen: Janina Bleicher, Florian Richter
  • Hörerkreis: Für Studierende der Informatik, Medieninformatik, Bioinformatik und Informatik-Lehramt sowie Nebenfach Informatik mit 60 ETCS Punkten.
  • Tutoren/Korrektoren: Alexander Butz, Alona Sydorova, An Ngo Tien, Do Hwan Kim, Dominik Acker, Erik Daxberger, Florian Wahl, Georg Hagemann, Johannes Brechtmann, Katharina Ring, Lena Shylobokova, Manuel Zdovc, Max Schwarzfischer
  • Anmeldung: über UniWorX

Zeit und Ort

Gruppe Veranstaltung Zeit Ort Beginn
Vorlesung Di, 14.00 - 16.00 Uhr Raum B 101 (Hauptgebäude) 18.10.2016
Vorlesung Do, 12.00 - 14.00 Uhr Raum B 101 (Hauptgebäude) 20.10.2016
Gruppe 01 Übung Mo, 10.00 - 12.00 Uhr Raum A 017 (Hauptgebäude) 24.10.2016
Gruppe 02 Übung Mo, 12.00 - 14.00 Uhr Raum A 015 (Hauptgebäude) 24.10.2016
Gruppe 03 Übung Mo, 12.00 - 14.00 Uhr Raum A 017 (Hauptgebäude) 24.10.2016
Gruppe 04 Übung Mo, 16.00 - 18.00 Uhr Raum A 016 (Hauptgebäude) 24.10.2016
Gruppe 05 Übung Mo, 18.00 - 20.00 Uhr Raum A 016 (Hauptgebäude) 24.10.2016
Gruppe 06 Übung Mi, 10.00 - 12.00 Uhr Raum A 017 (Hauptgebäude) 26.10.2016
Gruppe 07 Übung Mi, 12.00 - 14.00 Uhr Raum A 015 (Hauptgebäude) 26.10.2016
Gruppe 08 Übung Mi, 14.00 - 16.00 Uhr Raum A 015 (Hauptgebäude) 26.10.2016
Gruppe 09 Übung Mi, 16.00 - 18.00 Uhr Raum A 017 (Hauptgebäude) 26.10.2016
Gruppe 10 Übung Mi, 18.00 - 20.00 Uhr Raum A 015 (Hauptgebäude) 26.10.2016
Gruppe 11 Übung Fr, 12.00 - 14.00 Uhr Raum A 017 (Hauptgebäude) 28.10.2016
Gruppe 12 Übung Fr, 14.00 - 16.00 Uhr Raum A 015 (Hauptgebäude) 28.10.2016
Rechnerübung optionale Übung Mo, 16.00 - 19.00 Uhr Raum LU112 Gobi (Oettingenstraße 67) 31.10.2016
Rechnerübung optionale Übung Mi, 16.00 - 19.00 Uhr Raum LU112 Gobi (Oettingenstraße 67)
Letzter Termin: 01.02.2017
02.11.2016

Vorlesungsskript

Datum Thema Material
18.10.2016 Abschnitt 1: Organisatorisches
Abschnitt 2: Einführung
Organisatorisches

Einführung
Java Einführungskurs

20.10.2016 Abschnitt 3-1: Mathematische Grundlagen(1) Mathematische Grundlagen(1)
25.10.2016 Abschnitt 3-2: Mathematische Grundlagen(1)
27.10.2016 Abschnitt 3-3: Mathematische Grundlagen(2) Mathematische Grundlagen(2)
01.11.2016 (entfällt wegen Feiertag)
03.11.2016 Daten und Algorithmen(1) Daten und Algorithmen
08.11.2016 Daten und Algorithmen(2)
Grundlagen der funktionalen Programmierung (1)
Grundl. der funkt. Programmierung (1)
10.11.2016 Grundlagen der funktionalen Programmierung (2) Grundl. der funkt. Programmierung (2)
15.11.2016 Grundlagen der funktionalen Programmierung (3) Grundl. der funkt. Programmierung (3)
17.11.2016 Grundlagen der imperativen Programmierung (1) Grundl. der imp. Programmierung (1)
22.11.2016 Grundlagen der imperativen Programmierung (2) Grundl. der imp. Programmierung (2)
24.11.2016 Grundlagen der imperativen Programmierung (3) Grundl. der imp. Programmierung (3)
29.11.2016 Grundlagen der imperativen Programmierung (4) Grundl. der imp. Programmierung (4)
01.12.2016 Arrays und Strings (1) Arrays und Strings
06.12.2016 Arrays und Strings (2)
Objektorientierte Programmierung (1)
oo-Programmierung(1)
08.12.2016 Objektorientierte Programmierung (2) oo-Programmierung(2)
13.12.2016 Objektorientierte Programmierung (3) oo-Programmierung(3)
15.12.2016 Objektorientierte Programmierung (4) oo-Programmierung(4)
20.12.2016 Weitere Konzepte der oo-Programmierung Vererbung und Interfaces
22.12.2016 Weitere Konzepte der oo-Programmierung(2)
10.01.2017 (entfällt)
12.01.2017 Weitere Konzepte der oo-Programmierung(3) Ausnahmen
17.01.2017 Weitere Konzepte der oo-Programmierung(4) Polymorphie vs Typsicherheit
19.01.2017 Datenstrukturen Datenstrukturen
24.01.2017 Datenstrukturen(2) Datenstrukturen(2)
26.01.2017 Datenstrukturen(2) Datenstrukturen(2)
31.01.2017 Datenstrukturen(3) Datenstrukturen(3)
02.02.2017 Korrektheit von imperativen Programmen (1) Korrektheit von imperativen Programmen (1)
07.02.2017 Korrektheit von imperativen Programmen (2)
09.02.2017 Wiederholung diverser Themen

Übungsbetrieb

Übungsblatt  Dateien Abgabefrist Besprechung
Übungsblatt 0 keine Abgabe 24./26./28.10.16
Übungsblatt 1 Lösungsvorschlag: Lsgsvorschlag 1-3 a) 28.10.2016 31.10./02.11./04.11.16
Übungsblatt 2 Eingabe.java
Lösungsvorschlag: Lsgsvorschlag 2-4
04.11.2016 07./09./11.11.16
Übungsblatt 3 p-adisch.txt
Lösungsvorschlag: Lsgsvorschlag 3-5
11.11.2016 14./16./18.11.16
Übungsblatt 4 FindPrimes.java
Lösungsvorschlag: Lsgsvorschlag 4-3
18.11.2016 21./23./25.11.16
Übungsblatt 5 ProgrammUe05.java
geogebra.ggb
Lösungsvorschlag: Lsgsvorschlag 5-2
25.11.2016 28.11./30.11./02.12.16
Übungsblatt 6 Lösungsvorschlag: Lsgsvorschlag 02.12.2016 05./07./09.12.16
Übungsblatt 7 Switch.java 09.12.2016 12./14./16.12.16
Übungsblatt 8 Passwort.java
Bildbearbeitung.java
u08-bild-raw.png
u08-testbild.png
Lösungsvorschlag: 8-1 8-2 8-3 8-4
16.12.2016 19./21./23.12.16
Übungsblatt 9 Lösungsvorschlag: 9-1 9-2 9-3,I 9-3,II 9-4 23.12.2016 09./11./13.01.17
Übungsblatt 10 Werkstatt.java Zufall.java Werkstattlog.txt
Lösungsvorschlag: Wichtelwerkstatt.7z
13.01.2017 16./18./20.01.17
Übungsblatt 11 Quartett.java Kampf.java

kampf-beispiel.txt
Lösungsvorschlag: DBS.zip

20.01.2017 23./25./27.01.17
Übungsblatt 12

List.java Entry.java ListProgram.java
Lösungsvorschlag: 12-1 12-2

27.01.2017 30.01./01.02./03.02.17
Tutoren-Fragestunde 06./08./10.02.2017
Wiederholungsblatt (entfällt) 09.02.2017 (statt VL)

Tutorium


Klausur

  • Die Klausur findet statt am 16.02.17, von 13-15 Uhr.



Nachholklausur


Hilfsmittel

Die Programmiersprache Java ist eine wichtige Grundlage, um der Vorlesung zu folgen. Wir verwenden die Java Standard Edition 8.0, die auch am CIP-Pool installiert ist. Falls Sie zuhause arbeiten möchten, benötigen Sie das Java Development Kit (JDK 8), das Sie unter http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.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/8/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
  • Ullenboom, Christian. Java ist auch eine Insel. Vol. 1475. Galileo Press, 2004.
    Auch hier gibt es eine Online-Version unter http://openbook.rheinwerk-verlag.de/javainsel/

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/8/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.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