ISE-04-002



ISE-04

Full-Stack-Entwicklung, Web-Engineering, Mobile Apps / Full-Stack-Development , Web-Engineering, Mobile Apps

Semester

Siehe Studienverlaufsplan

Art des Moduls / Module Type

Pflicht

Modulverantwortung / Module Responsibility

Prof. Dr. Axel Lamprecht

Modulsprache / Module Language

Deutsch / Englisch

Veranstaltungsturnus / Course Frequency

Mind. 1 x jährlich

Dauer der Veranstaltung / Course Duration

1 Semester

Arbeitsaufwand / Workload

150 Std.

Präsenz: 32 Std. | Selbststudium: 56 Std. | Transfer: 62 Std.

ECTS-Punkte / ECTS Credits

5 CP

Prüfungsleistung / Assessment

Klausur (60 min.) oder Mündliche Prüfung oder Case oder Transferarbeit (6-8 Seiten)

Lehr- und Lernmethoden / Teaching and Learning Methods

Seminar (Präsenzlehre), ergänzend Selbststudium und Transfer, ggf. E-Learning, Pre- und Post-Reading.

Modulinhalte / Module Content (de)

  • Full-Stack-Entwicklung (FSE) Definition & Überblick

    • Erläuterung des Fullstack-Ansatzes: Kombination von Frontend- und Backend-Entwicklung. Relevanz in modernen Webanwendungen.

    • Native, Hybrid, Web-App, Cross-Plattform Apps

    • Auswahl von Plattformen

  • Requirements-Engineering

  • Frontend-Entwicklung

    • Technologien: HTML, CSS, JavaScript.

    • Frameworks/Bibliotheken: z.B. React, Angular, Vue.js.

    • Responsive Design und Usability.

  • Backend-Entwicklung

    • Programmiersprachen: z.B. Node.js, Python, Ruby, Java oder PHP.

    • Frameworks: z.B: Flask, FastAPI, Express, Django, Ruby on Rails usw.

    • API-Entwicklung (REST, GraphQL).

  • Datenbanksysteme

    • Relationale Datenbanken (z.B. MySQL, PostgreSQL) vs. NoSQL-Datenbanken (z.B. MongoDB).

    • Datenmodellierung und -management sowie Datenstrukturen und Persistenz

  • Zusammenhang Full-Stack-Entwicklung und DevOps

    • Versionskontrolle (z.B. Git).

    • Containerisierung (z.B. Docker, Kubernetes) und Cloud-Plattformen.

  • Testing & Qualitätssicherung

    • Unit-Tests, Integrationstests und End-to-End-Tests.

    • Automatisierung und Code-Reviews.

  • Sicherheitsaspekte bei der Full-Stack-Entwicklung

    • Authentifizierung und Autorisierung. Schutz vor typischen Sicherheitsrisiken (z.B. XSS, SQL-Injection).

  • Mobile Apps unter der Betrachtung der Full-Stack-Entwicklung

    • Technologien zur App-Entwicklung und plattformübergreifende Entwicklung

    • Cross-Plattform Frameworks: z.B. Flutter (Google), FireMonkey (Delphi), Titanium Mobile (Appcelerator), React Native (Facebook)

    • Praktische Anwendungsentwicklung mit z.B. Flutter (Google), insb. Dart, Anbindung REST-API´s, Firebase, BLoC und MVVM, Mehrsprachigkeit, CRUD, Echtzeitfähigkeit mit Streams

  • Web-Engineering und Backendprogrammierung im Rahmen der Full-Stack-Entwicklung, Backendanwendungen, REST-APIs mit Flask und Python, Cloud Run Services

  • Barrierefreiheit und Datenschutz


Modulinhalte / Module Content (en)

  • Full-Stack Development (FSE) Definition & Overview

    • Explanation of the Fullstack Approach: Combination of frontend and backend development. Relevance in modern web applications.

    • Native, Hybrid, Web Apps, Cross-Platform Apps

    • Platform selection

  • Requirements engineering

  • Frontend development

    • Technologies: HTML, CSS, JavaScript.

    • Frameworks/Libraries: e.g., React, Angular, Vue.js.

    • Responsive design and usability.

  • Backend Development

    • Programming languages: e.g., Node.js, Python, Ruby, Java, or PHP.

    • Frameworks: e.g., Flask, FastAPI, Express, Django, Ruby on Rails, etc.

    • API development (REST, GraphQL).

  • Database Systems

    • Relational databases (e.g., MySQL, PostgreSQL) vs. NoSQL databases (e.g., MongoDB).

    • Data modeling and management, as well as data structures and persistence.

  • Connection between Full-Stack Development and DevOps

    • Version control (e.g., Git).

    • Containerization (e.g., Docker, Kubernetes) and cloud platforms.

  • Testing & Quality Assurance

    • Unit tests, integration tests, and end-to-end tests.

    • Automation and code reviews.

  • Security Aspects in Full-Stack Development

    • Authentication and authorization. Protection against typical security risks (e.g., XSS, SQL injection).

  • Mobile Apps in the Context of Full-Stack Development

    • Technologies for app development and cross-platform development

    • Cross-platform frameworks: e.g., Flutter (Google), FireMonkey (Delphi), Titanium Mobile (Appcelerator), React Native (Facebook)

    • Practical application development with, e.g., Flutter (Google), especially Dart, integration of REST APIs, Firebase, BLoC and MVVM, multilingual support, CRUD, real-time functionality with Streams.

  • Web Engineering and Backend Programming within Full-Stack Development, Backend applications, REST APIs with Flask and Python, Cloud Run services.

  • Accessibility and Data Protection.


Teilnahmevoraussetzungen / Prerequisites for Participation

Das Modul setzt grundlegende Programmierkenntnisse voraus (nachweisbar durch entsprechende Leistungspunkte im BSc. oder durch Propädeutikum in Python) / The module requires basic programming knowledge (proven by corresponding credit points in a BSc. program or through a preparatory course in Python).

Qualifikationsziele / Qualification Objectives (de)

Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage:

  • Die wesentlichen Entwicklungstrends im Bereich Web-Engineering und Mobile Apps zu identifizieren und zu analysieren.

  • Kompetenzen in der Full-Stack-Entwicklung anzuwenden und in praxisnahen Projekten umzusetzen.

  • Methoden zur Durchführung interdisziplinärer Projekte gezielt einzusetzen.

  • Software-Projekte methodisch zu planen und strukturiert umzusetzen.

  • Eigenständig anwendungsorientierte Softwareentwicklungsprojekte im Bereich Web-Engineering und Mobile Apps zu konzipieren, zu planen und erfolgreich umzusetzen.

  • Software mit geeigneten Tools zielgerichtet zu entwickeln und zu optimieren.

  • Unternehmerisches Denken und Handeln anzuwenden, um den wirtschaftlichen Nutzen von Web-Engineering und Mobile Apps zu bewerten.

  • Typische Programmierstrukturen zu verstehen, zu bewerten und für spezifische Anforderungen auszuwählen.

  • Erworbenes Wissen durch Transferprojekte auf neue Unternehmensbereiche anzuwenden.

  • Software-Projekte in interdisziplinären Teams mit unterschiedlichem Vorwissen effektiv zu koordinieren und umzusetzen.


Qualifikationsziele / Qualification Objectives (en)

After successfully completing of the module, students will be able to:

  • Identify and analyze key development trends in web engineering and mobile apps.

  • Apply competencies in full-stack development and implement them in practical projects.

  • Effectively utilize methods for conducting interdisciplinary projects.

  • Plan and execute software projects methodically and systematically.

  • Independently design, plan, and successfully implement application-oriented software development projects in web engineering and mobile apps.

  • Develop and optimize software using appropriate tools in a targeted manner.

  • Apply entrepreneurial thinking and decision-making to assess the business value of web engineering and mobile apps.

  • Understand, evaluate, and select typical programming structures for specific requirements.

  • Apply acquired knowledge to new business areas through transfer projects.

  • Effectively coordinate and implement software projects in interdisciplinary teams with diverse prior knowledge.

Verwendbarkeit des Moduls für andere Module und Studiengänge

Verwendbar im Masterstudiengang IT-Systems Engineering

Empfohlene Literatur / Recommended Literature

Zum Selbststudium empfiehlt sich den Studierenden folgende Literatur: / For self-study, the following literature is recommended for students:

  • Hauke Fehr, Eigene Apps programmieren, Reihe Rheinwerk Computing, Rheinwerk Verlag, 2019.

  • Ghita Mostefaoui and Faisal Tariq, Mobile Apps Engineering: Design, Development, Security, and Testing. Auflage. Chapman and Hall/CRC Press, 2018, ISBN 1-138-05435-6

  • Jan Semler und Kira Tschierschke, App-Design, Reihe Rheinwerk Design, Rheinwerk Verlag, 2019, ISBN 978-3-8362-7050-2

  • Melinda Albert, Besseres Mobile App-Design, Entwickler Press, 2016, ISBN 978-3-86802-161-5

  • Thomas Geis und Guido Tesch, Basiswissen Usability und User Experience, D-Punkt Verlag, 2019, ISBN 978-3-86490-599-5

  • Jon Yablonski, Laws of UX, O´Relly Verlag, 2020, ISBN 978-3-96009-156-1

  • Ackermann, P. (2018): JavaScript: Das umfassende Handbuch, Bonn: Rheinwerk Verlag

  • Springer, S. (2018): Node.js: Das umfassende Handbuch. Serverseitige Web-Applikationen mit JavaScript entwickeln, Bonn: Rheinwerk Verlag.

  • Wolf, J. (2016): HTML5 und CSS3: Das umfassende Handbuch zum Lernen und Nachschlagen, Bonn: Rheinwerk Verlag.

  • Flutter. n.d. "Flutter – Build apps for any screen." https://flutter.dev/

  • Dart n.d. "Programming for Flutter and more" https://dart.dev/

  • Google Firebase n.d. "Make your app" https://firebase.google.com/

  • pub.dev n.d. "The official package repository for Dart and Flutter apps" https://pub.dev/

  • GitHub n.d. "Build and ship software on a single, collaborative platform" https://github.com/

  • Google n.d. "Vertex AI Notebooks" https://cloud.google.com/vertex-ai-notebooks

  • Google n.d. "Artifact Registry-Dokumentation" https://cloud.google.com/artifact-registry/docs?hl=de

  • Google n.d. "Cloud Run" https://cloud.google.com/run?hl=de

  • Google n.d. "Sicherung von Cloud Run-Diensten" https://cloud.google.com/run/docs/tutorials/secure-services?hl=de

Weitere Informationen / Additional Information

Keine