l Partner l Sitemap l Anmeldung l Downloads 
Kostenlose Beratung unter 0800-2222336

Module: Grundlagen der Informatik und Programmierung

Die Module, die zu diesem Gebiet gehören, vermitteln die Grundlagen der Informatik und der Programmierung. Bei der Programmierung werden intensiv die strukturierten, die prozeduralen, die objektorientierten und die deklarativen Konzepte - vorwiegend in Java und SQL - behandelt und sollen vom Studierenden anschließend beherrscht werden.

Besonderer Wert wird auf die nebenläufige und verteilte Programmierung gelegt, da heute kaum ein Software-System ohne die Anwendung dieser Konzepte auskommt.

Folgende Module gehören zu diesem Gebiet:


Grundlagen der Informatik 1

Studienbereich
Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 1. Semester

Fach
Grundlagen der Informatik und Programmierung

Anzahl LP
5

Ziele
Es werden die allgemeinen Grundlagen und Konzepte der Programmierung vermittelt, die fast allen Programmiersprachen zugrunde liegen. Als Programmiersprache wird die weit verbreitete Sprache Java verwendet. Es werden nicht nur Wissen und Kenntnisse vermittelt, sondern die Fähigkeiten, selbst Programme zu entwickeln und zu testen. Besonderer Wert wird auf jeweils vollständige Beispiele gelegt, die selbst weiterentwickelt werden können. Eine Fallstudie OptiTravel wird schrittweise entwickelt und zeigt anhand einer virtuellen Firma WebSoft, wie eine systematische Softwareentwicklung abläuft. Die einzelnen Konzepte werden Schritt für Schritt aufeinander aufbauend in kleinen, überschaubaren Wissensbausteinen vermittelt. Als Einstieg in die Qualitätssicherung werden einfache Testverfahren und das Prinzip der Verifikation erläutert.

Nach der Durcharbeitung dieses Moduls können die Studierenden die grundlegenden Konzepte der strukturierten und prozeduralen Programmierung für die eigenständige Programmierung mit der Programmiersprache Java problemgerecht und softwaretechnisch richtig einsetzen.

Inhaltsübersicht

  • Einstieg
    • Programmieren - Programme - Compiler
    • Skriptsprachen und Interpreter
    • Die Sprache Java
    • Das erste Java-Programm
  • Basiskonzepte
    • Variablen, Konstanten, einfache Typen
    • Zuweisung, Ausdrücke
    • Lokale Variablen und Anweisungen
    • Java-Programme mit Konsoleneingabe
    • Java-Pakete: das Wichtigste
    • Java-Entwicklungsumgebungen
  • Kontrollstrukturen
    • Sequenz
    • Auswahl
    • Wiederholung
    • Schachtelung
    • Ausnahmebehandlung
  • Felder
    • Eindimensionale und mehrdimensionale Felder
    • Einfaches Sortieren
    • Iteration über Felder
  • Mehrfachverwendung
    • Prozeduren
    • Funktionen
    • Rekursion
  • Das Wichtigste zum Testen
    • Einfaches Testen
    • Regressionstest
    • Stapelverarbeitungsprogramme
    • Zur Auswahl von Testdaten
  • Verifikation
    • Zusicherungen
    • Anfangs- & Endebedingung
    • Verifikationsregeln
    • Termination von Schleifen

Verantwortlich
Prof. Dr. Helmut Balzert

Voraussetzungen & Vorkenntnisse
keine

Literatur

  • Buch: Java: Der Einstieg in die Programmierung - Strukturiert & prozedural programmieren von Helmut Balzert, 2. Auflage
  • Quick Reference Map UML 2 von Heide Balzert

Weiterführende Literatur

  • Dijkstra, Edsger Wybe; Notes on Structured Programming, in: Structured Programming, S. 1-82, London, Academic Press, 1972.
  • Futschek, G.; Programmentwicklung und Verifikation, Wien, Springer-Verlag, 1989.
    Empfehlenswertes Lehrbuch, das systematisch in die Verifikationsmethodik einführt.

Online-Kurs

  • Java: Der Einstieg in die Programmierung

Grundlagen der Informatik 2

Studienbereich
Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 2. Semester

Fach
Grundlagen der Informatik und Programmierung

Anzahl LP

5

Ziele
Hauptziel dieses Moduls ist eine systematische und schrittweise Einführung in die Konzepte der objektorientierten Programmierung. Vor der Programmierung kommt die objektorientierte Modellierung, die heute mit der grafischen Sprache UML (unified modeling language) vorgenommen wird. Daher wird neben Java die UML von Anfang an eingeführt und verwendet. Neben der Vererbung wird das Konzept der Assoziation ausführlich behandelt - das zweite Standbein der Objektorientierung. Parallel dazu werden Anwendungen entwickelt - bestehend aus drei Schichten. Generische Datentypen, konstruktive und analytische Qualitätssicherung sowie eine Fallstudie zeigen weiterführende Konzepte. Zusätzlich gibt es Einführungen in die Programmiersprachen C++ und C#.

Nach der Durcharbeitung dieses Moduls ist der Studierende in der Lage, kleine Probleme objektorientiert mithilfe der UML zu modellieren und anschließend das Modell objektorientiert zu entwerfen, in Java zu programmieren und zu testen.

Inhaltsübersicht

  • Basiskonzepte der Objektorientierung
    • Objekte
    • Klassen
    • Konstruktoren
    • Botschaften
    • Attribute in Klassen vs. Attribute in Operationen
    • Klassenattribute und -operationen
  • Klassen benutzen und bereitstellen
    • Pakete
    • Vorhandene Klassen benutzen
    • Hüllklassen für einfache Typen
    • Ausnahmebehandlung mit throw
    • Die String-Klassen von Java
    • Die Klassen Calendar und DateFormat
  • Assoziationen
    • Links: Beziehungen zwischen Objekten
    • Assoziationen: Beziehungen zwischen Klassen
    • Assoziationsnamen und Rollen
    • Assoziationsklassen – wenn die Assoziation zur Klasse wird
    • Navigierbarkeit
    • Container
    • Das Singleton-Muster
  • Einfachvererbung
    • Generalisieren – entdecke Gemeinsamkeiten
    • Klassen spezialisieren und Methoden redefinieren
    • Identität vs. Gleichheit
    • Klonen vs. Kopieren
    • Die Vererbungsregeln
    • Polymorphismus
  • Mehrfachvererbung und Schnittstellen
    • Leere Implementierung von Schnittstellen
    • Schnittstellen und Vererbung
    • Konstanten in Schnittstellen
  • Persistenz und Datenhaltung
    • Dateien sequenziell lesen und schreiben
    • Eine einfache Indexverwaltung
    • Drei-Schichten-Architektur
    • Die Serialisierung von Objekten
    • Vernetzte Objekte serialisieren
  • Generische Datentypen
    • Einfache Klassenschablonen
    • Typeinschränkung bei generischen Datentypen
    • Einfache Methodenschablonen
  • Konstruktive Qualitätssicherung
    • Bindung von Methoden
    • Bindung von Klassen
    • Kopplung von Methoden
    • Kopplung von Klassen
    • Refactoring von Klassen und Methoden
  • Analytische Qualitätssicherung
    • Testen - Terminologie und Konzepte
    • Dynamische Testverfahren
    • Funktionale Äquivalenzklassenbildung
    • Grenzwertanalyse und Test spezieller Werte
    • Testgetriebenes Programmieren
  • Von OOA zu OOP anhand der Fallstudie Aufgabenplaner
  • Einführung in C++
  • Einführung in C#

Verantwortlich
Prof. Dr. Helmut Balzert

Voraussetzungen & Vorkenntnisse

  • Modul Grundlagen der Informatik 1


Literatur

  • Buch: Java: Objektorientiert programmieren - Vom objektorientierten Analysemodell bis zum objektorientierten Programm von Helmut Balzert, 2. Auflage


Weiterführende Literatur

  • Bloch, Joshua; Effective Java-Programming Language Guide, 11. Auflage, Boston, Addison-Wesley, 2005
    Ausgezeichnetes Buch, das zeigt, bei welchen Java-Sprachkonstrukten welche Alternativen welche Vor- und Nachteile haben.
  • Fowler, Martin; Refactoring - Improving the Design of Existing Code, 17. Auflage, Boston, Addison-Wesley, 2005
    Ausgezeichnetes Buch, das zeigt, wie vorhandene Programme systematisch überarbeitet und verbessert werden können.


Online-Kurs

Java: Objektorientiert programmieren


Grundlagen der Informatik 3

Studienbereich
Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 3. Semester

Fach
Grundlagen der Informatik und Programmierung

Anzahl LP
5

Ziele
Aufbauend auf den Kenntnissen zur strukturierten, prozeduralen und objektorientierten Programmierung in Java wird der Studierende in diesem Modul in die Lage versetzt, vollständige Anwendungen von der Benutzungsoberfläche über das Fachkonzept bis hin zur Datenbankanbindung zu programmieren. Es werden Fallstudien zu drei Anwendungsdomänen präsentiert, so dass der Studierende anschließend in der Lage ist, eigene, analoge Anwendungen für die jeweilige Anwendungsdomäne zu entwickeln. Außerdem sind die Studierenden in der Lage, mit der IDE Eclipse umzugehen.

Inhaltsübersicht

  • GUIs - der Schnelleinstieg
    • Testen von GUIs
    • GUI-Grafikeditoren
    • Applets - Java im Webbrowser
    • Grafikprogrammierung - eine Einführung
    • Ereignisverarbeitung im Detail
    • GUI-Gestaltung - Theorie und Praxis
  • Forward- und Reverse-Engineering
    • Persistenz mit RDB
    • Exkurs: Nebenläufigkeit
    • Betriebswirtschaftliche Anwendungen
  • Exkurs: XML
    • Technische Anwendungen
    • Intelligente Spiele

Verantwortlich
Prof. Dr. Helmut Balzert / Prof. Dr. Jürgen Priemer

Voraussetzungen & Vorkenntnisse
Modul Grundlagen der Informatik 1

Literatur

  • Buch: Java 6: Java-Anwendungen programmieren - Von der GUI-Programmierung bis zur Datenbank-anbindung von Helmut Balzert und Jürgen Priemer


Weiterführende Literatur

  • Ullenborn, Christian; Java ist auch eine Insel, Galileo Computing, Bonn, 2006, 5. Auflage;
    Umfassendes Nachschlagewerk zu Java


Online-Kurs

  • Java 6: Anwendungen programmieren

Grundlagen der Informatik 4

Studienbereich
Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 4. Semester

Fach

Grundlagen der Informatik und Programmierung

Anzahl LP

5

Ziele

Aufbauend auf den Kenntnissen zur strukturierten und objektorientierten Programmierung in Java wird der Studierende in diesem Modul in die Lage versetzt, die wichtigsten Algorithmen und Datenstrukturen kennenzulernen und in eigenen Programmen einzusetzen.

Inhaltsübersicht

  • Algorithmen und Datenstrukturen
    • Komplexität von Algorithmen
      • Definition der Komplexität von Algorithmen
      • Empirische Bestimmung der Komplexität eines Algorithmus
    • Rekursion
      • Definition einfacher Rekursion
      • Umsetzen einer Syntaxdefinition in eine rekursive Methode
      • Das Prinzip »Teile und Herrsche«
      • Fallstricke bei rekursiven Methoden
    • Listen
      • Spezifikation einer Liste
      • Arraylisten
      • Verkettete Listen
      • Iteratoren
      • Listen betreffende Schnittstellen und Klassen der Javaplattform
    • Die Datenstrukturen Lifo und Fifo
      • Stack
      • Warteschlangen
    • Heap und Prioritätswarteschlangen
      • Heap
      • Heapsort
      • Prioritätswarteschlangen
    • Binäre Suchbäume
      • Spezifikation und Implementierung binärer Suchbäume
      • Ausgeglichene binäre Suchbäume
      • Die Klassen TreeMap und TreeSet der Javaplattform
    • Hashing
      • Idee des Hashing
      • Offenes Hashing
      • Geschlossenes Hashing
      • Weitere Hashverfahren
      • Die Klassen HashMap und HashSet der Javaplattform
      • Weitere »Hash-Klassen« der Javaplattform

Verantwortlich
Prof. Dr. Manfred Meyer

Voraussetzungen & Vorkenntnisse

  • Modul Grundlagen der Informatik 3
  • Modul SQL und relationale Datenbanken

Literatur

  • Buch: Java 6: Algorithmen und Datenstrukturen von Manfred Meyer

Weiterführende Literatur

  • Cormen T., Leiserson C., Rivest R., Introduction to Algorithms, Cambridge: The MIT Press 1990, 1028 S.
    Ausführliche Behandlung der Algorithmik, der Theorie der Algorithmen und verschiedener Algorithmengebiete.
  • Harel D., Algorithmics - The Spirit of Computing, Wokingham: Addison-Wesley,1987, 425 S.
    Ausführliche Behandlung der Algorithmik und der Theorie der Algorithmen.
  • Manber U., Introduction to Algorithms - A Creative Approach, Reading: Addison-Wesley 1989, 478 S.     
    Ausführliche Behandlung der Algorithmik und der Theorie der Algorithmen.
  • Ottmann T. (Hrsg.), Prinzipien des Algorithmenentwurfs, Heidelberg: Spektrum Akademischer Verlag 1998, 228 S. mit 2 CD-ROMs.     
    Multimedial aufbereitete Themen aus dem Gebiet Algorithmen und Datenstrukturen.
  • Ottmann T., Widmayer P., Algorithmen und Datenstrukturen, Heidelberg: Spektrum Akademischer Verlag, 3. Auflage 1996, 696 S.     
    Behandlung folgender Algorithmengebiete: Sortieren, Suchen, Hashverfahren, Bäume, Manipulation von Mengen, geometrische Algorithmen, Graphenalgorithmen.
  • Sedgewick R., Algorithms, Reading: Addison-Wesley 1989, 2nd edition, 660 S.
    Behandlung folgender Algorithmengebiete: Sortieren, Suchen, Verarbeitung von Zeichenketten, geometrische Algorithmen, Graphenalgorithmen, mathematische Algorithmen.

Online-Kurs

  • Java 6: Algorithmen und Datenstrukturen

SQL und relationale Datenbanken

Studienbereich
Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 2. Semester

Fach
Grundlagen der Informatik und Programmierung

Anzahl LP
5

Ziele
Ausgehend von den Konzepten der deklarativen Programmiersprache SQL (Structured Query Language) werden die Konzepte relationaler Datenbanken vermittelt. Der Studierende ist in der Lage mit Hilfe der UML (Unified Modeling Language) Datenbankschemata unter Berücksichtigung der Normalformen zu entwerfen und mit Hilfe von SQL zu realisieren.

Inhaltsübersicht

  • SQL-Grundkonzepte
    • Datendarstellung in Tabellen
    • Projektion
    • Selektion
    • Erstellen von Tabellen
    • Einfügen von Daten in Tabellen
    • Anwendung bei einer ACCESS-Datenbank
  • Erstellen und Ändern von Datenbanken
    • Anlegen von Tabellen
    • Datentypen für Attribute
    • Füllen von Tabellen
  • Durchsuchen einzelner Tabellen - die SELECT-Anweisung
    • Herkunft der Daten und Anzeige der Ergebnisspalten
    • Selektionsbedingungen
    • Vergleichsausdrücke, logische Ausdrücke, spezielle Operatoren, Spaltenoperationen
    • Gruppierung von Datensätzen
    • Sortierung
  • Manipulation von Daten und Strukturen
    • Ändern von Tabellen
    • Löschen von Daten
    • Löschen von Tabellen
  • Entwurf von Datenbankanwendungen
    • Grundlagen relationaler Algebra und Anwendung in SQL
      • Projektion aus Sicht relationaler Algebra
      • Selektion aus Sicht relationaler Algebra
    • Selektionen über mehrere Tabellen
      • Kreuzprodukt
      • JOINS (Beziehungen zwischen Tabellen, Anwendung von Fremdschlüsseln)
      • INNER JOINS
      • OUTER JOINS
    • Verschachtelung von Selektionen
      • SUBSELECTS
      • Unterabfragen einschließlich ALL, ANY, SOME, EXISTS, IN
    • Erstellung und Handhabung von VIEWS
      • Viewdefinition
      • Views für mehrere Tabellen
    • Transaktionskonzept
      • COMMIT, ROLLBACK
    • Umgang mit Indices
      • CREATE INDEX
      • Praktische Anwendung von Indices
    • Stored Procedures, Tigger und Cursorprinzip
    • Anwendung von Benutzerberechtigungen
      • GRANT und REVOKE

Verantwortlich
Prof. Dr. Uwe Klug

Voraussetzungen & Vorkenntnisse

  • Modul Grundlagen der Informatik 1


Literatur

  • Buch: SQL: Der Einstieg in die deklarative Programmierung von Uwe Klug
  • Buch: Datenbank-Anwendungen entwerfen und programmieren von Uwe Klug
  • Quick Reference Map: SQL von Helmut Balzert


Ergänzende Literatur

  • Helen Borrie, The Firebird Book Berkeley 2004
  • Chris Date, SQL-Der Standard, Addison Wesley Longman 1998
  • Michael Kofler, MySQL - Einführung, Programmierung, Referenz, Addison Wesley 2003
  • R. Elmasri, S.B. Navathe; Grundlagen von Datenbanksystemen, Pearson Studium, 2002
  • Kevin E. Kline, SQL in a Nutshell, O'Reilly, 2005
  • Georg Lausen, Datenbanken, Spektrum Akademischer Verlag, 2005
  • F.D. Rolland, Datenbanksysteme, Pearson Studium 2003


Online-Kurse

  • SQL
  • Datenbank-Anwendungen entwerfen und programmieren

Nichtsequenzielle Programmierung

Studienbereich
Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 3. Semester

Fach
Grundlagen der Informatik und Programmierung

Anzahl LP
5

Ziele
Es werden die Konzepte der nebenläufigen und verteilten Programmierung vorgestellt. Die Konzepte werden für konkrete Beispiele in der UML 2 modelliert und in Java realisiert und getestet. Besonderer Wert wird auf ein vertieftes Verständnis gelegt. Daher werden die Hintergründe der nebenläufigen und verteilten Programmierung beschrieben. Der Studierende ist anschließend in der Lage eigene nichtsequenzielle Programme zu entwerfen und in Java zu implementieren.

Inhaltsübersicht

  • Nebenläufigkeit: Schnelleinstieg
  • Multi-threaded-Anwendungen in Java
  • Synchronisation und Verklemmungen
  • Swing-GUIs und Nebenläufigkeit
  • Klassen für nebenläufige Anwendungen in Java 5
  • UML-Modellierung nebenläufiger und verteilter Anwendungen
  • OO-Konzepte für verteilte Anwendungen
  • Java-RMI in der Praxis
  • Entwurfsmuster für verteilte OO-Anwendungen
  • Fallstudie: verteiltes Lagerverwaltungssystem

Verantwortlich
Dr. Peter Ziesche / Dr. Doga Arinir

Voraussetzungen & Vorkenntnisse

  • Modul Grundlagen der Informatik 2


Literatur

  • Buch: Nebenläufige & verteilte Programmierung - Konzepte, UML 2-Modellierung, Realisierung mit Java 12.4 & Java 5 von Peter Ziesche


Weiterführende Literatur

  • Grosso, William; Java RMI, 1, O’Reilly, 2002.
  • Lea, Doug; Concurrent Programming in Java, 2, Addison-Wesley,1999.
  • Silberschatz, Abraham; Galvin, Peter; Gagne, Greg; Operation System Concepts, 6. Auflage, John Wiley & Sons, 2002


Online-Kurs

  • Nebenläufige & verteilte Programmierung