Startseite
๐Ÿค–๐Ÿ’ฌ

Programmieren mit KI

Wir bauen gemeinsam mit Claude!

Bonus-Vorlesung: Live-Coding mit einer KI

Prof. Dr. Alexandra Mikityuk | HTW Berlin | WiSe 2025/26

Was erwartet uns heute?

Teil 1: Theorie (10 min)

  • Was ist eine KI wie Claude?
  • Wie kann man mit KI programmieren?
  • Was bedeutet das fuer die Zukunft?

Teil 2: Praxis (35 min)

  • Wir bauen gemeinsam zwei Webseiten
  • Mit Claude als Programmier-Partner
  • LIVE - kein vorbereiteter Code!

Das Besondere: Ich tippe Prompts in Claude und wir bauen den Code zusammen!

Was ist Claude?

๐Ÿ‘จโ€๐Ÿ’ป

Du

Frage oder Aufgabe

โžก๏ธ
๐Ÿง 

Claude

KI-Assistent

โžก๏ธ
๐Ÿ’ป

Antwort

Code, Erklaerungen...

Claude ist ein Large Language Model (LLM)

Trainiert auf Milliarden von Texten - versteht Sprache UND Code!
Kann Code generieren, erklaeren, Fehler finden und Fragen beantworten.

Kostenlos testen: claude.ai

Was kann Claude beim Programmieren?

โœ…

Claude kann

  • Code generieren
  • Code erklaeren
  • Fehler finden
  • Ideen vorschlagen
  • Dokumentation schreiben
โš ๏ธ

Vorsicht bei

  • Komplexer Logik
  • Sehr neuen Bibliotheken
  • Spezial-Problemen
  • 100% Korrektheit
โŒ

Claude kann nicht

  • Fuer euch denken
  • Immer Recht haben
  • Ohne Kontext arbeiten
  • Zaubern!

Goldene Regel: Claude ist ein Werkzeug, kein Ersatz fuer Verstaendnis!
Ihr muesst den Code verstehen, den Claude generiert.

Unser Projekt: Restaurant-Demo ๐Ÿ•

Wir bauen zwei Webseiten, die miteinander kommunizieren!

๐Ÿ“ฑ

Kellner-Tablet

  • Tischnummer waehlen
  • Gericht eingeben
  • Bestellung senden
  • Fertige Bestellungen abholen
๐Ÿ‘จโ€๐Ÿณ

Kuechen-Display

  • Sieht alle Bestellungen
  • Markiert als "Fertig!"
  • Kellner wird benachrichtigt
  • Aktualisiert sich automatisch

Wie kommunizieren die Seiten?

๐Ÿ“ฑ

Kellner

Schreibt Bestellung

โžก๏ธ
๐Ÿ’พ

localStorage

Browser-Speicher

โฌ…๏ธ
๐Ÿ‘จโ€๐Ÿณ

Kueche

Liest Bestellung

// localStorage = kleiner Speicher im Browser

// Kellner SPEICHERT:
localStorage.setItem('bestellungen', '...');

// Kueche LIEST:
let daten = localStorage.getItem('bestellungen');

Wichtig: localStorage funktioniert nur auf EINEM Computer, im gleichen Browser!

Unsere Werkzeuge

๐ŸŒ

HTML

Die Struktur
Formulare, Buttons, Bereiche

๐ŸŽจ

CSS

Das Aussehen
Farben, Layout, Design

โšก

JavaScript

Die Logik
Speichern, Laden, Reagieren

Keine Vorkenntnisse noetig!
Claude erklaert alles Schritt fuer Schritt!

JETZT WIRD'S SPANNEND!

Live-Coding mit Claude

๐ŸŽฌ

Wir bauen zusammen!

Ich tippe Prompts in Claude - ihr seht, wie der Code entsteht!

Der Plan:

  1. Kellner-Seite: Formular bauen
  2. Kellner-Seite: Speichern-Funktion
  3. Kuechen-Seite: Bestellungen anzeigen
  4. Kuechen-Seite: "Fertig!"-Funktion
  5. Testen und staunen!
LIVE CODING

Schritt 1: Das Formular

Prompt an Claude:

Ich baue eine einfache Restaurant-Demo fuer Studierende.
Erstelle mir HTML fuer ein Bestellformular mit:
- Dropdown fuer Tischnummer (1-6)
- Textfeld fuer das Gericht
- Button "Bestellung senden"

Nur das HTML, kein JavaScript noch. Halte es einfach.

Was wir lernen:

  • <select> - Dropdown-Menu
  • <input type="text"> - Eingabefeld
  • <button> - Klickbarer Button
LIVE CODING

Schritt 2: Speichern-Funktion

Prompt an Claude:

Super! Jetzt brauche ich JavaScript damit der Button funktioniert.
Wenn man klickt:
1. Hole die Werte aus dem Formular (Tisch und Gericht)
2. Speichere als Objekt in localStorage mit: id, tisch, gericht, zeit, status
3. Zeige eine Erfolgsmeldung

Erklaere jeden Schritt mit Kommentaren.

Wichtige Konzepte:

  • localStorage - Browser-Speicher (ueberlebt Neuladen!)
  • JSON.stringify() - Objekt zu Text
  • Date.now() - Eindeutige ID erstellen
LIVE TEST

Erster Test!

Was wir testen:

  1. Datei speichern und im Browser oeffnen
  2. Bestellung eingeben und senden
  3. DevTools oeffnen (F12)
  4. Application > localStorage anschauen
โœจ

Magic Moment: Die Bestellung ist gespeichert!

LIVE CODING

Schritt 3: Kueche zeigt Bestellungen

Prompt an Claude:

Jetzt die Kuechen-Seite. Die soll:
1. Alle 2 Sekunden localStorage auslesen (selber Key wie Kellner)
2. Jede Bestellung als Karte anzeigen mit: Tischnummer, Gericht, Uhrzeit
3. Einen "Fertig!" Button pro Bestellung

Erklaere die Schleife und setInterval mit Kommentaren.

Wichtige Konzepte:

  • setInterval(funktion, 2000) - Alle 2 Sekunden ausfuehren
  • JSON.parse() - Text zurueck zu Objekt
  • innerHTML - HTML dynamisch aendern
LIVE CODING

Schritt 4: "Fertig!"-Funktion

Prompt an Claude:

Wenn man "Fertig!" klickt, soll die Bestellung:
1. Den Status auf 'fertig' aendern
2. Nicht mehr in der Kueche angezeigt werden
3. Aber beim Kellner erscheinen (der holt sie dann ab)

Aktualisiere die Funktionen entsprechend.

Das Prinzip:

Wir aendern nur den status im Objekt.
Die Kueche zeigt nur status: 'neu'
Der Kellner zeigt nur status: 'fertig'

DER GROSSE TEST!

Beide Seiten zusammen

Tab 1: Kellner

Bestellung eingeben und senden

Tab 2: Kueche

Bestellung erscheint automatisch!

๐ŸŽ‰

Die Seiten kommunizieren!
Kellner sendet โ†’ Kueche sieht โ†’ Koch klickt Fertig โ†’ Kellner holt ab

Der Code im Ueberblick

// KELLNER: Bestellung speichern
function sendeBestellung() {
    // 1. Werte holen
    const tisch = document.getElementById('tisch').value;
    const gericht = document.getElementById('gericht').value;

    // 2. Bestellung als Objekt
    const bestellung = {
        id: Date.now(),
        tisch: tisch,
        gericht: gericht,
        status: 'neu'
    };

    // 3. Speichern
    let alle = JSON.parse(
        localStorage.getItem('orders') || '[]'
    );
    alle.push(bestellung);
    localStorage.setItem('orders',
        JSON.stringify(alle));
}
// KUECHE: Bestellungen anzeigen
function displayOrders() {
    // 1. Alle laden
    let orders = JSON.parse(
        localStorage.getItem('orders') || '[]'
    );

    // 2. Nur neue filtern
    let neue = orders.filter(
        o => o.status === 'neu'
    );

    // 3. HTML generieren
    for (let order of neue) {
        html += `Tisch ${order.tisch}...`;
    }
}

// Alle 2 Sekunden aktualisieren
setInterval(displayOrders, 2000);

Das ist der Kern! Alles andere ist nur Styling und Komfort.

Was ist gerade passiert?

Ihr habt gerade PROGRAMMIERT!

Mit KI-Hilfe, aber IHR habt es verstanden!

๐Ÿค–

Claude schrieb

Den Code

๐Ÿง 

Ihr habt verstanden

Was der Code tut

โœจ

Zusammen gebaut

Ein funktionierendes System

So funktioniert moderne Softwareentwicklung!

Aber Moment... ๐Ÿค”

Frage: Wo ist der Server?

Antwort: Es gibt keinen! localStorage ist nur im Browser.
Das funktioniert nur auf EINEM Computer!

Unsere Demo

[Kellner] โ†” localStorage โ†” [Kueche]

Gleicher Browser, gleicher Computer

Echte Produktion

[Kellner] โ†’ Server โ†’ [Kueche]

Verschiedene Geraete, uebers Internet

Fuer echte Apps braucht ihr: Server, Datenbank, HTTPS - das lernt ihr in spaeteren Kursen!

Von der Demo zur echten App

// UNSERE DEMO (localStorage):
[Kellner-Tab] โ”€โ”€localStorageโ”€โ”€โ†’ [Kuechen-Tab]
                 (gleicher Browser)

// ECHTE PRODUKTION:
[Kellner-App] โ”€โ”€HTTPSโ”€โ”€โ†’ [SERVER] โ†โ”€โ”€HTTPSโ”€โ”€ [Kuechen-Display]
  (iPad)                    โ”‚                    (Bildschirm)
                       [Datenbank]
                            โ”‚
                    Optional: [KI/API]
โ˜๏ธ

Server

AWS, Google Cloud
~5โ‚ฌ/Monat

๐Ÿ—„๏ธ

Datenbank

MySQL, PostgreSQL
Speichert alles

๐Ÿ”’

HTTPS

Verschluesselt
Sicher uebers Internet

Claude API fuer echte Projekte

Was ist eine API?

Ein Programm kann Claude automatisch fragen - ohne dass ihr tippt!

// Beispiel: Euer Programm fragt Claude

const frage = "Tisch 3 wartet 15 Min, Tisch 5 hat Beschwerde. Was tun?";

const antwort = await claude.ask(frage);

// Claude antwortet: "Prioritaet: Beschwerde! Sofort zu Tisch 5!"

Kosten

  • ~0.01 Cent pro Anfrage
  • $5 Startguthaben
  • Student-Rabatte verfuegbar

Zum Ausprobieren

  • claude.ai - kostenlos!
  • docs.anthropic.com
  • Kein Server noetig zum Testen

Die Kunst des Fragens: Prompt Engineering

Wie man Claude die richtigen Anweisungen gibt

โŒ Schlechter Prompt

"Mach mir eine Webseite"

Zu vage, keine Details

โœ… Guter Prompt

"Erstelle HTML fuer ein Formular mit Dropdown (1-6), Textfeld, Button. Nur HTML, einfach halten."

Konkret, begrenzt, klar!

4 Tipps fuer gute Prompts:

  1. Kontext geben: "Fuer Anfaenger", "Restaurant-Demo"
  2. Konkret sein: "Dropdown mit 6 Optionen"
  3. Begrenzen: "Nur HTML, kein CSS"
  4. Format angeben: "Mit Kommentaren erklaeren"

Grenzen der KI

๐ŸŽฒ

Nicht immer gleich

Gleiche Frage kann verschiedene Antworten geben!

๐Ÿ›

Macht Fehler

Code IMMER testen! Claude ist nicht perfekt.

๐Ÿ“š

Wissen begrenzt

Kennt nicht die neuesten Bibliotheken.

WICHTIG: KI ersetzt nicht das Verstehen!
Ihr muesst pruefen koennen, ob der Code richtig ist.

KI in der Arbeitswelt

Die Zukunft ist jetzt!

Fast alle Softwarefirmen nutzen bereits KI-Tools beim Programmieren.

๐Ÿ’ป

GitHub Copilot

KI direkt im Code-Editor

๐Ÿ”ง

Claude / ChatGPT

Fragen, erklaeren, debuggen

๐Ÿงช

KI-Testing

Automatisch Tests generieren

Gefragte Kombination: Programmier-Grundlagen + KI-Nutzung!

Ethik & Verantwortung

Mit Werkzeugen kommt Verantwortung!

Wichtige Fragen:

  • Wer ist verantwortlich wenn KI-Code Fehler hat?
  • Darf man KI-Code als eigenen ausgeben?
  • Was passiert mit meinen Daten?
  • Ersetzt KI meinen zukuenftigen Job?

Best Practices:

  • KI-Code IMMER verstehen und pruefen
  • Keine sensiblen Daten eingeben
  • KI-Nutzung transparent machen
  • Eigenes Wissen weiter aufbauen!

Moment - warum HTML und nicht C? ๐Ÿค”

Ihr lernt doch C - warum haben wir heute HTML/JavaScript benutzt?

HTML/JavaScript

Fuer: Benutzeroberflaechen

  • Webseiten, Apps
  • Buttons, Formulare
  • Laeuft im Browser
  • Einfach zu zeigen

C

Fuer: Das "Innenleben"

  • Betriebssysteme
  • Hardware-Steuerung
  • Schnelle Berechnungen
  • Embedded Systems

Die Wahrheit: Oft arbeiten beide zusammen!
HTML zeigt an โ†’ C berechnet im Hintergrund

Wo steckt C ueberall drin? ๐Ÿ”

C ist UEBERALL - ihr seht es nur nicht!

๐Ÿ“ฑ

Euer Handy

Android Kernel, iOS Kern - alles C!

๐Ÿš—

Autos

Motor-Steuerung, ABS, Airbag - C!

๐ŸŽฎ

Spielkonsolen

PlayStation, Xbox, Nintendo - C/C++!

๐Ÿฅ

Medizingeraete

MRT, Herzschrittmacher - C!

โœˆ๏ธ

Flugzeuge

Autopilot, Navigation - C!

๐Ÿค–

Roboter

Industrieroboter, Drohnen - C!

Beruehmte Software - geschrieben in C

Betriebssysteme

  • Linux - Server weltweit, Android
  • Windows - Kernel in C
  • macOS/iOS - Kern in C

Datenbanken

  • MySQL - Die meisten Webseiten
  • PostgreSQL - Professionell
  • SQLite - In jedem Handy!

Programmiersprachen

  • Python - In C geschrieben!
  • PHP - In C geschrieben!
  • JavaScript (V8) - In C++!

Werkzeuge

  • Git - Versionskontrolle
  • curl - Downloads
  • FFmpeg - Video-Konvertierung

C in Aktion: Roboter-Steuerung

So koennte unser Restaurant-Roboter in echtem C aussehen:

// Roboter-Steuerung in C - das kennt ihr!
int tische[10];        // Tischnummern
int anzahl = 0;        // Anzahl Bestellungen

void fahre_zu_tisch(int tisch) {
    printf("๐Ÿค– Fahre zu Tisch %d...\n", tisch);
    motor_links(100);   // Hardware-Funktion!
    motor_rechts(100);
    warte_bis_ankunft(tisch);
}

int main() {
    while(1) {  // Endlosschleife - Roboter laeuft immer
        lese_sensoren();
        if (anzahl > 0) {
            fahre_zu_tisch(tische[0]);
            anzahl--;
        }
    }
}

Das kennt ihr! Arrays, Schleifen, Funktionen - alles aus dem Kurs!

C + KI = Die Zukunft

In der echten Welt arbeiten C und KI zusammen:

// Roboter fragt Claude um Hilfe!
int main() {
    char status[500];
    char antwort[200];

    // 1. Status sammeln (Sensoren, Kameras)
    sprintf(status, "Tisch 3: wartet 10min, Tisch 5: Beschwerde");

    // 2. Claude fragen (HTTP-Request)
    frage_claude_api(status, antwort);
    // antwort: "FAHRE:5:Entschuldigung fuer die Unannehmlichkeiten!"

    // 3. Befehl ausfuehren
    int ziel;
    sscanf(antwort, "FAHRE:%d", &ziel);  // String parsen!
    fahre_zu_tisch(ziel);

    return 0;
}

C steuert die Hardware โ†’ KI trifft die Entscheidungen!

Was wir heute gelernt haben

  • Claude kann Code generieren - aber ihr muesst ihn verstehen!
  • localStorage ermoeglicht Kommunikation zwischen Webseiten
  • Gute Prompts = konkret, begrenzt, mit Kontext
  • HTML/JS fuer Oberflaechen, C fuer Hardware & Performance
  • C steckt ueberall - Handys, Autos, Roboter, Datenbanken!
  • C + KI = maechtiges Team fuer die Zukunft

Mit C-Grundlagen koennt ihr:
Roboter steuern, Spiele programmieren, KI-Systeme bauen!

Vielen Dank!

๐ŸŽ‰

Ressourcen zum Weitermachen:

  • Claude: claude.ai - Kostenlos ausprobieren!
  • Demo-Dateien: Auf der Kurs-Website
  • C lernen: Euer Grundlagen-Kurs ist perfekt!
  • Embedded C: Arduino, Raspberry Pi Pico

Fragen? Fragt mich - oder fragt Claude! ๐Ÿ˜‰

Prof. Dr. Alexandra Mikityuk | HTW Berlin | WiSe 2025/26