Grundlagen der Syntax und Semantik von Programmiersprachen
Definition:
Grundlagen der Syntax und Semantik von Programmiersprachen umfassen die formalen Regeln zur Struktur (Syntax) und Bedeutung (Semantik) von Sprachelementen.
Details:
- Syntax: Regeln für die korrekte Struktur von Programmcode.
- Formale Grammatiken: Meistens kontextfreie Sprachen (BNF, EBNF).
- Syntaxbäume: Hierarchische Struktur von Code.
- Semantik: Bedeutung der Programmierkonstrukte.
- Operationale, denotationelle und axiomatische Semantik: Verschiedene Ansätze zur Beschreibung der Semantik.
- Beispiel: Rekursive Definition von Schleifen und Bedingungen.
- Formale Verifikation: Beweistheorie und Logik zur Prüfung der Korrektheit.
Algorithmen und Datenstrukturen
Definition:
Algorithmen und Datenstrukturen sind grundlegende Konzepte der Informatik, die effiziente Datenverarbeitung und -speicherung ermöglichen.
Details:
- Algorithmus-Komplexität: Zeit (O-Notationen), Platz
- Datenstrukturen: Arrays, Listen, Bäume, Graphen, Hash-Tabellen
- Sortieralgorithmen: Quicksort, Mergesort, Heapsort, Bubblesort
- Suchen: Binäre Suche, Lineare Suche
- Grundlegende Algorithmen: Dijkstra, Floyd-Warshall, Prim
- Stapel (Stack) und Warteschlangen (Queue)
- Rekursion und Iteration
Datenbankdesign und Normalisierung
Definition:
Datenbankdesign: Strukturierung von Datenbanken zur effizienten und widerspruchsfreien Speicherung von Daten. Normalisierung: Prozess zur Eliminierung von Redundanzen und Inkonsistenzen durch Aufteilung in kleinere, miteinander verknüpfte Tabellen.
Details:
- Ziele: Redundanzfreiheit, Konsistenz, Flexibilität, Performance
- Normalformen: 1NF (Elimination von Wiederholungsgruppen), 2NF (Elimination partieller Abhängigkeiten), 3NF (Elimination transitiver Abhängigkeiten)
- 1NF: Jedes Attribut enthält nur atomare, unteilbare Werte.
- 2NF: Tabelle ist in 1NF und alle Nicht-Schlüsselattribute sind voll funktional vom Primärschlüssel abhängig.
- 3NF: Tabelle ist in 2NF und keine Nicht-Schlüsselattribute sind transitiv abhängig.
- Inkonsistenzen und Anomalien vermeiden
Neuronale Netze und Deep Learning
Definition:
Künstliche neuronale Netze (KNN) und Deep Learning (DL) beschäftigen sich mit Algorithmen, die die Struktur und Funktionsweise des menschlichen Gehirns nachahmen, um komplexe Muster und Zusammenhänge in Daten zu erkennen.
Details:
- KNN bestehen aus Schichten (Input-, versteckte, Output-Schicht)
- Jede Schicht enthält Neuronen, die durch Gewichte miteinander verbunden sind
- Aktivierungsfunktionen: Sigmoid, ReLU, Tanh
- Backpropagation zur Gewichtsaktualisierung
- DL nutzt tiefere Netzwerke (mehrere versteckte Schichten)
- Adam, SGD – Optimierungsverfahren
- Overfitting vermeiden: Regularisierung, Dropout
- Loss-Funktion: MSE, Cross-Entropy
- Anwendungen: Bild- und Spracherkennung, NLP, generative Modelle
Netzwerkprotokolle (z.B. TCP/IP)
Definition:
Netzwerkprotokolle sind Regelwerke für die Kommunikation zwischen Computern in einem Netzwerk, z.B. TCP/IP verwendet für Routing und Datentransfer im Internet.
Details:
- TCP (Transmission Control Protocol): Verbindungsorientiert, garantiert Zustellung, Datenpakete in Sequenz, Fehlerkorrektur.
- IP (Internet Protocol): Zustellung von Datenpaketen basierend auf IP-Adressen, keine Zustellgarantie.
- UDP (User Datagram Protocol): Verbindungslos, schnell, keine Zustellungsgarantie, keine Fehlerkorrektur.
- ICMP (Internet Control Message Protocol): Fehlermeldungen und Diagnose, z.B. Ping.
- HTTP/HTTPS: Anwendungsschichtprotokoll für Webkommunikation, HTTPS verschlüsselt.
Softwareentwicklungslebenszyklus
Definition:
Prozess der Planung, Entwicklung, Testung und Wartung von Software.
Details:
- Planung: Anforderungen erfassen und analysieren
- Entwurf: Architekturen und Design-Spezifikationen
- Implementierung: Code schreiben und integrieren
- Testen: Fehler finden und beheben
- Wartung: Fehlerkorrektur und Funktionsupdates nach der Auslieferung
Maschinelles Lernen
Definition:
ML ist ein Teilgebiet der KI, das Computern ermöglicht, aus Daten zu lernen und Entscheidungen zu treffen, ohne explizit programmiert zu sein.
Details:
- Supervised Learning: Input-Output-Paare, Ziel: Modell lernt Zuordnung \textit{(z.B. Klassifikation, Regression)}
- Unsupervised Learning: Nur Eingabedaten, Ziel: Muster und Strukturen entdecken \textit{(z.B. Clustering, Dimensionalitätsreduktion)}
- Reinforcement Learning: Lernen durch Belohnung/Bestrafung, Ziel: Optimale Strategie finden \textit{(z.B. Spiele, Robotik)}
- Wichtige Algorithmen: Lineare Regression, Entscheidungsbäume, Neuronale Netze
- Fehlermetriken: MSE (Mean Squared Error), Genauigkeit, F1-Score
Agile Methoden und Scrum
Definition:
Agile Methoden fokussieren sich auf iterative und inkrementelle Entwicklung. Scrum ist ein Framework, um Agile Prinzipien umzusetzen.
Details:
- Iterationen heißen Sprints, normalerweise 2-4 Wochen
- Rollen: Product Owner, Scrum Master, Entwicklungsteam
- Artefakte: Product Backlog, Sprint Backlog, Increment
- Ereignisse: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
- Transparenz, Überprüfung und Anpassung sind Kernprinzipien
- Fördert Zusammenarbeit, Flexibilität und kontinuierliche Verbesserung