Programmering

Selvom Computational Thinking (CT), og specielt algoritmedesign, ikke kræver kendskab til programmering eller brug af en computer (se mere her), så kan algoritmen med fordel konkretiseres vha. et programmeringssprog.

Anvendelsen af et visuelt fremfor et tekstbaseret programmeringssprog - eventuelt med et visuelt output eller i kombination med anden teknologi såsom robotter - kan understøtte visualiseringen og tingsliggørelsen af ellers abstrakte algoritmer. Dette er én af Seymour Paperts "inversionsprincipper".

Desuden vil det faktum, at algoritmedesign er en iterativ proces med fejlsøgning og tilretning (debugging og trial and error), træde tydeligere frem, såfremt algoritmen faktisk implementeres i et rigtigt programmeringssprog, fordi computeren straks giver en fejlmeddelelse eller viser et forkert output, hvis algoritmen indeholder fejl.

Der findes et hav af programmeringssprog, som med fordel kan anvendes i et CT undervisningsforløb [Lockwood2017, Lockwood2018, Shute2017]. Her fokuserer vi mest på Scratch, og de teknologier, som Scratch kan integreres med.

Scratch er et intuitivt og lettilgængeligt visuelt programmeringssprog, hvor de enkelte kodeelementer (f.eks. forgreninger og løkker) er blokke, som trækkes fra en værktøjsklasse over i koden.

Scratch afvikles direkte i brugerens browser, og små videoer (gifs) giver trinvise instruktioner i de grundlæggende funktionaliteter.

Desuden er Scratch websiden hjemsted for et stort online community, hvor brugere kan dele programmer, videreudvikle andres programmer, få hjælp, og give feedback.

Scratch kan bruges til at lave spil, interaktive historier, animationer og meget mere.

Du kan f.eks. bruge Scratch til at skrive et interaktivt eventyr (bygget over kontraktmodellen med en hjem-ude-hjem komposition) i dansk eller lave nulpunktsberegninger for parabler i matematik:

Du kan udforske de to førnævnte Scratch programmer her og her.

Scratch kan integreres med Lego Mindstorms EV3, Lego WeDo 2.0 og micro:bit samt enhedens kamera og Google Translate.

I øvrigt er Scratch allerede brugt af en del IT undervisere.

Lego Mindstorms er en robot med motorer, sensorer, USB, WiFi og Bluetooth, som kan programmeres vha. Scratch (eller Legos eget visuelle programmeringssprog).

Du kan f.eks. kode en Lego Mindstorms robot til at følge en linje på gulvet:

micro:bit er en "lille computer" med sensorer, LED lys, knapper, USB og Bluetooth, som kan programmeres vha. Scratch og andre (både visuelle og tekstbaserede) sprog, f.eks. JavaScript.

Du kan prøve at kode en online version af micro:bit med Microsoft MakeCode Editor.

GeoGebra er et stykke matematiksoftware, som kan anvendes til at lave interaktive programmer (typisk af geometrisk karakter) med knapper, skyderne, klikbokse, tekstfelter osv.

Desuden tilbyder GeoGebra mulighed for tekstbaseret programmering (GGBScript og JavaScript).

GeoGebra hjemmesiden huser et stort online community, hvor brugerne deler og videreudvikler lærings- og undervisningsressourcer.

Mange elever vil være bekendt med GeoGebra fra folkeskolen og programmet anvendes også på ungdomsuddannelserne (primært af matematikundervisere).

⯀ ... alle de andre

Der findes som sagt et stort antal programmeringssprog. Her nævner vi et par stykker mere: