Intern
    Lehrstuhl für Künstliche Intelligenz und Wissenssysteme

    Programmierpraktikum Wirtschaftsinformatik / MCS (Frühjahr)

    Java Programmierpraktikum für Wirtschaftsinformatiker und Mensch-Computer-Systeme

    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 das die jeweilige Studienordnung 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 erfolgt über SB@Home im Kurs:

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

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

    Die Anmeldung zum Programmierpraktikum ist bis zum 14.02.2014 möglich. Getätigte Anmeldungen sind verbindlich. Teilnehmer, die keine Aufgaben abgeben oder während des Praktikums aussteigen werden als nicht bestanden gewertet.

    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.

    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 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 Montag und Donnerstag von 10.00 Uhr bis 12:00 Uhr statt. Aktuelle Informationen zu den Tutorien finden Sie im Wuecampus-Kurs.

    Termine

    Das Praktikum wird wie folgt ablaufen:

    14.02.14Ausgabe der Aufgaben
    07.03.14Abgabe 1. Aufgabenblock
    14.03.14Abgabe 2. Aufgabenblock
    21.03.14Abgabe 3. Aufgabenblock
    28.03.14Abschlussaufgabe

    Abschlussprüfung

     In der Abschlussprüfung werden Sie in einer vorkonfigurierten Programmierumgebung im CIP-Pool des Insituts für Informatik eine kleine, eher einfache Aufgabe in Java implementieren. Ziel der Abschlussprüfung 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 Abschlussprüfung 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 Abschlussprüfung 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.

    Studenten die bereits in einem vorherigen Semester an der Abschlussaufgabe teilgenommen, diese aber nicht bestanden haben, müssen die Aufgaben nicht erneut abgeben.

    Es reicht eine E-Mail an dallmann@informatik.uni-wuerzburg.de mit Matrikelnr., Name, Vorname, Studienfach und dem Semester der letzten Teilnahme für die erneute Anmeldung zur Abschlussaufgabe. Es wird allerdings dringend empfohlen zumindest einen Teil der Aufgaben zu bearbeiten. Melden Sie sich außerdem unbedingt für das Programmierpraktikum an, damit Sie aktuelle Informationen bekommen.

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

    Abschlußaufgabe des letzten Semesters