Grundlagen der Informatik 2

Grundlagen der Informatik 2

Studienbereich

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

Anzahl Leistungspunkte (LP)

  • 5 (= 150 Stunden Lernzeit)

Fach

  • Grundlagen der Informatik und Programmierung

Modulbeauftragter

  • Prof. Dr. Helmut Balzert

Verwendung des Moduls

  • Bachelor-Studiengang: Web- & Medieninformatik
  • Bachelor-Studiengang: Wirtschaftsinformatik
  • Wissenschaftliche Informatik-Weiterbildung Online: Junior-Programmierer

Lernergebnisse / Kompetenzen

  • Nach der Durcharbeitung dieses Moduls sind die Studierenden 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.
  • Neben der Fähigkeit, Konzepte der Objektorientierung auf eigene Probleme anzuwenden, sind die Studierenden auch in der Lage, durch Verwendung der die generischen Konzepte ihre Programme allgemeiner zu gestalten. Die beschriebenen Konzepte zur konstruktiven und analytischen Qualitätssicherung können auf kleine Programme angewandt werden.
  • Die Grundkonzepte der Programmiersprachen C++ und C# sind den Studierenden bekannt und sie können einfache Programme in diesen Programmiersprachen in einer sprachspezifischen Entwicklungsumgebung programmieren und ausführen. Sie wissen, welche wesentlichen Unterschiede zwischen Java und C++ und C# bestehen.
  • Vorgegebene Beispiele können die Studierenden anhand zusätzlicher Anforderungen selbstständig erweitern.

Inhaltsübersicht

Inhaltsübersicht

Es wird 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

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

  • inks: 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

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#.

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++

  • Hello World mit C++
  • Klassen in C++
  • Trennung Schnittstelle - Implementierung
  • Dynamische & statische Objekte
  • Vererbung & Polymorphismus
  • Klassenattribute & Klassenoperationen
  • Java nach C++

Einführung in C#

  • Überblick über .Net
  • Überblick über C#
  • Einfache & strukturierte Typen
  • Klassen

Einführung in C#

  • Überblick über .Net
  • Überblick über C#
  • Einfache & strukturierte Typen
  • Klassen

Lehrformen/Prüfungen

Lehrformen/Prüfungen

Lehrformen

  • Die Inhalte stehen sowohl als Online-Kurs als auch als Lehrbuch zum Selbststudium zur Verfügung. Die einzelnen Konzepte werden Schritt für Schritt aufeinander aufbauend in kleinen, überschaubaren Wissensbausteinen/Kapiteln vermittelt. Besonderer Wert wird auf jeweils vollständige Beispiele gelegt, die selbst weiterentwickelt werden können. Eine Fallstudie Aufgabenplaner wird schrittweise entwickelt und zeigt anhand einer virtuellen Firma WebSoft, wie eine systematische, objektorientierte Softwareentwicklung abläuft. Eine Reihe von Animationen erläutern dynamische Vorgänge. Selbsttestaufgaben mit Musterlösungen erlauben es, die erworbenen Programmierfähigkeiten zu überprüfen.
  • Am Anfang und am Ende jedes Wissensbausteins können die bereits vorhandenen Fähigkeiten oder die im Wissensbaustein erworbenen Fähigkeiten anhand von Tests und Aufgaben überprüft werden.

Teilnahmevoraussetzungen

  • Formal: keine
  • Inhaltlich: Modul Grundlagen der Informatik 1 sollte absolviert sein.

Prüfungsformen

  • Zweistündige schriftliche Präsenzklausur, die bei Nichtbestehen zweimal wiederholt werden kann. Werden alle Aufgaben richtig gelöst, dann erhält man 100 Punkte. Um die Klausur zu bestehen sind 50 Punkte notwendig.
  • Hilfsmittel: Alle handschriftlichen oder gedruckten Unterlagen.

Voraussetzungen für die Zulassung zur Präsenzklausur

  • Folgende Voraussetzungen müssen für die Zulassung zur Präsenzklausur erfüllt sein: 70% aller Tests, die zu dem jeweiligen Modul gehören, müssen in der W3L-E-Learning-Plattform bestanden werden. Jeder Test kann beliebig oft wiederholt werden. Tests werden in der W3L-E-Learning-Plattform automatisch ausgewertet. Folgende Testformen stehen zur Verfügung: Single Choice, Multiple Choice, Fill In, Zuordnungstests, Anordnungstests, Hot-Spot-Tests. Zu den Tests gibt es Tipps und Begründungen für die jeweilige Lösung.
  • Ist die vorherige Voraussetzung erfüllt, dann wird automatisch ein Online-Abschlusstest freigeschaltet (Dauer 30 Minuten). Um den Abschlusstest zu bestehen, müssen 70 von 100 Punkten erreicht werden. Ein gutes Abschneiden bei dem Online-Abschlusstest wird mit Bonuspunkten belohnt. Wird der Abschlusstest dreimal nicht bestanden, dann ist ein Gespräch mit dem Leiter des Studiengangs und dem zugehörigen Autor erforderlich.

Literatur/Kurs

Literatur/Kurs

Literatur

  • Buch: Java: Objektorientiert programmieren - Vom objektorientierten Analysemodell bis zum objektorientierten Programm von Helmut Balzert, 3. 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

Wir beraten Sie gerne, rufen Sie uns an!

Mo. - Fr. 9:00 - 17:00 Uhr, Tel. 0231 / 61 804 - 126