Hochschule Reutlingen
Fakultät Informatik
Studiengang Medien- und Kommunikationsinformatik Bachelor

Informatik 3

mki-b3 - I3 - 1041

Kurzfassung

Dozent Prof. Dr. Karlheinz Hug
Kurzbeschreibung Dritter Teil einer Einführung in die praktische Informatik; befasst sich mit Konzepten und Entwürfen objektorientierter Programmiersprachen sowie Techniken der sequenziellen und nebenläufigen Programmierung.
Vorkenntnisse Informatik 1 mit Praktikum, Informatik 2 mit Praktikum, sowie Theoretische Grundlagen 1 und Theoretische Grundlagen 2. Praktisches Üben der Lehrinhalte in Informatik 3 Praktikum.

Organisatorisches aus der StuPrO

Status Pflichtfach im 3. Semester.
Dauer 4 SWS, 45 reelle Gesamtstunden.
Prüfung Hausarbeit (Vorbereiten eines Kurzvortrags in der Vorlesung) und schriftliche Klausur von 2 Stunden Dauer am Ende des 3. Semesters.
Kreditpunkte 5 ECTS, 3 CPS.

Inhaltlicher Hauptteil

Bezug zu Zielen des Studiengangs Informatik 3 trägt zu den Gesamtlehrzielen von mki bei:
  • Solide Informatik-Grundlagen: Die Studierenden lernen Konzepte und Entwürfe praxisrelevanter objektorientierter Programmiersprachen sowie Probleme nebenläufiger Programmierung kennen.
  • Umfassende Methodenkompetenz: Die Studierenden lernen, sich systematisch neue Programmiersprachen anzueignen. Sie lernen grundlegende Algorithmen und Datenstrukturen sowie verschiedene sequenzielle und nebenläufige Programmiertechniken kennen.
Lernziele Der Hauptzweck von Informatik 1, 2 und 3 ist, Grundlagen der praktischen Informatik und zentrale Ideen imperativer Programmierung zu vermitteln, um die Studierenden auf professionelles, industrielles Entwickeln von qualitätvoller Software für multimediale und verteilte Anwendungen vorzubereiten. Die Studierenden lernen grundlegende sequenzielle Programmiertechniken, Algorithmen und Datenstrukturen in mehreren Programmiersprachen formuliert kennen. Sie lernen, von einzelnen Programmiersprachen zu abstrahieren, wesentliche programmiersprachliche Konzepte zu erfassen und verschiedene Entwürfe von Programmiersprachen zu beurteilen. Sie erhalten einen Einblick in die reichhaltige Welt der nebenläufigen Programmierung und lernen Entwurfsmuster für Lösungen von Synchronisations- und Kommunikationsproblemen kennen.
Inhalte Dieser dritte Teil einer dreiteiligen Einführung in die Informatik baut auf den ersten beiden Teilen auf und gliedert sich in zwei Hälften. Die erste Hälfte befasst sich mit Techniken der sequenziellen Programmierung und Konzepten und Entwürfen objektorientierter Programmiersprachen, die zweite mit Problemen, Konzepten und Lösungsmustern nebenläufiger Programmierung.

In der ersten Hälfte werden die statisch typisierten objektorientierten Mehrzwecksprachen Eiffel, C++, Java und C# näher betrachtet. Die letzten drei liegen in einer Entwicklungslinie, was den Lernaufwand begrenzt. Anhand von Beispielprogrammen, die zugleich wichtige Algorithmen, Datenstrukturen und Programmiertechniken vorstellen, werden gemeinsame, wesentliche, oft schon von der ersten Lehrsprache bekannte Sprachkonzepte erklärt. Darüber hinaus werden weitere Sprachkonzepte wie Generizität, mehrfaches und wiederholtes Erben und Ausnahmebehandlung behandelt.

Die zweite Hälfte führt in das Thema Nebenläufigkeit ein. Grundlegende Probleme und Lösungsansätze der nebenläufigen Programmierung werden vorgestellt. Exemplarisch wird Javas Unterstützung nebenläufiger Programmierung durch Threads und Synchronisations- und Kommunikationskonstrukte behandelt.

Lehrmethoden Vorlesung mit begleitendem Praktikum (siehe Informatik 3 Praktikum). Das Lehrmaterial besteht aus einem Skript (Teil 1 in Buch-, Teil 2 in Folienform) sowie verschiedenen Merk- und Übungsblättern. Es wird in gedruckter und/oder elektronischer Form verteilt. Seminaristischer Unterricht mit Tafelanschrieb und PC-Beamer-Projektion.

Die Studierenden können in der Vorlesung kurze Vorträge halten, die betreut und als Teil der Prüfungsleistung bewertet werden. Dieses Angebot soll den Studierenden ermöglichen, sich früh Vortragstechniken anzueignen. Mehr dazu im Merkblatt zu den Vorträgen.

Lehrmaterial
Literatur Ian Joyner: Objects Unencapsulated. Java, Eiffel, and C++?? Prentice Hall, Upper Saddle River (1999) 386 S.

Robert W. Sebesta: Concepts of Programming Languages Pearson Educa­tion Inc., Boston (2006) 7th edition, 724 S.

Ravi Sethi: Programming Languages. Concepts and Constructs Addison-Wesley (1997) 2nd edition, 640 S.

Vertiefende Literatur Siehe die Literaturverzeichnisse in beiden Teilen des Skripts.

Literatur zu Vorträgen

Wolfgang Dehnhardt: Scriptsprachen für dynamische Webauftritte. JavaScript, VBScript, ASP, Perl, PHP, XML Hanser, München (2001) 452 S.

Interessante Links