Intern
    Data Science Chair

    Einführendes Programmierpraktikum (Wiinf/MCS/WiMa)

    Einführendes Programmierpraktikum

    0819120: Einführendes Programmierpraktikum [HaF]

    Prof. Dr. A. Hotho, A. Dallmann

    Teilnehmer

    Grundsätzlich kann jeder ordentliche Student der Universität Würzburg teilnehmen. Teilnehmer des Kurses sollten grundlegende Kenntnisse in Informatik und einer Programmiersprache besitzen, wie sie in den Vorlesungen Algorithmen und Datenstrukturen und Softwaretechnik vermittelt werden. Es wird dringend empfohlen, zunächst diese Vorlesungen zu besuchen, und das Praktikum im Anschluss zu absolvieren.

    Dieser Kurs ist für folgende Studiengänge verpflichtend:

    • Wirtschaftsinformatik
    • Mensch-Computer-Systeme
    • Wirtschaftsmathematik
    • Lehramt Informatik (Realschule)

    Dagegen ist für die Studiengänge

    • Informatik,
    • Mathematik
    • Technische Informatik
    • Luft- und Raumfahrtinformatik
    • Lehramt Informatik (Gymnasium)

    die Teilnahme am Java Programmierpraktikum verpflichtend.

    Für Studierende der Wirtschaftsmathematik und des Lehramt Informatik (Realschule) besteht die Wahl zwischen diesen beiden Praktika.

    Anforderungen

    Damit Sie sich, z.B. mit der unten aufgeführten Literatur, schon vor Beginn des Praktikums auf die Aufgaben vorbereiten können, geben wir Ihnen hier eine kleine, nicht notwendigerweise vollständige Liste über die wichtigsten Elemente von Java, die Sie in jedem Fall beherrschen müssen:

    • einfache Ablaufkontrollen, wie for- oder while-Schleifen, Verzweigungen mit if und else, Methodenaufrufe und Rückgabewerte
    • grundlegende Datentypen wie int, double, Integer, String oder Date
    • Benutzung von Arrays
    • Verwendung von Klassen aus der Java Collection API (Listen, Maps, Trees..)
    • Grundlagen der Objektorientierung, insbesondere
      • Attribute und der Zugriff auf sie über Getter und Setter
      • Kommunikation der Objekte über Methoden
      • Vererbung
    • Ein- und Ausgabe über die bzw. auf die Konsole
    • Einlesen und Ausgeben von Textdateien

    Außerdem sollten Sie sich in HTML/Javascript und UML so weit auskennen, wie Sie es in Softwaretechnik gelernt haben.

    Anmeldung

    Die Anmeldung erfolgt über SB@Home im Kurs:

    0819120 - Einführendes Programmierpraktikum (Java) (für Wirtschaftsinformatik und Mensch-Computer-Systeme) 

    Sie werden dann innerhalb von 24 Stunden automatisch im Wuecampus-Kurs eingeschrieben.

    Die Einschreibung in den Kurs ist bis zum 02.03.2017 möglich. Spätere Anmeldungen werden NICHT berücksichtigt.

    Im WueCampus-Kurs finden Sie auch weitere Informationen und Hilfsmittel, vor allem aber die zu bearbeitenden Aufgaben und Abgabemöglichkeiten für die Aufgaben.

    Um die e-Learning-Plattform nutzen zu können, benötigen Sie einen Novell-Account des Rechenzentrums. Beachten Sie, dass alle e-Mails der e-Learning-Plattform an Ihren zentralen Uni-Email-Account versendet werden. Dies kann nicht geändert werden, Sie können dort allerdings eine Weiterleitung einrichten. Weitere Informationen entnehmen Sie den FAQ.

    Prüfungsanmeldung

    Die Anmeldung zur Prüfung muss unbedingt bis zum  28.02.2017 über SB@Home erfolgt sein.

    Die Prüfungsanmeldung zum oben genannten Termin ist auch für Wiederholer des Praktikums verbindlich. Spätere Anmeldungen können nicht berücksichtigt werden.

    Die zu erbringende Prüfungsleistung umfasst beim Einführenden Programmierpraktikum sowohl die in den ersten Wochen zu bearbeitenden Aufgaben, als auch die Abschlussaufgabe/Klausur. Daher ist die Anmeldung zur Prüfung bereits vor den ersten Abgaben notwendig.

    Spätere Anmeldungen werden von uns NICHT akzeptiert. Ein späterer Rücktritt ist nur unter Vorlage eins ärztlichen Attests möglich.

    Einführungsveranstaltung und Tutorien

    Zum Erstellen der Aufgaben stehen Ihnen während der Praktikumszeit die CIP-Pools (A001/A002)  zur Verfügung. Beachten Sie jedoch die Belegungspläne. Sie können die Aufgaben, mit Ausnahme der Abschlussaufgabe, allerdings auch von zuhause lösen. Die Abschlussaufgabe wird im CIP-Pool unter Aufsicht gelöst, wobei eine ausreichende Anzahl Punkten in den vorangegangenen Aufgaben als  Zulassung notwendig sind.

    Vor dem Beginn des eigentlichen Praktikums wird eine Einführungsveranstaltung angeboten, in der die Regeln und der Ablauf des Praktikum besprochen werden. Außerdem wird eine kurze Übersicht über die zu bearbeitenden Aufgaben gegeben. Den Termin der Einführungsveranstaltung finden Sie in der Terminübersicht unten. 

    Sollten Sie Fragen zu den Aufgaben haben und/oder Unterstützung bei der Lösung der Aufgaben benötigen, so gibt es betreute Übungstermine im CIP-Pool des Instituts für Informatik. Aktuelle Informationen zu den Tutorien finden Sie im Wuecampus-Kurs.

    Terminübersicht

    • 17.02.2017, Einführungsveranstaltung und Beginn des Praktikums
    • 02.03.2017, Abgabe der Aufgaben aus dem ersten Block
    • 14.03.2017, Abgabe der Aufgaben aus dem zweiten Block
    • 23.03.2017, Abgabe der Aufgaben aus dem dritten Block
    • 29.03.2017, 12:00 - 18:00 Uhr, Abschlussaufgabe

    Prüfungsleistungen

    Beim Programmierpraktikum teilen sich die zu erbringenden Leistungen in zwei Teile:

    1. Bearbeiten der Praktikumsaufgaben
    2. Abschlussaufgabe

    Praktikumsaufgaben

    In den ersten Wochen erhalten Sie von uns eine Reihe von Aufgaben, die Sie sukzessive bearbeiten sollen. Die Aufgabe erfordern die eigentändige Vertiefung und praktische Anwendung der in der Vorlesung Algorithmen & Datenstrukturen erworbenen Kenntnisse. Nach der Abgabe werden die Aufgaben bewertet. Der Teil des Praktikums ist erfolgreich absolviert, wenn Sie mindestens 60% der insgesamt erreichbaren Punkte erreicht haben. Wirtschaftsmathematiker benötigen nur 40% der erreichbaren Punkte und müssen bei mindestens einer der zweiteiligen Aufgaben (aufeinander aufbauende Aufgaben) in beiden Aufgabenteilen jeweils mindestens 50% der Punkte erreicht haben.

     

    Abschlussaufgabe / Klausur

    Die Abschlussaufgabe / Klausur findet in den CIP-Pools der Informatik statt und dauert 60 Minuten. Sie erhalten einen Arbeitsplatz mit einem vorkonfigurierten Eclipse Workspace und müssen in der vorgegebenen Zeit einige kleine Aufgaben lösen. Als Hilfsmittel erhalten Sie die Java API Dokumentation, es besteht jedoch kein Zugang zum Internet. Die Abschlussaufgabe wird anschließend bewertet.

    Wir empfehlen jedem Teilnehmer sich mit der Programmierumgebung im CIP-Pool vor der Abschlussaufgabe vertraut zu machen.

     

    Wiederholer

    Zum Sommersemester 2016 gibt es Änderungen für Wiederholer des Einführenden Programmierpraktikums.

    Für Studierende, die im SS16 erstmalig in einer Fachrichtung eingeschrieben sind, in der das Modul 'Einführendes Programmierpraktikum' belegbar ist, gilt:

    Es müssen beide Teile des Programmierpraktikums:

    • Programmieraufgaben
    • Abschlussaufgabe / Klausur

    gemeinsam bestanden werden.

    Wird die Abschlussaufgabe nicht erfolgreich abgelegt, so müssen bei einer Wiederholung des Praktikums auch die Programmieraufgaben erneut erfolgreich bearbeitet werden. Eine Anrechung findet nicht statt. Bitte beachten Sie, dass diese Regel den Wechsel des Studiengangs, z.B. von Wirtschaft nach Wirtschaftsinformatik einschließt, maßgeblich ist hier das erste Semester im Studiengang Wirtschaftsinformatik!

    Für Studierende, die sich vor dem SS16 (WS15 oder früher) in eine der relevanten Fachrichtungen eingeschrieben haben, gilt weiterhin die Regel, dass die Programmieraufgaben nicht erneut bearbeitet werden müssen. Wir legen trotzdem jedem nahe die Aufgaben für eine optimale Vorbereitung auf die Abschlussaufgabe zu bearbeiten!

     

    Wichtige Hinweise

    Abgabefristen

    Sie müssen Ihre Lösungen vor der in der Aufgabenstellung gesetzten Abgabefrist eingereicht haben. Später eingereichte Lösungen werden nicht akzeptiert.

    Reichen Sie nur Lösungen ein, die Sie vorher selbst ausreichend getestet haben!

    PABS führt beim Einreichen der Abgabe verschiedene Tests durch und stellt Ihnen die Ergebnisse dar. Das Bestehen aller Tests führt aber nicht automatisch zur vollen Punktzahl. Bei der abschließenden Bewertung werden unter Umständen erweiterte Tests durchgeführt und auch ihr Stil überprüft.

    Wir weisen nochmal ausdrücklich darauf hin, dass Sie selbst für das Testen Ihrer Arbeit zuständig sind. Reichen Sie nur Arbeiten ein, von deren Richtigkeit Sie sich ausgiebig im Vorfeld durch eigene Tests überzeugt haben! Sie werden zwar von PABS möglicherweise Hilfestellungen erhalten, falls Ihre Bearbeitung fehlerhaft ist. Es ist aber zum einen prinzipiell nicht möglich maschinell festzustellen, ob ein Programm richtig arbeitet. Zum anderen besteht von Ihrer Seite kein Recht auf umfangreiche Fehlermeldungen von PABS. Falls Sie Hilfe bei der Bearbeitung benötigen, besuchen Sie bitte die Tutorien; dort helfen wir Ihnen gerne!

    Gruppenarbeit

    Die Erstellung von Abgabelösungen in Gruppenarbeit ist nicht erlaubt. Die nötige Selbstständigkeit gilt auch für alle Codefragmente! Bei Zuwiderhandlungen bekommen alle Beteiligten die jeweilige Aufgabe nicht anerkannt. Sie sind selbst dafür verantwortlich, Ihre eigenen Lösungen vor fremdem Zugriff zu schützen. Noch einmal: sollte jemand, selbst ohne Ihr Wissen, Ihre Lösung kopieren, riskieren Sie, dass Ihnen die Aufgabe nicht anerkannt wird. Wir behalten uns für solche Fälle auch vor, bereits testierte Aufgaben noch abzuerkennen. Wiederholungstäter werden vom weiteren Verlauf des Praktikums ausgeschlossen.

    Implementierung und Codierungsstil

    Der erstellte Code ist nicht nur funktional korrekt, sondern insbesondere auch klar und verständlich zu implementieren. Verwenden Sie sprechende Bezeichner und einfache Strukturen. Denken Sie immer daran, dass Code nicht nur für den Rechner bestimmt ist, sondern auch von Menschen verstanden werden soll. Versetzen Sie sich in die Lage eines Korrektors oder Komilitonen und fragen Sie sich, ob Sie Ihren eigenen Code verstehen würden, wenn Sie ihn nicht selbst geschrieben hätten. Trennen Sie funktionale Einheiten in kleinen, übersichtlichen Methoden! Trennen Sie die Methoden deutlich durch Leerzeilen. Rücken Sie den Code sinnvoll ein. Kommentieren Sie alle Stellen, deren Funktionsweise nicht absolut offensichtlich ist! Wir weisen noch einmal deutlich darauf hin, dass schlecht formatierter Code zu Punktabzug führt!

    Mit dem Werkzeug Checkstyle (checkstyle.sourceforge.net), das Sie in Eclipse als Plugin integrieren können, haben Sie die Möglichkeit maschinell prüfen zu lassen, ob Ihr Code den gängigen Java-Konventionen für gut formatierten Code gerecht wird.

    Literatur und Hilfsmittel

    Java

    Eclipse

    Bücher

    • Java ist auch eine Insel
      Christian Ullenboom, Galileo Computing, 10. Auflage (2013)
      Online-Version: JavaInsel
    • Handbuch der Java-Programmierung. Guido Krüger & Thomas Stark, Addison-Wesley, 7. Auflage (2011)
      Online-Version: Javabuch
    • ...