Programmierung für Mathematik, HS 13

Übersicht

Programmierung für Mathematik ist ein Pflichtmodul im ersten Studienjahr der Mathematik. Für das Bestehen der Veranstaltung werden 4 AP (ECTS) vergeben.

Die Veranstaltung vermittelt die Konzepte der Objekt-Orientierten Programmierung. Anhand der Programmiersprache Java lernen Sie grundlegende Konstrukte wie Klassen, Objekte, Zuweisungen und Kontrollstrukturen, sowie weiterführende Konzepte wie Vererbung und Polymorphismus kennen.

Nach dem erfolgreichen Abschluss dieser Einführung werden Sie mit der Kunst vertraut sein, gut strukturierte und funktionsfähige Programme gemäss den wichtigsten Prinzipien des modernen Software Engineerings zu schreiben. Sie werden die nötigen Kenntnisse erlangt haben, um sich weiterführende Details der Sprache Java und der verfügbaren Klassenbibliotheken zu erarbeiten. Ausserdem werden Sie dazu in der Lage sein, selbstständig die Verwendung von anderen Objekt-Orientierten Programmiersprachen zu erlernen.

Die Veranstaltung besteht aus einer Vorlesung, welche den Stoff vermittelt, und darauf abgestimmten Übungen zur Festigung und Vertiefung des Erlernten. Die Vorlesung deckt sich mit jener der Veranstaltung Informatik I, der Übungsbetrieb wird jedoch getrennt abgehalten und setzt Akzente auf das Verständnis von Algorithmen, sowie die Lösung von mathematischen Problemen mittels Java.

Hinweise für Studierende der Mathematik mit Nebenfach Informatik

Studierende der Mathematik, die im Nebenfach Informatik studieren, belegen   Informatik I (V+Ü) . Für diese Studierende gelten dieselben Bedingungen, wie für Studierende der Informatik: Beide Teile der Veranstaltung, d.h. sowohl 'Einführung in die Programmierung', wie auch 'Technische Grundlagen der Informatik' müssen besucht und die Zwischentests 1-2, wie auch beide Teile der Assessmentprüfung müssen erfolgreich absolviert werden.

Alle anderen Studierenden der Mathematik belegen Programmierung für Mathematik (V+Ü).

Organisatorisches

Dozierende: Prof. Dr. Harald Gall,
Assistent: Sebastian Müller
Teaching Assistant: André Meyer
Zeit und Ort der Vorlesung: Dienstag 12:15-13:45 (BIN-1-B.01), Mittwoch 12:15-14:45 (BIN 0.K.02), zusätzlich Übungsstunden während der Woche.
Sprache: Vorlesung in Deutsch, Literatur in Englisch
Modulkürzel: INFE1001
AP (ECTS): 4.0

Modulbuchung

Um sich für die Veranstaltung anzumelden und zur Prüfung zugelassen zu werden, müssen die Studierenden eine Modulbuchung vornehmen. Das Modulkürzel lautet INFE1001. Die Buchungsfristen und Details zu den Anmeldemodalitäten sind den Webseiten der Mathematisch-Naturwissenschaftlichen Fakultät zu entnehmen.

Vorkenntnisse und Voraussetzungen

Wir setzen keine Programmierkenntnisse voraus, erwarten aber dass Sie mit aktuellen Betriebsystemen (Mac OSX, Linux oder Windows XP/Vista) zumindest rudimentär umgehen können, sprich dass Ihnen das Arbeiten mit Dateien/Ordnern und dergleichen vertraut ist. Die Informatikdienste der Universität bieten entsprechende Kurse für Studierende kostenlos an.

Desweiteren erwarten wir ein gutes mathematisches Grundverständnis und Englischkenntnisse auf Maturaniveau.

Die Veranstaltung 'Programmierung für Mathematik' legt einen wichtigen Grundstein für das weitere Studium. Kenntnisse im Programmieren sind wichtig für effiziente numerische Lösungen grösserer mathematischer Probleme und werden für spätere Veranstaltungen vorausgesetzt. Von den Studierenden wird daher regelmässige Anwesenheit und aktive Mitarbeit - sowohl in der Vorlesung, als auch während den Übungen - sowie die seriöse Vorbereitung und selbständige Lektüre der in der Vorlesung angegebenen Literatur und auch von weiterführenden Materialien erwartet.

Leistungsnachweis

Der Leistungsnachweis besteht aus zwei Teilen:

  1. einem Zwischentest während dem Semester
  2. einer Schlussklausur

Zwischentest

Der Zwischentest findet während der Übungsstunde in KW 43 (23.10.2013) statt und umfasst den gesamten bis dahin in der Vorlesung besprochenen Stoff (inkl. nicht explizit vom Dozenten vermittelter Stoff aus Übungen und Pflichtliteratur). Das sind vor allem die Kapitel 1, 2, 3, 4, 5 und 7. Bitte Legi an den Test mitbringen.

Die Teilnahme am Zwischentest ist obligatorisch, das Abschneiden am Test hat jedoch keine Auswirkung auf das Bestehen/die Endnote der Veranstaltung. Als Ausnahmen für Fehlen am Test gelten nur Krankheit oder Militärdienst. Arztzeugnisse müssen binnen fünf Tagen nach dem versäumten Zwischentest-Termin, Marschbefehle vor Antritt des Dienstes den verantwortlichen Assistenten (s.o.) vorgewiesen werden. Bei unentschuldigtem Versäumen des Zwischentests gilt der Leistungsnachweis als nicht erbracht.

Schlussklausur

Die Endklausur findet am Dienstag, 17.12.2013, von 13.00 - 15.00 h im Raum BIN 2.A.10 statt. Die Klausur wird sich an den Aufgaben aus den Übungsstunden, sowie an den in der Vorlesung behandelten Beispielen orientieren. Explizit nicht prüfungsrelevant sind die folgenden Kapitel: 8 (Vererbung), 9 (Exceptions), 10 (I/O), und 12 (Generics). Zu Kapitel 8 wird es allerdings eine Bonusaufgabe geben. Die Resultate der Schlussprüfung werden voraussichtlich Anfang Februar 2014 im Modulbuchungstool publiziert.

Literatur

Informationen zu den verwendeten Lehrmitteln und zu weiterführender Literatur werden bis zum Semesterbeginn laufend aktualisiert. Die Pflichtliteratur ist im Studentenladen der Universität Zürich oder über Amazon.com erhältlich.

Die Vorlesung wird sich stark an dem folgenden Buch orientieren. Da in der Vorlesung aus Zeitgründen jedoch nicht sämtliche Themen in der erforderlichen Tiefe besprochen werden können, ist eine selbständige Lektüre der behandelten Themen unerlässlich und der Inhalt des Buches somit ebenfalls prüfungsrelevant! Das Buch enthält zudem zahlreiche Kontrollfragen inkl. Antworten, die ebenfalls selbstständig zu bearbeiten sind.

  • Walter Savitch, Frank M. Carrano, Java: An Introduction to Problem Solving & Programming, Prentice Hall, 6th Edition, February 24, 2011, ISBN-13: 978-0132162708.

Neben der oben genannten Pflichtlektüre, sei die folgende Literatur als Ergänzung/zur Vertiefung empfohlen:

  • Bert Bates und Kathy Sierra. Head First Java, O'Reilly, 2003, ISBN-13 0-596-00465-6
  • Cornelia Heinisch, Frank Müller-Hofmann und Joachim Goll, Java als erste Programmiersprache: Vom Einsteiger zum Profi, Teubner Verlag, 5. Auflage, März 2007, ISBN-13: 978-3-8351-0147-0.
  • Reinhard Schiedermeier, Programmieren mit Java, Pearson Studium, 2005, ISBN-13: 3-8273-7116-3.