Master’s Thesis - Cheatsheet.pdf

Master’s Thesis - Cheatsheet
Design von Softwarearchitekturen Definition: Gestaltung und Organisation der grundlegenden Struktur von Software-Systemen Details: Verbessert Wartbarkeit, Erweiterbarkeit und Skalierbarkeit von Software Nutzung von Entwurfsmustern und Architekturstilen Berücksichtigung funktionaler und nicht-funktionaler Anforderungen Mögliche Architekturstile: Schichten, Microservices, Ereignisgesteuert, Client-S...

© StudySmarter 2024, all rights reserved.

Design von Softwarearchitekturen

Definition:

Gestaltung und Organisation der grundlegenden Struktur von Software-Systemen

Details:

  • Verbessert Wartbarkeit, Erweiterbarkeit und Skalierbarkeit von Software
  • Nutzung von Entwurfsmustern und Architekturstilen
  • Berücksichtigung funktionaler und nicht-funktionaler Anforderungen
  • Mögliche Architekturstile: Schichten, Microservices, Ereignisgesteuert, Client-Server
  • Wichtige Konzepte: Modularität, Abstraktion, Wiederverwendung, lose Kopplung
  • Werkzeuge: UML-Diagramme, Architekturbeschreibungs-Sprachen (ADLs)

Implementierung von Algorithmen und Datenstrukturen

Definition:

Implementierung von Algorithmen und Datenstrukturen bezieht sich auf das Entwerfen, Kodieren und Testen von Algorithmen und den dazugehörigen Datenstrukturen zur effizienten Lösung von Problemen.

Details:

  • Wahl der passenden Datenstrukturen ist entscheidend für die Effizienz eines Algorithmus.
  • Komplexitätsanalyse: Zeit- und Speicherbedarf mit Big-O-Notation.
  • Grundlegende Datenstrukturen: Arrays, Listen, Stapel (Stacks), Schlange (Queues), Bäume (Trees), Graphen (Graphs), Hash-Tabellen.
  • Wichtige Algorithmen: Sortieren (z.B. QuickSort, MergeSort), Suchen (z.B. Binäre Suche), Graph-Algorithmen (z.B. Dijkstra, Tiefensuche).
  • Rekursions- und Iterationsstrategien verstehen und anwenden.
  • Parallele und verteilte Algorithmen für Performance-Verbesserungen.
  • Einbindung von Bibliotheken und vorgefertigten Implementierungen (z.B. STL in C++ oder Collections in Java).

Maschinelles Lernen und Deep Learning

Definition:

Maschinelles Lernen: Daten-getriebene Techniken um Modelle zu erstellen die aus Erfahrungen lernen. Deep Learning: Spezialisierung des ML, verwendet tiefe neuronale Netze.

Details:

  • ML Modelle: Supervised, Unsupervised, Reinforcement Learning
  • Supervised: \textit{Trainingsdaten} mit Labels verwenden
  • Unsupervised: Muster in Daten ohne eindeutige Labels erkennen
  • Reinforcement: Lernen durch Belohnung/Bestrafung
  • Deep Learning: Verwendung von \textbf{mehrschichtigen neuronalen Netzen}
  • Wichtige Architekturen: CNNs (\textit{Convolutional Neural Networks}), RNNs (\textit{Recurrent Neural Networks})
  • Optimierungsverfahren: Gradient Descent
  • Aktivierungsfunktionen: z.B. \textit{ReLU}, \textit{Sigmoid}
  • Verlustfunktionen: z.B. \textit{Cross-Entropy}, \textit{MSE (Mean Squared Error)}
  • Regularisierung: Vermeidung von Overfitting, z.B. \textit{Dropout}, \textit{L2-Norm}
  • Evaluation: z.B. \textit{Accuracy}, \textit{Precision}, \textit{Recall}

Transaktionsmanagement

Definition:

Verwaltung von Datenbanktransaktionen zur Gewährleistung von Konsistenz, Isolation, Dauerhaftigkeit und Atomarität (ACID-Prinzipien).

Details:

  • ACID-Prinzipien: Atomarität (alle oder keine Operationen ausführen), Konsistenz (keine Verletzung von Integritätsbedingungen), Isolation (Transaktionen beeinflussen sich nicht gegenseitig), Dauerhaftigkeit (Änderungen bleiben gespeichert).
  • Wichtige Konzepte: Sperren, Rollback, Commit.
  • Serialisierbarkeit: Gewährleistet, dass parallele Transaktionen dasselbe Ergebnis liefern wie sequentielle.
  • Concurrency Control: Vermeidung von Konflikten durch gleichzeitige Transaktionen.
  • Wiederherstellung: Mechanismen zur Erholung von Fehlern (z.B. Protokollierung).
  • Zwei-Phasen-Sperrprotokoll (2PL): Gewährleistung der Serialisierbarkeit durch strikt getrennte Sperr- und Freigabephasen.

Experimentelles Design und Durchführung

Definition:

Entwicklung und Planung von Experimenten zur Untersuchung einer Hypothese und Umsetzung dieser Untersuchungen in die Praxis.

Details:

  • Definition der Forschungsfrage
  • Festlegung der Variablen: Unabhängige (manipulierte) und abhängige (gemessene) Variablen
  • Kontrolle der Störvariablen
  • Auswahl der Stichprobe
  • Festlegung des Experimentatyps: z.B. Laborversuch, Feldversuch
  • Durchführung des Experiments: genaue Dokumentation der Abläufe
  • Erhebung und Analyse der Daten
  • Interpretation der Ergebnisse

Erstellen und Gestalten von Präsentationsmaterialien

Definition:

Erstellung und Design von Präsentationsmaterialien für die Masterarbeit in Informatik an der TU München.

Details:

  • Wähle ein einheitliches Design (Farben, Schriftarten, Layout).
  • Verwende klare und prägnante Texte.
  • Nutze Grafiken und Diagramme zur Veranschaulichung komplexer Sachverhalte.
  • Beachte die Zielgruppe und den Kontext der Präsentation.
  • Vermeide überladene Folien, Fokussiere auf das Wesentliche.
  • Neben Texten und Bildern, Multimedialer Einsatz (z.B. Videos) möglich.
  • Tools: PowerPoint, LaTeX (\texttt{beamer}), Canva.

Schreiben wissenschaftlicher Arbeiten

Definition:

Wissenschaftliche Arbeiten methodisch und strukturiert verfassen, um Forschungsfragen klar darzustellen und zu beantworten.

Details:

  • Einleitung: Ziel und Struktur der Arbeit darstellen.
  • Theoretischer Hintergrund: Relevante Theorie und Literatur zusammenfassen.
  • Methodik: Forschungsansatz und Vorgehensweise beschreiben.
  • Ergebnisse: Forschungsbefunde objektiv präsentieren.
  • Diskussion: Ergebnisse interpretieren und einordnen.
  • Fazit: Kernpunkte zusammenfassen, Ausblick geben.
  • Quellenangaben: Korrektes Zitieren aller verwendeten Quellen (z.B. nach APA, IEEE).

Optimierung von Datenbankanfragen

Definition:

Reduzierung der Ausführungszeit von Datenbankanfragen durch effiziente Nutzung von Ressourcen.

Details:

  • Indexierung: Nutze Indizes, um Abfragen zu beschleunigen.
  • Joins: Verwende effiziente Join-Strategien (Nested Loop, Hash Join, etc.).
  • Query-Pläne: Analysiere und optimiere den Abfrageplan des Datenbank-Management-Systems (DBMS).
  • Materialisierte Ansichten: Cache häufig angefragte Daten.
  • Denormalisierung: Trade-off zwischen Speicherplatz und Anfragegeschwindigkeit.
  • Partitionierung: Teile Tabellen für schnelleren Zugang in Partitionen auf.
  • Transaktionsisolation: Wähle geeignete Isolationsebene zur Vermeidung von Deadlocks.
Sign Up

Melde dich kostenlos an, um Zugriff auf das vollständige Dokument zu erhalten

Mit unserer kostenlosen Lernplattform erhältst du Zugang zu Millionen von Dokumenten, Karteikarten und Unterlagen.

Kostenloses Konto erstellen

Du hast bereits ein Konto? Anmelden