Press "Enter" to skip to content

Category: Programmering

Säg det med en dans!

En av de där sakerna i traditionell programmeringsdidaktik jag ställer mig frågande till är ju som bekant det här med att man nödvändigtvis ska lära sig implementera sök- och sorteringsalgoritmer. Jag förstår tanken, men i praktiken hade jag inget behov av att lära mig sånt innan jag började studera just programmering på högskola. Mina egna programmeringsprojekt har inte lett mig till att studera såna algoritmer närmare, helt enkelt – och jag är ett stort fan av att inom datorämnen ta sig dit ens intresse, och nytta, leder. Nå, skolverkets kursplan för nya Programmering A kräver av mig att jag ska ta upp algoritmerna, så då måste jag hitta ett intressant sätt att göra det på… Kanske kan det här vara en början? Sorteringsalgoritmer i folkdansform?

Kod skall byggas utav glädje…

…av glädje bygger man kod.

(Och ja, jag vet att det inte passar så bra med melodin. Kom igen, jag är inte musiklärare direkt…)

Det verkar finnas ett “matematikparadigm” inom programmeringsdidaktiken. Tanken är, om jag förstått saken rätt, att programmering “egentligen” är matematik, eller åtminstone logik. Det har som följd att de allra flesta programmeringslärare jag talat med mestadels använder sig av uppgifter med matematikanknytning. Ekvationslösningar, algoritmer fibonnaccisekvenser och primtal.

Lektionsupplägg: Det här är programmering

De flesta programmeringslärare är överens om att programmering inte är att skriva kod. Kodskrivandet är egentligen bara de där sista procenten av det egentliga arbetet. Det här är något många elever missar, och jag är inte förvånad – traditionell programmeringsundervisning har fokuserat på koder och formalia, att lära sig rätt funktioner i programmeringsspråken. Man lägger ofta in problemlösning som ett kriterie för högre betyg, men vad jag sett skapas sällan förutsättningar för inlärning av just problemlösning. Detta trots att lärarna är rörande överens om att just problemlösning, att kunna dela upp ett stort problem i mindre delar, är det som är centralt för ämnet. Är MVG-kriterierna något eleven måste kunna uppnå helt själv? Ha med sig från början? Jag har svårt för den tanken. I min värld kan alla få MVG, men då måste de ges utrymme och möjligheter för att träna i och utveckla MVG-kompetenserna. De kan inte få vara något som bara spontant uppstår.

Det här lektionsupplägget är tänkt att vara en utgångspunkt för en bredare diskussion med eleverna om vad programmering egentligen är och vad som menas med “problemlösning”.

Vilken sorts programmerare vill vi skapa?

En sak jag börjat fundera på är vad vi egentligen har programmeringsämnet till. Vad är det eleverna ska lära sig? Är det att programmera CNC-maskiner? Skapa appar? Bygga spel? Lära sig lösa algoritmer?

I mina ögon är allt det här samma sak. Det är samma grundläggande logik oavsett tillämpning. Med det följer då att det sätt man lär sig programmera spelar mindre roll än att man lär sig programmera. Och då följer att det lämpligaste sättet att lära sig programmera i gymnasiet borde vara det som skapar mest intresse, ger mest mersmak, och ger eleverna mest intresse för programmering.