AP5 FinalProtocol AP2-Ausbau: 10 Themen / 200 Fragen (FISI + FIAE)
Je Fachrichtung 5 neue Themen a 20 Fragen, nach dem bestehenden Skelett
(Lernfokus + Inhaltssektionen + Pruefungsmodus, data-questions-src) und JSON-
Schema {title, questions:[{category,hint,text,answers[3],correct,explanation}]}:
- FISI: netzwerkplanung, it-sicherheit, virtualisierung, monitoring-backup,
skripting.
- FIAE: sql, uml, oop, algorithmen, testverfahren.
Jede Datei: 20 Fragen, 5 Kategorien a 4, correct ausgewogen rotierend (7/7/6),
Erklaerungen benennen die Distraktoren-Fallen, "du"-Ansprache, echte Umlaute
(UTF-8). Navigation in finalflux.html um je 5 Links erweitert (Bestand bleibt).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WFxcjtc9HNP4VECT6Ur1tE
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de" data-theme="dark">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Algorithmen - FinalProtocol AP2</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="/css/style.css">
|
||||
<link rel="stylesheet" href="/css/theme.css?v=3">
|
||||
<link rel="stylesheet" href="/css/finalflux.css">
|
||||
<script src="/js/theme.js?v=3"></script>
|
||||
</head>
|
||||
<body class="finalflux-page">
|
||||
<div class="mf-theme-float"><button class="mf-theme"></button></div>
|
||||
<main>
|
||||
<a href="/finalflux" class="back-link">Zurück zu FinalProtocol</a>
|
||||
<h1>Algorithmen</h1>
|
||||
|
||||
<section>
|
||||
<h2>Lernfokus</h2>
|
||||
<p>AP2 Anwendungsentwicklung: Abläufe strukturiert darstellen, Standardverfahren zum Sortieren und Suchen einordnen und ihren Aufwand mit der O-Notation bewerten.</p>
|
||||
<ul class="key-list">
|
||||
<li>Kontrollstrukturen im Struktogramm und Pseudocode sicher lesen und schreiben.</li>
|
||||
<li>Sortier- und Suchverfahren nach Prinzip und Voraussetzung unterscheiden.</li>
|
||||
<li>Laufzeitkomplexität in O-Notation einordnen und Rekursion sauber aufbauen.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Struktogramm & Pseudocode</h2>
|
||||
<p>Jeder Algorithmus lässt sich aus drei Grundstrukturen zusammensetzen, die im Struktogramm (Nassi-Shneiderman) als geschachtelte Blöcke ohne Sprünge gezeichnet werden.</p>
|
||||
<ul class="key-list">
|
||||
<li><strong>Sequenz:</strong> Anweisungen werden streng nacheinander abgearbeitet – ein einfaches Rechteck.</li>
|
||||
<li><strong>Verzweigung:</strong> ein dreieckiger Bedingungskopf teilt in Ja- und Nein-Zweig (<code>if-else</code>).</li>
|
||||
<li><strong>Schleife:</strong> <em>kopfgesteuert</em> (<code>while</code>) prüft vor dem Durchlauf – ggf. null Durchläufe; <em>fußgesteuert</em> (<code>do-while</code>) prüft danach – mindestens ein Durchlauf.</li>
|
||||
</ul>
|
||||
<p class="merksatz"><strong>Merksatz:</strong> Sequenz, Verzweigung, Schleife – mit diesen drei Bausteinen kommt jeder strukturierte Algorithmus ohne GOTO aus.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Sortier- & Suchverfahren</h2>
|
||||
<p>Sortier- und Suchverfahren unterscheiden sich in Vorgehen und Voraussetzung – genau das wird in der AP2 gern abgefragt.</p>
|
||||
<ul class="key-list">
|
||||
<li><strong>Einfache Sortierer:</strong> Bubblesort (Nachbarn tauschen), Selectionsort (Minimum suchen), Insertionsort (einsortieren) – meist O(n²).</li>
|
||||
<li><strong>Effiziente Sortierer:</strong> Mergesort und Quicksort nach dem Prinzip „Teile und herrsche" – im Mittel O(n log n), Quicksort im schlechtesten Fall O(n²).</li>
|
||||
<li><strong>Suche:</strong> lineare Suche geht der Reihe nach durch (O(n)); die binäre Suche halbiert den Bereich (O(log n)).</li>
|
||||
</ul>
|
||||
<p class="merksatz"><strong>Merksatz:</strong> Die binäre Suche funktioniert nur auf <em>sortierten</em> Daten – ohne Sortierung bleibt nur die lineare Suche.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>O-Notation</h2>
|
||||
<p>Die O-Notation beschreibt, wie der Aufwand mit der Eingabegröße n wächst – unabhängig von Hardware und Konstanten.</p>
|
||||
<ul class="key-list">
|
||||
<li><strong>O(1):</strong> konstant, z. B. Array-Zugriff über den Index.</li>
|
||||
<li><strong>O(log n):</strong> halbierend, z. B. binäre Suche; <strong>O(n):</strong> linear, z. B. lineare Suche.</li>
|
||||
<li><strong>O(n log n):</strong> gute Sortierer (Merge-/Quicksort); <strong>O(n²):</strong> verschachtelte Schleifen, z. B. Bubblesort.</li>
|
||||
</ul>
|
||||
<p class="merksatz"><strong>Merksatz:</strong> Nach steigendem Aufwand gilt O(1) < O(log n) < O(n) < O(n log n) < O(n²).</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Rekursion</h2>
|
||||
<p>Eine rekursive Funktion löst ein Problem, indem sie sich mit einem verkleinerten Teilproblem selbst aufruft.</p>
|
||||
<ul class="key-list">
|
||||
<li><strong>Basisfall:</strong> Abbruchbedingung, die ein Ergebnis ohne weiteren Selbstaufruf liefert.</li>
|
||||
<li><strong>Rekursionsschritt:</strong> Selbstaufruf mit kleinerem Teilproblem, das dem Basisfall näherkommt.</li>
|
||||
<li><strong>Stack:</strong> jeder Aufruf belegt einen eigenen Stack-Frame – zu tiefe Rekursion führt zum Stack Overflow.</li>
|
||||
</ul>
|
||||
<p class="merksatz"><strong>Merksatz:</strong> Ohne erreichbaren Basisfall wird jede Rekursion zur Endlosrekursion und läuft in den Stack Overflow.</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2>Prüfungsmodus</h2>
|
||||
<p>Dieser ProtocolCheck führt dich durch die wichtigsten AP2-Aspekte dieses Themas. Du kannst Antworten prüfen, Fragen überspringen und bekommst am Ende eine Auswertung nach Kategorie.</p>
|
||||
</section>
|
||||
|
||||
<section class="finalflux-test" data-finalflux-test aria-live="polite">
|
||||
<div class="test-meta">
|
||||
<span data-question-counter>Frage 1</span>
|
||||
<span data-score-counter>0 richtig</span>
|
||||
</div>
|
||||
<div class="category-block">
|
||||
<p class="eyebrow">Kategorie</p>
|
||||
<h2 data-category-title>Algorithmen</h2>
|
||||
<p data-category-hint>AP2-Training</p>
|
||||
</div>
|
||||
<div class="question-card">
|
||||
<h3 data-question-text></h3>
|
||||
<div data-answer-options class="answer-options"></div>
|
||||
<div data-answer-feedback class="fluxcheck-result"></div>
|
||||
</div>
|
||||
<div class="test-actions">
|
||||
<button type="button" data-check-answer>Antwort prüfen</button>
|
||||
<button type="button" data-skip-question class="secondary">Überspringen</button>
|
||||
<button type="button" data-next-question class="secondary" disabled>Weiter</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section data-test-result class="finalflux-panel" hidden>
|
||||
<h2>Auswertung</h2>
|
||||
<p data-result-summary></p>
|
||||
<ul data-category-summary class="key-list"></ul>
|
||||
<div class="finalflux-actions">
|
||||
<button type="button" data-restart-test>Test neu starten</button>
|
||||
<a href="/finalflux">Zurück zur Übersicht</a>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<script src="/js/finalflux-test.js" data-questions-src="/finalflux/questions/ap2_fiae_algorithmen.json" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user