Da den tabeltræner, jeg tidligere havde brugt, ikke længere var tilgængelig, satte jeg mig for selv at programmere en tabeltræner. Jeg har skabt den i TurboWarp, som er en gratis udgave af Scratch/Codinglab, hvor det er muligt at lave programmer, der ikke er så Scratch-agtige. Og så var det bare et fedt og brugbart programmeringsprojekt.
Jeg havde brug for et program, der både kunne udvikle elevernes færdigheder i den lille tabel, samtidig med at jeg kunne understøtte deres talforståelse og udvikling af smarte regnestrategier. Tabeltræneren bruges derfor i samspil med tabelsange og strategiark.
Jeg kan kun anbefale at arbejde med programmering i matematik – især i kreative, udfordrende projekter, hvor eleverne skaber noget, der skal bruges af andre. Programmering er opøvelse af selvstændige computationelle problemløsningsstrategier, logisk, analytisk og systematisk tænkning samt udvikling af overblik og kompetencer i problemidentifikation og -behandling. Det er i vid udstrækning lige præcis det mindset, vi kæmper for, at eleverne skal udvikle i matematikundervisningen.
Hvis eleverne bliver dygtige til at programmere, bliver de med ret stor sandsynlighed uovertrufne problemknusere med stærke strategier i matematik. Mange undervisere opgiver desværre lidt at programmere med eleverne eller kommer ikke rigtigt længere end, at eleverne blot følger vejledninger, hvor udbyttet mildest talt er ret tvivlsomt. Når så eleverne selv skal programmere og bruge det, de har "lært" fra vejledningerne, falder det lidt for ofte til jorden – og i værste fald med en dårlig oplevelse til følge. Derfor er det virkelig en balancegang at udvikle elevernes glæde og engagement for programmering – måske kræver det endda den indsigt, der følger med, at underviseren faktisk selv får erfaring med det. Måske kræver det et nyt fag som teknologiforståelse.
Når eleverne finder programmering vanskelig og "krævende", er årsagen nok, at når eleverne programmerer EGNE projekter (og ikke bare blindt følger vejledninger), møder de ret hurtigt mange udfordringer, som desværre kun kan løses, hvis eleverne har dyb forståelse for, hvad de allerede har programmeret.
Programmerne, som eleverne skaber, ser ud på uendeligt mange måder. Alle er de et udtryk for elevernes forskellige forståelser, ønsker, tilgange og strategier. Netop derfor er der meget sjældent et "quick fix" eller en "bestemt algoritme", man lige kan hive ned fra hylden. Derfor bliver elevernes mindset udfordret, og det opleves som hårdt og uvant. Det er hårdt at skulle investere sig selv i noget, der ikke bare er let.
At programmere er at lave fejl, lære af sine fejl og hele tiden løse nye udfordringer. Det kræver vedholdenhed, kreative og eksperimenterende tilgange for at komme i mål. Og så kræver det i helt særlig grad dyb forståelse for alt, hvad eleverne selv laver. Det er nok desværre ret uvant for mange elever. Ikke desto mindre er jeg ret overbevist om, at programmering indeholder helt særlige potentialer i forhold til at opleve dybt og fundamentalt ejerskab til egne strategier og samtidig kunne udtrykke sig sprudlende og kreativt med autentiske modtagere for øje.
I et teknologiforståelsesperspektiv er det at skabe digitale artefakter med indlejret intentionalitet gennem digitale designprocesser en hjørnesten i faget. I matematik kan jeg kun anbefale, at eleverne designer computerprogrammer for andre elever. Der er så utroligt mange muligheder – lige fra kasinospil, der lokker spilleren til at satse mere, til en tabeltræner som denne, der skal hjælpe yngre elever med at udvikle smarte regnestrategier og sikkerhed i den lille tabel.