Gå til hovedindhold

·375 ord·2 minutter

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
#

  1. Alle undtagen én tager en seddel med et tilfældigt ord og stiller sig i en række.
  2. De tager tal i rækkefølge — første person tager 0, næste tager 1 osv.
  3. Den sidste studerende er “programmøren”.
  4. Gruppen gennemfører øvelse 1–4 i rækkefølge.
  5. 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