Computational Thinking i og på tværs af fag

⯀ Identifikation af CT kompetencer i fag

Et CT undervisningsforløb må som udgangspunkt arbejde med i hvert fald nogle af de mål, som fagets bekendtgørelse udstikker.

En pragmatisk tilgang til at udvikle et CT undervisningsforløb (i eller på tværs af fag) er derfor at identificere de CT kompetencer, som faget allerede indeholder eller kan understøtte [Barr2011, Perkovic2010]:

For at identificere fagets CT kompetencer (specifikt dekomposition, abstraktion og algoritme) kan underviseren spørge sig selv:

  • Dekomposition og abstraktion: Arbejder faget med ”nedbrydning til enkeltdele og opbygning til helhed” (f.eks. analyse/syntese eller mønstergenkendelse/generelle sammenhænge)?

  • Algoritme: Kan arbejdsgange, procedurer, metoder osv. i faget automatiseres vha. en algoritme?

For både at guide eleverne og sikre at de faktisk arbejder sig frem mod opfyldelsen af relevante faglige mål, kan underviseren med fordel formulere CT forløbets problemstilling(er).

Det kræver rammesætning, hvis et CT forløb skal understøtte evaluerings- og generaliseringskompetencerne. Her kan underviseren spørge sig selv:

  • Evaluering: Hvordan tilretteægges undervisningen, så eleverne ledes igennem en iterativ proces, hvor algoritmen evalueres ved afprøvning, fejlfinding og tilretning?

  • Generalisering: Hvordan tilrettelægges undervisningen, så eleverne tænker i at generalisere den fundne løsning til lignende problemer?

Evalueringskompetencen kan f.eks. understøttes ved, at eleverne tjekker hinandens algoritmer i en form for peer-review process. Hvis der anvendes et rigtigt programmeringssprog, kan evalueringen i nogen grad overlades til computeren, fordi den straks vil give et forkert output eller en fejlmeddelelse, hvis algoritmen er forkert.

Tilegnelsen af generalisationskompetencen kræver, at undervisningen rammesættes således, at eleven anspores til at tænke i at udvide den fundne løsnings anvendelsesområde til lignende problemer. Generaliserbarheden kan f.eks. sikres ved at vælge et tilstrækkeligt åbent problem (eller i hvert fald formulere det sådant) eventuelt med flere mulige delproblemer. Et åbent problem har i øvrigt den sidegevinst, at eleverne kan komme frem til flere forskellige løsninger, som så med fordel kan holdes op imod hinanden eller en kanonisk løsning.

Et CT forløb bør indeholde samtlige CT kompetencer, specielt algoritmisk tankegang og algoritmedesign. Hvis et fag ikke kan honorere alle kompetencerne, så kan man måske lade faget indgå i et tværfagligt forløb, hvor et eller flere andre fag kan varetage de resterende CT kompetencer.

I det tilfælde er det dog vigtigt, at undervisningsforløbet tilbyder en sammenhængende CT proces således, at f.eks. matematik ikke kører et særskilt forløb om algoritmer, der er afkoblet fra dansk fagets arbejde med dekomposition og abstraktion.

Når fagets CT kompetencer er identificeret, må underviseren mere nøje overveje, hvordan eleverne faktisk undervises i CT. Vi kigger på forskellige tilgange nedenfor.

⯀ Use-modify-create tilgang

En ofte nævnt fremgangsmåde til at undervise eleverne i CT er use-modify-create tilgangen [Lee2011, Caspersen2013]:

I udgangspunktet forudsætter tilgangen, at der er udviklet en computermodel (skrevet i et rigtigt programmeringssprog), som løser en bestemt faglig CT problemstilling.

Først bruger eleven computermodellen (uden at kigge i koden) og prøver at gennemskue modellens antagelser og virkemåde, herunder sammenhængen mellem input og output. Derefter kigger eleven "under kølerhjelmen" og prøver at forstå og sidenhen modificere koden. Til sidst skulle eleven så være i stand til selv at programmere sin egen model for et lignende CT problem.

Tanken bag tilgangen er at lette elevens progression fra konsument til producent (from consumer to producer) ved at guide eleven igennem trin med stadigt stigende sværhedsgrad og kompleksitet.

En umiddelbar bekymring er dog, at elevernes IT-tekniske forudsætninger og/eller tidsrammen ikke muliggør, at create-trinnet i tilfredsstillende grad opnås i løbet af CT forløbet. Og det er et problem, fordi det er her ejerskabsfornemmelsen og dermed en stor del af motivationen indtræder [Lee20011]:

Heldigvis kan use-modify-create tilgangen tilpasses, så den ikke benytter sig af en computermodel kodet i et rigtigt programmeringssprog.

F.eks. kan underviseren præsentere sine elever for en algoritme skrevet med pseudokode eller flowcharts, som eleverne så skal forstå og senere modificere. Til sidst får eleverne til opgave at skrive deres egne algoritmer i pseudokode eller flowcharts for et lignende problem.

Idet pseudokode og flowcharts er væsentligt mere tilgængelige end rigtig kode, så sænkes tærsklen til modify- og create-trinnene, som derved nemmere kan nås.

⯀ Projektorienteret konstruktionistisk tilgang

CT lægger som problemløsningsmetode naturligt an til, at undervisningen tillægges problembaseret.

Men hvis underviseren - som foreslået oven for- egenhændigt udvælger og formulerer CT forløbets problem(er), er der en risko for, at eleverne vil opleve, at deres selvbestemmelsesret og dermed motivation mindskes.

Derfor argumenterer konstruktionister som matematikeren, datalogen og underviseren Seymour Papert for, at eleven selv skal vælge et personligt engagerende projekt. CT problemerne skal så opstå i projektet [Papert1996]. Tanken er, at eleven vil være mere motiveret for at løse disse problemer frem for f.eks. underviserformulerede problemløsningsopgaver, fordi problemerne er sprunget ud af et selvvalgt og vedkommende projekt.

I denne tilgang træder underviseren ud af ekspertrollen og ind i rollen som vejleder eller facilitator, der hjælper eleven igennem CT processen.

Papert har samlet sine tanker i en række "inversionsprincipper", hvoraf nogle af dem er:

Det er selvsagt vanskeligt at sikre, at elevvalgte projekter bare tilnærmelsesvis understøtter en tilfredsstillende delmængde af fagets mål. En gylden mellemvej kunne være, at underviseren vælger et CT projekt, som målgruppen må formodes at finde relevant, og som samtidigt kan honorere de faglige mål. Eleverne skal så selv finde, formulere og løse CT problemer indenfor projektets faglige rammer [Bjerre2018].