Here is the quiz converted into a clean, readable Markdown format. I have preserved the structure, code snippets, and feedback for each question. --- # 223015c – Grundlagen IT- und Internettechnik **WS 2025/26 – Michael Czechowski – HdM Stuttgart** **40 Punkte / 40 Minuten** --- ### Q1 – Von-Neumann: Komponenten zuordnen (3 pt) **Ordne jeder Komponente der Von-Neumann-Architektur ihre Funktion zu.** * **Rechenwerk (ALU):** Führt arithmetische und logische Operationen durch. * **Steuerwerk:** Holt, dekodiert und steuert die Ausführung von Befehlen. * **Speicherwerk:** Enthält sowohl Programme als auch Daten (Stored Program Concept). * **Ein-/Ausgabe:** Schnittstelle zu externen Geräten wie Tastatur, Bildschirm, Netzwerk. * **Bus-System:** Verbindet alle Komponenten mittels Adress-, Daten- und Steuerbus. > **Feedback:** Die 5 Komponenten: ALU (Rechnen), Steuerwerk (Befehle steuern), Speicherwerk (Programme UND Daten), Ein-/Ausgabe (Peripherie), Bus-System (Verbindung). --- ### Q2 – Von-Neumann vs. Harvard (2 pt) **Ein Arduino-Mikrocontroller nutzt die Harvard-Architektur. Ein modernes Smartphone nutzt eine (modifizierte) Von-Neumann-Architektur.** **Warum ist die Harvard-Architektur für Echtzeit-Anwendungen auf dem Arduino vorteilhafter, und was wäre der Nachteil, wenn das Smartphone diese Architektur verwenden würde?** * [ ] Harvard ist langsamer, aber sicherer – daher für Echtzeit geeignet. Smartphones brauchen die Geschwindigkeit nicht. * [x] **Harvard nutzt separate Speicher für Code und Daten → paralleler Zugriff, schneller. Beim Smartphone wäre es schwieriger, beliebige Apps zu laden – weniger Flexibilität.** ✅ * [ ] Beide Architekturen sind funktional identisch – der Unterschied liegt nur im Gehäuse. * [ ] Von-Neumann ist schneller durch gemeinsamen Speicher. Harvard wird gewählt, weil Echtzeit-Apps weniger Speicher brauchen. > **Feedback:** Harvard: separate Code/Daten-Speicher → paralleler Zugriff, schneller. Nachteil: Code und Daten nicht aus gleichem Speicher nahtlos mischbar → weniger Flexibilität, kein „Laden beliebiger Apps" wie bei Von-Neumann. --- ### Q3 – Stored Program Concept (2 pt) **Vor der Von-Neumann-Architektur mussten bei Maschinen wie dem ENIAC Programme durch Umstecken von Kabeln eingegeben werden.** **Was konkret ermöglicht das Stored Program Concept, was vorher nicht möglich war? Nenne zwei Beispiele.** * [ ] Programme werden auf separater Hardware gespeichert → die Hauptspeicher-Kapazität wird ums Doppelte gesteigert. * [ ] Die Hardware kann jetzt selbst Befehle erfinden – kein Mensch muss mehr programmieren. * [x] **Programme werden als Daten im Speicher abgelegt → z. B. Apps können installiert/gelöscht werden und Multitasking (mehrere Programme gleichzeitig) wird möglich.** ✅ * [ ] Nur ein einzelnes Programm kann gleichzeitig laufen, aber es kann schneller geladenen werden. > **Feedback:** Stored Program: Programme werden als Daten im Speicher abgelegt → austauschbar ohne Hardwareänderung. Ermöglicht: Betriebssysteme, Apps installieren/löschen, Multitasking, Updates. --- ### Q4 – HTML: `
` vs. `` (2 pt) **Ein Student erstellt eine Webseite und platziert *alles* im `` – auch den `Text
` wird angezeigt.** **Welche Farbe zeigt der Text an, und warum?** * [ ] **Blau** – die Element-Regel steht zuerst im Code und hat daher Vorrang. * [ ] **Grün** – Klassen-Selektoren haben immer Vorrang vor IDs. * [x] **Rot – die ID-Regel `#main` hat die höchste Spezifität (0,1,0,0) und gewinnt über Klasse (0,0,1,0) und Element (0,0,0,1).** ✅ * [ ] **Rot** – die letzte Regel im Code gewinnt immer, unabhängig vom Selektor-Typ. > **Feedback:** Spezifität: ID (0,1,0,0) > Klasse (0,0,1,0) > Element (0,0,0,1). Alle drei Regeln treffen das Element – ID #main gewinnt → rot. --- ### Q16 – Responsive Design: Mobile First (2 pt) **Ein Developer schreibt folgendes CSS:** ```css .container { background: white; } @media (min-width: 768px) { .container { background: blue; } } @media (min-width: 1024px) { .container { background: green; } } ``` **Welche Farbe hat `.container` bei einem Bildschirm von 900 px Breite, und warum?** * [ ] **Weiß** – Media-Queries gelten nur ab 1024 px, darunter bleibt immer die Basis-Farbe. * [ ] **Grün** – die letzte Media-Query überschreibt immer alle vorherigen. * [x] **Blau – bei 900 px greift `min-width: 768px` (900 ≥ 768), aber `min-width: 1024px` greift nicht (900 < 1024).** ✅ * [ ] **Weiß** – bei 900 px greift keine Media-Query, da 900 zwischen den beiden Breakpoints liegt. > **Feedback:** Mobile First: Basis = white. Bei 900px greift min-width: 768px → blue. min-width: 1024px greift NICHT (900 < 1024). Ergebnis: blau. --- ### Q17 – Zusammen: Reihenfolge eines HTTPS-Aufrufs (1 pt) **Du gibst eine URL ein. Welche Reihenfolge der Schritte ist korrekt?** * [ ] (1) TCP-Handshake → (2) DNS → (3) HTTP GET → (4) HTTP 200 OK * [x] **(1) DNS → (2) TCP-Handshake → (3) HTTP GET → (4) HTTP 200 OK** ✅ * [ ] (1) HTTP GET → (2) DNS → (3) TCP-Handshake → (4) HTTP 200 OK * [ ] (1) DNS → (2) HTTP GET → (3) TCP-Handshake → (4) HTTP 200 OK > **Feedback:** Korrekte Reihenfolge: (1) DNS-Auflösung, (2) TCP 3-Way-Handshake, (3) HTTP-Request (GET), (4) HTTP-Response (200 OK + HTML). --- ### Q18 – Bonusfrage: Spezifität Edge Case (1 pt) **Es gibt zwei CSS-Regeln für ein ``-Element:** ```css p p p p p p p p p p { color: blue; } /* 100× Element-Selektor */ .highlight { color: red; } /* 1× Klasse */ ``` **Das Element hat die Klasse `highlight`. Welche Farbe gewinnt?** * [ ] **Blau** – 100 Element-Selektoren ergeben 0,0,0,100 = höhere Spezifität als 0,0,1,0. * [x] **Rot – eine Klasse (0,0,1,0) gewinnt immer gegen beliebig viele Element-Selektoren (0,0,0,n). Spezifität-Stellen überschreiben sich, nicht addieren.** ✅ * [ ] **Blau** – die längere Regel (mehr Selektoren) hat immer höhere Spezifität. * [ ] Unentschieden – die Regeln haben exakt gleiche Spezifität. > **Feedback:** Eine einzelne Klasse (0,0,1,0) schlägt immer hundert Element-Selektoren (0,0,0,100). Spezifität wird nicht additiv „aufgezählt" – die Stelle zählt als Einheit. --- ### Q19 – Von-Neumann: Der Flaschenhals (Engpass) **Die Von-Neumann-Architektur hat einen bekannten Nachteil, den sogenannten „Von-Neumann-Flaschenhals“. Was ist damit gemeint?** * [ ] Das Steuerwerk kann Befehle schneller verarbeiten, als das Rechenwerk sie berechnen kann. * [x] **Die CPU ist schneller als der Datentransfer über den gemeinsamen Bus. Da Daten und Befehle denselben Bus nutzen, müssen sie nacheinander geladen werden.** ✅ * [ ] Der Speicher verliert seine Daten, wenn der Strom abgeschaltet wird, was den Startvorgang verlangsamt. * [ ] Die Ein-/Ausgabegeräte blockieren den Prozessor dauerhaft, da sie keinen eigenen Speicher haben. > **Feedback:** Der Flaschenhals entsteht, weil Befehle und Daten sich den gleichen Weg (Bus) teilen müssen und der Speicherzugriff langsamer ist als die CPU-Geschwindigkeit. --- ### Q20 – HTML: Encoding (Charset) **In Q4 ging es um Metadaten. Ein weiteres wichtiges Tag im `
` ist ``. Was ist die konkrete Konsequenz, wenn dieses Tag fehlt oder falsch ist?** * [ ] Die Webseite lädt gar nicht, da der Browser den Binärcode nicht interpretieren kann. * [x] **Sonderzeichen (Umlaute, Emojis) werden als kryptische Symbole („Hieroglyphen“) dargestellt, da der Browser die falsche Zeichenkodierung rät.** ✅ * [ ] Die Seite wird langsamer, da der Browser erst alle Sprachen der Welt durchprobieren muss. * [ ] Das CSS wird nicht geladen, da CSS zwingend UTF-8 voraussetzt. > **Feedback:** Ohne definierte `charset` (Zeichensatz) nutzt der Browser oft einen Standard (z. B. Latin-1), was bei UTF-8-gespeicherten Dateien zu Darstellungsfehlern bei ä, ö, ü oder Emojis führt. --- ### Q21 – Barrierefreiheit: POUR-Prinzip **Die WCAG basieren auf vier Prinzipien (POUR). Eines davon ist „Bedienbarkeit“ (Operable). Welches Szenario beschreibt eine Verletzung dieses Prinzips?** * [ ] Der Textkontrast ist zu gering (grau auf hellgrau), sodass man ihn kaum lesen kann. * [x] **Eine Navigation funktioniert nur per Maus (Hover), ist aber per Tastatur (Tab-Taste) nicht erreichbar.** ✅ * [ ] Der Inhalt ist in sehr komplizierter Fachsprache geschrieben, die ein Laie nicht versteht. * [ ] Die Webseite stürzt in alten Browsern ab. > **Feedback:** „Bedienbar“ bedeutet, dass die Schnittstelle (Buttons, Links) von jedem genutzt werden kann – also auch ohne Maus (nur Tastatur). Kontrast gehört zu „Wahrnehmbar“ (Perceivable). --- ### Q22 – Encapsulation: Die Empfänger-Seite (Decapsulation) **In Q8 haben wir Daten verpackt. Wenn der Server das Signal empfängt, passiert das Gegenteil (Decapsulation). In welcher Reihenfolge werden die Header *entfernt*?** * [ ] Anwendung (HTTP) → Transport (TCP) → Internet (IP) → Netzzugang (Ethernet) * [ ] Es werden alle Header gleichzeitig entfernt, sobald die Daten im RAM liegen. * [x] **Netzzugang (Ethernet-Header weg) → Internet (IP-Header weg) → Transport (TCP-Header weg) → Daten.** ✅ * [ ] Internet (IP) → Netzzugang (Ethernet) → Transport (TCP) → Anwendung (HTTP) > **Feedback:** Das Auspacken erfolgt in umgekehrter Reihenfolge wie das Einpacken (Zwiebel-Prinzip). Erst wird der Umschlag (Ethernet) geöffnet, dann das Paket (IP), dann das Segment (TCP). --- ### Q23 – Ports: Wozu genau? **Wir wissen aus Q9, dass IP-Adressen Computer identifizieren. Wozu genau dient dann die Port-Nummer (z. B. 80 oder 443) auf dem Zielrechner?** * [ ] Sie bestimmt die Geschwindigkeit der Verbindung. * [ ] Sie dient zur Verschlüsselung der Daten. * [x] **Sie adressiert den konkreten Dienst bzw. die Anwendung auf dem Computer (z. B. Webserver vs. Mailserver).** ✅ * [ ] Sie zeigt an, ob der Computer per WLAN oder Kabel verbunden ist. > **Feedback:** Die IP ist wie die Hausnummer (welches Gebäude?), der Port ist wie die Türnummer oder der Name an der Klingel (wer im Haus soll das Paket bekommen? Webserver? Mailserver?). --- ### Q24 – TCP: Sequenznummern **TCP ist zuverlässig. Ein Mechanismus dafür sind „Sequenznummern“ im Header. Welches Problem lösen diese konkret?** * [ ] Sie verhindern, dass Hacker die Verbindung abhören können. * [x] **Pakete können im Internet unterschiedliche Routen nehmen und in falscher Reihenfolge ankommen. Sequenznummern erlauben das korrekte Sortieren beim Empfänger.** ✅ * [ ] Sie zählen, wie viele Benutzer gerade gleichzeitig auf dem Server sind. * [ ] Sie bestimmen die maximale Größe einer Datei. > **Feedback:** Da IP-Pakete überholen können, kommen Teil 2 und Teil 3 vielleicht vor Teil 1 an. TCP sortiert sie anhand der Nummern wieder richtig. UDP macht das nicht. --- ### Q25 – HTTP Methoden: Sicherheit **Warum sollte man niemals die GET-Methode verwenden, um sensible Daten (z. B. ein Passwort) an den Server zu senden?** * [ ] GET ist langsamer als POST und Passwörter müssen schnell übertragen werden. * [x] **Bei GET stehen die Daten sichtbar in der URL (Browser-Verlauf, Server-Logs, Proxy-Server). Bei POST stehen sie im Body.** ✅ * [ ] GET erlaubt nur Zahlen, keine Buchstaben. * [ ] GET-Anfragen werden vom Server nicht verschlüsselt, POST-Anfragen immer. > **Feedback:** Parameter bei GET hängen an der URL (`?pw=123`). Das ist in der History und in Logs sichtbar. HTTPS verschlüsselt zwar beides auf der Leitung, aber die URL ist an zu vielen Stellen sichtbar. --- ### Q26 – HTTP Status: 404 Not Found **Du erhältst einen 404-Fehler. In Q13 (503) lag der Fehler beim Server. Wer hat beim 404-Fehler „Schuld“ bzw. wo liegt die Ursache meistens?** * [ ] Der Server ist abgestürzt. * [ ] Das Internet ist ausgefallen. * [x] **Der Client (Nutzer). Es wurde eine URL angefordert, die es nicht gibt (Tippfehler oder veralteter Link).** ✅ * [ ] Der DNS-Server konnte den Namen nicht auflösen. > **Feedback:** 4xx-Codes sind Client-Errors. Der Server funktioniert super, er sagt dir nur: „Das, was du (Client) suchst, habe ich nicht.“ --- ### Q27 – CSS: `!important` vs. ID **In Q15 hat die ID gewonnen. Nun ändern wir den Code:** ```css #main { color: red; } p { color: blue !important; } ``` **Welche Farbe hat das `` Element nun?** * [ ] **Rot** – ID ist immer noch spezifischer als ein Element-Selektor. * [ ] **Lila** – Die Farben mischen sich. * [x] **Blau** – `!important` durchbricht die normale Spezifitäts-Kaskade und gewinnt sogar gegen IDs (außer die ID hat auch !important). ✅ * [ ] **Rot** – `!important` wird von modernen Browsern ignoriert. > **Feedback:** `!important` ist die „Atombombe“ im CSS. Es überschreibt normale Spezifitätsregeln (ID, Klasse, Element). Es sollte daher sehr sparsam eingesetzt werden. --- ### Q28 – Responsive Design: Desktop First **In Q16 nutzten wir `min-width` (Mobile First). Wie würde die Media Query aussehen, wenn wir „Desktop First“ arbeiten würden (also Standard ist Desktop, Anpassung für kleine Screens)?** * [ ] `@media (device-width: small) { ... }` * [ ] `@media (min-width: ...)` – das bleibt gleich, nur die Reihenfolge ändert sich. * [x] **`@media (max-width: ...)` – Wir definieren Stile für Bildschirme, die *kleiner* als eine bestimmte Breite sind.** ✅ * [ ] `@media (mobile: true) { ... }` > **Feedback:** Desktop First bedeutet: Das Basis-CSS ist für große Schirme. Mit `max-width` (maximale Breite) definieren wir Ausnahmen für Geräte, die schmaler sind (Tablets, Handys).