 |
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 das »Mobile Computing« gelegt, da in Zukunft kaum ein Softwaresystem ohne mobile Zugriffe auskommen wird.
Folgende Module gehören zu diesem Gebiet:
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. Ergänzend werden die Grundkonzepte der Programmiersprache C behandelt.
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
- Programmiersprache C
- Einfache Typen
- Einfache Ein- und Ausgabe
- Kontrollstrukturen & Zusicherungen
- Zeiger und Adressen
- Felder
- C-Zeichenketten
- Strukturen
- Dynamische Daten
- Modularität
Verantwortlich Prof. Dr. Helmut Balzert
Voraussetzungen & Vorkenntnisse keine
Literatur - Buch: Java: Der Einstieg in die Programmierung - Strukturiert & prozedural programmieren von Helmut Balzert, 3. 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
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++
- 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
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
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
- Umgang mit Indices
- CREATE INDEX
- Praktische Anwendung von Indices
- Stored Procedures, Tigger und Cursorprinzip
- Anwendung von Benutzerberechtigungen
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
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 Modul Grundlagen der Informatik 2
Literatur - Buch: Java 6: Java-Anwendungen programmieren - Von der GUI-Programmierung bis zur Datenbankanbindung von Helmut Balzert und Jürgen Priemer, 2. Auflage
Weiterführende Literatur - Ullenborn, Christian; Java ist auch eine Insel, Galileo Computing, Bonn, 2010, 9. Auflage;
Umfassendes Nachschlagewerk zu Java
Online-Kurs - Java 6: Anwendungen programmieren
Studienbereich Bachelor-Studienabschnitt, Pflichtfach, Empfohlenes Semester: 4. Semester
Fach Grundlagen der Informatik und Programmierung
Anzahl LP 5
Ziele Mobile Systeme befinden sich weltweit auf dem Vormarsch und sind aus unserem täglichen Leben kaum noch wegzudenken. Der Terminkalender auf dem PocketPC, das drahtlose Surfen im Internet mit dem Laptop oder der Vokabeltrainer auf dem Handy sind nur einige Beispielanwendungen für den sinnvollen Einsatz mobiler Kommunikationstechniken. Ziel dieses Moduls ist es, den Studierenden in die Technik solcher Systeme einzuführen. Dies geschieht sowohl mit Blick auf die Hardware als auch durch eine Einführung in die zugrunde liegenden Betriebssysteme solcher Geräte. Neben der Technik der Kommunikation liegt ein Schwerpunkt des Moduls auf der Programmierung von mobilen Systemen. Diese wird anhand von ausführlichen Fallbeispielen anschaulich und nachvollziehbar dargestellt.
Nach erfolgreichem Abschluss dieses Moduls sind Sie in der Lage, die verschiedenen Mobile-Computing-Plattformen zu bewerten und die passende Plattform für spezifische Anwendungsfälle auszuwählen. Sie können aktuelle Entwicklungen des Mobile Computing im geschichtlichen Kontext einsortieren und zukünftige Trends und Möglichkeiten beurteilen. Sie kennen die technischen Voraussetzungen des Mobile Computing und die aktuelle Hardware von Mobile-Computing-Plattformen und wissen mit den damit verbundenen Implikationen auf die Programmierung von mobilen Geräten umzugehen. Sie können die Besonderheiten von mobilen Endgeräten zu Ihrem Vorteil nutzen und deren Beschränkungen minimieren. Sie wissen, welche Sicherheitsrisiken mit Mobile Computing verbunden sind und wie man sie vermeidet. Ausserdem haben Sie gelernt, mobile Applikationen für die Mobile-Computing-Plattform Android zu programmieren und insbesondere Location-Based-Services für diese Plattform zu entwickeln.
Inhaltsübersicht - Einführung
- Was versteht man unter Mobile Computing?
- Geräteklassen
- Laptop
- Tablet PC
- Handys
- Personal Digital Assistant (PDA)
- Palm
- Pocket PC
- Blackberry
- Smartphone
- Hardware
- Prozessor
- Speicher
- RAM
- ROM
- Speicherkarten
- Festplatten
- Display
- Grafik
- Eingabegeräte
- Betriebsdauer (Akku/Brennstoffzelle)
- Software
- Betriebssysteme
- Windows CE
- Windows XP Embedded
- Palm OS
- Symbian OS
- Linux
- Anwendungen
- Kommunikation
- Technik
- Universal Mobile Telecommunications System (UMTS)
- General Packet Radio Service (GPRS)
- Global System for Mobile Communication (GSM)
- Wireless Local Area Network (WLAN)
- High Speed Circuit Switched Data (HSCSD)
- Bluetooth
- Infrarot
- Protokolle
- Wireless Application Protocol (WAP)
- Verwendungszwecke
- Sicherheit
- Programmierung
- Programmiersprachen
- SDKs
- Programmier- und Fallbeispiele
- Hallo Welt!
- Handy-Spiel
- Mobiles Betriebliches Informationssystem
Verantwortlich Prof. Dr. Klaus Zeppenfeld, Dipl.-Ing. Tilman Bollmann
Voraussetzungen & Vorkenntnisse Modul Grundlagen der Informatik 2 Modul Web-Programmierung (kann parallel belegt werden)
Literatur - Buch: Mobile Computing von Klaus Zeppenfeld und Tilman Bollmann
Weiterführende Literatur - Jörg Roth, Mobile Computing. Grundlagen, Technik, Konzepte, Dpunkt-Verlag, 2005
Online-Kurse
|
 |
|
 |