Software-Projektpraktikum: Practical Internet eXperience (PIX)

Übersicht

  • SWS: 4, ECTS: 6
  • Veranstalter: Prof. Dr. Klaus Wehrle, Dr. Dirk Thißen
  • Assistenten: Johannes Krude, René Glebke
  • Studiengang: Bachelor Informatik, Lehramt Bachelor Informatik
  • Anmeldung: nur über das zentrale Platzvergabeverfahren
  • Wichtige Termine:
    • Kick-off Meeting: Termin wird in Abstimmung mit den Teilnehmenden festgelegt, voraussichtlich Anfang April
    • Wöchentliche Treffen: Termin wird in Abstimmung mit den Teilnehmenden festgelegt.
    • Abschlussdiskussionen: Ende der Vorlesungszeit oder erste Hälfte der vorlesungsfreien Zeit.

 

Inhalte des Praktikums

Netzwerke wie das Internet benötigen eine Vielzahl an Diensten und Protokollen um zu funktionieren. In diesem Praktikum lernt ihr zwei praktische Aspekte davon kennen:

  • Wie werden Computer und Systeme logisch zusammengeschaltet um ein Netz mit weltweiter Erreichbarkeit zu bilden?
  • Wie kann dieses Netz genutzt werden um Ende-Zu-Ende Verbindungen aufzubauen um zuverlässig einen Datenstrom zu übertragen?

Im ersten Teil des Praktikums bauen wir dazu zunächst ein Mini-Internet. Jede Gruppe bekommt ein eigenes Autonomes System (AS) und sorgt für Konnektivität zuerst innerhalb des eigenen AS und dann auch zu den ASen der anderen Gruppen. Ihr lernt dabei die Konfiguration von Routing Protokollen wie OSPF und BGP.

Im zweiten Teil des Praktikums implementiert ihr ein Transport-Protokoll, welches im Mini-Internet oder auch globalen Internet eingesetzt werden kann.
Ihr bekommt dazu eine Spezifikation des Transport Protokolls (ähnlich einem RFC) und implementiert dies in einer Sprache eurer Wahl. Durch eine einheitliche Spezifikation sollte es euch dann möglich sein sowohl innerhalb eurer Gruppe als auch mit den anderen Gruppen Verbindungen aufzubauen und zuverlässig Datenströme zu übertragen.

Abhängig vom generellen Fortschritt der Gruppen könnt ihr am Ende dazu noch die Möglichkeit bekommen, Bleeding Edge-Technologien in Form programmierbarer Netzwerkkomponenten kennzulernen und in eurem Mini-Internet anzuwenden.

Während der einzelnen Phasen wendet ihr bekannte Techniken aus der Software-Entwicklung wie zum Beispiel die Definition von Meilensteinen, Feedbackrunden und Versionskontrollsysteme (git) an. Mithilfe von Softwaretests und systematischer Messungen bewertet ihr zudem die Funktionalität und empirische Performance eurer Systeme unter Last und ggf. Störeinflüssen.

Bevor ihr die einzelnen Themen bearbeitet, werden wir jeweils einführende Vorträge dazu halten. Ausgewählte Themen und Ergebnisse bringt ihr den anderen Gruppen dann im Rahmen von Kurz-Präsentationen näher.

Organisatorisches
Bitte beachten: Der Kickoff-Termin wird voraussichtlich in der ersten Vorlesungswoche stattfinden; wir werden euch nach möglichen Terminen befragen, sobald die Vorlesungszeiten des SS feststehen.

Bildung von Gruppen
Das Praktikum wird von euch in Gruppen zu 3 Personen bearbeitet. Die Zuteilung über Supra erfolgt allerdings grundsätzlich personenbezogen; eine Anmeldung von Gruppen ist daher auf direktem Wege nicht möglich. Wenn ihr in Gruppen mit bekannten Personen arbeiten wollt, habt ihr bei der Anmeldung aber folgende Möglichkeit: (1) Wählt das Praktikum alle mit höchster Priorität; (2) Wählt dann einen gemeinsamen Gruppennamen und schreibt diesen für uns gut sichtbar in das Freitextfeld ("Wunschgruppe: XY"). Es ist dabei wichtig, dass ihr die höchste Priorität für das Praktikum angebt, da wir euch ansonsten systembedingt nicht auswählen können. Wir werden dann Gruppen nach Möglichkeit immer komplett auswählen. Es sind auch 2er-Gruppen oder Einzelanmeldungen möglich; ihr findet euch dann beim Kick-Off zu 3er-Gruppen zusammen. Eine Garantie, dass eine Gruppe einen Platz bekommt, gibt es allerdings nicht. Schreibt daher dazu, ob ihr auch bereit wärt, einzeln oder zu zweit einer anderen Gruppe zugewiesen zu werden. Vergesst bitte auch nicht einigermaßen aussagekräftige Motivationen in das Freitextfeld zu schreiben (diese können sich bei den Gruppenmitgliedern natürlich unterscheiden).

Was muss ich mitbringen?

Bei einer Teilnahme am Praktikum wird folgendes erwartet:

  • Anwesenheit bei den Treffen und fristgerechte Bearbeitung
  • Einhalten von Codingstandards
  • Teamfähigkeit und aktive Teilnahme in der Gruppe
  • Vorkenntnisse in Datenkommunikation sind erforderlich
  • Programmier-Kentnisse in einer höheren Programmiersprache (z.B.: C, C++, Java und/oder Python)
- Impressum | Datenschutz -