je 5 lernziele pro kapitel auf basis des DHBW-fundaments (industrie-anschluss + selbstständig-lernen + praxis-bezug): - kap1 web eng: browser-render, semantisches HTML, A11y BFSG/EAA, DevTools, tool-landschaft VS Code/Vite/Frameworks - kap2 CSS extended: box-model, flexbox 1D, grid 2D, responsive media queries, animations+transitions mit reduced-motion - kap3 node basics: rolle als runtime, npm init+package.json+node 24 LTS, ESM vs CJS, http-server mit express, fetch in node - kap4 node advanced: async/await+promise, fs/promises, datenbank-CRUD (SQLite/PG), authentifizierung JWT/session, error-handling - kap5 testing: vitest unit-tests, TDD red-green-refactor, integration-tests API, E2E playwright/cypress trade-offs, coverage-report (kein QA-garant) - kap6 typescript: rolle als JS-aufsatz, typen-annotation, interfaces+type-aliase, generics LESEN, strict-tsconfig - kap7 docker: container-konzept, dockerfile, docker compose multi-container, multi-stage-build (bonus), CI-pipeline integration - kap8 best practices: git-hygiene+conventional commits, README schreiben, SOLID erkennen, 12-factor app, code-reviews, SemVer soft-skills übergreifend: doku lesen, stack-overflow/github-issues nutzen, sauber strukturieren, industrie-konventionen. 4 offene fragen: kap1-split (zu groß bei 1791 zeilen)?, TS-tiefe (lesen vs schreiben)?, kap8 soft- vs hard-skills?, DHBW-praxis-phase-stack-verteilung (node vs java)? danach: bogen pro 8 kapitel, demo-audit (dhbw-assets bisher minimal), slide-rewrites pro kapitel
7.4 KiB
DHBW Technik I — Operative Lernziele (Vorschlag, zur Diskussion)
Status: Vorschlag, nicht gelockt. Du redigierst.
Basis: DHBW-Fundament (3 Meta-Lernziele aus dhbw-fundament.md) + Prüfungsleistung-Kompetenzen (dhbw-pruefungsleistung.md).
Eichmaß: Fließsatz, default Bloom Verstehen, mit Praxis-Phasen-Anker.
Übergreifend (gilt für alle 8 Kapitel)
Jedes Kapitel sollte mindestens eines der drei DHBW-Meta-Lernziele bedienen:
- Industrie-Anschluss-Fähigkeit (Tools, Stack, Konventionen)
- Selbstständig-Lernen-Lernen (Doku lesen, Errors googeln)
- Theorie-Praxis-Verbindung (Anwendungsfall in Unternehmens-Kontext)
Kapitel 1 — Web Engineering Grundlagen
Aktuell 1791 Zeilen — zu groß. Vorschlag: in 2 Teilkapitel splitten, oder stark reduzieren.
Lernziele
1.1 Die Studierenden können den Browser-Render-Ablauf (URL → DNS → TCP/TLS → HTTP → HTML-Parsing → CSS+JS → Pixel) frei reproduzieren.
1.2 Die Studierenden können semantisches HTML schreiben (header, nav, main, section, article, footer, label/input/button) und begründen, warum es für SEO + A11y wichtig ist.
1.3 Die Studierenden können A11y-Basis-Standards (BFSG/EAA ab 28.06.2025, WCAG POUR, semantisches HTML, ARIA als Ergänzung) anwenden und ein Minimum-Lighthouse-A11y-Audit durchführen.
1.4 Die Studierenden können einen lokalen Dev-Server einrichten (mit python -m http.server oder Live-Server-Extension) und sind mit Browser-DevTools (Elements, Console, Network, Performance, Lighthouse) vertraut.
1.5 Die Studierenden kennen die heutige Tool-Landschaft (Editor: VS Code, Build-Tools: Vite/Webpack, Frameworks: React/Vue/Svelte/Astro) und können eine davon als „erste Wahl" begründen.
Kapitel 2 — CSS Extended
Lernziele
2.1 Die Studierenden können das Box-Model (content/padding/border/margin) anwenden und mit box-sizing: border-box als Default arbeiten.
2.2 Die Studierenden können Flexbox-Layouts schreiben (display: flex, flex-direction, justify-content, align-items, flex-wrap, gap) für 1D-Strukturen.
2.3 Die Studierenden können Grid-Layouts schreiben (display: grid, grid-template-columns/rows, gap, areas) für 2D-Strukturen.
2.4 Die Studierenden können Responsive Design mit Media Queries (mobile-first) umsetzen.
2.5 Die Studierenden können CSS-Animations + Transitions verwenden — und wissen, wann nicht (Reduced Motion, Performance).
Kapitel 3 — Node.js Basics
Lernziele
3.1 Die Studierenden verstehen die Rolle von Node.js — JavaScript-Runtime außerhalb des Browsers (Server, CLI-Tools, Build-Skripte).
3.2 Die Studierenden können ein Node-Projekt initialisieren (npm init, package.json verstehen, dependencies hinzufügen) und kennen den Versions-Knoten 24 LTS (oder aktuell).
3.3 Die Studierenden können ESM-Module (import/export) schreiben — und kennen die Unterschiede zu CommonJS.
3.4 Die Studierenden können einen HTTP-Server mit node:http oder Express erstellen, der REST-Endpunkte bereitstellt.
3.5 Die Studierenden können mit fetch in Node (oder einer HTTP-Library) Daten von externen APIs holen.
Kapitel 4 — Node.js Advanced
Lernziele
4.1 Die Studierenden können async/await + Promise korrekt anwenden — verstehen den Unterschied zwischen sequentiell und parallel ausführen.
4.2 Die Studierenden können mit Datei-System (fs/promises) lesen + schreiben.
4.3 Die Studierenden können mit Datenbanken (mind. SQLite oder PostgreSQL via Knex/Drizzle) CRUD-Operationen durchführen.
4.4 Die Studierenden können Authentifizierung in einem Hello-World-Setting umsetzen (mind. einfaches JWT oder Session-Cookie).
4.5 Die Studierenden kennen Error-Handling Patterns (try/catch + finally, Error-Klassen-Hierarchie).
Kapitel 5 — Testing
Lernziele
5.1 Die Studierenden können Unit-Tests mit Vitest (oder Jest) schreiben und ausführen.
5.2 Die Studierenden können Testdriven Development (TDD) an einem kleinen Beispiel durchspielen (rot → grün → refactor).
5.3 Die Studierenden können Integration-Tests für eine API schreiben (HTTP-Endpoint testen).
5.4 Die Studierenden kennen End-to-End Tests (Playwright/Cypress) und ihre Trade-offs gegenüber Unit-/Integration-Tests.
5.5 Die Studierenden können einen Coverage-Report lesen und beurteilen — wissen aber, dass 100% Coverage kein Qualitäts-Garant ist.
Kapitel 6 — TypeScript
Lernziele
6.1 Die Studierenden verstehen die Rolle von TypeScript — Aufsatz auf JavaScript für statisches Typchecking.
6.2 Die Studierenden können einfache Typen annotieren (string, number, boolean, arrays, objects, function-signaturen).
6.3 Die Studierenden können Interfaces und Type-Aliase definieren und unterscheiden.
6.4 Die Studierenden können Generics lesen (Array<T>, Promise<T>) — Schreiben ist Bonus.
6.5 Die Studierenden können strict-mode tsconfig Einstellungen verstehen (noImplicitAny, strictNullChecks).
Kapitel 7 — Docker
Lernziele
7.1 Die Studierenden verstehen das Container-Konzept — Trennung zwischen Anwendung und Host-System, „auf meinem Rechner läuft's"-Problem gelöst.
7.2 Die Studierenden können ein Dockerfile schreiben (FROM, COPY, RUN, CMD, EXPOSE).
7.3 Die Studierenden können docker compose für Multi-Container-Setups (App + Datenbank) verwenden.
7.4 Die Studierenden kennen Multi-stage Builds als Best Practice (Bonus).
7.5 Die Studierenden können Container in einer CI-Pipeline (GitHub Actions oder GitLab CI) builden + testen.
Kapitel 8 — Best Practices
Lernziele
8.1 Die Studierenden verstehen Git-Hygiene — sinnvolle Commits, Conventional Commits (feat:, fix:, docs:, …), .gitignore für Sprache + Editor.
8.2 Die Studierenden können eine gute README schreiben (was tut das Projekt, wie installieren, wie starten, wie testen, wie deployen).
8.3 Die Studierenden kennen SOLID-Prinzipien auf Code-Niveau und können sie erkennen (Anwenden ist Bonus).
8.4 Die Studierenden verstehen 12-Factor App Prinzipien — Config über Environment, Process Stateless, ...
8.5 Die Studierenden können Code-Reviews geben + nehmen — wissen wie konstruktiv kommentieren.
8.6 Die Studierenden können SemVer (semantisches Versioning) anwenden + erklären (MAJOR.MINOR.PATCH).
Übergreifende Soft-Skills
Diese sind nicht in einem Kapitel verankert sondern verteilen sich:
- Dokumentation lesen (MDN, Node-Docs, npm-Package-Doku) — Block-übergreifend
- Stack Overflow + GitHub Issues als Lern-Tools verwenden — Kap 8
- Code-Repos sauber strukturieren — Kap 8
- Industrie-Konventionen erkennen + einhalten — alle Kapitel
Offene Fragen
- Kap 1 splitten in 1a (Browser-Stack + HTML) und 1b (A11y + DevTools)? Aktuell 1791 Zeilen = zu groß.
- Kap 6 TypeScript: Tiefe — nur lesen-können oder auch selbst schreiben?
- Kap 8 Best Practices: behält der Soft-Skills-Anteil oder fokussieren wir auf Hard-Skills (Git, README, SOLID)?
- Praxis-Phase-Bezug: in welchen DHBW-Unternehmen sind die Studis verteilt? Stack-Verteilung würde uns helfen, die Schwerpunkte zu setzen (z.B. mehr Node oder mehr Java?).
Nach Beantwortung → leite ich daraus die Bögen pro Kapitel ab + plane die Slide-Restrukturierung.