Current Teaching

ongoing in the current semester
Grundlagen informatischer Problemlösung - Teil 1: Algorithmische Problemlösung

Diese Veranstaltung ist Teil des Moduls Grundlagen informatischer Problemlösung.

In der Vorlesung zur „Algorithmischen Problemlösung“ erfolgt eine Einführung in Grundlagen der Informationsverarbeitung und eine erste Betrachtung des Algorithmusbegriffes. Aufbauend auf diesen Ausführungen werden informatische Methoden zur Problemlösung und Ansätze zur Modellierung von Problemen und Lösungsstrategien eingeführt.

Knowledge Graphs

Wissensgraphen sind vermutlich der aktuelle Ansatz, um verteilte Information zusammen zu bringen und zu nutzen. SNach einer kurzen Einführung werden wir uns im Seminar mit unterschiedlichen Aspekten dieses Ansatzes näher beschäftigen.

Semantic Web Technologies

Die Menge der digital verfügbaren Daten —sowohl global im Internet, als auch lokal innerhalb von Organisationen— wächst kontinuierlich. Längst ist es nicht mehr möglich sämtliche verfügbaren Daten manuell zu sichten. Suchmaschinen unterstützen Benutzer beim Auffinden relevanter Datensätze oder Dokumente. Allerdings ist die automatische Weiterverarbeitung unstrukturierter Daten, wie zum Beispiel Texten in Webseiten, nicht ohne weiteres möglich. Auch die Etablierung global einheitlicher Formate für Informationen des selben Typs ist nicht realistisch. Semantic Web Technologien ermöglichen die Anreicherung von Daten mit Bedeutung (Semantik), die auch für Maschinen verständlich ist, ohne jedoch ein global einheitliches Schema vorzugeben. Dadurch vereinfachen sie den automatisierten Austausch von Informationen und ermöglichen die automatisierte Verknüpfung von Daten (Linked Data) zur Gewinnung neuer Informationen.

Ziele der Lehrveranstaltung:

  • Beherrschen der grundlegenden Sprachen (RDF, OWL) und wichtiger Vokabulare (RDFS, SKOS) des Semantic Webs
  • Beherrschen der Anfragesprache SPARQL zur Abfrage von Daten in RDF
  • Befähigung zum Umgang mit Techniken des automatisierten Schlussfolgerns (Reasoning)
  • Befähigung zum methodischen Vorgehen bei der Datenmodellierung und Datenbereitstellung mit Hilfe von RDF
  • Befähigung zur Anwendung von Semantic Web Technologien zur Suche von Daten
  • Befähigung zur Anwendung von Semantic Web Technologien zum Nachvollziehen der Herkunft von Informationen

Aufbau:
Die Lehrveranstaltung besteht sowohl aus theoretische als auch praktische Einheiten. In (ggf. voraufgezeichneten) Vorlesungen werden die grundlegenden Technologien des Semantic Webs eingeführt. Praktische Übungen und kleine Projekte vertiefen das Verständnis der vorgestellten Technologien.

Entwicklung verteilter Anwendungen

Ein Großteil der heute entwickelten Softwareanwendungen sind verteilte Anwendungen: Mobile Apps beziehen Inhalte von Webservern, Messenger kommunizieren über zentrale Server oder Peer-To-Peer-Netzwerke miteinander, High-Performance-Cluster verteilen über Netzwerke Berechnungen auf viele Knoten, Logging-Systeme nutzen Blockchains zur dezentralen und manipulationssicheren Speicherung von Informationen. Bei der Entwicklung steht eine Vielzahl von Technologien zur Auswahl. In dieser Veranstaltung werden verschiedene Technologien praktisch ausprobiert und deren Funktionsweise, sowie Vor- und Nachteile betrachtet.

Softwareentwicklungsprojekt

Neben fachlichen Kenntnissen sind in der Informatik auch Eigenständigkeit, Teamfähigkeit, Ergebnispräsentation, Kommunikation mit Auftraggebern, sowie Zeit- und Projektmanagement wichtige Kompetenzen im Arbeitsalltag. Diese Veranstaltung bietet die Möglichkeit im Rahmen eines Projekts diese Fähigkeiten zu trainieren. Die angebotenen Projekte befassen sich mit realen Anwendungsproblemen, welche durch Unternehmen oder Forschungsgruppen bereitgestellt werden. In einer begleitenden Vorlesung werden zudem hilfreiche Methoden und Werkzeuge vorgestellt und durch Gastvorträge Einblicke in die praktische Ausgestaltung von Softwareentwicklungsprozessen in Firmen gewährt.

Projektablauf

  • Berarbeitung eines Projekts in Teams von 3 bis 4 Personen
  • Vorstellung der Projekte, Rahmenbedingungen und Inhalte in der ersten Vorlesungswoche (Anwesenheit zwingend erforderlich)
  • Vergabe der Projekte in der zweiten Vorlesungswoche (rechtzeitige Mitteilung der Projektwünsche zwingend erforderlich)
  • Anwendung des Vorgehensmodells Scrum bei der Durchführung der Projekte
  • Einführung in Scrum in der zweiten Vorlesungswoche (einmaliger Doppeltermin)
  • Durchführung von Sprint Review und Planungsmeetings im Team mit dem Projektgeber (“Product Owner”) alle zwei Wochen
  • Diskussion von Zwischenständen, Berichten der Retrospektiven, sowie Vorstellen der Projektergebnisse am Ende der Vorlesungszeit

Ziele der Lehrveranstaltung

  • Entwicklung der Eigenständigkeit und Teamfähigkeit, sowie der Kompetenzen in Präsentation, Kommunikation, Zeit- und Projektmanagement
  • Befähigung zur agilen Softwareentwicklung mit Scrum
  • Befähigung zum Umgang mit Werkzeugen für die Softwareentwicklung im Team, sowie Zeit- und Projektmanagement
  • Befähigung zur Anwendung individuel benötigter Technologien im Rahmen des Projekts

Belegunmöglichkeiten

  • “Softwareentwicklungsprojekt 1” (SWEP-1: für den Bachelor)
  • “Softwareentwicklungsprojekt 2” (SWEP-2: für den Master)
  • “Offenes Softwareentwicklungsprojekt” (EAH Jena)

Voraussetzungen

  • Die formalen Voraussetzungen Ihres Moduls (SWEP-1, SWEP-2, SOC-P: je nach Studiengang).
  • Teamfähigkeit: Das Projekt wird im Team mit verschiedenen Rollenverteilungen durchgeführt
  • Schnelle Einarbeitung in einzusetzende Technologien (je nach Projekt). Beispiele: Java, Android, NFC, HTML5, CSS, JavaScript, BPMN bzw. EPKs, Webservices, Datenbanken, Apache, etc.