Post 2 — ArrayList#
Læringsmål#
De studerende kan efter aktiviteten…
- Forklare hvad en ArrayList er og hvordan den adskiller sig fra et array
- Bestemme kompleksiteten for opslag på index, søgning, indsættelse og sletning i en ArrayList
- Forklare hvorfor indsættelse og sletning sidst i listen er O(1) mens det er O(n) midt i listen
Forudsætninger#
De studerende forventes at kende til:
- Begrebet kompleksitet og O-notation
Kort beskrivelse#
Studerende stiller sig i en række og holder selv deres index-tal. Til forskel fra Post 1 er tallene ikke faste — de følger med personerne og opdateres når nogen indsættes eller slettes. Det gør det fysisk synligt at indsættelse og sletning midt i listen kræver at alle til højre opdateres, mens det er O(1) sidst i listen.
Faglig kontekst#
- Semester/fag: 4. semester — Avanceret Programmering
- Holdstørrelse: 6–8 studerende pr. gruppe
- Organisering: Grupper — roterer mellem poster
Trin-for-trin#
- Alle undtagen én tager en seddel med et tilfældigt ord og stiller sig i en række.
- De tager tal i rækkefølge — første person tager 0, næste tager 1 osv.
- Den sidste studerende er “programmøren”.
- Gruppen gennemfører øvelse 1–4 i rækkefølge.
- Efter hver øvelse udfylder alle svararket.
Materialer#
post2_instruktion.md— instruktionsark til gruppen (print ét pr. gruppe)post2_svar.md— svarark til den enkelte studerende (print ét pr. studerende)- Tal 0–7 på løse sedler som de studerende kan holde og opdatere
- Sedler med tilfældige ord (mindst 8 pr. gruppe — ét ord pr. seddel. Et af dem skal være “HUND”)
- Blyanter
Tidsforbrug#
Ca. 15 min. pr. gruppe inkl. udfyldning af svarark.
Modtagelse#
Udvidelser#
- Sammenlign direkte med Post 1 — hvad er ens, hvad er forskelligt?
- Diskuter i plenum: hvornår ville man vælge ArrayList frem for array?
Noter til underviseren#
- Det centrale i denne øvelse er øvelse 3 og 4 — at alle til højre skal flytte sig og opdatere deres tal
- Spørgsmålet om indsættelse og sletning sidst i listen er vigtigt — lad dem selv nå frem til O(1)
- Tallene skal være løse sedler de kan holde i hånden og udskifte — ikke hængt op på væggen som i Post 1
- Det er en god ide at have ekstra blanke talsedler klar så de kan skrive nye tal hvis de løber tør