• No results found

En undersökning kring gymnasielärares och gymnasieelevers uttryckta och upplevda mål med programmering i skolan

N/A
N/A
Protected

Academic year: 2021

Share "En undersökning kring gymnasielärares och gymnasieelevers uttryckta och upplevda mål med programmering i skolan"

Copied!
50
0
0

Loading.... (view fulltext now)

Full text

(1)

Examensarbete i Teknik,

fokus mot programmering

15 högskolepoäng, grundnivå

En undersökning kring gymnasielärares och

gymnasieelevers uttryckta och upplevda mål

med programmering i skolan

A survey of high school teachers’ and high school students’ expressed and perceived goal of programming at school

Jonas Ströberg

VAL-projektet 2019-03-15

Examinator: Peter Bengtsson Handledare: Nils Ekelund

Lärande och samhälle Vidareutbildning av lärare

(2)

Innehållsförteckning

Sammanfattning ... 2 Inledning ... 3 Begreppet programmering ... 4 Syfte ... 5 Forskningsfrågor ... 5 Begränsningar ... 5 Bakgrund ... 6 Programmeringens utveckling ... 6

Programmering genom teori och praktik ... 7

Programmeringsämnet i gymnasieskolan ... 9

Attityd ... 10

Metod ... 12

Vetenskapsteori, den fenomenografiska ansatsen ... 12

Urval ... 12

Kvalitativ intervju ... 14

Resultat ... 15

Resultat utifrån lärarintervjuerna ... 16

Resultat utifrån elevintervjuerna ... 27

Analys av lärar- och elevintervjuer ... 30

Diskussion ... 34

Slutsats ... 37

Referenslista ... 38

Bilagor ... 40

Bilaga 1. Ämnesplan – Programmering ... 40

Bilaga 2. Intervjumall - lärare ... 46

(3)

Sammanfattning

Programmeringsundervisningen i den svenska gymnasieskolan har bedrivits mer eller mindre på samma sätt sedan ämnet introducerades på 70-talet. Det behövs mer studier om didaktisk undervisning i relation till ämnet programmering för att hjälpa programmeringslärare att utveckla undervisningen och förbättra undervisningen för eleverna. Eftersom Skolverket nu har möjliggjort att grundskoleelever samt fler program på gymnasiet ska kunna läsa programmering, behöver studier undersöka hur och på vilket sätt undervisningen bedrivs, samt hur eleverna upplever undervisningen. Det här arbetet försöker därför lyfta fram hur några programmeringslärare på gymnasiet bedriver undervisning utifrån de mål som de själva anser att ämnet programmering har, och hur deras elever upplever målen, samt vilken attityd eleverna har mot den undervisning som de tagit del av. Undersökningsmetoden har varit kvalitativ i form av lärar- och elevintervjuer med inriktning kring de mål som ämnet programmering har på gymnasieskolan. De mål som lärarna har kring programmeringskurserna ligger mycket nära de mål som Skolverket beskriver i kursplanerna. Och för att eleverna ska få en positiv attityd till undervisningen är det viktigt att läraren variera undervisningen och bland annat blandar in både teoretiska och praktiska delar.

Nyckelord: attityd; blockprogrammering; datalogiskt tänkande; IKT; programmering; teknik; textbaserad programmering; ämnesdidaktik;

(4)

Inledning

Informations- och kommunikationsteknik (IKT) har blivit allt mer aktuellt i samhället, och flera olika yrkesroller har växt fram genom att det finns behov av personer som förstår sig på och har kunskap om den digitala tekniken, vilket innefattar programmeringskunskaper. Den svenska skolan har som mål att bemöta de krav som ställs, och försöker därför förbereda eleverna för den digitalisering som sker i Sverige. Skolverket (2017a) har efter beslut möjliggjort att alla gymnasieelever som går på ett nationellt program ska kunna få möjligheten att läsa programmering, genom ett utökat kursutbud för de nationella programmen. Dessutom har de befintliga kurserna reviderats för att på ett bättre sätt återspegla teknikutvecklingen som sker, samt hur arbetsmarknadens behov ser ut. Programmering nyttjas alltså allt mer i näringslivet för att effektivisera och digitalisera arbetet, vilket innebär att flera branscher har behov av programmerare och personal som är mer teknisk kunnig. Eftersom programmering ska kunna läsas av flera olika typer av elevgrupper än tidigare varit möjligt, alltså inte enbart elever som läser på teknikprogrammet, kommer lärare få en större mångfald av elever som ser programmering på olika sätt. Det kan därför komma att bli svårare för lärare att möta de olika elevtypernas behov och tankesätt.

Rolandsson (2015) anser att undervisningen inom programmering inte har förändrats avsevärt sedan ämnet introducerades på 1970-talet. Vidare menar Rolandsson att lärare behöver kunna reflektera mer kring sin undervisning för att bli mer medvetna om sitt undervisningssätt, och på så sätt förstå hur elever tänker om programmeringsämnet. Detta beskrivs i tidigare studier av Marton och Booth (2012) samt av Uljens (1997) som förmågan att som process bli medveten om elevernas

naturliga attityd, alltså bli medveten om hur eleverna spontant och oreflekterat möter

undervisningen. Rolandsson (2015) beskriver vidare detta som ett problem, att det som lärare avser inte förhåller sig till hur ämnet upplevs när det väl iscensätts. Eleverna upplever alltså programmering annorlunda än vad läraren tänkt sig, och eftersom gymnasielärare ofta har många elever, och dessa elever får sin egen upplevelse av ämnet, blir detta klart en stor utmaning för läraren att klara av. Därför är det viktigt att läraren reflekterar kring sin undervisning för att komma så nära den planerade undervisningen som möjligt, så att eleverna upplever det som läraren faktiskt tänk att de ska uppleva. Dessutom är det viktigt att läraren får rätt förutsättningar för att det ska vara möjligt. Mycket av den tid som IKT-lärare får för fortbildning används för att utveckla lärarens egna ämneskunskaper inom just IKT (ibid.), men det räcker inte menar Shulman (1986, 1992). Här

(5)

menar Rolandsson (2015) att det behövs mer ämnesdidaktisk forskning för att uppmärksamma de problem som finns inom IKT-undervisningen, där man undersöker och försöker förstå underliggande problem och svårigheter som finns.

Begreppet programmering

I texten syftar ordet programmering på skrivandet av programkod i något programspråk, som efter konvertering ska kunna köras på en maskin, som utför ett visst arbete beroende på den programkod som skrivits. Maskinen i det här fallet kan vara en dator, mobiltelefon, robot eller mikrodator. Två typer av programmering tas upp i texten, visuell-programmering och text-baserad programmering. Läs mer om typerna under rubriken Programmeringens utveckling.

(6)

Syfte

Kunskaperna som eleverna får i gymnasieskolan ser förmodligen mycket olika ut beroende på hur läraren ser på programmeringsämnet, och vidare hur läraren lagt upp undervisningen, vilket tillvägagångssätt som nyttjats, samt hur eleven tagit sig an materialet. Är det tydligt om olika undervisningsmetoder påverkar elevernas upplevelser kring ämnet i slutet av en eller flera programmeringskurser? Arbetet ska därför försöka lyfta fram hur lärare ser på programmeringsämnet, vilka mål de anser att ämnet har, samt hur elever som läser programmering upplever ämnet genom att undersöka deras attityd till den undervisning de fått ta del av under programmeringskurserna. Syftet blir därför att identifiera och analysera hur information i kursplanen för programmering korrelerar med lärarens och elevernas uttryckta respektive upplevda mål med kursen.

Forskningsfrågor

• Vilket är programmeringslärares och elevers mål med kurserna Programmering 1 och Programmering 2 på gymnasieskolan?

• Hur påverkar lärarens undervisning och kursupplägg, elevernas attityd mot programmering?

Begränsningar

Eftersom det finns fler gymnasieämnen som innehåller programmering eller olika typer av programmeringsmoment (exempelvis ämnen som Datorstyrd produktion, Elektronik, och Mät-,

styr- och reglerteknik), är det viktigt att beakta att det här arbetet enbart fokuserar på

gymnasieämnet som heter Programmering. Programmeringsämnet består av tre kurser,

Programmering 1, Programmering 2 och Programmering 3. Arbetet kommer vidare begränsas

genom att enbart fokusera på kurserna Programmering 1 och Programmering 2, eftersom båda kurserna ligger som möjliga fördjupningskurser på teknikprogrammet, och kursen Programmering 3 enbart får anordnas på ett fjärde tekniskt år i gymnasieskolan (Skolverket, 2018a).

(7)

Bakgrund

Att bygga vidare på tidigare forskning är en viktig del av rapporten för att arbetet ska få en tydlighet och trovärdighet. Nedan beskrivs tidigare relevant forskning som det här arbetet är förankrat till för att just öka trovärdigheten i materialet.

Programmeringens utveckling

Under de senaste 60 åren har datorernas utveckling gått mycket snabbt framåt, och de påverkar oss på flera olika sätt än idag (Rolansson, 2015). Som tidigare beskrivits i introduktionen har samhället blivit allt mer digitaliserat, och behovet att kunna förstå hur teknik och människa samspelar blir allt mer aktuellt. Skolverket (2018b) har därför förändrat styrdokumenten för den svenska skolan, och bland annat lagt större vikt att utveckla elevernas digitala kompetens. Ordet digital kompetens innefattar flera olika kompetenser, som här i arbetet grundar sig från hur regeringen beskriver digital kompetens i olika styrdokument. Regeringskansliet (2017) beskriver att digital kompetens innefattar att ha en mer stärkt källkritisk förmåga, kunna lösa problem och omsätta idéer i handling på ett kreativt sätt med användning av digital teknik, kunna arbeta med digitala texter, medier, och verktyg. Vidare innefattar digital kompetens även att kunna förstå digitala system och tjänster, samt ha förståelse för digitaliseringens påverkan på individ och samhälle. Dessutom ska digital kompetens utveckla elevernas programmeringskunskaper. På gymnasienivå betyder detta bland annat att programmeringsämnet möjliggörs för flera elevgrupper än de som läser på teknikprogrammet (ibid.).

Även om programmeringsämnet har funnits under en längre tid menar Rolansson (2015) och Kaplan (2010) att undervisningen inte skiljer sig mycket åt nu och för 60 år sedan. Det har helt enkelt inte forskats tillräckligt mycket kring området för att förändra undervisningen väsentligt. Eftersom teknikutvecklingen i samhället förändras mycket snabbt, är det stor sannolikhet att olika elevgrupper har olika förkunskaper inom sin digitala kompetens, och därmed även sin syn på programmering och vad programmering faktiskt är. Idag finns programmering redan på grundskolan (Skolverket, 2017b). Det finns dock en skillnad mellan programmeringen i grundskolan och i gymnasiet, då man i grundskolan i många fall använder grafiska programmeringsspråk, så kallad visuell programmering med blockprogrammering. Genom att manipulera olika programelement med hjälp av grafik, istället för att skriva text, bygger eleverna ihop ett program, där grafiken ofta består av färdiga block, som beskriver en instruktion eller data.

(8)

Det kan liknas vid att lägga ett pussel, där flera pusselbitar bygger en helhet (Mannila, 2017). Ett känt tillgängligt blockbaserat programspråk är Scratch (ibid.).

Blockprogrammering används allt mer frekvent och Weintrop och Wilensky (2017) menar att det blir allt vanligare att använda blockprogrammering istället för textbaserade programspråk för att introducera nya elever i programmering, men att det fortfarande inte är helt tydligt på vilka sätt man ska introducera programmering för att få bäst resultat. Dock visar Weintrop och Wilenskys (ibid.) undersökningar på flera positiva effekter av att lära sig programmera med blockprogrammering jämfört med att skriva text. De elever som använder grafisk programmering anser att programmering blir lättare att begripa, de lär sig snabbare och blir mer självsäkra i ämnet. Det finns också en minskad risk för syntaxfel, eftersom blocken likt pusselbitar, inte kan kopplas ihop om de inte passar med varandra (Mannila, 2017). Vidare visar Weintrop och Wilensky undersökningarna (2017) på att oavsett om man lär sig via grafik eller kod, anser eleverna att programmering är svårare än vad man först trodde, trots att de från början ansåg att det skulle vara relativt svårt. Även om blockprogrammering är bra för att träna upp programmeringsförståelsen, finns det en del nackdelar som påverkar programutvecklingen för utvecklare med mer avancerade behov. Att skriva programkod i ren text med hjälp av ett tangentbord går generellt mycket snabbare än att använda muspekaren och dra ut kodblock, därför är textbaserad programmering ofta vanligare när man utvecklar mer avancerade program (Åkerfeldt, Kjällander, & Selander, 2018; Mannila, 2017).

Programmering genom teori och praktik

Att teori och praktik genomsyrar undervisningssituationen för elever är inget ovanligt i den svenska skolan. En hel del tid går åt att förstå det teoretiska innan man applicerar det med konkreta exempel. Det skiljer sig klart mycket från olika ämnen, och Berglund och Eckerdal (2015) menar att praktik i första hand och teori i andra hand är ett vanligt sätt för elever att angripa programmeringsämnet. De menar att elever ofta fokuserar på det praktiska inom programmering, för att sedan vid svårare problem och uppgifter, angripa med ett mer teoretiskt förhållningssätt. Att diskutera sig fram till en lösning med hjälp av teorin kan vara ett sätt som underlätta för eleverna. När man väl har diskuterat olika möjliga lösningar till ett problem angriper man vidare problemet återigen med ett praktiskt förhållningssätt. Här menar Berglund och Eckerdal (ibid.) att eleverna lär sig likt en våg, som pendlar mellan stadierna teori och praktik över tid. Det är alltså viktigt att lärare undervisar

(9)

med både praktiska och teoretiska inslag för att utveckla elevernas programmeringskunskaper. Att endast undervisa genom teori eller praktik kan få eleverna att få en undermålig undervisning i ämnet. Berglund och Eckerdal (ibid.) menar att elever ofta fokuserar på syntaxen i ett programspråk, och hur man gör i praktiken inom programmeringsundervisningen, innan eleverna nyttjar sina teoretiska kunskaper, sitt datalogiskt tänkande, som underlättar det praktiska.

Att lära sig programmera nya programspråk kan vara svårt, och enligt Saito och Yamuara (2013) finns två olika sätt att lära sig programmera, genom bottom-up (BU) eller top-down (TD). Lärare som börjar med grunderna inom programmering för att sedan arbeta vidare med detaljerna nyttjar det så kallade BU-tillvägagångssättet. De börjar med att utveckla en tydlig och stabil grund som eleverna kan arbeta vidare med. Här kan man börja med grammatiken och hur data definieras, innan eleverna får arbeta med det praktiska, det vill säga kodandet. Mycket av den kurslitteratur som finns tillgänglig nyttjar ett bottom-up-tillvägagångssätt (ibid.), att man först lär sig teorierna innan det praktiska arbetet påbörjas. Men om en lärare istället nyttjar ett så kallat TD-tillvägagångssätt, innebär det att eleverna istället börjar med det praktiska, genom att till exempel titta på exempelkod för att förstå ett programspråk och dess syntax. Det är ett mer praktiskt förhållningssätt, där man utgår från kod, visuell eller textbaserad, för att sedan fördjupa sig i de olika teorierna som det praktiska applicerar. Båda undervisningssätten nyttjas av gymnasielärare, men det är inte helt tydligt vilka konsekvenserna blir för eleverna. Det är därför viktigt att variera undervisningen för att eleverna ska få möjlighet att utvecklas så långt som möjligt.

Både teoretiska och praktiska delar inom programmering kan undervisas med hjälp av grupparbete i form av par-programmering. Att arbeta tillsammans för att lära sig programmera har visat sig vara ett effektivt sätt att lära sig koda, samt förstå teoretiska delar, som tar upp viktigt för det datalogiska tänkandet. Isong et al., (2016) har undersökt effekten av att använda par-programmering i undervisningen och menar att programmera i par är ett effektivt sätt att få eleverna att lära sig utveckla program och algoritmer, samt minska utvecklingstiden. Eleverna sitter i grupp om två och utvecklar mjukvara, alltså skriver kod och löser uppgifter som kräver samarbete. Det måste finnas diskussioner mellan individerna, eftersom genom diskussionerna utvecklar individerna kodförståelsen och vidare också kodkvalitén. Samarbetet är nyckeln till fördjupade programmeringskunskaper. Det är dock viktigt att båda individerna ligger på en relativt nära kunskapsnivå, samt att båda faktiskt får skriva kod, för att det ska vara effektivt, både i form av tid och kvalitet (Isong et al., 2016; Salge & Berente, 2016). Det är därför viktigt som lärare att veta på

(10)

vilken nivå eleverna ligger, för att kunna para ihop eleverna på ett effektivt sätt. Att använda par-programmering i undervisningen blir därför en utmaning för läraren, men om man använder det på rätt sätt kan eleverna arbeta effektivare, vilket i sin tur leder till en högre kunskapsnivå.

Det vanliga programmeringsparadigmet objektorienterad programmering, som tar upp en stor del av kursen Programmering 2, är ett känt tröskelbegrepp inom programmeringsvärlden. Det är ett abstrakt koncept som Eckerdal (2006) menar är både svårt att undervisa och lära sig. Eckerdal har undersökt hur eleverna ser på sina erfarenheter kring att lära sig objektorienterad programmering. Här menar Eckerdal att elever har svårt att skilja på de abstrakta koncepten objekt och klass, som objektorienterad programmering bygger på. Eckerdal menar att det är mycket viktigt att läraren skapar en lärandemiljö som är social och förlåtande, där eleverna skapar motivation genom social interaktion, med bland annat par-programmering och genomgångar i helklass. Uppgifterna som eleverna arbetar med ska också vara tydliga och intressanta, med exempelvis problem som eleverna känner igen och kan förhålla sig till. Det är alltså viktigt för läraren att vara aktiv och lyssna på eleverna och deras behov, för att skapa en arbetsmiljö som utvecklar deltagarnas programmeringskunskaper och deras datalogiska tänkande.

Programmeringsämnet i gymnasieskolan

På gymnasiet finns det olika ämnen som på något sätt innebär att deltagarna ska lära sig att programmera. Den undervisande läraren har mycket stor valfrihet för hur en kurs ska läggas upp för eleverna, så länge läraren förhåller sig till examens-, ämnes- och kursmålen som är gällande för elevgruppen. Från och med 2011 gäller en ny läroplan som Skolverket tagit fram, den som kallas ”Läroplan, examensmål och gymnasiegemensamma ämnen för gymnasieskola 2011” (gy11). I läroplanen ingår det examensmål, ämnesbeskrivningar (dokument som beskriver vad ett ämne har för syfte) och vilka kurser som ingår i ämnet. Kursbeskrivningarna anger i sin tur vilket innehåll som ska finnas i kursen, samt vilka kunskapskrav som gäller. Programmeringsämnets syfte beskrivs av Skolverket (2011) på följande sätt:

Undervisningen i ämnet programmering ska syfta till att eleverna utvecklar kunskaper om programmeringens grunder, färdigheter i att tillämpa relevanta metoder för programutveckling och förmåga att lösa programmeringstekniska problem. Undervisningen ska även bidra till att eleverna utvecklar förmåga att analysera, designa och vidareutveckla program. Undervisningen ska också bidra till att eleverna utvecklar kunskaper om några vanligt förekommande programspråk samt traditioner och nya trender i utvecklingen av programspråk. Dessutom ska

(11)

undervisningen leda till att eleverna utvecklar kunskaper om datorns användning i samhället och datorns möjligheter och begränsningar. I undervisningen ska eleverna ges möjlighet att arbeta i projekt och att enskilt eller i grupp utföra programmeringsuppgifter av varierande komplexitet och inom olika tillämpningsområden. (s. 1)

Eleverna ska alltså utveckla sina kunskaper om grunderna i programmering, samt klara av att utveckla program på egen hand. Vidare ska eleverna också utveckla kunskaper om några programspråk; vilka programspråk som eleverna får arbeta i avgörs oftast av undervisande lärare, vilket innebär att det kan skilja sig mellan skolor, och även inom skolan. Varje del i Skolverkets (2011) beskrivande syftestext kan med andra ord tolkas på många olika sätt, och vidare i syftesdelen av ämnesplanen finns även en lista med tio punkter som beskrivningar vad eleverna ska ha möjlighet att utveckla i undervisningen (se bilaga 1, under rubriken Undervisningen i ämnet

programmering ska ge eleverna förutsättningar att utveckla följande). Kursen Programmering 1

innefattar åtta av punkterna i listan och Programmering 2 innefattar nio av punkterna. Med andra ord kan vi se att Programmering 1 och 2 har många syftespunkter som är lika, men att kurs 2 ska fokusera mer på objektorienterad programmering.

Vidare har Skolverket (2011) också tagit fram en lista för varje kurs som beskriver vilket innehåll som kursen ska behandla, det så kallade centrala innehållet (se bilaga 1, under rubrik

Centralt innehåll). Det första centrala innehållet för kursen Programmering 1 menar att kursen ska

innehålla ”grundläggande programmering i ett eller flera programspråk varav minst ett av språken är textbaserat” (Skolverket, 2011, s. 3). Programspråken som läraren väljer kan alltså både vara visuellt, med blockprogrammering och textbaserat, även om ett av språken ska vara textbaserat. Vilket språk läraren väljer påverkar kursens upplägg, som vidare också kan påverka elevernas attityd mot programmeringskursen. Det är därför viktigt att läraren inte fokuserar på syntax, utan istället på att hur en kurs bör läggas upp för att eleverna ska lära sig så mycket som möjligt, och därefter välja språk.

Attityd

För att egentligen förstå vad som menas med elevernas attityd ska det här stycket utveckla och förtydliga hur det här arbetet ser på begreppet attityd. Albarracin, Johnson, och Zanna (2005) menar att attitydområdet är stort och har utvecklats mycket under senaste seklet, det gäller både det metodologiska och det konceptuella. Eftersom området är väl efterforskat har det därför växt fram

(12)

olika beskrivningar och definitioner av begreppet attityd. En vanlig definition som Eagly och Chaiken (1993) tagit fram beskriver attityd som en psykologisk benägenhet som uttrycks när någon utvärderar ett specifikt objekt, där individen förhåller sig i någon grad mer positiv eller negativ mot objektet. Objektet kallas attitydobjekt, vilket inte egentligen behöver vara något konkret, utan det kan också vara något abstrakt. Vidare menar Albarracin, Johnson, och Zanna att ”människors attityd är generellt ett resultat av både relativt långsiktiga processer som socialisering och av relativt kortsiktig exponering av information i omgivningen” (2015, s.6). Det kan faktiskt också vara så att attityder kan vara ärvda (ibid.). Eftersom människors attityd är så komplext, att de kan påverkas både på lång och kort sikt, kan det vara svårt att fastställa hur och vad attityden blivit påverkad av. När attitydmätningar först togs fram och formaliserades, ansåg man att det enbart gick att mäta attityd genom att ställa en större mängd specifika frågor. Idag anser man att frågorna bör vara enkla i sin struktur, alltså enkel struktur och lätta att förstå (ibid.).

I arbetet kommer eleverna få svara på frågor som berör deras upplevda undervisning i programmeringsämnet, för att försöka hitta gemensamma nämnare kring lärares undervisningsupplägg som kan påverka elevernas attityd, positivt och negativt mot ämnet. Attitydobjektet blir därför i det här arbetet elevernas syn på programmeringsundervisningen. Dock kommer attitydresultaten endast bestå av elevernas eget tycke och tänkande, hur de upplevt undervisningen. Ingen specifik skala har använts i undersökningen för att utvärdera elevernas attityd. Elevernas attityd i arbetet består således endast av beskrivande text.

(13)

Metod

Den teoretiska utgångspunkten som arbetet vilar på kommer att presenteras i detta avsnitt.

Vetenskapsteori, den fenomenografiska ansatsen

Eftersom arbetet försöker lyfta fram några lärares och elevers egen tolkning av hur de ser på programmeringsämnet, är en metod av kvalitativ inriktning lämplig att använda eftersom det centrala i kvalitativa metoder är att man försöker finna de kategorier som bäst beskriver ett fenomen i omvärlden (Larsson, 1986). Fenomenet i det här arbetet är just hur lärare och elever reflekterar kring sina egna erfarenheter, och inte hur fördelning av kategorierna ser ut, som kvantitativ forskning i så fall hade kunnat belysa (ibid.) genom experiment om hypotes.

Den så kallade Inom-gruppen som verkade vid Institutionen för pedagogik vid Göteborgs universitet, har utvecklat en ansats, med vissa särdrag, som utgår från en kvalitativ metod (Larsson, 1986). De menar att en kvalitativ metod ska kunna gestalta något genom att ”göra en så god beskrivning av ett sammanhang som möjligt”. Deras ansats menar att sammanhanget ska handla om människors sätt att uppfatta sin omvärld. Människorna i denna studie kommer vara fyra lärare med respektive en elev. Vidare särskiljer Inom-gruppen även på hur något är och hur något

uppfattas vara. De utgår från Martons (1976) beskrivningsnivå, som är uppdelat i en första

ordningens perspektiv, det som handlar om fakta och som kan observeras utifrån, och en andra ordningens perspektiv, hur någon upplever något. Med andra ord finns det varken sant eller falskt i frågan, utan vad det är man studerar. De menar inte att resultatet ska vara en filosofisk analys hur människan uppfattar omvärlden med sin egen värld som utgångspunkt. Den fenomenografiska ansatsen syftar istället till att få fram en empirisk beskrivning av olika sätt att uppfatta omvärlden (Larsson, 1986). Empirin i det här sammanhanget utgör ett försök att analysera och beskriva vad ett antal människor har sagt vid en intervju. Analysen blir därför en beskrivning av hur ett antal människor uppfattar omvärlden. Summerat beskriver Larsson (ibid.) att det fenomenografiska forskningsobjektet ska beskriva hur fenomen i omvärlden uppfattas av människor. Man är alltså ute efter innebörden, inte förklaringar, samband eller frekvenser. Därför ska fenomenografin beskriva hur någonting framstår för människorna och inte hur någonting faktiskt är (ibid.).

Urval

Enbart behöriga programmeringslärare, och elever som har läst Programmering 1 och Programmering 2 är med i undersökningen. Lärarna kommer från olika skolor för att försöka få en

(14)

så varierande undersökningsgrupp som möjligt. Ett mejl skickades ut till programmeringslärare på flera olika skolor, där de som var intresserade att vara med i undersökningen skulle besvara tillbaka. För varje lärare som deltagit, har en av lärarens tidigare elever valts ut. Eleverna valdes ut genom att slumpmässigt välja en siffra och från en tidigare kurslista, utan att veta namn, ålder, kön eller etnicitet. Inte heller skulle valet vara påverkat av läraren i kursen eftersom läraren hade kunnat rikta sina tankar till en elev som läraren visste hade upplevt kurserna som enbart positiva. Eftersom arbetet ska behandla elevers egna upplevda syfta och attityd mot programmering, fanns kravet att eleverna skulle ha läst programmering 1 och 2.

Intervjudeltagarnas bakgrund

De intervjuade lärarna och eleverna vill vara anonyma och eftersom namnen på lärarna inte heller påverkar slutresultatet ersätts lärarnas namn i texten med akronymerna L1, L2, L3, och L4, där bokstaven L står för lärare och siffran markerar i vilken ordning de har intervjuats. Eleverna markeras med E1, E2, E3, och E4, och där står E för elev, och siffran relaterar till vilken lärare de hade, det vill säga att lärare L1 har haft E1 som elev i sina programmeringskurser.

L1 studerade på fysikerlinjen, och efter ett tag blev L1 erbjuden en garanterad plats på lärarhögskolan för att få lärarbehörighet. Valet att läsa till lärare blev aktuellt då det ansågs vara bra att ha en lärarexamen. Mot slutet av lärarstudierna blev L1 erbjuden en tjänst att undervisa i matematik och fysik, samtidigt som skolan hade köpt in en sal med datorer som skulle byggas upp, där en introducerande programmeringskurs skulle hållas, som L1 fick ansvara för. L1 började därefter läsa flera programmeringskurser parallellt på distans för att bli duktigare inom programmering. L1 har nu undervisat programmering på olika sätt i cirka 15 år.

L2 utbildade sig till civilingenjör, och läste mycket programmeringskurser, bland annat inom reglerteknik och realtidsprogrammering. Att undervisa i programmering intresserade inte många på civilingenjörsprogrammet då, men eftersom problemlösning var något som intresserade L2, kändes det naturligt för L2 att bli programmeringslärare samtidigt som L2 läste till matematik- och fysiklärare. L2 har från och till undervisat i programmering i fem år nu.

L3 intresserade sig tidigt för matematik och problemlösning, vilket gjorde att L3 läste till civilingenjör. Programmeringsintresset började dyka upp under utbildningens gång då programmeringen innehöll mycket problemlösning med matematiska inslag. Efter studierna började L3 arbeta med webbutveckling på ett mindre nystartat företag. Efter fyra år startade L3 eget företag som höll på med design och webbutveckling. Efter sex år kände L3 att det blev för mycket arbete som egenföretagare och studerade därför till lärare. L3 har varit i läraryrket i snart åtta år.

(15)

L4 har studerat till högskoleingenjör inom programvaruteknik. Efter studierna har L4 arbetat med 3D-programmering på högskola, samt som programmerare på ett medelstort företag som arbetar med mer hårdvarunära utveckling har varit fokusområde för L4. Efter fem år i privata sektorn valde L4 att läsa till ämneslärare på gymnasieskolan för att det lockade L4, att kunna motivera elever att läsa programmering och förstå hur mjukvaruutveckling går till. L4 har arbetat som gymnasielärare i tre år.

E1 kom i kontakt med programmering första gången under kursen Programmering 1 på gymnasiet. E1 vill arbeta inom design och produktutveckling, och kommer förmodligen studera vidare på högskola.

E2 hade provat lite programmering innan första kursen, och såg fram emot programmeringskurserna. E2 kan tänka sig att arbeta med programmering i framtiden.

E3 valde programmering som individuellt val och hoppades på att det skulle vara roligt. E3 tycker mycket om matematik och problemlösning.

E4 hade programmerat relativt mycket på egen hand hemma innan första programmeringskursen. E4 vill arbeta med spelutveckling framöver.

Kvalitativ intervju

Utifrån ett fenomenografiskt perspektiv (Larsson, 1986) har datainhämtning gjorts med hjälp av nio kvalitativa semistrukturerade intervjuer. Det är intervjuer där frågorna som ställs inte är detaljfrågor, utan snarare bredare öppna frågor utifrån en intervjumall (se bilaga 2 och 3). Intervjudeltagarens svar för samtalen vidare genom att intervjuledaren ställer uppföljningsfrågor till deltagaren (Bryman, 2011). Förhoppningen är att samtalen ska kännas mer naturliga och få intervjudeltagarens personliga resonemang och syn kring intervjuområdet. Första intervjun nyttjades som testintervju mot en lärare, där ett första urval av frågor användes, därefter reviderades frågorna för att passa arbetet och dess frågeställning bättre. Samtidigt användes intervjun till att förtydliga frågorna för kommande intervjudeltagare. Frågorna som valts ut försöker finna intervjudeltagarens helhetliga upplevelser mot programmering på gymnasieskolan. Efter första intervjun, när frågorna hade anpassats till arbetets syfte, hölls åtta individuella intervjuer med elever och lärare. Hur urvalet gjordes kan läsas under rubrik Urval. Intervjufrågorna som användes för lärare och elever finns under bilaga 2 respektive 3.

(16)

Resultat

I detta avsnitt kommer frågeställningarna att besvaras, redovisas och analyseras med hjälp av resultatet från de åtta kvalitativa intervjuer som genomförts. Det viktiga är att försöka återspegla intervjuresultatet på ett tydligt och trovärdigt sätt, där lärarnas och elevernas svar på frågorna förklaras med tillhörande beskrivning. Det är viktigt att som läsare få en tydlig, men ändå begriplig helhetsuppfattning i lärarnas och elevernas upplevelser. Beskrivningarna kommer således inte att beskriva allt som respektive deltagare framförde, utan det väsentliga som är till hjälp att svara på forskningsfrågorna sker genom att redogöra och argumentera kring intervjusvaren. Resultaten kommer att delas in i olika stycken för att förenkla för läsaren. Först kommer alla lärarnas beskrivningar gällande programmeringskurserna och den undervisning som lärarna bedrivit. Efter lärarnas beskrivning kommer alla elevernas tankar om den undervisning de tagit del av.

En del fyllnadsord och utsvävningar från de nerskrivna intervjuerna har tagits bort eller ändrats eftersom de ska bli mer lättläsliga, och detta påverkar inte slutresultatet eftersom innehållet inte har med programmering att göra. Inte heller påverkar orden någon tolkning så att själva svaret kan missuppfattas. Under rubriken Urval kan man läsa mer om intervjudeltagarnas bakgrund samt vad akronymerna L1-L4 och E1-E4 betyder. Intervjuledaren har akronymen I. Tre punkter mellan en höger- och vänsterhakparantes, det vill säga […], menas med att text har tagits bort, då texten inte påverkar innebörden eller förvränger intervjudeltagarens tankar. Tre punkter efter varandra innebär att intervjudeltagaren pausade, för att sedan fortsätta förklaringen.

Generellt var lärarna mer frispråkiga under intervjuerna än vad deras elever var. Därför blev intervjumaterialet från lärarna större än det material som samlades in från elevintervjuerna. Men flertalet av de frågor som ställdes under lärarintervjuerna, gällande den undervisning läraren bedrivit, ställdes även under elevintervjuerna, men mer riktat mot elevens syn på den undervisning som eleven tagit del av. Tanken bakom det här intervjuupplägget är att elevens svar kan bekräfta att eleven faktiskt tagit del av undervisningen på ett sådant sätt som läraren planerat för. Skiljer sig istället lärarens och elevens svar gällande undervisningsupplägget, är det svårare att tolka sambanden mellan lärarens undervisning och elevens attityd mot den programmeringsundervisning som bedrivits. Många av lärarnas svar var likartade, och därför har svar och resonemang som fått med helheten noga valts ut och citerats för att läsaren ska förstå innehållet. Tabeller nyttjas för att läsaren ska få en summerad bild över hur lärare och elever har svarat.

(17)

Resultat utifrån lärarintervjuerna

Programmeringslärares syfte och mål med kursen Programmering 1

Lärare fick frågor som berörde deras sätt att se på syftet och målet med första programmeringskursen. Alla lärare var tydliga med att målen ska hämtas från texten som beskriver programmeringsämnet, och även om lärarna beskriver det på olika sätt summerar L1 det på ett bra sätt.

I: Vad anser du är syftet med kursen Programmering 1?

L1: Det officiella svaret är att det ska uppfylla kursplanen, det vill säga kunskapskraven och syftet som kursplanerna anger […]. Bland annat ingår det att eleverna ska få förståelse om grunderna i programmering […].

Här kan man utläsa att L1 är medveten om att faktiskt utgå från ämnesplanen som Skolverket har tagit fram. Det är också något som lärare ska göra i gymnasieskolan. Oavsett hur lärarna besvarade frågan kan man utläsa att ämnesplanen för Programmering är utgångspunkten när det kommer till planering av lektioner och vilket innehåll som ska finnas. Dock är det viktigt att påvisa att endast en av lärarna vidareutvecklade svaret med att programmålet också ska vävas in i planeringen av ämnet.

L4: Redan från början innan kursstart är det viktigt med kursplanering, vad som eleverna ska få ta del av och lära sig. Det krävs planering både utifrån ämnesmålen samt programmålen […]. Ämnesmålen är det man förhåller sig till mest som lärare skulle jag tro, även om man klart kikar tillbaka på programmålen då och då […] Jag tillåter till exempel eleverna att par-programmera, som jag anser är en viktig del i ämnet… att tillåta grupparbete är ju faktiskt en del av programmålen, så vissa delar faller naturlig in både i kursmålen och programmålen.

L4 menar att det inte räcker med att nyttja ämnesmålen, även om det får störst fokus, när man planerar och håller en kurs. Att faktiskt väva in programmålen är en viktig del för att undervisningen ska bedrivas på bästa sätt för eleverna. L4 tillåter exempelvis eleverna att arbeta i grupp, med par-programmering, något som i programmålen beskrivs genom att ”teori och praktisk tillämpning ska samverka och utbildningen ska ge eleverna kunskaper om och färdigheter i att samarbeta med andra” (Skolverket, 2011, fjärde stycket). Lärarna påpekade också att första kursen, Programmering 1, ska introducera programmeringsämnet, och lära eleverna grunderna i programmering. Det som lärarna generellt nämnde var att eleverna ska lära sig syntaxen i ett vanligt

(18)

textbaserat språk, enkla datatyper, selektion, iteration, funktioner, samt grundläggande felsökning. Se tabell 1 för en summering av vad lärarna nämnde att eleverna ska kunna när kursen Programmering 1 är klar.

Lärare Summerat vad lärare anser att elever bör kunna efter kursen Programmering 1 L1 Koda i ett språk, dvs. förstå olika datatyper, skriva if-satser, loopar, egendefinerade

funktioner

L2 Enkel syntax i ett språk. Förstå datatyper, loopar (while och for), villkorssatser och funktioner

L3 Kunna skriva enkla funktioner. Förstå iteration, selektion, variabler. Lite felhantering. L4 Skapa ett enkelt program med loopar, villkor, minneshantering, funktioner och felsökning

Tabell 1. - Vad lärarna anser att eleverna bör kunna efter avslutad kurs (Programmering 1)

Sammanfattningsvis anser lärarna att kursen Programmering 1 ska utveckla elevernas grundläggande datalogiska kunskaper inom programutveckling. Där ingår det bland annat att veta hur ett program konstrueras med olika programmeringsverktyg. Eleverna ska alltså förstå hur en dator tänker och exekverar kod, för att själv kunna beskriva det med hjälp av ett programmeringsspråk. Här kan man tyda att lärares mål med kursen Programmering 1 relaterar mycket intimt med delar av det som Skolverket (2018a) menar är syftet med kursen; att eleverna ska utveckla kunskaper om programmeringens grunder och få kunskaper om hur ett program utvecklas med olika programspråk.

Programspråk i Programmering 1

Valet av programspråk i kursen Programmering 1 skiljer sig något mellan lärarna. Eftersom varje lärare har olika bakgrund och förkunskaper, genomsyras ofta en programmeringskurs med det språk som läraren bäst behärskar. Under intervjuerna dök språkvalet upp relativ tidigt när de fick frågor om hur de undervisade i kursen Programmering 1. De hade egna tankar och argument om varför man skulle undervisa med ett visst språk. Tabell 2 visar på de programmeringsspråk som de intervjuade lärarna har valt att nyttja i den första programmeringskursen.

Lärare Språk som används i Programmering 1

L1 C#

L2 Python

L3 Java och lite Python (för att kunna jämföra)

L4 C++

Tabell 2. – Lärarnas val av programspråk i kursen Programmering 1

(19)

L1 har använt C# under en längre tid, och tycker att det passar bra med ett språk som har automatisk skräpsamling (eng. garbage collection). Eleverna behöver då inte fokusera på minneshantering, för det anser L1 att man inte ska behöva gå in på under första kursen, för då gör man det mer komplicerat än vad som egentligen krävs. Vidare anser L1 att C# är ett språk som används mycket ute i industrin, och har man goda kunskaper inom språket, ökas chanserna till att man får en möjlig anställning framöver.

L1: C# är enligt mig ett språk som både är enkelt och effektivt, det används på många företag och är mycket kraftfullt. Språket har en bra GC (garbage collector)[…]. Kan också tillägga att jag är mycket förtjust i utvecklingsmiljön Visual Studio, så det har också en bidragande faktor.

L2 anser att ett språk med enkel syntax är viktigt, därför har L2 valt att använda Python, som också blir allt mer vanligare (TIOBE, 2018).

L2: […] Ur ett pedagogiskt perspektiv kan val av språk vara mycket viktigt eftersom olika programmeringsspråk, precis som vanliga språk, kan vara olika svårt att lära sig. Själv har jag valt att enbart använda i Python eftersom syntaxen är relativt enkel. Jag tror också att det blir allt vanliga bland högskolorna också…

L3 nyttjar mestadels Java eftersom L3 arbetat mycket med språket och att det finns mycket att hämta om språket på internet. Eleverna kan då själva lära sig genom exempel. Även L3 påpekade att det är bra att nyttja ett språk med automatisk skräpsamling. L3 har också börjat köra några lektioner med Python eftersom eleverna ska få möjlighet att titta på flera språk, och jämföra enkel syntax mellan språken. L3 hade gärna också velat använda JavaScript i kursen, på grund av att L3 har arbetat med det tidigare i större omfattning. Men eftersom eleverna får arbeta med JavaScript i andra kurser anser L3 att det är bra om eleverna får ta del av ett annat språk i Programmering 1.

L3: Jag är van vid Java sedan tidigare och använder mig av det i kursen… Hade kunnat tänka mig JavaScript, men det kör jag i andra kurser, tror det är bra med omväxling mellan kurserna […]. Under några lektioner i Programmering 1 använder jag mig av Python, mest för att eleverna ska få möjlighet att jämföra språken.

L4 som har arbetat nära hårdvara lärde sig C++ som första språk och menar att C++ kan vara något svårare att ta sig an än andra språk, som till exempel Java. Dock tror L4 att det blir lättare att lära sig nya språk om man kan ett språk som C++, där det är viktigt att man har koll på minneshanteringen.

(20)

L4: Jag anser att om man kan ett språk, som C++ bra, kan man… blir det mycket lättare att sätta sig in i andra språk […]. C++ kräver i princip att du har koll på minneshantering, i alla fall när du använder pekare.

Lärarna motiverar sina språkval på olika sätt, och är klart inte helt överens om vilket språk man ska använda i en första programmeringskurs. Lärarnas bakgrund är en drivande faktor i valet av språk, men det som lärarna har mer eller mindre gemensamt är att man ska fokusera på ett språk i första kursen, eleverna hinner helt enkelt inte med mer, och då menar man grunderna i språket. Det viktiga är att man ska lär sig ett språk på djupet, då kan man lättare ta sig an nya. L3 låter dock eleverna jämföra huvudspråket i kursen med ett annat språk för att låta eleverna se likheter och skillnader mellan olika programspråk. Värt att notera är att ingen av lärarna använder sig av ett visuellt programspråk i sin undervisning under kursen. Weintrop och Wilensky (2017) menar att användandet av blockprogrammering kan underlätta förståelsen för nybörjare inom programmering. Dock nämnde L3 att flera grundskolor arbetar med programmering på olika sätt, till exempel med blockprogrammering i Scratch. L3 hoppas därför att kommande elever som börjar i gymnasiet är mer förberedda inför programmeringskurserna.

L3: […] Jag känner några lärare på grundskolan som arbetar med Scratch med sina elever. Förhoppningsvis är de mer medvetna om vad programmering innebär… Jag vill gärna i alla fall tro att kommande elever har större förkunskaper inom programmering… och har lättare för programmeringen.

Introducera nytt material för eleverna, Programmering 1

Det finns olika sätt att undervisa, och Saito och Yamuara (2013) menar att programmering kan undervisas med hjälp av ett Bottom-up perspektiv, där man undervisar teorin innan kodning, eller Top-down perspektiv, där man lär genom kodexempel. Även om lärarna varvar teori med praktik, som Berglund och Eckerdal (2015) anser är väsentligt för att utveckla elevernas programmeringskunskaper, fokuserar lärarna ofta på teoridelarna först när nya moment i kursen ska introduceras.

I: Hur introducerar du nya element för eleverna i kursen. Hur går du till väga så att säga? L1: Eleverna får veta lektionen innan vad jag ska gå igenom under kommande lektion… De får läsanvisningar som de ska ha läst. Sen gör väl klart inte alla det… Vi går igenom i helklass, muntligt där både jag och eleverna ställa frågor […]. Jag använder mig mycket av whiteboarden

(21)

också, försöker visa med liknelser och flödesscheman. Sen visar jag klart också med enkla kodexempel. Men för det mesta får de arbeta med uppgifterna i boken.

I: Tror du att eleverna anser att det är ett bra sätt?

L1: Jag försöker fråga dem så ofta som möjligt om hur de upplever lektionerna, för att se om det går bra eller om man kan göra på andra sätt… Jag tror att så länge eleverna förbereder sig fungerar det, i alla fall vad jag har uppfattat det som… Problemet är väl när teorin inte är så spännande […]. Det är klart viktigt att de också skriver egen kod och följer bokens uppgifter […] Jag hade gärna velat skriva egna uppgifter men det är svårt att hitta tid tyvärr…

L1 går först igenom de teoretiska delarna, muntligt och skriftligt innan eleverna får arbeta vidare med övningar som finns i boken. Här varvas teori med praktik, men först och främst är det teorin som introduceras, vilket innebär att L1 förhåller sig mer åt ett bottom-up-undervisningssätt än top-down. En notering är att läraren gärna hade velat använda egna programmeringsövningar, men på grund av tidsbrist använder läraren bokens uppgifter. Läraren påverkas alltså mycket av kurslitteraturen vid planering och genomgångar. I tabell 3 kan man se vilket sätt lärarna nyttjade i första hand för att gå igenom nya programmeringselement i kursen.

Lärare Tillvägagångssätt hur nytt material introduceras

L1 Bottom-up

L2 Bottom-up

L3 Bottom-up

L4 Top-down

Tabell 3. – Lärarnas val av undervisningssätt i kursen Programmering 1

Precis som L1 använder L2 och L3 sig av kurslitteraturen i sina genomgångar när eleverna arbetar på egen hand. Genomgångarna sker ofta muntligt med hjälp av whiteboardtavla eller via en digital presentation. Eleverna får alltså en genomgång av de teoretiska delarna innan de börjar titta på kod, eller skriva egen kod. Här skiljer sig L4 något åt från de övriga lärarna i arbetet, då L4 introducera nytt material med ett top-down-perspektiv.

L4: Att programmera och lösa problem innebär att faktiskt skriva kod. Det är därför viktigt att eleverna tidigt får koda, alltså skriva egna små program, som till exempel en miniräknare […]. Jag vill gärna ha ett praktiskt förhållningssätt när jag undervisar…. teori kommer per automatisk tror jag. Eleverna vill inte sitta och läsa böcker, och därför försöker jag lära dem att använda internet så mycket som möjligt, där finns ju jättemycket material att titta på. Men man (eleven) måste förstå det man skriver, det är viktigt. Så i början av kursen går jag

(22)

tillsammans med eleverna igenom färdiga kodexempel för att vänja in dem i tänket. Jag förklarar koden och låter eleverna testa lite själva. Som sagt… det är viktigt att eleverna får prova koda själva tidigt […]. Teorin kommer in rätt snabbt klart, men jag tror det är viktigt att låta eleverna laborera och se vad som händer.

L4 anser att man lär sig genom att titta på kodexempel först innan teorin gås igenom. Det är alltså exempelkoden som står i fokus, istället för de teoretiska delarna. L4 skriver egen kod och

försöker att använda fysiska böcker så lite som möjligt, och istället visa eleverna

exempellösningar på olika övningar. L4 låter även eleverna använda internet i stor omfattning, där man kan leta upp relevanta kodexempel. Dock påpekar L4 att det är viktigt att man förstår de exempelkoderna man använder och inte bara kopiera och klistrar in.

Arbete under lektionstid, Programmering 1

Utöver att gå igenom nytt material försöker lärarna använda mycket av lektionstiden för att låta eleverna arbeta med olika programmeringsövningar, där eleverna ska lösa olika programmeringsproblem genom att skriva programkod. Eleverna läser flera olika kurser parallellt därför är det inte säkert att eleverna programmerar mellan lektionerna. Det är något som lärarna anser är ett stort problem. Eftersom lärarna gemensamt ansåg att det bästa sättet att lära sig programmera är faktiskt att göra det. L2 summerar det på följande sätt:

L2: Ska man bli en duktig programmerare måste man faktiskt skriva programkod. Det finns klart också tillfällen när man måste stanna upp och reflektera… men för att göra det måste man koda för att förstå helheten, hitta begränsningar och möjliga genvägar.

Lärarna i undersökningen har olika elevgrupper, där antalet elever och lektionstid per vecka skiljer sig. Många elever i en grupp innebär att läraren får mindre tid åt varje elev. Eckerdal (2006) menar att läraren ska vara aktiv och lyssna på eleverna och deras behov. Dock kan det vara svårt att i större grupper hinna lyssna på alla eleverna. Det är därför viktigt att hitta ett arbetssätt som möjliggör att eleverna kan arbeta vidare på egen hand under lektionstid. Tabell 4 sammanfattar lärarnas olika förutsättningar, i form av elevantal och lektionstid.

Lärare Elevantal Antal lektioner / vecka Tid / lektion

L1 20 2 70 min

L2 30 2 – 3 60 min

L3 16 2 75 min

(23)

Tabell 4. – Lärarnas olika förutsättningar i kursen Programmering 1

Förutsättningarna som lärarna har skiljer sig mellan skolorna. Grupperna är olika stora och schemamässigt varierar lektionsantal och tid under varje arbetsvecka. Därför är det intressant att veta hur eleverna arbetar under lektionstid, samt hur lärarna arbetar med eleverna under tiden. Lärarna fick frågor gällande hur eleverna arbetar under lektionstiden, samt hur läraren agera i sin undervisningssituation då. Tabell 5 summerar vad lärarna svarade.

Lärare Elevers arbetssätt under lektionstid Hur lärare agerar under tiden som eleverna arbetar

L1 Löser uppgifter från boken på egen hand. Elever som är klara med uppgifter i boken får muntligt uppgifter av lärare.

Går runt i salen och försöker

argumentera kring olika lösningar. Pratar kort med varje elev.

L2 Arbetar individuellt med uppgifter från

kurslitteraturen samt andra uppgifter som läraren ger ut via en läroportal.

Eleverna får räcka upp handen om de behöver hjälp. Eleverna ska i första hand försöka lösa det på egen hand eller fråga kurskamrat.

L3 Får gärna arbeta tillsammans för att lösa uppgifterna i kursboken, men man måste förstå lösningen själv.

Läraren försöker hinna prata med varje individ för att se hur arbetet går framåt. Går runt i salen.

L4 Elever ska arbeta enskilt eller i par när läraren meddelar om det. Arbetar med uppgifter som läraren tagit fram. Elever får gärna komma med förslag på vad de kan arbeta med. Får gärna leta efter kodexempel på internet.

Går runt i sal för att fånga upp

gemensamma svårigheter. Är det flera som har samma problem/svårighet presenterar läraren en kort genomgång om det.

Tabell 5. – Elevernas arbete under lektionstid med olika lärare

L1, L2, och L3 låter eleverna mestadels arbeta med uppgifter i kurslitteraturen, medan L4 har gjort egna uppgifter, samt exempellösningar som eleverna kan titta på. När eleverna arbetade försökte alla lärare vara tillgängliga så mycket som möjligt om eleverna behövde hjälp. Dock blir det svårt att hinna med och lyssna på varje elev om man har en större elevgrupp. L2 har 30 elever i sin grupp, vilket innebär att varje elev har ca två minuter individuell lärartid, om hela

lektionstillfället går till att skriva programkod. Har man svårt för programmering, som en hel del har i och med att det krävs en hel del abstrakt tänkande, och inte får hjälp av lärare, blir det också svårt att utvecklas. Det är något som klart kan påverka elevernas syn på

programmeringsundervisningen negativt.

Hur elever fick visa vad de kunde, Programmering 1

I slutet av varje gymnasiekurs ska lärare sätta betyg på varje elev, läraren ska alltså göra en summativ bedömning av elevens kunskaper inom kursen. Därför är det viktigt att varje lärare också

(24)

arbetar med formativ bedömning under kursens gång. Hur programmeringslärarna gör detta skiljer sig åt något. Olika metoder kan påverka elevernas attityd mot kursen, både positivt och negativt. Lärarna fick frågor som berörde hur eleverna fick visa vad de kunde och hur de bedömdes. Här skiljer sig lärarnas syn, allt från att eleverna fick skriva prov på papper till att läraren hade individuella diskussioner med varje elev. I tabell 6 ser man en övergripande bild av hur lärarna arbetade med bedömningar i kursen.

Lärare Hur eleverna fick visa vad de kunde.

L1 Visar sina lösningar för lärare, prov på dator, under lektionerna

L2 Genom bestämda inlämning av uppgifter från kurslitteraturen, oförberedda delprov, arbete i sal

L3 Via diskussion med läraren, prov på papper och dator, genom handuppräckning i sal

L4 Genom några mindre inlämningar, prov (teoretiska och praktiska), elev förklarar sin kod vid dator för lärare

Tabell 6. – Hur eleverna fick visa vad de kunde under lektioner med olika lärare

Alla lärarna har någon form av prov, antingen digitalt eller med penna och papper. Annars är det inlämningsuppgifter (både större och mindre), eller diskutera lösning för lärare som gäller. Programmeringslärares syfte och mål med kursen Programmering 2

Den största innehållsskillnaden mellan Programmering 1 och Programmering 2 är att den sistnämnda kursen innehåller två nya mål som inte den första kursen innehåller. Det är ”kunskaper

om gränssnitt mot filer, filsystem, databashanterare och internet” samt ”kunskaper om och färdigheter i objektorienterad programmering”. När de tillfrågade lärarna fick fråga om vilket mål

som lärarna hade med Programmering 2, svarade lärarna relativt likartat. I: Vad anser du är målet med kursen Programmering 2?

L3: […] att eleverna ska fördjupa sina tidigare programmeringskunskaper, samt få kännedom om och arbeta med objektorienterad programmering. Mycket av kurstiden går åt att träna eleverna på det, och många har svårt för det […].

Objektorienterad programmering (OOP) något som alla lärarna påpekar ska finnas med i kursen. Här menar L3 att mycket av tiden faktiskt går åt att träna eleverna i det objektorienterade tänket, att det är något som eleverna har svårt för. Det relaterar starkt till hur Eckerdal (2006) beskriver det objektorienterade paradigmet, att det är ett mycket känt tröskelbegrepp inom programmering. Utöver OOP, menar L4 att det är viktigt att eleverna blir bättre på att lösa uppgifter mer effektivt, genom att använda de nya programmeringsverktyg som ska finnas i kursen.

(25)

L4: De (eleverna) ska kunna titta tillbaka på tidigare problem och uppgifter för att kunna lösa dem på andra sätt… eftersom verktygslådan utökas bör dem kunna göra saker mer effektivt. I: Vad menar du med att eleverna ska kunna lösa något mer effektivt?

L4: Det kan vara så att en tidigare lösning som en elev gjort kan göras bättre, genom till exempel att minska antalet kodrader… eller kanske bättre felhantering […]. Jag vill att eleverna ska lösa samma problem på olika sätt, genom till exempel klasser, och att de faktiskt inser att de blir bättre kodare…

L4 menar att kunskaperna som eleverna fått från tidigare programmeringskurs ska vidareutvecklas, så att eleverna kan lösa svårare uppgifter, eller lösa liknande uppgifter på ett bättre och mer effektivt sätt. Det kan vara både design- och prestandamässigt. Tabell 7 summerar lärarnas uttryckta tankar kring vad eleverna bör kunna efter kursen Programmering 2.

Lärare Summerat vad lärare anser att elever bör kunna efter kursen Programmering 2 L1 Klasser och objekt, inklusive arv och polymorfism. Enkla gränssnitt med in- och utmatning

till fil.

L2 Konstruera ett registerprogram med OOP. Där registret lagras på fil. L3 Bygga program med hjälp av objektorientering (alltså klasser och objekt).

L4 Koda ett enkelt spel. Förstå klassdiagram, klasser och objekt. Bli bättre kring kodstruktur och felhantering.

Tabell 7. – Vad lärarna anser att eleverna bör kunna efter avslutad kurs (Programmering 2)

Enligt lärarna tar klasser och objekt upp en stor del av kursinnehållet i andra programmeringskursen. Lärare L1 och L2 uttrycker också tydligt att eleverna ska arbeta med filhantering på olika sätt. Alltså att förstå hur man kan lagra data på fil och använda det i ett eget utvecklat program. Även om det centrala innehållet består av flera moment utöver OOP och filhantering (Skolverket, 2018a), anser lärarna att en viktig del av kursen är att eleverna ska få djupare programmeringsförståelse. L1 och L4 uttrycker att de personligen hade velat se fler programmeringskurser som eleverna har möjlighet att läsa under tredje året. Programmering 3 är nämligen endast möjlig att erbjuda på ett fjärde tekniskt år på gymnasieskolan. Det finns elever som vill lära sig mer, men då får de ofta göra det på egen hand.

L4: Enligt mig borde Programmering 3 finnas tillgänglig för de som vill bli programmerare. Då hade eleverna bland annat fått möjlighet att analyser datastrukturer och algoritmer på en helt annan nivå än vad som nu är möjligt för dem. […] Klart att det finns duktiga elever redan i Programmering 1, men ska man bli vass krävs det att man fördjupar sig mer.

(26)

I: Nu finns ju kursen Tillämpad programmering, du har inte tänkt att skolan kan erbjuda den? Den kan man ju läsa flera gånger precis som kursen Teknik – specialisering, och du kan vinkla innehållet till det som passar elevgruppen.

L4: Jag har kikat lite och funderat på den faktiskt… jag får titta vidare på det.

Programspråk i Programmering 2

I kursen Programmering 2 använder tre av lärarna samma språk som i kursen Programmering 1 (se

under rubrik Programspråk i Programmering 1).

Värt att tillägga är att L2 byter språk mellan kurserna, skiftar från Python till Java. L2: Jag går från Python till Java mellan kurs 1 och 2.

I: Är det något speciellt du har i åtanke med språkbytet?

L2: Jag vill att eleverna ska få lära sig ett nytt språk, men också att det snabbt ska göra ett gränssnitt i Java med Swing (ett verktyg där användare kan skapa grafiska användargränssnitt). Men det blir klart en del extraarbete…

Introducera nytt material för eleverna, Programmering 2

Under första programmeringskursen använder tre av lärarna i arbetet ett så kallat bottom-up-perspektiv när de undervisar (se under rubrik, Introducera nytt material för eleverna,

Programmering 1). Lärarna börjar med teori, innan de går ner på detaljnivå, till exempel genom

att visa kodexempel. Dock varierade det något mer under Programmering 2. Majoriteten av lärarna ansåg att det är svårare att undervisa objektorientering genom att enbart ha teoretiska genomgångar. De ansåg att det kunde bli allt för abstrakt om man inte gick igenom lite kodning först.

I: På dina genomgångar i Programmering 2, har du samma upplägg när du går igenom nya moment med eleverna, som i kursen Programmering 1?

L3: Jag skulle vilja säga att jag har det… eller jag försöker, men jag märker att eleverna har svårt att greppa det abstrakta med objekt och klass… Därför blir det faktiskt mycket kodgenomgångar, jag skriver kod i utvecklingsmiljön, så får eleverna hänga med. […] Vi kör mycket klassdiagram på tavlan i helklass när vi gått igenom några kodexempel med klasser och objekt […].

Lärare L3 har gradvis gått från ett bottom-up-arbetssätt till att ha ett mer top-down-perspektiv vid Programmering 2-undervisningen. L3 menar att eleverna har svårt för att förstå koncepten

(27)

objekt och klass, och anser att det är bättre att eleverna får titta på kodexempel innan merparten av teorin gås igenom på djupet. Lärare L2 har av samma anledning också skiftat från ett teoretiskt tillvägagångssätt till ett mer praktiskt. L1 och L4 nyttjar båda samma tillvägagångssätt som i första kursen. Tabell 8 summerar hur lärarna introducerar nytt material i Programmering 2.

Lärare Tillvägagångssätt hur nytt material introduceras

L1 Bottom-up

L2 Top-down

L3 Top-down

L4 Top-down

Tabell 8. – Lärarnas undervisningssätt i kursen Programmering 2

L1 som fortfarande använder ett bottom-up-arbetssätt försöker visa med bilder och diagram hur OP-programmering fungerar. L1 tycker likt övriga lärare att många elever har svårt för klasser och objekt, men menar också att man måste förstå teorin innan man tittar på koden. Koden visar inte alltid hela sammanhanget, därför menar L1 att teorin ska tas direkt.

Arbete under lektionstid, Programmering 2

Hur eleverna arbetade och läraren agerade i klassrummet var i stort sett likartat med hur man gjorde i första kursen (se rubrik Arbete under lektionstid, Programmering 1). Det som skilde sig var att L4 tillät eleverna arbeta i grupper om tre personer, där varje grupp skulle skapa ett digitalt spel. Hur elever fick visa vad de kunde, Programmering 2

Eleverna visade vad de kunde på samma sätt som i första kursen. L3 använde dock inte prov med papper och penna, utan nu skrev eleverna endast på datorn. L4 tillät eleverna att presentera och visa sitt projekt i grupp, men varje individ skulle förstå och presentera alla delarna, alltså all kod.

(28)

Resultat utifrån elevintervjuerna

Eleverna fick bland annat frågor som berörde hur läraren hade lagt upp undervisningen i kursen. Resultatet av elevfrågorna har jämförts med berättelserna som läraren återgett för att faktiskt se om lärarens bild stämmer med elevens. Det finns många likheter med det läraren beskriver och det som eleven upplever, men även olikheter som Rolandsson (2015) menar, att det som lärare avser upplevs inte av eleverna som det planerats.

Elevers mål med kurserna Programmering 1 och 2

Eleverna som intervjuades fick frågan gällande vilket mål de ansåg att kursen Programmering 1 respektive Programmering 2 hade. Ingen av eleverna hade själv gått in och läst kursplanen för någon av kurserna. Men de menade att läraren som de hade haft, hade gått igenom vad som skulle göras och vad som faktiskt ingick i kursen. Eleverna kom inte ihåg vad som stod där exakt. De litade helt enkelt på att läraren faktiskt tog upp det som var viktigt.

I tabell 9a kan man se hur eleverna svarade gällande vilket mål de trodde att kursen Programmering 1 hade, och tabell 9b visar på kursen Programmering 2.

Elev Elevers upplevda mål med kursen Programmering 1

E1 Lära mig att programmera, göra enkla saker med programmering, skriva kod i C# E2 Lösa problem med programmering i Python

E3 Kunna skriva loopar, if-satser, funktioner i Java.

E4 Lära mig C++, kunna göra program som förenklar arbete. Skriva enkla algoritmer.

Tabell 9a. – Elevers upplevda mål med kursen Programmering 1

Eftersom eleverna inte kom ihåg vad som stod i kursplanen för respektive kurs, svarade eleverna istället övergripande vad de tror att man ska lära sig i kurserna utifrån den undervisning de tagit del av. Eleverna förklarade inte mycket på djupet, men alla menade att man ska i alla fall lära sig ett programspråk, att det är en väsentlig del av första kursen, vilket det också är enligt

ämnesmålen (Skolverket, 2018a).

Elev Elevers upplevda mål med kursen Programmering 2 E1 Utveckla större och mer komplexa program med gränssnitt.

E2 Lära sig hur användare lättare kan interagera med programmet. Objekt och skriva till fil. E3 Bygga program där man använder klasser och objekt, klassdiagram

E4 Göra spel och grafiskt användargränssnitt, förstå mer på djupet, skriva snyggare och effektivare kod.

Tabell 9b. – Elevers upplevda mål med kursen Programmering 2

Gällande den andra kursen, menare eleverna att mycket fokus låg på objekt och klasser, samt att eleverna skulle ha möjlighet att skapa större program.

(29)

Det som eleverna såg som positivt vid undervisning av programmering

Det finns flera saker som eleverna var särskilt nöjda med gällande lärarens undervisningsupplägg. Något som de flesta eleverna nämnde som mycket positivt, var när läraren engagerade sig och lyssnade, och försökte förklara på ett sätt så att eleven kunde lösa uppgiften på egen hand. Eleverna blir glada när de lyckas lösa en uppgift, och att resultatet blir som man tänkt sig.

I: Berätta någon gång då du varit riktigt nöjd undervisningen som du fick.

E1: Då skulle jag nog säga att när jag hade ett svårt problem… tror det var ett Yatzy-spel, där man ska kasta tärningar och välja vad man skulle placera summan på… jag hade lite svårt med en funktion som skulle gissa var jag ville placerade summan. […] Jag frågade läraren och vi diskuterade fram en lösning, men det var jag själv som drev samtalet och frågorna, läraren fungerade som bollplank typ… men det löste sig och då kände jag mig nöjd.

Här upplever E1 en positiv attityd mot undervisningen när läraren förklarar teorin tillräckligt bra så att eleven själv kan lösa problemet, utan att läraren visar med kodexempel. Tabell 10 summerar det eleverna var mest nöjda med gällande den undervisning de tagit del av.

Elev Elever var nöjda med

E1 Bra genomgångar i helklass, engagerad lärare, när vi kodade till en andra enheter

E2 När lärare engagerar sig och faktiskt lyssnar på en, både teoretiska och praktiska moment E3 När läraren kommer med bra tips, att man har en kursbok med kodexempel att luta sig mot E4 Fritt val av uppgifter, bra och tydlig lärare, arbete med grafik, grupparbete med större uppgifter

Tabell 10. – Beskrivning av det som eleverna var mest nöjda med när det gäller programmeringskurser.

E4 såg grupparbete och par-programmering som något positivt. Genom att utveckla större projekt i grupp, där både gruppen och uppgiften väljs av eleverna, ökas den inre drivkraften hos eleven, som då påverkar attityden positivt.

Det som eleverna såg som negativt

En del moment som eleverna ansågs vara negativa gällande hur undervisningen bedrevs, blev kända när eleverna svarade på frågor kring lärarens undervisning och kursupplägg. Till exempel menade E1 att det var för mycket teorigenomgångar emellanåt, samt att de flesta program man utvecklade saknade ett grafiskt gränssnitt i programmet, det blev helt enkelt tråkigt.

E1: Det hade varit bättre om man inte hade så mycket teori ibland. Man tröttnar och sen kommer man inte ihåg. […] Hade nog gärna sett att man undvek konsol-program så långt som möjligt.

(30)

E2 tycker bland annat att kurslitteraturen kan vara omotiverade att läsa, och att språkbytet mellan kurs 1 och 2 är svårt, eftersom att man måste lära sig ett nytt språk. Det blev mycket på en gång.

E2: Jag tror att det hade varit bättre om vi hade hållt oss till Python. […]. Jag hade svårt med ny syntax, samtidigt som vi lärde oss om klasser och objekt. […] Sen kunde kurslitteratur vara lite mer fantasifull kanske. Seg text med tråkiga övningar är inget som driver en framåt precis. E3 vill absolut inte skriva prov på papper, utan anser att det borde göras på dator eftersom det är där man utvecklar program…

E3: Tyvärr förstår jag inte varför man ska programmera på papper. […] det är ingen höjande motivationsfaktor kan jag ju säga.

E4 vill inte att läraren ska koda åt honom för att lösa ett problem. E4 anser att man inte lär sig då. E4: När läraren hjälper mig genom att skriva lösningen förstår man klart varför L4 skriver så, men jag hade inte skrivit det själv, man vill ju lära sig på sitt sätt menar jag…

Tabell 11 summerar de moment som eleverna anser är negativt med lärarens undervisning. Elev Elever mindre nöjda med

E1 För mycket teori ibland, in- och utmatning i ett konsolfönster

E2 När läraren var oengagerad, tråkig kurslitteratur, för stora grupper, byte av språk E3 Pappersprov, skriva program i ett konsolfönster (text)

E4 När man frågade efter hjälp och läraren kodade åt mig

Tabell 11. – Beskrivning av vad eleverna var mindre nöjda med gällande programmeringskurserna.

Något som också dök upp under elevintervjuerna var att eleverna ansåg programmering som något svårt. Att faktiskt lära sig ett språk och samtidigt försöka få programmet och datorn att göra det man vill. Elevernas syn på programmering stämmer därför överens med Weintrop och Wilenskys undersökningar (2017) gällande att oavsett hur man lär sig programmera, anser man som elev att programmering är svårare än man först trodde. Att något är för svårt kan klart påverkar attityden mot ämnet.

Figure

Tabell 1. - Vad lärarna anser att eleverna bör kunna efter avslutad kurs (Programmering 1)
Tabell 3. – Lärarnas val av undervisningssätt i kursen Programmering 1
Tabell 4. – Lärarnas olika förutsättningar i kursen Programmering 1
Tabell 8. – Lärarnas undervisningssätt i kursen Programmering 2

References

Related documents

Vid intervjuer väljs informanter ut genom olika urvalsstrategier. Forskaren tänker först ut en målgrupp och väljer sedan personer i målgruppen. Hur dessa väljs beror

Skriv ett program där du använder pq-formeln för att lösa andragradare börja med att testa på samma funktion som uppgift 2.. Med p,q-formeln kan du

Att de diskurser som visar sig i min analys överensstämmer med olika kunskapstraditioner som alla ryms inom ämnet datavetenskap gör troligt att detta inte bara uppkommer år

De tre mest återkommande åsikterna var att kunskapskraven är passande för nivån, att       kunskapsnivåerna är otydligt formulerade och att man behöver ha erfarenhet av

Jag valde att testa spelet med tjejer från Geek Girl Mini eftersom jag innan hade haft kontakt med ledaren och det bedömdes vara svårt att inom tidsramen för arbetet hitta tjejer i

Detta skulle i sig kunna vara ytterligare ett motiv till varför banker trots motbevisade positiva effekter ändock väljer att fusionera, nämligen att bankerna vill skapa och dra

score onto [PDB:2Z59] (here, assessment according to CAPRI was used, where a model is assessed to be accept- able, if the iRMSD is below 4 ˚ A, the lRMSD below 10 ˚ A, and the

Using shoulder straps decreases heart rate variability and salivary cortisol concentration in Swedish ambulance personnel.. SH@W Safety and Health at Work, 7(1):