Post 1 — Array#
Læringsmål#
De studerende kan efter aktiviteten…
- Forklare hvad et array er og hvordan det er organiseret i hukommelsen
- Bestemme kompleksiteten for opslag på index, søgning, indsættelse og sletning i et array
- Argumentere for hvorfor kompleksiteterne er som de er
Forudsætninger#
De studerende forventes at kende til:
- Grundlæggende Java
- Begrebet kompleksitet og O-notation (introduceret samme dag)
Kort beskrivelse#
Studerende stiller sig i en nummereret række og simulerer et array. Én studerende er “programmøren” og udfører operationer på de andre. Hver øvelse afsluttes med et svarark hvor de bestemmer kompleksiteten og begrunder den. Øvelsen giver en fysisk fornemmelse for at opslag på index er direkte og hurtigt, mens søgning og sletning kræver gennemgang af hele rækken.
Faglig kontekst#
- Semester/fag: 4. semester — Avanceret Programmering
- Holdstørrelse: 6–8 studerende pr. gruppe
- Organisering: Grupper — roterer mellem stationer
Trin-for-trin#
- Alle undtagen én tager en seddel med et tilfældigt ord og stiller sig under tallene på væggen.
- Den sidste studerende er “programmøren”.
- Gruppen gennemfører øvelse 1–4 i rækkefølge.
- Efter hver øvelse udfylder alle svararket.
- Efter øvelse 3 skifter programmørrollen til den studerende der røg ud af rækken.
Materialer#
post1_instruktion.md— instruktionsark til gruppen (print ét pr. gruppe)post1_svar.md— svarark til den enkelte studerende (print ét pr. studerende)- Tal 0–7 printet og hængt op på væggen i en række
- 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 med Post 2 (ArrayList) bagefter — samme setup, anden adfærd ved indsættelse og sletning
- Diskuter i plenum: hvad sker der hvis ordet ikke findes i rækken?
Noter til underviseren#
- Husk at have nok sedler til at programmøren kan indsætte et nyt element i øvelse 3
- Det vigtige ved øvelse 3 og 4 er at ingen andre flytter sig — det er det der adskiller array fra ArrayList
- Spørgsmålet “ville det gøre en forskel hvis I var 1.000 personer?” er det centrale — lad dem tænke sig om.