Intern
    Lehrstuhl für Künstliche Intelligenz und Wissenssysteme

    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

    Dagegen ist für die Studiengänge

    • Informatik,
    • Mathematik
    • Technische Informatik
    • Luft- und Raumfahrtinformatik
    • Lehramt Informatik

    die Teilnahme am Java Programmierpraktikum verpflichtend.

    Für Studierende der Wirtschaftsmathematik besteht die Wahl zwischen diesen beiden Praktika.

    Studierenden mit Nebenfach Informatik (z.B. Physikern) wird empfohlen das die Vorlesung Einführung in die Informatik ergänzende Praktikum zu besuchen, falls die jeweilige Studienordnung das zulässt.

    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 über SB@Home ist ab sofort freigeschaltet!

    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 15.02.2016 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

    Sie müssen sich unbedingt bis zum 22.02.2016 verbindlich über SB@Home zur Prüfung anmelden.

    Die Prüfungsanmeldung zum oben genannten Termin ist auch für Wiederholer des Praktikums verbindlich.

    Eine spätere Anmeldung zur Prüfung ist nicht möglich. Bei versäumter Anmeldung können Sie das Praktikum erst im nächsten Semester absolvieren. Es ist auch nicht möglich Teilleistungen anzuerkennen.

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

    Einführungsveranstaltung und Tutorien

    Zum Erstellen der Aufgaben steht 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 Abschlußaufgabe, 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. Der Termin der Einführungsveranstaltung wird noch im Wuecampus-Kurs bekannt gegeben.

    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. Diese finden voraussichtlich Dienstag und Donnerstag von 10.00 Uhr bis 12.00 Uhr statt. Aktuelle Informationen zu den Tutorien finden Sie im Wuecampus-Kurs.

    Termine

    15.02.1612:00 - Ausgabe der Aufgaben
    29.02.1612:00 - Abgabe 1. Aufgabenblock
    09.03.1612:00 - Abgabe 2. Aufgabenblock
    21.03.1612:00 - Abgabe 3. Aufgabenblock
    29.03.16Abschlussaufgabe

    Abschlussaufgabe

    In der Abschlussaufgabe werden Sie in einer vorkonfigurierten Programmierumgebung im CIP-Pool des Insituts für Informatik kleine, eher einfache Aufgaben in Java implementieren. Ziel der Abschlussaufgabe ist es, diejenigen herauszufiltern, welche die Aufgaben des Programmierpraktikums sicher nicht selbst implementiert haben, sondern sich (z.B. von Dritten) unerlaubt haben helfen lassen. Weil bei der Abschlussaufgabe kein Internetzugang besteht, sondern nur eine lokale Kopie der Java-API zur Verfügung steht, sollten Sie sich schnell angewöhnen, diese in ihre Arbeit zu integrieren.

    Um an der Abschlussaufgabe teilnehmen zu können müssen mindestens 60% der möglichen Punkte in den Aufgaben erreicht werden.

    Für Studierende der Wirtschaftsmathematik sind 40% der erreichbaren Punkte ausreichend. Es muss allerdings mindestens eine zweiteilige Aufgabe erfolgreich bearbeitet werden.

    Da die Prüfungsleistung im Lösen aller Aufgaben besteht, müssen Studenten die bereits in einem vorherigen Semester an der Abschlussaufgabe teilgenommen, diese aber nicht bestanden haben, die Aufgaben nicht erneut abgeben. Die Leistungen aus dem Vorjahr werden in diesem Fall von uns anerkannt.

    Eine Anmeldung zur Prüfung (siehe oben) ist auch für Wiederholer rechtzeitig notwendig.

    Im Wuecampus-Kurs wird zeitnah ein Fragebogen für Wiederholer freigeschaltet über den für die Organisation der Abschlussaufgabe wichtige Daten abgefragt werden.

    Wir empfehlen allen Wiederholern dringend die Aufgaben 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. Fehlerfreie Durchläufe führen in den meisten Fällen zur vollen Punktzahl für die abgegebene Aufgabe. Stellt PABS jedoch Mängel in Ihrer Bearbeitung fest, werden Ihnen bei der anschließenden Korrektur je nach schwere Punkte abgezogen. In jedem Fall wird Ihre Abgabe nach der maschinellen Überprüfung noch durch Korrektoren bewertet. Falls notwendig werden wir dann auch Abzüge für schlechten Codestil machen (siehe unten)!

    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
    • ...