005.1 Programmierung
Refine
Document Type
- Bachelor Thesis (13)
- Master's Thesis (3)
- Diploma Thesis (2)
Keywords
- Programmierung (12)
- Algorithmus (3)
- Anwendungssystem (1)
- App <Programm> (1)
- Arbeitsverhalten (1)
- Autonomes Fahrzeug (1)
- Blockchain (1)
- Computerspiel (1)
- Datenbank (1)
- Datenschutz (1)
Institute
- Angewandte Computer‐ und Biowissenschaften (18) (remove)
In dieser Arbeit wird der Einsatz des Wave Function Collapse Algorithmus untersucht. Dazu werden Anforderungen an das Leveldesign für das Videospiel Counter Strike: Global Offensive als Vorlage genutzt. Der Algorithmus wird in der Unity Engine implementiert und evaluiert. Es werden drei Versuchsreihen durchgeführt. Jede Versuchsreihe nutzt andere Einstellungen für die Levelgenerierung und analysiert welche Anforderungen erfüllt werden können. Die Ergebnisse werden verglichen und es werden Rückschlüsse auf die Anwendbarkeit des Algorithmus für die Erstellung von Multiplayer Level mit Ähnlichkeit zu Counter Strike: Global Offensive gezogen.
Diese Arbeit beschäftigt sich mit der Entwicklung von performanten Modulen zur Implementierung von Netcode in einem Multiplayer-Spiel. Sie vergleicht dabei zunächst verschiedene Frameworks und dokumentiert den Entscheidungsprozess anhand eines konkreten Spiels. Es werden daraus folgend mehrere Ansätze für den Aufbau eines Netzwerkmoduls aufgezeigt und diese schließlich miteinander auf ihre Performance verglichen.
Anomaly Detection is a very acute technical problem among various business enterprises. In this thesis a combination of the Growing Neural Gas and the Generalized Matrix Learning Vector Quantization is presented as a solution based on collected theoretical and practical knowledge. The whole network is described and implemented along with references and experimental results. The proposed model is carefully documented and all the further open researching questions are stated for future investigations.
Im Kontext der Wissensvermittlung existieren vielseitige E-Learning Tools, die oft ein dediziertes Lehr-Lern-Szenario betrachten. Die zugrundeliegende Software konzentriert sich somit häufig auf einen spezifischen Bereich oder eine gesonderte Fragestellung, sodass eine Erweiterung des Angebots nicht ohne weiteres möglich ist. Es soll untersucht werden, welche serverseitigen Anforderungen ein System für die E-Learning-Domäne erfüllen muss, um keine derartigen Restriktionen aufzuweisen und gleichzeitig für den Einsatz verschiedener Szenarien der digitalen Lehre geeignet zu sein.
Diese Arbeit behandelt, wie in einem rundenbasierten Strategiespiel ein System zur Integration linearen Missionsdesigns implementiert wurde. Es erlaubt, Missionen anzulegen und in Szenarien zu gruppieren, welche sich wiederum in einer Kampagne zusammenfassen lassen. Dabei können beliebig viele Kampagnen gleichzeitig existieren, ohne dass sich deren Inhalte überschneiden. Die Implementierung des Systems ist umfangreich beschrieben und wird mit relevanten Code-Beispielen veranschaulicht. Das Spiel wurde hinsichtlich der Player Experience, Usability und User Experience mit den Fragebögen MEEGA+ und AttrakDiff evaluiert. Eine Evaluation der User Experience mit AttrakDiff wurde auch für den zum Spiel gehörenden Inhaltseditor durchgeführt. Die dabei ermittelten Ergebnisse zeigen, dass beide Anwendungen von den Probanden grundsätzlich gut bis sehr gut wahrgenommen werden. Durch eine Detailanalyse der einzelnen Wertungen sowie dem zusätzlich gegebenen Feedback konnten Stärken und Schwächen identifiziert werden. Um die Schwachpunkte in zukünftigen Entwicklungsbestrebungen effizient bearbeiten zu können, sind passende Vorschläge und detaillierte Erklärungen der Ursachen beigefügt worden. Der Mehrwert des Kampagnensystems hinsichtlich wahrgenommener Qualität und Motivation wird durch einen Vergleich mit Evaluationsergebnissen einer früheren Version bewiesen. Diese wurden in dem dieser Arbeit vorangegangenen Forschungsmodul, in welchem die damalige Spielversion ebenfalls mit MEEGA+ evaluiert wurde, ermittelt. Zum Verständnis der Arbeit wird Vorwissen mit der Game Engine Unity sowie ihrer grundlegenden Konzepte, bspw. GameObjects und daran angebundene Komponenten, vorausgesetzt. Da an verschiedenen Stellen Bezug auf das Forschungsmodul sowie den darin erlangten Erkenntnissen genommen wird, ist die Konsultation des zugehörigen Abschlussberichtes empfehlenswert. Er liegt dieser Arbeit als digitale Anlage F bei.
Die Datenschutzgrundverordnung hat in der Europäischen Union für ein einheitliches Datenschutzrecht gesorgt. Sie fordert unter anderem eine einfache und verständliche Sprache von Datenschutzerklärungen und benennt umfangreiche, inhaltliche Anforderungen. Im Praxisumfeld ist es aber immer noch nicht selbstverständlich, dass Datenschutzerklärungen sich an formalen und inhaltlichen Festlegungen der Datenschutzgrundverordnung und weiterer geltender deutscher Gesetze orientieren. Das in dieser Arbeit erstellte Python-Programm zur automatisierten Analyse von Datenschutzerklärungen kategorisiert Themenabschnitte mit Hilfe einer Stichwortsuche und prüft die Datenschutzerklärung anhand eines festgelegten Katalogs an Testkriterien. Abschließend wird eine Bewertung auf Basis der Form und des Inhalts vorgenommen.
Ein Compiler oder Assembler wandelt Quellcode in ein ausführbares Programm um. Das resultierende Binary besteht aus Befehlen und Ressourcen, wie Bilder, Sounds oder anderen Informationen. Ohne den Ausführungskontext kann jedoch nicht im Vorhinein mit absoluter Sicherheit eine Angabe gemacht werden, bei welchen Bytes es sich um Anweisungen und bei welchen Abschnitten im Programm es sich um Ressourcen handelt. Bei einer Untersuchung oder einem
Dekompilierungsvorgang der binären Datei gestaltet sich diese bzw. dieser ohne vorliegenden Quellcode sehr schwierig. Als Beispiel für eine Von-Neumann-Architektur wurde in dieser Arbeit der Game Boy mit seiner
Sharp-LR35902-CPU gewählt. Mit Banking verwendet die Architektur sowohl historische Technologien, ähnelt aber dennoch sehr den derzeit häufig genutzten x86-64-CPUs von Intel oder AMD. Außerdem bieten die kleinen Programme von maximal zwei Mebibyte die Möglichkeit, auch in ineffiziente Ansätze auszuprobieren. In dieser Arbeit wurde anhand der folgenden sieben Lösungsansätze erläutert, wie man eine Befehl-Ressourcen-Trennung erzielen kann.
Manueller Ansatz (siehe Kapitel 3.1)
Metadaten-Ansatz (siehe Kapitel 3.2)
Alles-Befehle-Ansatz (siehe Kapitel 3.3)
Statistischer Ansatz (siehe Kapitel 3.4)
Emulationsansatz (siehe Kapitel 3.5)
Programmflussansatz (siehe Kapitel 3.6)
Brute-Force-Ansatz (siehe Kapitel 3.7)
Insbesondere wurden drei automatisierte bzw. teilautomatisierte Ansätze implementiert und anschließend
mit einer manuellen Trennung als Referenzwert verglichen. Dabei erzielte, bei dem verwendeten Kontrollprogramm ”StefaN”, der Programmflussansatz ein gutes Ergebnis.
Das mittels Emulationsansatz gewonnene Ergebnis schloss etwas schlechter ab. Der Brute-Force-Ansatz scheiterte an exponentiellen Wachstum und erzielte damit das schlechteste Ergebnis. Eine korrekte Trennung konnte nur mit dem manuellen Ansatz erreicht werden. In dieser Arbeit konnte keine vollautomatisierte Lösung für das Problem gefunden werden. Grundsätzlich kann festgehalten werden, dass eine Befehl-Ressourcen-Trennung einer ausführbaren Binärdatei auch in Zukunft eine Herausforderung darstellt.
Diese Arbeit thematisiert das Zusammenspiel verschiedenster Projektmanagement Ansätze mit den Psychologischen Persönlichkeitstypen nach dem Myers-Briggs-Typenindikator.
Es wird hierbei auf die Erstellung eines dynamischen Evaluationstools eingegangen und den konkreten Hintergedanken zur Fragenerstellung selbiger. Ziel war es ebenfalls die Arbeitsmoral und Vorstellungen einzelner Teammitglieder zu verbessern. Außerdem ist eine Verbindung der Arbeitsstile und Persönlichkeitstypen eine große Chance, Teams zu optimieren und die Produktivität zu steigern
Im Rahmen der Abschlussarbeit soll untersucht werden, inwiefern die Kombination von live objects der Realm Database auf der einen Seite und Combine und SwiftUI auf der anderen, die entstehende Komplexität und Fehleranfälligkeit bei der App-Entwicklung in iOS reduzieren kann. Es soll ein durchführbarer praktischer Teil in Form einer Chat-App entstehen und getestet werden, die die Vor- und Nachteile der genannten Techniken verdeutlicht.