Om laboratorierne

En lærervejledning til de interaktive værktøjer

← Til laboratorierne

Til gymnasielærere i programmering og informatik

En bog med levende arbejdsborde

Laboratorierne er browserbaserede supplementer til lærebogen. De gør begreber, algoritmer, modeller og systemer synlige, så eleverne kan ændre én ting ad gangen, se hvad der sker og formulere en forklaring.

Sådan er materialet tænkt: Bogen giver begreber, sprog og progression. Laboratorierne giver et sted at undersøge begreberne praktisk – uden installation, elevkonti eller en særlig server.

Det pædagogiske mål

Målet er ikke blot, at eleverne skal kunne trykke på en simulation. Målet er, at de skal kunne forbinde en visuel model med en algoritme, en datastruktur eller en tekstlig beskrivelse – og derefter forklare, hvilke antagelser modellen bygger på.

Se før du skriver

Diagrammer, spil og simuleringer gør programforløb og systemadfærd konkrete, før eleven møder hele implementationen.

Eksperimentér kontrolleret

Skyderne, knapperne og trinene inviterer til at ændre én parameter, forudsige resultatet og sammenligne med det, der faktisk sker.

Sæt ord på modellen

Forklaringsbokse, kodefelter og opgaver hjælper eleverne fra “det virker” til “jeg kan forklare hvorfor”.

Mulig undervisningsrytme

1 · ForberedLæs bogens begreber og forudsig et resultat.
2 · UndersøgÅbn laboratoriet og ændr én ting.
3 · ForklarBrug observationer, kode og diagrammer.
4 · OverførSkriv eller forbedr Python-koden.

Hvordan er laboratorierne bygget?

Projektet er bevidst bygget som en samling selvstændige HTML-sider. Det betyder, at en lærer kan linke direkte til et laboratorium fra bogens hjemmeside, LMS eller en QR-kode.

LagTeknologiRolle i undervisningen
Side og layoutHTML og CSSStrukturerer forklaringer, kontroller, lærreder, kodefelter og responsivt layout.
InteraktionVanilla JavaScriptHåndterer klik, drag-and-drop, animationer, trinvis kørsel, beregninger og visualiseringer.
VisualiseringCanvas, SVG og DOMCanvas bruges til grafer og simuleringer; SVG bruges til diagrammer og flytbare elementer; DOM bruges til tekstlige interaktioner.
Python i browserenBrython og JavaScriptNogle laboratorier afvikler Python direkte i browseren via Brython. Andre bruger JavaScript til selve visualiseringen, mens Python-koden vises, forklares og kan downloades.
HostingGitHub PagesFilerne kan serveres direkte fra et repository. Der kræves ingen build-pipeline, database eller backend.
Eksterne ressourcerUdvalgte links og vendor-filerEksempelvis links til træningssider og Blockly. De interaktive demoer bruger lokale data, hvor det er nødvendigt for stabil offline-adfærd.
Vigtigt om Python i browseren: Python kan godt afvikles direkte i browseren, blandt andet med Brython eller Pyodide/WebAssembly. Det kræver dog, at det enkelte laboratorium indlæser en sådan Python-runtime og de biblioteker, koden bruger. I laboratorier, hvor visualiseringen er skrevet i JavaScript, er Python-koden stadig ægte kode, men den køres først, når eleven kopierer eller downloader den til en Python-installation – medmindre laboratoriet specifikt tilbyder en Python-kørsel i browseren.
En vigtig præcisering: Conway, Kryds og bolle, Pong, Snake, Turtle, Robot og chatbot-laboratoriet har undervisningsvenlige Python-editorer eller Python-lignende skabeloner, men deres browserdemoer bruger JavaScript eller en begrænset fortolker. De kræver ingen Python-installation for at bruge laboratoriet. Det er kun laboratorier, der tydeligt siger, at elevens Python afvikles med en Python-runtime, der kører ægte Python direkte i browseren.

Hvad betyder det i praksis?

  • En side kan åbnes direkte fra GitHub Pages eller lokalt som HTML, uden login og uden elevdata.
  • Tilstanden ligger normalt i browserens hukommelse, mens eleven arbejder. Et diagram eller en kodefil kan downloades, hvis laboratoriet tilbyder det.
  • Der er ingen fælles database, hvor elevprojekter automatisk gemmes. Eleverne bør gemme eksporterede filer eller screenshots efter behov.
  • Webscraping-laboratoriet viser indlejrede træningsudsnit i browseren, fordi direkte browserkald til andre domæner kan være begrænset af CORS. Den tilhørende Python-kode viser den rigtige server-/lokale arbejdsgang.
  • Hvis skolen bruger filtrering eller blokerer GitHub Pages, kan læreren hente repository’et og servere filerne lokalt eller fra skolens eget webhotel.

Forslag til lærerbrug

Fælles demonstration

Projicér et laboratorium, bed eleverne forudsige næste trin, og lad dem argumentere for parameterændringer.

Pararbejde

Lad én elev styre interaktionen og én elev føre en observationslog. Byt roller efter hver ændring.

Dokumentation

Brug Mermaid-syntaks, Python-downloads eller screenshots som udgangspunkt for en kort faglig forklaring.

Copyright, kreditering og tredjepartsindhold