Prof. Dr. Alexandra Mikityuk
HTW Berlin
Wintersemester 2025/26
📱 Telefon: +49 30 5019-2664
🏢 Büro: Raum 308
📅 Mittwoch: 15:30 - 16:30 Uhr
💡 Bitte vorher per E-Mail anmelden!
Die Lehrveranstaltung (LV) Programmierung wird als Vorlesung mit Übung durchgeführt und gehört zum Curriculum des Bachelorstudiengangs Informations- und Kommunikationstechnik
✅ 1. Semester - Keine Vorkenntnisse erforderlich
✅ C++ Grundlagen, Variablen, Schleifen, Funktionen, Pointer
✅ 2. Semester - Aufbauend auf K21
✅ Algorithmen, Datenstrukturen, Komplexität, Optimierung
Algorithmen verstehen, Komplexität analysieren, Datenstrukturen erklären
Algorithmen implementieren, Code optimieren, Datenstrukturen verwenden
Sie dürfen alle Kursmaterialien zur Prüfung mitbringen!
(Vorlesungsfolien, Labor-Aufgaben, eigene Notizen, Code-Beispiele)
Ein Algorithmus ist nicht nur eine Folge von Anweisungen - es ist die Essenz der Problemlösung!
💡 Algorithmen sind die unsichtbare Kraft, die unsere digitale Welt antreibt!
Blockchain ist ein perfektes Beispiel dafür, wie Algorithmen die Welt verändern!
• Bitcoin: $500+ Milliarden Marktkapitalisierung
• Ethereum: Smart Contracts - Programmierbare Geld
• DeFi: $50+ Milliarden in dezentralen Protokollen
• NFTs: Millionen in digitaler Kunst gehandelt
Ohne Algorithmen gibt es keine Blockchain! 🚀
Daten sind das Rohmaterial, mit dem Algorithmen arbeiten!
Einzelne Fakten ohne Kontext:
Daten mit Bedeutung:
Eingabe (Daten) → Algorithmus → Ausgabe (Information)
Eine Datenstruktur ist die Art und Weise, wie wir Daten organisieren und speichern!
• Arrays - Sequentieller Zugriff
• Linked Lists - Dynamisches Wachstum
• Stacks - LIFO (Last In First Out)
• Queues - FIFO (First In First Out)
• Trees - Hierarchische Daten
• Graphs - Netzwerke & Beziehungen
• Hash Tables - O(1) Lookup!
• Heaps - Priority Queues
Worst Case:
1,000,000
Vergleiche nötig!
⏱️ ~1 Sekunde
Worst Case:
1
Vergleich nötig!
⏱️ ~0.000001 Sekunden
Die richtige Datenstruktur macht den Unterschied!
Blockchain-Technologie basiert vollständig auf cleveren Algorithmen und Datenstrukturen!
Jeder Block enthält den Hash des vorherigen Blocks → Linked List
Manipulation eines Blocks würde alle nachfolgenden Hashes ungültig machen!
SHA-256: Konvertiert beliebige Daten in einen 64-Zeichen Fingerabdruck
Deterministisch: Gleicher Input → Gleicher Output
Lawinen-Effekt: Minimale Änderung → Komplett anderer Hash
Finde eine Nonce (Zahl), sodass Hash(Block + Nonce) mit X Nullen beginnt
Milliarden von Versuchen nötig → Rechenintensiv → Sicherheit!
Effiziente Datenstruktur für die Verifizierung von Transaktionen
Binärer Baum von Hashes → Schnelle Prüfung ohne alle Daten
"In blockchain, the choice of data structure is not just about performance —
it's about security, immutability, and trust."
— Vitalik Buterin, Ethereum Creator
Public Key: Jeder kann verschlüsseln
Private Key: Nur Sie können entschlüsseln
Basiert auf Algorithmen der Primfaktorzerlegung (sehr schwer für große Zahlen!)
String-Matching Algorithmen (Boyer-Moore, KMP) erkennen Angriffsmuster
Firewalls analysieren Millionen Pakete pro Sekunde → Effizienz ist kritisch!
Sichere Session-Keys, Salts für Passwörter, Nonces für Transaktionen
Algorithmus muss unvorhersagbar sein → Sonst Sicherheitslücke!
Jede Online-Transaktion, jede verschlüsselte Nachricht, jede digitale Signatur
basiert auf den Algorithmen und Datenstrukturen, die Sie in diesem Kurs lernen werden!
"Algorithms are the poetry of computation.
Data structures are the prose."
— Donald Knuth
Computer Scientist, Stanford University
Suchen ist die häufigste Operation in der Programmierung!
Komplexität: O(n)
Vorteil: Funktioniert auf unsortierten Daten
Nachteil: Langsam für große Datensätze
Beispiel: Suche in einer unsortierten Liste
Komplexität: O(log n)
Vorteil: Extrem schnell!
Nachteil: Daten müssen sortiert sein
Beispiel: Wörterbuch-Suche
Linear Search: ~1,000,000 Vergleiche
Binary Search: ~20 Vergleiche
50,000x schneller! 🚀
Weiterführung von Kurs K21: Von den Grundlagen zu komplexeren Konzepten
Aufbauend auf den Grundlagen lernen Sie fortgeschrittene Techniken
Effiziente Speicherung und Verwaltung großer Datenmengen
Professionelle Programmiertechniken und Best Practices
🎯 Sie bauen auf Ihren C++ Grundlagen auf und lernen,
professionelle und effiziente Programme zu schreiben!
Die nächste große App, die nächste Blockchain-Innovation, das nächste Startup -
alles basiert auf Algorithmen!
Im Labor 1 werden Sie Ihre ersten Algorithmen implementieren!
Bereiten Sie sich darauf vor, hands-on zu arbeiten! 💻
Kontakt:
📧 Prof. Dr. Alexandra Mikityuk
📱 +49 30 5019-2664
🏢 Raum 308
📅 Sprechstunde: Mittwoch 15:30-16:30
Viel Erfolg beim Lernen! 🚀