Vorläufiges Modulhandbuch für 1.-4. Semester für den Bachelorstudiengang „Mobile Computing“ an der Hochschule für angewandte Wissenschaften Hof Allgemeine Grundlagen (Pflichtmodule) Wissenschaftliches Arbeiten Die Studierenden kennen die wissenschaftliche Methode und wissen wie man vorgeht, um wissenschaftliche Arbeiten anzufertigen, sich Inhalte selbst zu erarbeiten, zu reflektieren sowie eine konstruktiv-kritische Haltung gegenüber Inhalten einzunehmen. Lehrinhalte • Wissenschaftstheorie • Recherche und Bewerten von Quellen und Inhalten • Argumentationstheorie • Wissenschaftliches Dokumentieren • Wissenschaftlicher Schreibstil • Zielgerichtetes, effizientes Lernen • Kreativitätstechniken • Wissenschaftsethik Voraussetzungen keine Formales Prüfung: Klausur60, ECTS: 3, SWS:2 Lernziele Gestaltung und Präsentation Sicherer Umgang mit den grundlegenden Techniken und Werkzeugen der visuellen Gestaltung. Die Vorlesung vermittelt die Grundlagen des klassischen Designs und die zugehörigen Gestaltungsparameter. Visuelle Wahrnehmungsfähigkeit und -kompetenz wird trainiert und ausgebildet. Die Studierenden lernen Gestaltung in einzelne Gesichtspunkte zu unterteilen und einzuordnen und entsprechend der jeweiligen Kommunikationsziele einzusetzen. Lehrinhalte Aufbauend auf der menschlichen Wahrnehmung werden einzelne Gestaltungsgesetze anhand praxisnaher Beispiele erläutert. Mit Hilfe unterschiedlicher Designergebnisse wird das Beurteilungsvermögen der Studierenden geschult. Im Rahmen der Semesteraufgaben wird das konzeptionelle Arbeiten schrittweise an fachspezifischen Problemen geschult. Durch Vertiefung der Teildisziplinen wie Farbe, Formen, Layout, Typographie und Bildsprache werden detailliert grundlegende gestalterische Fähigkeiten erlernt. Voraussetzungen keine Formales Prüfung: Studienarbeit/Präsentation, ECTS: 5, SWS:4 Lernziele Diskrete Mathematik für Informatiker Lernziele Lehrinhalte Voraussetzungen Die Studierenden kennen mathematische Konzepte, die der Informatik zugrunde liegen. • Logik, Aussagenlogik, Prädikatenlogik und Beweistheorie • Mengen, Relationen, Abbildungen, Boolsche Algebra • Natürliche Zahlen, Zahlen und Zahlentheorie • Gruppen, Ringe, Körper, Folgen und Reihen • Matrizen • Graphentheorie keine Prüfung: SchrPr90, ECTS: 5, SWS:4 Formales Grundlagen der Informationstechnik Lernziele Lehrinhalte Voraussetzungen Formales Die Studierenden kennen die Prinzipien digitaler Informationsverarbeitung und verstehen die Funktionsweise von Rechnern. Sie wissen wie Zahlen, Texte und multimediale Daten im Computer repräsentiert werden und können die grundlegenden Abläufe zur Verarbeitung von Daten erklären. • Grundbegriffe der Informationstechnik • Funktionseinheiten von Rechnern • Funktionsweise von Rechnern • Binärdaten, digitale Kodierung von Integer und Gleitkommazahlen • ASCII, Unicode • Automatentheorie, Schaltnetze, KV-Diagramme • von-Neumann-Architektur, CPU-Aufbau • Maschinenbefehle, Assembler, Register, Speicheradressierung • Hardware-Komponenten und Peripherie Keine Prüfung: SchrPr90, ECTS: 5, SWS:4 Englisch für Informatiker Lernziele Lehrinhalte Voraussetzungen Formales Die Studierenden haben ihre Englischkenntnisse aus der Schule vertieft und sind insb. mit technischen Fachbegriffen aus der Informatik vertraut. Sie können sich anhand aktueller Texte über Aspekte der Informatik schriftlich und mündlich äußern Es wird angeleitet, die englische Sprache fach- und berufsbezogen im internationalen Kontext anzuwenden. Kenntnis ausgewählter Bereiche der Fachterminologie des Englischen. Verständnis und adäquate Darstellung von Sachverhalten aus dem IT-Bereich. keine Prüfung: SchrPr90, ECTS: 5, SWS:4 Informatik (Pflichtmodule) Objektorientierte Programmierung I Lernziele Lehrinhalte Die Studierenden erwerben grundlegende Kenntnisse der objektorientierten Programmierung mit Hilfe der Programmiersprache Java. Sie können Konsolen- Programme selbst entwickeln, vorgegebene Programme verstehen und Ideen daraus in eigene Projekte einfließen lassen. • Datentypen und Operatoren • Kontrollstrukturen • Referenzen • Arrays • Klassen und Objekte • Vererbung • Polymorphismus • Packages und Sichtbarkeitsregeln • Ausnahmebehandlung • Bibliotheksklassen • Ein- und Ausgabe, Datei-Handling Objektorientierte Programmierung II Lernziele Lehrinhalte Die Studierenden sind in der Lage, größere Programme mit grafischer Benutzeroberfläche in Java zu erstellen. Die Programme sollen eine persistente Datenverwaltung, Verteilungs- und Parallelisierungsaspekte sowie eine ansprechende graphische Oberfläche aufweisen. • Entwicklung graphischer Benutzeroberflächen mit Swing o Elementare Komponenten in Swing (z.B. Label, Textfelder, Buttons, Listen) o Layout-Manager o Event-Handling und Event-Listener o Fenster, Panes und Panels o Komplexere Komponenten in Swing (z.B. Menues, Tables) • Grundlagen der parallelen Programmierung (Threads) • Grundlagen der verteilten Programmierung (Sockets) • Einfache OO-Patterns (Observer / Model-View-Controller) Software Engineering I Die Studierenden kennen die grundlegenden Ziele, Methoden, Techniken und Vorgehensweisen des Software-Engineering. Sie sind in der Lage diese Methoden eigenständig anzuwenden um technisch saubere, klar strukturierte Programme zu schreiben. Lehrinhalte • Die Phasen der Softwareentwicklung • Grundlagen der Vorgehensmodelle für die Softwareentwicklung • Grundlagen von UML • Klassendiagramme • Objektdiagramme • Zustandsdiagramme • Sequenzdiagramme • Kommunikationsdiagramme • Grundlagen der Design-Pattern • Modultests Literaturliste - siehe Vorlesung Medienform Beamer, Tafel, Overhead Lernziele Software Engineering II Die Studierenden kennen die Probleme größerer Softwareprojekte und der industriellen Softwareentwicklung. Sie sind in der Lage, Softwareprojekte über die reine Programmierung hinaus professionell abzuwickeln und im Team zu planen, zu entwickeln und zu testen. Lehrinhalte • Vertiefung von Phasenmodellen • Systemanalyse, Systementwurf • Use-Case-Diagramme • Aktivitätsdiagramme • Komponenten-Diagramme • Systemtest • Agile Methoden • Überblick Projektmanagement Literaturliste - siehe Vorlesung Medienform Beamer, Tafel, Overhead Lernziele Algorithmen und Datenstrukturen Lernziele Lehrinhalte Die Studierenden sind mit typischen Datenstrukturen der Informatik sowie mit Algorithmen auf diesen Datenstrukturen, insbesondere Such- und Sortieralgorithmen, vertraut und haben die Fähigkeit, diese hinsichtlich ihrer Effizienz zu analysieren und zu bewerten. Sie sind in der Lage, für gegebene Aufgabenstellungen geeignete Datenstrukturen und Algorithmen auszuwählen und in Java zu programmieren. • Komplexitätsanalyse von Algorithmen • Felder, Listen, Bäume, Stacks und Queues • Rekursion • Einfache Sortieralgorithmen (z.B. Insertionsort, Selektionsort) • Effiziente Sortieralgorithmen (z.B. Mergesort, Heapsort) • Binäre Suchbäume (z.B. AVL-Bäume) • Perfekt ausgeglichene Suchbäume (z.B. 2-3-4-Bäume, B-Bäume) • Backtracking-Algorithmen • Hashverfahren • Abstrakte Datentypen, Generics • Collections in Java (z.B. auf der Basis von List, Map, Set) Datenbanken I Lernziele Lehrinhalte Die Studierenden sind in der Lage aus einer gegebenen Problemstellung ein angemessenes Datenmodell zu erzeugen, mit SQL Befehlen anzulegen und abzufragen • Relationen-Kalkül • Entity Relationship Modelle • Normalformen • SQL SELECT, INSERT, UPDATE, DELETE • VIEWS • Indizes zur Verbesserung der Abfragegeschwindigkeit Rechnernetze I Lernziele Lehrinhalte Die Studierenden verstehen den Schichtenaufbau des Internet in Theorie und Praxis und kennen die Funktionsweise ausgewählter Netzwerkdienste der Anwendungsebene bis hin zu Übertragung auf der physikalischen Ebene. • Netzwerktopologien • ISO/OSI-Schichtenmodell • Physische Grundlagen der Datenübertragung (OSI-Schicht 1) • Grundlegende Protokolle der OSI-Schichten 2-4 (z.B. TCP und UDP, Routingprotokolle, IPv4 und IPv6) • Ausgewählte Anwendungsprotokolle (OSI-Schichten 5-7, z.B. smtp, pop3, http) • Grundlagen der Netzwerksicherheit Web Development I Lernziele Lehrinhalte Die Studierenden haben Einsicht in die grundlegenden Techniken, die bei der Entwicklung modernen Web-Anwendungen eingesetzt werden. • Konzeption und Architektur einer Web-Anwendung • Einführung und Vertiefung grundlegender Techniken (z.B. HTML, CSS, JavaScript, jQuery) • Einführung in eine Skriptsprache( z.B. Python, PHP, Ruby oder Groovy) • Servlet Programmierung mit Java • Webdesign und Usability Formale Sprachen Lernziele Lehrinhalte Kenntnisse von Methoden zum Einlesen strukturierter Daten in interne Datenstrukturen sowie die Fähigkeit, diese Methoden anzuwenden • Formale Beschreibung und Einlesen strukturierter Daten: • Grundlagen der Automaten- und Komplexitätstheorie • Formale Sprachen: Grammatiken, Chomsky-Hierarchie, rekursiver absteigender Parser • XML: Struktur, Document Type Definition, XML-Parser Mobile Computing (Pflichtmodule) Interfacedesign für Mobile Devices Lernziele Lehrinhalte Die Studierenden kennen bewährte Design-Patterns für Mobilgeräte und können selbständig Benutzeroberflächen entwerfen, die für die Touch-Bedienung mit dem Finger geeignet ist. • Grundlagen des Interface Design (Wireframes, Screendesigns) • Anpassung von Benutzeroberflächen für Touch-Bedienung • Responsive Web Design • Design Patterns für Smartphones • Design Patterns für Tablets • Flexible Anpassungen für Portrait- und Landscape Modus Voraussetzungen Erfolgreiche Teilnahme an Gestalten und Präsentation Formales Prüfung: StA, ECTS: 5, SWS:4 Smartphone Programming I Lernziele Lehrinhalte Die Studierenden können einfache mobile Apps für eine ausgewählte Smartphone Plattform erstellen (z.B. Android). • Programmierrelevante Ausstattungsmerkmale von Smartphones • Überblick über das Android Betriebssystem • Grundlegende Android Programmierkonzepte (Activities, Intents, …) • Gestaltung von Oberflächen mit XML • Benachrichtigungen, Kontextmenüs und Navigation • Event-Handler und der Activity Lifecycle • Verwendung von Ressourcen inkl. Internationalisierung • Anpassen von Anwendungen an unterschiedliche Auflösungen • Umgang mit einer integrierten Entwicklungsumgebung und dem Emulator • Testen mit Testframeworks, z.B. Robotium Voraussetzungen Erfolgreiche Teilnahme an Grundlagen der Informationstechnik und OOP I Formales Prüfung: StA, ECTS: 5, SWS:4 Smartphone Programming II Lernziele Lehrinhalte Die Studierenden kennen die Möglichkeiten HTML5-basierter WebApps und können für eine gegebene Problemstellung sinnvoll entscheiden, ob eine native App oder eine WebApp die bessere Wahl ist. Sie können selbständig eine App entwickeln, die fortgeschrittene Funktionen beinhaltet, wie das Verwenden der Kamera, GPS, Accelerometer oder anderer Sensoren, sowie das Zusammenspiel mit Telefonanwendungen wie Kontakte und Kalender. • Fortgeschrittene Programmiertechniken in Android • o Datentransfer mit Intents o Datenpersistenz und Content Provider o Background Threads o Sensor Manager und das Auslesen von Sensoren o In-App Payment o 2D und 3D Grafik in Android Möglichkeiten und Grenzen von HTML5 WebApps mit Phonegap Voraussetzungen Erfolgreiche Teilnahme an SmartPhone Programming I und OOP I+II Formales Prüfung: schrPr90 + Testate, ECTS: 5, SWS:4 Tablet Computing I Lernziele Lehrinhalte Die Studenten können einfache native Apps für Tablet-Computer mit dem iOS Betriebssystem entwickeln • Einführung in die Programmiersprache Objective-C • Einführung in die Entwicklungsumgebung • Überblick über das iOS Betriebssystem • Grundlegende Programmierkonzepte von iOS • Umsetzung des MVC Paradigmas in iOS • Entwurf von Benutzeroberflächen mit Storyboard • Konzepte zur Entwicklung von rotationsinvarianten Bedienoberflächen • Einführung in die 2D Grafik-Programmierung • Persistente Datenspeicherung Voraussetzungen Teilnahme an den Vorlesungen OOP I/II und Software Engineering I/II Formales Prüfung: SchrPr90, ECTS: 5, SWS:4 Tablet Computing II Lernziele Lehrinhalte Die Studenten können komplexere native Apps für iOS Systeme entwickeln und werden mit der Entwicklung von HTML-Web-Apps vertraut gemacht • Vertiefung der Kenntnisse in Objective-C • Programmierung mit iCloud • Einführung in CoreImage • UI Customization • inApp Purchase • Integration von Social Frameworks • Entwicklung von parallel arbeitenden Apps • Entwicklung barrierefreier Apps • Unterschiede der HTML-Web-App zu Android Voraussetzungen Teilnahme an den Vorlesungen OOP I/II, Software Engineering I/II, Tablet Computing I und Smartphone Programming I/II Formales Prüfung: SchrPr90, ECTS: 5, SWS:4 Praktikum Programmierung für Mobile Devices Lernziele Lehrinhalte Die Studierenden können eine komplexe App für eine Mobil-Plattform ihrer Wahl in Teamarbeit konzipieren, planen und umsetzen. Sie berücksichtigen dabei Randbedingungen wie unterschiedliche Gerätetypen, Benutzererwartungen bzgl. Hoch- und Querformat, sowie technische und formale Best Practices. Anwenden der erlernten Kenntnisse aus Veranstaltungen in den Bereichen Programmierung , Software Engineering und Smartphone bzw. Tablet Computing im Rahmen eines praxisnahen Softwareprojekts. Dieses Projekt soll grundsätzlich auch Teamarbeit beinhalten und mindestens die Phasen "Spezifikation", "Implementierung" und "Validierung" eines Entwicklungsprozesses umfassen. Voraussetzungen Keine Formales Prüfung: StA, ECTS: 5, SWS:4 NoSQL Datenbanken Lernziele Lehrinhalte Die Studierenden kennen verschiedene Typen von DBMS sind in der Lage selbständig zu entscheiden, welcher Typ für eine gegebene Problemstellung am besten geeignet ist. Sie können darüber hinaus eigene Lösungen auf Basis von HTML5 Indexed DB oder einer JSON-basierten DB entwickeln. • Übersicht über Typen von DB Systemen von spalten-orientierten über dokumenten-orientierte bis hin zu Graphendatenbanken • Details und praktische Übungen zu HTML5 Indexed DB • Details und praktische Übungen zu einer dokumenten-orientierten DB • Abfragen in verteilten Umgebungen mit Map Reduce • Datenmodellierung für NoSQL Datenbanken Web Development II Lernziele Lehrinhalte Die Studierenden sind in der Lage Web-basierte Anwendungen mit modernen Methoden, Techniken und Werkzeugen zu entwickeln. • Kombinierte Anwendung der Techniken aus Web-Development I • MVC-Architektur • Web-Frameworks (z.B.: Groovy on Rails, Spring, PHP/Zend) • Integrierte Entwicklungswerkzeuge (z.B. Eclipse, Netbeans) • WebServices Design (Pflichtmodule) Interface- und Interaction Design Lernziele Lehrinhalte Voraussetzungen Formales Die Studierenden sind in der Lage Informationen in unterschiedlichen Medien benutzerfreundlich darzustellen. Sie strukturieren Informationen, Daten und Wissen und entwerfen entsprechende Informationsarchitekturen. Die Studenten gestalten grafische Benutzeroberfläche für Computerprogramm mit sehr unterschiedlichen Nutzeranforderungen. Sie kennen Evaluationsmethoden und können diese anwenden. • Informationsarchitektur • Informationsdesign • Interfacedesign - grafische Benutzeroberfläche • Screendesign • UI Pattern • E-Learning • Spiele • Usability / Evaluationsmethoden Mindestens 45 Credits aus den Modulen des Grundlagenbereichs Prüfung: StA, ECTS: 5, SWS:4 Game-Design und Animation Lernziele Die Studierenden sind in der Lage ein eigenes Spielkonzept mit entsprechendem Game Design Dokument zu erarbeiten und in eine interaktive Applikation Lehrinhalte Voraussetzungen Formales umzusetzen. Sie können die erforderlichen visuellen Elemente, wie Grafiken (z.B. Spielcharaktere und Leveldesigns) und die auditiven Bestandteile des Spiels selbstständig konzipieren und adäquat realisieren. Die Konzeption und Erstellung eines Spiel-Prototypen mit entsprechendem Usabilitytest wird in der Praxis überprüft. Die Studenten erhalten somit die Grundlagen sowohl das User Interface als auch das Interaction Design bzw. die Interaktionsabläufe eigenständig evaluieren und bewerten zu können. • Entwicklungsdokumente / Game design document • Spiel-Genres / Serious Games / Edutainment / ... • Gameplay / Spielbalance • Handlungsprozesse / Interaktionsformen • Interface & Interaction Design für Spiele / User Interface Design • Interaktionsdesign • Benutzerschnittstellen • Character Design • Animation • Sound-Design • Usability Test keine Prüfung: StA, ECTS: 5, SWS:4