Post 5 — HashSet#
Læringsmål#
De studerende kan efter aktiviteten…
- Forklare hvad en hashkode er og hvorfor den er unik
- Bestemme kompleksiteten for find, indsæt og slet i et HashSet
- Forklare hvad en kollision er og hvad den gør ved kompleksiteten
Forudsætninger#
De studerende forventes at kende til:
- Begrebet kompleksitet og O-notation
Kort beskrivelse#
Studerende bruger initialer + fødselsdato som hashkode og simulerer et HashSet. Operationer er direkte og kræver ingen søgning — programmøren råber en kode og personen træder frem. Øvelsen viser intuitivt hvorfor HashSet er O(1) for alle tre operationer. Bonusspørgsmålet om kollisioner åbner naturligt op for en efterfølgende tavleforklaring om implementationen.
Faglig kontekst#
- Semester/fag: 4. semester — Avanceret Programmering
- Holdstørrelse: Hele holdet (24 studerende) — køres samlet
- Organisering: Fælles øvelse efter rotation mellem Post 1–4
Trin-for-trin#
- Alle skriver initialer + fødselsdato på en seddel og stiller sig i en løs gruppe.
- Programmøren udfører øvelse 1–3.
- Efter hver øvelse udfylder alle svararket.
- Afslut med bonusspørgsmålet i plenum — hvad sker der ved kollision?
Materialer#
post5_instruktion.md— instruktionsark (print ét til programmøren)post5_svar.md— svarark til den enkelte studerende (print ét pr. studerende)post5_svar_facit.md- udfyldt svarark til underviseren- Papir til unikke koder
- Blyanter
Tidsforbrug#
Ca. 10–15 min. svarark
Modtagelse#
Udvidelser#
- Tavleforklaring: hvordan er et HashSet egentlig implementeret? (array med LinkedLists, buckets)
- Diskuter: hvornår ville man vælge HashSet frem for TreeSet?
Noter til underviseren#
- Dette er en MEGET forsimplet repræsentation af HashSet. Pointen er, at hashcode er unik men ikke tilfældig.
- Den naturlige nysgerrighed “men hvordan ved den hvem den skal kalde?” er indgangen til tavleforklaringen — lad den opstå af sig selv
- Bonusspørgsmålet om kollisioner behøver ikke besvares under øvelsen — gem det til plenum
- Koden behøver ikke være matematisk præcis — pointen er at den er unik og beregnet, ikke tilfældig
- Giv evt de studerende et udfyldt svarark til sidst til at tjekke deres svar med.