Skip to main content
Dat 1. Sem Efterår 2025
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Tech uden tech

Her er en samling analoge (pen-papir-saks) øvelser designet til at give praktisk forståelse af:

Lister (List)
HashMaps (Map)
Sets

De kan laves i klasseværelset uden computer — og fungerer både som fælles aktiviteter og gruppearbejde.


ANALOGE ØVELSER

1) “Den levende Liste”

Emne: List
Mål: Forstå rækkefølge, indeks, indskud, sletning

Materialer:

  • Små papirlapper med værdier (fx dyr, navne, tal)
  • Tape eller gulvplads

Instruktion:

  1. Eleverne står i række, hver holder en seddel → de ER en liste.

  2. Læreren siger:

    • “Indsæt denne nye værdi ved index 3”
    • “Slet element ved index 1”
    • “Tilføj til slutningen”
  3. Eleverne fysisk flytter sig for at repræsentere listen.

Refleksion:

  • Hvad er listen god til?
  • Hvor tog flest flytninger? (Omkostninger i indskud midt i listen)
  • Hvad er O(1) vs O(n)?

2) “Sæt-Spanden”

Emne: HashSet
Mål: Forstå unikke værdier og ingen rækkefølge

Materialer:

  • Sedler med ord eller billeder
  • En kasse eller et område på gulvet

Instruktion:

  1. Eleverne kommer i vilkårlig rækkefølge og smider deres seddel i en kasse.
  2. Hvis en elev kommer med en værdi, som allerede ligger i kassen → kasser duplikatet.
  3. Til sidst læses værdierne op — rækkefølgen er irrelevant.

Variation:

  • Lad eleverne prøve at sortere sættet → men det må de ikke, for det er et SET, ikke en LIST.

Refleksion:

  • Hvorfor må der ikke være dubletter?
  • Hvorfor kan vi ikke garantere rækkefølge?

3) “HashMap-opbevaring”

Emne: Map
Mål: Nøgle → Værdi, hurtig lookup

Materialer:

  • Sedler
  • Stort papir med “nøgler” tegnet som felter
  • Eller gulvet med felter markeret

Instruktion:

  1. Læreren tegner fx 6 felter på gulvet: KEY0, KEY1, KEY2 …

  2. Eleverne får værdier (fx billeder/ord).

  3. De skal lægge værdien i feltet med matchende nøgle (opslag).

  4. Spørg derefter:

    • “Hvem har nøgle X?” → Eleven finder hurtigt feltet

Variation:

  • Kollisioner → to elever skal i samme felt → De lægger sig i en mini-kø (linked list i bucket)

Refleksion:

  • Hvad er forskellen på at søge via nøgle vs position?
  • Hvorfor er Map ofte hurtigere end List?

4) “Gruppelotto — Hashing”

Emne: Hashing
Mål: Lær hashing + collisions

Materialer:

  • Sedler med ord
  • Hash-regler på tavlen, fx: “Bogstavernes sum mod 5 → bucket”

Instruktion:

  1. Eleverne får ord
  2. De summerer bogstavers værdier (fx a=1, b=2)
  3. De modder resultatet mod fx 5 = bucket
  4. Går hen til den bucket på gulvet og lægger sig

Diskuter:

  • Hvorfor ender nogle buckets med mange ord og andre med få?
  • Hvordan kan vi håndtere kollisioner?

5) “Find dobbelten!” – Set i praksis

Emne: Set / duplicate elimination
Mål: Se hvordan Set fjerner duplikerede værdier

Materialer:

  • 2 sæt sedler med navne (duplikater forekommer)

Instruktion:

  1. Lav to høje med tilfældige navne (der er dubletter)
  2. Eleverne må kun smide navnene i et fælles SET-område hvis navnet ikke allerede er der

Resultat:

  • Set fjerner duplikerede værdier automatisk

Refleksion:

  • Hvornår er det nyttigt i praksis?

6) “Byt-om-sortering”

Emne: Sortering
Mål: Introducere sortering + sammenligning

Materialer:

  • Sedler med tal

Instruktion:

  1. Eleverne står i en lang række med tal
  2. De må kun bytte plads hvis det mindste tal står til højre for det større
  3. Gennemfør bubble-sort manuelt

Refleksion:

  • Hvor mange bytter?
  • Hvordan ville man forbedre?

7) “Bibliotekaren” — Map som opslag

Emne: Map lookup
Mål: Se hvorfor Map er hurtig

Materialer:

  • Almindelige bøger (eller sedler)
  • Sedler med “hylde” labels

Instruktion:

  1. Hver hylde (område) har en nøgle fx A-F, G-L osv.

  2. Eleverne “opbevarer” bøger baseret på første bogstav

  3. En elev søger efter en bog:

    • I List → tjek én ad gangen
    • I Map → går direkte til hylden

Refleksion:

  • Compare time cost: O(n) vs O(1)

Kombinationsøvelse

“Fra List → Set → Map”

Start med en liste af ting, og gennemfør:

  1. LIST: Sæt alle elever i række
  2. SET: Fjern duplikater
  3. MAP: Opdel i buckets efter en hash

Eleverne kan se, hvordan datastrukturen udvikler sig afhængigt af behov.


Metarefleksion

Efter aktiviteterne diskuter:

  • Hvornår er List bedst?
  • Hvornår er Set bedst?
  • Hvornår er Map bedst?
  • Hvordan oplevede de forskellen i “effektivitet”?

Bonus: Konkurrencespil

“Hurtigste lookup”

To hold:

  • Et hold leder i LIST (lineært)
  • Et hold leder i MAP (direkte lookup)

→ MAP-holdet vinder altid → god forståelse for tidskompleksitet