Artikel

Empiri i studieområdeprojekter med programmering

Eleverne skal bruge faglige metoder til at undersøge et realistisk problem ved at indsamle og analysere data. I denne artikel gives eksempler på empiri i it-fagene (de gymnasiale uddannelser)

Med studieområdeprojektets indførsel i 2017 blev der sat fokus på, at eleverne skal kunne anvende fagenes metoder til at analysere og forstå virkelighedsnære problemer. Det forventes, at eleverne kan forholde sig til kvaliteten af den viden der opnås i projektarbejdet og en vigtig brik i den refleksion er, om den anvendte empiri har en karakter og kvalitet, der kan retfærdiggøre svarene på problemformuleringen (emu.dk).

Kriterierne for valg af empiri kan sammenfattes til, at eleverne skal kunne arbejde fagligt med den valgte problemstilling, empirien skal give mulighed for at komme frem til rimelige konklusioner på problemformuleringen og endelig, at empirien skal kobles til de faglige metoder (Petersen 2019). Eksemplerne herunder er inddelt efter Palle Nowack og Michael Caspersens fem kategorier for faglige metoder i IT-fagene (Nowak 2013), der har fungeret som en slags standard for IT-fagene i gymnasiet i en årrække.

Formelle metoder

De formelle metoder ligger i overlappet mellem matematik og datalogi, og kan for eksempel omhandle analyse af køretid for en sorteringsalgoritme eller et bevis for korrekthed. Det er de metoder, som på den ene side er de mest teoretisk funderede, i form af matematik og logik, og på den anden side dem, som umiddelbart ligger længst fra det daglige arbejde i fagene, i og med at teknikker til datalogisk bevisførelse ikke er en del af kernestof eller faglige mål i hverken programmering eller informatik (uvm.dk). De kan dog godt være med til at give et SOP en mere teoretisk karakter, uden at eleven drukner i formalitet.

Der kan findes mange problemstillinger hvor algoritmer til fx statistik, sortering, grafteori eller lineær algebra kan spille en rolle. Her kan empirien være i form af den pseudokode, der beskriver en bestemt algoritme, en implementering af algoritmen i et bestemt programmeringssprog, et datasæt der skal analyseres med en bestemt statistisk metode, eller observationer der fører til et ligningssystem, der skal løses. I alle de tilfælde giver det eleven mulighed for at studere og videreformidle noget konkret teoretisk stof, som kan anvendes direkte på problemområdet.

Eksperimentelle metoder

I programmering - og i mange andre fag - er det oplagt, at eleverne selv fremskaffer en del af deres empiri. Det kan være i form af en test af et program, datagenerering ved simulering eller dataopsamling via brugere af et program. Det væsentlige at være opmærksom på er de spørgsmål, man ønsker at besvare ved sit eksperiment. Et program kan være en god måde at indsamle eksperimentel data, fordi det kan tilpasses præcist til det problem, man ønsker at undersøge.

Hvis et program bruges til at generere empirisk data, skal eleven være meget opmærksom på hvilke konklusioner, der kan drages ud fra observationerne. Hvis et program simulerer et fysisk system ved at bruge en teoretisk model for fx gravitation eller luftmodstand, vil simuleringen kun genere resultater, der er forudsagt af teorien, og dermed vil de sjældent sige noget relevant om problemområdet.

Agentbaseret simulering er en spændende måde at generere empirisk data med et program uden at inddrage en direkte teoretisk model af det fænomen, man vil undersøge. Der findes et væld af velbeskrevne agentbaserede modeller af eksempelvis biologiske systemer og samfundsfaglige mekanismer.

Konstruktionsmetoder

Konstruktionsmetoderne er nok de mest anvendte metoder i undervisningen. Man lærer at konstruere programmer med bestemte teknikker eller ved at bruge bestemte biblioteker, og det er essentielt i forståelsen af hvordan programmer bliver til.

I et færdighedsfag som programmering er det den mest oplagte måde at træne på, og elevernes evne til at konstruere programmer er naturligvis forudsætningen for alt arbejde i faget. I forbindelse med SOP, hvor eleverne ikke får karakter for kvaliteten af deres programkode, er det ofte sværere, og man løber den risiko, at eleverne bruger uforholdsmæssigt meget tid på at skrive kode frem for at arbejde med deres problemstilling.

Det er væsentligt, at man i vejledningen taler med eleven om, at formålet med at konstruere et program ikke er programmet i sig selv, men programmets bidrag til at forstå problemstillingen i projektet. Det faglige arbejde, der kan gøre sig godt i projektarbejdet kan så være koblet til formålet med at lave programmet. Hvordan bruger man et bestemt bibliotek, der kan hjælpe med at programmere en løsning til problemet? Her kan empirien være det anvendte bibliotek, dets oprindelse og dokumentation. Hvordan kan programmet konstrueres, så det hjælper de mennesker, der er påvirket af problemet? Her kan empirien være interviews med brugere, eksempler på interaktionsdesign eller lignende.

Eleverne kan selv generere empiri baseret på eksisterende programmer, for eksempel klassediagrammer, ER-diagrammer eller flowdiagrammer, hvilket både gør sig godt i en skriftlig opgave og giver eleverne mulighed for at analysere opbygningen af programmer og kommunikere effektivt om dem.

Procesmetoder

Traditionelle procesmetoder inden for udvikling af software er fx RUP eller SCRUM, der har fokus på samspillet mellem udviklerne, systemet, kravene og brugerne, og her kan eleverne indsamle empiri ved at undersøge hvordan disse metoder implementeres i praksis. Det kan fx være i form af interviews med udviklere eller konkrete cases om, hvordan et system er blevet udviklet.

Et meget aktuelt område, der er i rivende udvikling og meget præsent i elevernes bevidsthed er kunstig intelligens. Udviklingen af et system som DALL-E (openai.com) eller ChatGPT kræver indsamling af enorme mængder empiri, og i denne kontekst er det meget tydeligt, at systemerne ikke er bedre end den empiri, som de er baseret på. Dette er netop den refleksion, som eleverne gerne skulle have over deres egen empiri, i følge den videnskabelige basismodel (Petersen 2019)

Modelleringsmetoder

Stort set alle programmer, der bruges i praksis, er modeller af et eller andet domæne, og overvejelserne om opbygningen af den underliggende model er en vigtig del af arbejdet for de programmører, der arbejder med systemet. Klassiske eksempler findes ved objektorienteret modellering, hvor man beskriver og programmerer et antal klasser til en eller anden konkret anvendelse. Et program, der er baseret på en utilstrækkelig datamodel, vil aldrig blive et godt værktøj for brugerne, og dette kan være en meget passende refleksion for en elev i SOP.

Modellering af et domæneområde i form af databasetabeller, datastrukturer eller valg af datatyper i konkrete programmer kan være en fin form for empiri koblet til konkrete teoretiske områder som databasenormalisering, bestemte programmeringsparadigmer eller softwarearkitektur, fx trelagsarkitektur eller MVC.

Der findes mange open-source biblioteker og programmer, der kan bruges som analyseobjekter.

Kreditering

Søren Præstegaard , Odense Tekniske Gymnasium.


FAQ om studieområdet på emu.dk: emu.dk

Kristensen, P. K. Empiri i studieområdeprojektet SOP på HTX. Hentet fra emu.dk: emu.dk

Nowak, P. (15. 04 2013). It-fagets metoder, version 0.3. Hentet fra iftek.dk: informationsteknologi.wdfiles.com

Petersen, E. N. (2019). Vidensmønstre: Basal videnskabsteori i stx. (T. B. Mads Rangvid, Red.) Aarhus: Systime.

Undervisningsministeriet. Læreplaner og vejledninger - htx 2017. Hentet fra uvm.dk: uvm.dk


Siden er opdateret af emu-redaktionen
Rettigheder:

Tekstindholdet på denne side må bruges under følgende Creative Commons-licens - CC/BY/NC/SA Kreditering/Ikke kommerciel/Deling på samme vilkår. Creative Commons-licensen gælder kun for denne side, ikke for sider, der måtte henvises til fra denne side.
Billeder, videoer, podcasts og andre medier og filer på siden er underlagt almindelig ophavsret og kan ikke anvendes under samme Creative Commons-licens som sidens tekstindhold.