Einführung in die Programmierung im WS 2016/17
Aktuelles
- Die Klausureinsicht der zweiten Klausur findet am 20.04.2017, im Raum 157, Oettingenstr. 67, von 14:00 - 15:30 Uhr, statt. Bringen Sie Ihren Studentenausweis und Ihren Ausweis mit.
- Nachholklausur: Die Nachholklausur wird am Donnerstag, 06.04.2017 von 10:30-12:30 Uhr stattfinden.
Die Klausuranmeldung ist bis zum 03.04.17 freigeschaltet.
Nachnamen A - H: Raum M 218, und Nachnamen I - Z: Raum B 201, jeweils im Hauptgebäude.
Merkblatt zur Nachholklausur - Die Klausureinsicht findet am 21.03.2017, im Raum 157, Oettingenstr. 67, statt. Bringen Sie Ihren Studentenausweis und Ihren Ausweis mit. Die Uhrzeit richtet sich nach Ihrem Nachnamen:
- A-K: 9:30 - 10:30 Uhr
- L-Z: 10:30 - 11:30 Uhr.
- 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 | 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 |
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) |
(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) | |
(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 |
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 | 20.01.2017 | 23./25./27.01.17 |
Übungsblatt 12 |
List.java Entry.java
ListProgram.java | 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.
- Die Nachholklausur findet statt am 06.04.2017 von 10-12 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.