• No results found

Utvecklingsmöjligheter vid användandet av making i programmeringsundervisning : En studie om elevers möjligheter och svårigheter i skapandet av kod

N/A
N/A
Protected

Academic year: 2021

Share "Utvecklingsmöjligheter vid användandet av making i programmeringsundervisning : En studie om elevers möjligheter och svårigheter i skapandet av kod"

Copied!
43
0
0

Loading.... (view fulltext now)

Full text

(1)

Utvecklingsmöjligheter vid

användandet av making i

programmeringsundervisning

En studie om elevers möjligheter och svårigheter i skapandet av

kod

KURS: Examensarbete för grundlärare 4-6, 15hp

PROGRAM: Grundlärarprogrammet med inriktning mot arbete i grundskolan årskurs 4-6

FÖRFATTARE: Amanda Tholin

HANDLEDARE: Andreas Eckert

EXAMINATOR: Annica Otterborg

(2)

JÖNKÖPING UNIVERSITY Examensarbete för grundlärare 4-6, 15hp

School of Education and Communication Grundlärarprogrammet med inriktning

mot arbete i grundskolans årskurs 4-6 VT20

SAMMANFATTNING

Amanda Tholin

Antal sidor: 33 Utvecklingsmöjligheter vid användandet av making i programmeringsundervisning En studie om elevers svårigheter och möjligheter i skapandet av kod

Programmering är ett område i matematikundervisningen som nyligen blivit en obligatorisk del av de svenska styrdokumenten. Litterära studier poängterar därför behovet av fler empiriska undersökningar i syfte att utveckla datalogiskt tänkande (computational thinking). Making är en pedagogisk praktik som används i programmeringsundervisning och som enligt tidigare studier varit framgångsrik i syfte att skapa kod i olika programmeringsmiljöer. Dock råder kritiska åsikter kring användandet av making och hur dess användning kan möjliggöra datalogiskt tänkande. Studiens avsikt har därför varit att undersöka vilka möjligheter och svårigheter som kan uppstå vid användandet av making samt vilka aktiva handlingar elever väljer att göra när det stöter på felkodning (”buggar”) vid skapandet av kod. Studien syftar därför till att undersöka och fördjupa förståelsen för användandet av making, för att utveckla datalogiskt tänkande i programmeringsmiljöer i senare års matematikundervisning.

För att uppnå studiens syfte har deltagande observationer genomförts där två klasser i årskurs 7 observerats. Centralt för metoden är att observationen förstärks med hjälp av intervjuer. Resultatet gav underlag för data som i materialanalysen mynnade ut i tre underkategorier baserade på studiens teoretiska ramverk, vilket är datalogiskt tänkande (computational thinking). Kategorierna benämns ”vardagsnära exempel”, ”matematik och programmeringssyntax” samt ”uthållighet” (vid ”buggar”). Kategorierna gav underlag för vilka möjligheter och svårigheter som kan uppstå vid användandet av making och hur lärare kan undervisa för att motivera elever vid felkodning i skapande av kod för att utveckla datalogiskt tänkande.

(3)

JÖNKÖPING UNIVERSITY Examensarbete för grundlärare 4-6, 15hp

School of Education and Communication Grundlärarprogrammet med inriktning

mot arbete i grundskolans årskurs 4-6 VT20

ABSTRACT

Amanda Tholin

Number of pages: 33 Development opportunities in the use of making in teaching programming

A study on student opportunities and difficulties in creating code

Programming is a new subject in the Swedish curriculum, as a part in teaching mathematics. Literature studies highlights the need of empirical studies in order to develop computational thinking. “Making” is a pedagogical practice used in teaching programming which, according to previous research, has been successful with the aim of creating code in programming environments. However, there is critical opinions about the use of making and how the use of the practice can enable computational thinking. The purpose has therefore been to investigate the opportunities and difficulties that may arise in the use of making, as well as what active actions students choose to do when they encounter “bugs” when creating code. The aim of the study is therefore to investigate and deepen the understanding of the use to develop computational thinking in programming environments in later years mathematic education.

In order to achieve the purpose of the study, participant observations were used as method in two classes in grades 7. Centrally for the method is that the observation amplifies with interviews. The result provides a basis for data which resulted in three subcategories in the material analysis, based on the theoretical framework of the study, which is computational thinking. The categories were named ”everyday examples”, “mathematics and programming syntax” and “endurance” (when student encounter “bugs”). The categories provided a basis for the opportunities and difficulties that can arise when using making and how teachers are supposed to teach to motivate students during bugs while creating code to develop computational thinking.

(4)

Innehållsförteckning

1. INLEDNING ... 1

2. SYFTE OCH FRÅGESTÄLLNINGAR ... 3

3. BAKGRUND ... 4 3.1MAKING ... 4 3.2SVÅRIGHETER ... 6 3.3TEORETISKT RAMVERK ... 7 3.4STYRDOKUMENT ... 10 4. METOD ... 12 4.1FORSKNINGSANSATS ... 12 4.2URVAL ... 13 4.3GENOMFÖRANDE ... 13 4.4ANALYSMETOD ... 15 4.5TROVÄRDIGHET ... 17 4.6ETISKA STÄLLNINGSTAGANDEN ... 18 5. RESULTAT ... 20 5.1VARDAGSNÄRA EXEMPEL ... 20

5.2MATEMATIK OCH PROGRAMMERINGSSYNTAX ... 22

5.3UTHÅLLIGHET (VID ”BUGGAR”) ... 24

5.4RESULTATSAMMANFATTNING ... 25

6. DISKUSSION ... 26

6.1METODDISKUSSION ... 26

6.2RESULTATDISKUSSION ... 27

6.2.1VARDAGSNÄRA EXEMPEL ... 27

6.2.2MATEMATIK OCH PROGRAMMERINGSSYNTAX ... 28

6.2.3UTHÅLLIGHET (VID ”BUGGAR”) ... 29

6.3PYTHON VS.SCRATCH VID ANVÄNDANDET AV MAKING ... 30

6.4SAMMANFATTNING AV RESULTATDISKUSSION ... 31 6.5EN AVSLUTANDE FUNDERING ... 31 6.6VIDARE FORSKNING ... 33 REFERENSLISTA ... 34 BILAGOR ... I BILAGA 1:SAMTYCKESBLANKETT ... I BILAGA 2:OBSERVATIONSSCHEMA ... II

(5)

1

1. Inledning

Programmering beskrivs vara en kreativ process som förutsätter att undervisning erbjuder moment där elever får upptäcka nya världar och ges möjlighet till kunskap om olika strukturer i programmeringsmiljöer (Hofuku, Cho, Nishida, Kanemune, 2013). Datalogiskt tänkande är ett begrepp som elever och lärare ägnar tid åt för att förstå datorn och för att kunna dra nytta av dess oändliga möjligheter (Kotsopoulos, Floyd, Khan, Namukasa, Somanath, Weber, Yiu, 2017; Mannila, 2017). När elever ges möjlighet att testa sig fram i olika programmeringsmiljöer utvecklas deras förmåga i att tänka datalogiskt (Skolverket, 2018).

Efter drygt ett år av programmering som delmoment i matematikområdet, har olika praktiker i programmeringsundervisning utövats i syfte att generera lärande hos elever. I tidigare åldrar kan lärare välja att programmera ”unplugged” det vill säga programmera utan dator, där elever ges möjlighet att arbeta med konkreta objekt i programmeringsundervisningen (Namukasa, Kotsopoulos, Floyd, Weber, Kafai, Khan, Yiu, Morrison, Somanath, 2015). Syftet med unpluggedundervisning är att förbereda elever för den kommande digitala programmeringsundervisningen i senare skolår. Genom att utföra programmeringsprocesser unplugged med hjälp av konkreta föremål kan genomförandet bidra till att elever lättare synliggör abstrakta fenomen i digital programmering framöver. Argumentet menar forskare kan vara till fördel då elever ska ges möjlighet att skapa kod på egen hand i senare skolår (Namukasa et al., 2015). Den centrala praktiken för denna studie syftar till att elever skapar kod på egen hand, vilken kallas för ”making” (Namukasa et al., 2015). För att kunna skapa kod krävs fördjupad kunskap i datalogiskt tänkande hos både lärare och elever. Eftersom programmering är ett relativt nytt delmoment i matematikämnet måste matematiklärare innan undervisning fokusera på att lära sig aktuella programmeringsmiljöer samt komma underfund med valet av pedagogisk praktik. Detta är en rädsla många lärare verkar slås av då tid från ordinarie matematikundervisning går förlorad (Esborn & Engman, 2017).

Forskare menar att pedagogiska praktiker kan vara till stor hjälp på många plan för att generera lärande i syfte att utveckla elevers datalogiska tänkande (Valentine, 2008). Annan forskning beskriver även att utförandet av pedagogiska praktiker kan utveckla elevers lösningsorienterade tankesätt i matematikämnet (Kafi & Peppler, 2009).

(6)

2

Praktiken making rör en stor del av programmeringsundervisningen vilken kan bidra till elevers fortsatta lärande i datalogiskt tänkande (Kotsopoulos et al., 2017). Lärare behöver därför bli medvetna om vilka möjligheter och svårigheter making kan medföra vid användandet av praktiken i programmeringsundervisningen. Majoriteten av tidigare forskning om huruvida making genomförts i programmeringsundervisningen, har presenterats med hjälp av teoretiska konstruktioner. Därav behövs fler empiriska studier i form av observationer på huruvida making tas i uttryck i praktiken på olika nivåer. Syftet med denna studie blir därför att genom deltagande observationer, undersöka och fördjupa förståelsen för användandet av making för att utveckla datalogiskt tänkande i programmeringsmiljöer i senare års matematikundervisning.

(7)

3

2. Syfte och frågeställningar

Denna studie syftar till att undersöka och fördjupa förståelsen för användandet av making, för att utveckla datalogiskt tänkande i programmeringsmiljöer i senare års matematikundervisning.

• Vilka möjligheter och svårigheter kan uppstå för elever vid användandet av making i programmeringsundervisningen?

• Hur hanterar elever ”buggar” vid användandet av making i programmeringsundervisningen?

(8)

4

3. Bakgrund

Datalogiskt tänkande är ett begrepp som elever och lärare ägnar tid åt för att förstå datorn och för att kunna dra nytta av dess oändliga möjligheter (Kotsopoulos et al., 2017; Mannila, 2017). Programmering handlar om att skriva kod, men inkluderar även problemlösning, designa system och förstå beteende genom begrepp i datavetenskap. Dessa processer kallas för datalogiskt tänkande (Åkerfeldt, Kjällander, Sellander, 2018; Wing, 2006). För att elever på ett bra sätt ska ges möjlighet att lära sig tänka datalogiskt, kan lärare använda pedagogiska praktiker avsedda för programmeringsundervisning.

Tidigare forskning lyfter fyra pedagogiska praktiker som ansetts framgångsrika inom programmeringsundervisning. De fyra begreppen kallas unplugged, tinkering, remixing och making (Kotsopoulos et al., 2017). Unplugged är en pedagogisk praktik som utförs analogt och som framförallt används i årskurserna 1-3. Datalogiskt tänkande utvecklar kognitiva egenskaper hos individen. Därför menar forskare att barns intellektuella förmåga kan utvecklas fortare genom att börja programmera analogt i tidigare skolår (Kotsopoulos et al., 2017). Den pedagogiska praktiken tinkering, handlar om att göra små förändringar i färdig kod. I tinkeringprocesser utforskar elever befintliga objekt där de sedan ges möjlighet att överväga konsekvenser av förändringarna i kod (Kotsopoulos et al., 2017). Remixing är ytterligare en praktik som handlar om att skapa större förändringar i egenskapad eller befintlig kod. Praktiken syftar även till att elever kritiskt ska kunna granska kod för att sedan justera den till ett förändrat ändamål, vilket kräver datalogiskt tänkande (Kafi & Peppler, 2009; Namukasa et al., 2015). Den fjärde praktiken kallas för making och syftar till att skapa kod på egen hand utifrån den aktuella programmeringsgrund varje enskild elev besitter. Elever kan sedan ges möjlighet att mixtra med den skapade koden på olika sätt (Kotsopoulos, et al., 2017). Making är den praktik som utgör underlaget för denna studie. Nedan görs en fördjupad förståelse kring praktiken som sedan följs upp av tidigare forskning och svårigheter kring användandet.

3.1 Making

Praktiken making är en teknisk term som syftar till att skapa kod genom att bygga uppsättningar av material och verktyg i programmeringsmiljöer, som elever sedan ges möjlighet att mixtra med (Kotsopoulos, et al., 2017). Making handlar i huvudsak om att skapa kod vilket gör att praktikens egenskaper lämpas i både textbaserad och visuell

(9)

5

programmering. Ett populärt exempel på textbaserad programmering vid användandet av making är ”Python”. Programmet bygger på att utföraren skriver instruktioner med text där ord och symboler har förutbestämda betydelser. Kod kan även skapas med siffror och tal där elever ges möjlighet att konstruera algoritmer och på så sätt lära sig funktioners olika värden (Mannilla, 2017; Nygårds, 2015).

Ett annat populärt exempel på programmeringsmiljö är det visuella

blockprogrammeringsprogrammet Scratch. I Scratch ges elever möjlighet att koda genom att skapa stimulerande spel eller roliga historier, där utföraren kodar genom att flytta och koppla samman block (Lang-Ree, 2016). Elever kräver inga förkunskaper för programmering när de kodar i visuella blockprogrammeringsprogam. Scratch är därför designat på ett sätt där elever undviker att stöta på hinder (Mladenović, Boljat, Žanko, 2018; Papadakis, Kalogiannakis, Orfanakis, Zaranis, 2017; Åkerfeldt et al., 2018). Tidigare litteraturforskning menar att när elever konstruerar kod, möjliggörs god utvecklingspotential i förmåga att lösa problem (Kotsopoulos et al., 2017) En problemlösningssituation kan i det textbaserade programmet Python handla om att utföraren skriver ”Hej, jag heter Robyn” till datorn som vid rätt programmerad kod svarar med samma sak. Ges inget svar tillbaka har en ”bugg” (felkodning) uppstått som eleven tvingas rätta till för att programmeringen ska bli korrekt (Brennan & Resnick, 2012). Problemlösningssituationer likt dessa kan även hjälpa elever att tänka lösningsorienterat i ordinarie matematikundervisning, då programmering kan få elever att konkretisera fenomen och begrepp som vanligtvis kan upplevas abstrakta, som exempelvis variabel och funktion (Mannilla, 2017). Forskare menar även att elever genom makingbaserad undervisning ges möjlighet att tänka fritt genom att kombinera egna idéer vilket utvecklar kreativt tänkande hos elever. Efter nyskapad kod tränas elevers förmåga att kunna reflektera och analysera då granskning av den nya koden görs samt om ”buggar” uppstått (Kotsopoulos et al., 2017).

Making beskrivs även vara en representation för datalogiskt tänkande då forskare beskriver att elever lär genom ”learning by doing” (Mladenović et al., 2018). En studie har gjorts där denna aspekt framkommer då forskare haft för avsikt att jämföra elevers skapande av kod av loopar i text- och visuella programmeringsmiljöer, i syfte att sätta de olika programmeringsspråken i förhållande till varandra (Mladenović et al., 2018). Vid skapandet av loopar gavs elever olika instruktioner för att utveckla loopen och för att

(10)

6

jämföra svårighetsgraden i att förstå programmeringsspråket. Resultatet visade att elever hade lättare för att skapa loopar i de blockbaserade programmen än i de textbaserade programmen. Anledningen till det var för att elever gavs möjlighet att konstruera spel eller interaktiva historier i kombination i skapandet av kod, vilket medförde att elever visuellt kunde se hur loopen lämpade sig i de objekt som skapats. Det abstrakta fenomenet loop kunde därmed konkretiseras vilket genererade lärande hos eleverna (Mladenović et al., 2018).

”Learning by doing” visas även i andra studier där making berörs utifrån

problemlösningsuppgifter i både ordinarie matematikundervisning och

programmeringsundervisning. Tidigare forskning menar att elever genom att använda datorn som ett laborativt verktyg, ges möjlighet att lösa matematiska problemlösningsuppgifter som i den ordinarie matematikundervisningen varit betydligt svårare att reda ut (Feurzeig & Papert, 2019). När elever laborerar i olika program ges de förutsättningar att använda making genom att uttrycka och testa olika procedurer, lämpliga för att lösa problem. Algoritmer som blir fel i den ordinarie matematikundervisningen menar forskare suddas ut och börjas om på nytt (Feurzeig & Papert, 2011). Däremot kan utfallet bli tvärtom att elever istället förstår problemlösningsuppgiftens matematiksyntax men inte programmeringssyntaxen, vilket skapar ”buggar” (Feurzeig & Papert, 2011). Därför lyfter forskare vikten av att reda i problemet genom att göra en felsökning (debugging) i den felprogrammerade algoritmen för att erhålla kunskap om vad som blivit fel hellre än att sudda bort den givna algoritmen - ”Learning by doing”. Genom att lära sig formulera eller skapa matematiska problem som datorn programmerar kan elever använda sig av felsökning (debugging) för att lösa problem (Feurzeig, Papert, 2011).

3.2 Svårigheter

Datalogiskt tänkande kräver utvecklad kognitiv förmåga. När elever ges möjlighet att koda på egen hand utsätts de i synnerhet för kognitiva utmaningar, som blir svårhanterliga utan grunderna i programmering (Mladenović et al., 2018). Tidigare forskning menar att många nybörjare fastnar i syntaxen för programmeringsspråket för den aktuella programmeringsmiljön hellre än skapandet av algoritmer (Mladenović et al., 2018). Skapandet av egen kod i textbaserad programmering likt Python kan därför bli en utmaning då fler kommandon måste matas in. Fokus hamnar då istället på att förstå programspråket hellre än det aktuella skapandet i programmeringen (Mladenović et al., 2018). Däremot

(11)

7

visar andra forskare motsatsen vid skapandet av kod i exempelvis blockbaserade programmeringsmiljöer likt Scratch. De menar att elever hellre skapar spel, musikuppspelningar, roliga historier eller skapelser som stimulerar dem än att förstå vad de faktiskt programmerar (Szalayné Tahy, 2016). Nackdelen med kreativa skapelser kan bidra till att elever hellre fokuserar på vilka färger och mönster de olika objekten ska erhålla snarare än att förstå konceptet av programmeringen (Szalayné Tahy, 2016).

Ytterligare svårigheter i skapandet av kod i blockbaserad programmering är att elever utan att tänka placerar block som enligt dem tycks vara lämpliga för skapandet. Detta gör att elever testar sig fram utan vidare syfte. När elever väljer denna typ av metod kan möjligheten till utveckling av algoritmiskt tänkande samt förståelse för programmeringens koncept gå förlorad (Meerbaum, Salant Armoni & Ben-Ari, 2011).

En annan svårighet vid skapandet av kod är när elever stöter på ”buggar” i programmeringen. Forskare menar att felkodning kan göra elever omotiverade att fortsätta programmera. De menar att vissa elever ser fel som misslyckande snarare än en lärdom vilket gör att elevers förmåga inte vågar utmanas (Kim et al., 2018). Det medför i sin tur att elever ser förbi de problem som uppstår då elever struntar i att utforska fel som hade kunna bli en bidragande faktor för utvecklat datalogiskt tänkande (Lang-Ree, 2016; Heikkilä & Mannilla, 2018).

3.3 Teoretiskt ramverk

Computational thinking (datalogiskt tänkande) har väckt stor uppmärksamhet de senaste åren i skolvärlden, i syfte att utveckla elevers förmåga att ämnesöverskridande tänka ur detta perspektiv. Forskare har utformat ett teoretiskt ramverk av strategier i form av tre dimensioner för hur bedömning av datalogiskt tänkande kan gå tillväga (Brennan & Resnick, 2012). Computational thinking har därför blivit studiens kärna och teoretiska ramverk.

Den första dimensionen i computational thinking beskriver computational thinking

concepts och syftar till läran om olika begrepp i de olika programmeringsspråken (Brennan

& Resnick, 2012). Vanliga begrepp inom textbaserad programmering är variabel, funktion, sekvens och loop.

(12)

8

En variabel har samma funktion i programmering som i matematiken och beskrivs vara en platshållare för ett namngivet värde, som x och y (Mannila, 2017). I det visuella blockbaserade programmet Scratch kan variabler exempelvis vara utformade som block där blocken står för ett specifikt värde eller ett visst objekt (Brennan & Resnick, 2012). Variabler kan endast lagras in en åt gången. Om elever exempelvis har för avsikt att räkna ut en rektangels area i Scratch, måste basen och höjden matas in var för sig. Basen och höjden utgör sedan två ensamma block som i detta fall står för en viss längd och som även kan sparas undan för senare användning (Mannila, 2017). Variabler kan även innehålla både text och siffror vilka fungerar olika beroende på om informationen i variabeln handlar om ord eller tal. För att tilldela ett värde till en variabel tillsätter programmeraren likhetstecknet (=). Utövaren kan exempelvis bestämma att bokstaven K står för 5 genom att skriva: K = 5 (Brennan & Resnick, 2012). Ett annat exempel kan vara att utövaren vill beskriva sin ålder genom att skriva: ålder = 18 (van Rossum, 2020). Denna variabel kan elever sedan dra nytta av om de har för avsikt att programmera in sin ålder vid ett annat moment.

En funktion är en namngiven kodsnutt som utför en given uppgift. Funktionen tar emot data som den arbetar med för att producera ett resultat vilket gör att utföraren måste anropa de värden som är aktuella för just den funktionen. Om utföraren har för avsikt att räkna ut arean för en rektangel med längden 15 och bredden 100, skrivs instruktionen (beräkna area) ut med text följt av de aktuella symboler och kommandon som krävs för att instruktionen ska kunna utföras (Mannilla, 2017). Programmeringsmiljön Python används i huvudsak för att bygga och skapa funktioner. Dessa funktioner kan innehålla både text och nummer. För att kunna programmera i Python måste elever förstå syntaxen för programspråket och grunderna för olika begrepp och kommandon, vilket medför att elever måste vara väldigt noga med att skriva allting rätt (Mannila, 2017). Python är en interaktiv textbaserad programmeringsmiljö där elever ges möjlighet att prova funktioners olika värden i uttryck (Jenkis, 2004). Forskare menar att elever på så sätt skapar med förståelse då alla kommandon måste göras av dem själva (Jenkis, 2004). I Python kan elever exempelvis använda sig av ”dubbelfnuttar” (”) eller ”enkelfnuttar” (’) för att markera en sträng. Strängar används varje gång utföraren har för avsikt att skriva ut ett läsbart meddelande som exemplet ”print(”Hello World!”)” (Mannila, 2017).

(13)

9

Sekvenser förekommer i all typ av programmering och syftar till att inmatade instruktioner

faller i tur och ordning efter varandra. De första programmen som skapas av nybörjare, innehåller endast en följd av instruktioner som utförs i samma ordning (Brennan & Resnick, 2012; Mannila, 2017). En loop används när utföraren vill upprepa angivna instruktioner i programmet. Användandet av loopar minskar utövandet på så sätt att utföraren slipper koda samma objekt flera gånger, vilket även minskar antalet sekvenser. Loopar effektiviserar på så sätt funktioner och sekvenserna lättare att följa (Brennan & Resnick, 2012; Mannila, 2017; Nygårds, 2015).

Den andra dimensionen kallas för computational thinking practices och syftar till processer av konstruktioner i programmering. Datalogisk utövning fokuserar på vad elever lär sig och hur de lär sig (Brennan & Resnick, 2012). Forskare lyfter ”testing” och ”debugging” som en gemensam och central process elever går igenom vid skapandet av kod. Testing är ett begrepp som syftar till att pröva sig fram vid kodning och felkodning (Brennan & Resnick, 2012). Debugging är en process som görs vid felprogrammerad kod, vilket hindrar instruktioners utföranden vid programmering (Brennan & Resnick, 2012). ”Buggarna” som uppstår kan bero på syntaxfel, som syftar till att utövaren missat tecken vid kodning. De semantiska felen uppstår vid felstavning i textbaserad programmering och logiska fel beskriver att instruktioner angivits i fel ordning (Skolverket, 2018). Eftersom minsta lilla fel bidrar till att programmet inte fungerar blir debugging ett viktigt arbete i programmeringsprocessen. Forskning menar dock att felprogrammering påverkar elever positivt då de tvingas göra felsökning i program som kan genererar lärande och utveckla datalogiskt tänkande (Kotsopoulos, et al., 2017). Tidigare forskning visar även att elever arbetat med debugging som ett verktyg där de med flit felsökt i egna instruktioner för en djupare förståelse för vad som blivit fel vid kodningen (Kotsopoulos, et al., 2017); Namukasa, et al., 2016). En annan central process som lyfts av forskare är Abstracting and

modulizing. Procedurerna går ut på att elever konstruerar ett större projekt genom att sätta

ihop mindre objekt. Syftet med processen är att elever ska ges möjlighet att gå från något abstrakt till konkret då forskare menar att de mindre objekten synliggörs i de större projekten. Denna procedur ger elever möjlighet att utveckla förmågan att lösa problemlösningssituationer (Brennan & Resnick, 2012).

Den tredje och sista dimensionen kallas för computational thinking perspectivs vilken syftar till elevers egen utveckling i användandet av programmering, dess relation till andra

(14)

10

utövande och perspektiv för hur världen teknologiskt och datalogiskt ser ut idag (Brennan & Resnick, 2012).

Första perspektivet handlar om förmågan att kunna utrycka något i data vilket kallas för

expressing. Dagens samhälle är omringat av interaktiva medier. Människor ängar tid åt

aktiviteter som att peka, klicka, scrolla och chatta för att lära sig hur teknologin fungerar. Men för att utveckla förmåga i att tänka datalogiskt anses inte användandet av interaktiva medier tillräcklig (Brennan & Resnick, 2012). En datalogiskt tänkande person ser inte bara data, programmering och teknologi som ett användbart ting, snarare ett verktyg där elever ges möjlighet att uttrycka sig själva. En datalogiskt tänkande person ser istället data som ett medium att lösa där utföraren ständigt tänker ”Jag kan skapa kod” eller ”Jag kan uttrycka mina idéer genom detta medium”.

3.4 Styrdokument

Elever ska genom programmeringsundervisning ges förutsättningar att utveckla matematiska begrepp och processer i förhållande till dess användbara möjligheter i programmering (Skolverket, 2019a). Genom undervisning i begrepp- och processhantering ges elever förutsättningar att utveckla datalogiskt tänkande med grund i studiens teoretiska ramverk om computational thinking concepts. Den marginella skillnaden för årskurs 4-6 och 7-9 är att elever i årskurs 4 ges förutsättning att programmera i visuella programmeringsmiljöer medan undervisningen från och med årskurs 7 inkluderar olika programmeringsmiljöer exempelvis textbaserade sådana (Skolverket, 2019a). Elever ska även ges möjlighet att utveckla kunskaper i att använda digitala verktyg för att undersöka och lösa problem (Skolverket, 2019a). Det som däremot har diskuterats är vilka didaktiska val som kan göras där didaktiska praktiker väger tungt för att utveckla elevers datalogiska tänkande (Skolverket, 2019b).

De flesta är överens om att skolan ska främja elever till att klara ett liv i en digitaliserad värld. Detta medför att elever på egen hand ska ges möjlighet att designa, konstruera, skapa och manipulera digitala verktyg, vilket leder till att elever måste lära sig använda verktygen ur både pedagogiska och praktiska syften (Skolverket, 2019b). När elever konstruerar på egen hand används i synnerhet praktiken making. Väl vid skapandet av kod, kommer elever göra fel till en början. Felen kan i sin tur rättas till med hjälp av felsökning (debugging). Debugging är en process som kan bidra till att utveckla elevers datalogiska

(15)

11

tänkande vilket även beskrivs som en del i studiens teoretiska ramverk, computational

thinking practises.

Ur ett globalt perspektiv kan dessa fel gynna elever då de tvingas göra felsökningar vilket gör att elever lättare kommer kunna förstå hur digitala system fungerar och är uppbyggda (Skolverket, 2019b). Detta kan på sikt medföra att elever är desto mer förberedda att agera i den digitala värld som omger samhället. Eftersom syftet är att förbereda elever på att klara ett liv likt deras redan digitaliserade värld, måste de ges möjlighet att sätta programmering i perspektiv till hela världen (Skolverket, 2019b). Argumentet lyfts även i studiens teoretiska ramverk computational thinking perspectives.

I kommentarmaterialet beskrivs en progression för hur programmering succesivt bör utvecklas för att generera lärande hos elever. I årskurs 1-3 handlar programmeringsundervisningen om att utveckla förståelse för programmering, i första hand utifrån konkreta situationer. Detta kan göras unplugged med hjälp av dem själva eller konkreta objekt. I nästa nivå, årskurs 4-6 tar elever med sig det konkreta som

programmerats unplugged till abstrakta fenomen i digitala visuella

programmeringsmiljöer. Där ges elever möjlighet att lära sig abstrakta centrala begrepp som lättare kan konkretiseras då de i tidigare år utvecklat kunskapen unplugged. I sista nivån, årskurs 7-9 ges elever möjlighet att programmera i olika programmeringsmiljöer vilket innefattar kunskap i flera olika programmeringsspråk för att kunna konkretisera abstrakta fenomen (Skolverket, 2017).

(16)

12

4. Metod

I metodavsnittet presenteras den aktuella forskningsansatsen med instick av den valda metoden för studien. Därefter beskrivs studiens urval samt hur studiens empiri samlats in och bearbetats i form av en analysmetod. Slutligen beskrivs studiens validitet och reliabilitet följt av etiska ställningstaganden.

4.1 Forskningsansats

En kvalitativ undersökning likt denna studie har valts med utgångspunkt i etnografisk forskningsansats. Kvalitativa undersökningar baseras på att forskare väljer inriktning på studier utifrån intresse. Påståendet medför därför att forskaren själv besitter de viktigaste verktygen för att studien ska bli så bra som möjligt (Bryman, 2011). För att besvara studiens syfte och frågeställningar har studien gjorts med hjälp av deltagande observationer. En deltagande observation är ett kvalitativt fältarbete där insamling av data sker genom observationer och som förstärks av intervjuer av elever under observationstillfället (Patel & Davidsson, 2015; Fangen, 2005). En variant av etnografisk forskningsstil utgår ifrån att observatören avsedd för undersökningen går in i främmande världar och gör de begripliga genom att själva delta (Patel & Davidsson, 2015). Under programmeringsobservationen erbjöds deltagandet i form av intervjuer där elever spelades in med hjälp av inspelningsprogram i mobiltelefonen. Genom intervjuer blir forskaren som utför undersökningen en del av den aktuella kulturen vilket skapar en större förståelse för vad elever avser att göra (Patel & Davidsson, 2015). På så sätt har jag som forskare för studien deltagit i de situationer som observerats vilket som nämnts ovan beskrivs ur ett etnografiskt synsätt (Patel & Davidsson, 2015; Fangen, 2005).

Etnografen är en viktig aktör för att deltagande observationen ska ges förutsättning att kunna genomföras. Detta medför att jag som forskare för studien måste göra en djupdykning inom området innan undersökningen (Fangen, 2005). Detta har gjorts genom djupare förståelse för studiens teoretiska ramverk, datalogiskt tänkande. Med uttalandet ovan som grund har ett observationsschema utformats utifrån studiens syfte, vilket är att fördjupa förståelsen för making i programmeringsundervisningen för att utveckla datalogiskt tänkande. Observationsschemat bestod av 5 kategorier baserade på elevers tänkta aktiva ageranden med grund i studiens teoretiska ramverk, där fokus hamnade på elevers aktiva handlingar vid ”buggar” i skapandet kod. Kategorierna definierades väl för

(17)

13

att vid observationstillfället underlätta antecknandet och för att en handling endast var möjligt att fylla i under en specifik kategori (Bryman, 2011; Patel & Davidsson, 2015). Anteckningarna har därav noterats väl men kortfattat i observationsschemat (Fangen, 2005).

Undersökningen har gjorts med hjälp av ostrukturerade, intensiva intervjuer vilka är väsentliga för etnografiska forskningsstilar. Intervjuerna har likt observationerna baserats utifrån studiens syfte (Bryman, 2011; Patel & Davidsson, 2015). Eftersom etnografer har för avsikt att gå in i främmande världar för att få en känsla för vad elever upplever, har ostrukturerade och intensiva intervjuer valts ut (Bryman, 2011). Intervjuerna har även spelats in vilket har en betydande roll för studiens trovärdighet. Jag som forskare ges då möjlighet att lyssna på ljudfilerna flera gånger för att få med relevant data för studien (Bryman, 2011).

4.2 Urval

Ett urval är något forskare kan göra när den avsedda populationen för den aktuella undersökningen i sin helhet inte kan undersökas. Istället erbjuds en miniatyrgrupp som trots urvalet besitter väsentliga delar för undersökningen (Patel & Davidsson, 2015). Utifrån den valda kvalitativa undersökningsmetoden deltagande observation, handlade det om att hitta klasser avsedda för undervisning i programmering. Det ville även till att flertalet elever gick med på intervjuer som sedan tillsammans med observationerna utgjorde de kvalitativa innehållet för studien (Bryman, 2011). Eleverna fick därför fylla i en samtyckesblankett för att delta i undersökningen. För de elever som tackat ja till undersökningen gjordes sedan slumpmässiga urval.

Ett urvalskriterium har avsett att undersökningen gjorts på elever i senare skolår. Argumentet för urvalet syftade till att äldre elever haft förutsättningar under tidigare år att programmera i skolan vilket kan möjliggöra skapandet av kod i digitala programmeringsmiljöer, därav making. Undersökningen har gjorts i två klasser, båda i årskurs 7 där klasserna blivit undervisade av samma matematiklärare.

4.3 Genomförande

Det första momentet var att ta kontakt med matematiklärare som undervisade i programmering. En potentiell matematiklärare gick med på att göra observationer i två

(18)

14

klasser i årskurs 7 på totalt 41 elever. Därefter utformades en samtyckesblankett till elever

och vårdnadshavare som skulle godkännas för få delta i undersökningen (bilaga 1).Nästa

moment var att konstruera ett observationsschema (bilaga 2) som sedan godkändes av handledaren för studien. Observationsschemat bestod till en början av 12 kategorier baserade på elevers aktiva ageranden vid användandet av making, där 5 av dem erhöll ageranden kring ”buggar”. Dock användes bara de 5 ovannämnda kategorierna då resultatet gav underlag att besvara en av studiens frågeställningar, hur elever hanterar ”buggar” vid användandet av making i programmeringsundervisningen.

Eleverna har i båda klasserna, under tidigare programmeringsundervisning givits samma förutsättningar att lära sig grundläggande begrepp för att kunna börja programmera på en grundläggande nivå i det textbaserade programmet Python. Innan observationen erhölls information att ett par elever under tidigare år arbetat med den visuella programmeringsmiljön, Scratch. Flertalet elever valde att programmera med både text, variabler och siffror. Information erhölls också om att läs- och skrivförmåga hos ett par elever i klassen var svag, dessa elever valde att programmera med text. Oavsett vald nivå gavs elever problemlösningsuppgifter utefter deras ambition. Problemlösningsuppgifterna var både strikta och öppna vilket gjorde att elever gavs möjlighet att följa instruktioner och skapa kod på egen hand utifrån den programmeringsgrund eleverna erhöll. Detta gjordes på samma sätt under båda observationstillfällena.

Första observationstillfället inleddes med en redovisning för vilka elever som valt att delta där 41 av 46 möjliga fick godkännande. De elever som tackat nej till undersökningen, varken observerades eller intervjuades. Lektionen inleddes med en genomgång för repetition av begrepp och variabler i Python. När eleverna gavs möjlighet att programmera på egen hand användes ett läromedel vid sidan av datorn avsett för Python, där elever fick handskas med problemlösningsuppgifter i både text och uträkningsform.

Eleverna erhöll ett brett spann av kunskap i datalogiskt tänkande vilket gjorde att de fick välja om de ville jobba enskilt eller i par, där många elever valde att arbeta i par. Vid det självständiga arbetet togs några minuter för observation där tillfället gav möjlighet att observera elevers aktiva handlingar vid ”buggar” samt hur de tog sig an programmeringen på egen hand. Därefter inleddes intervjuer med några av eleverna som även spelades in med hjälp av en inspelningsfunktion på mobiltelefonen. Som nämnts tidigare utfördes ostrukturerade, intensiva intervjuer baserade på studiens frågeställning vilket gjorde att

(19)

15

frågorna kunde omformuleras beroende på vilken typ av uppgift eleverna arbetade med. Frågorna ställdes med grund i att besvara studiens frågeställning om vilka möjligheter och

svårigheter elever kan uppleva vid användandet av making i

programmeringsundervisningen. Därefter gjordes insamling av data som sedan analyserades. Analysen gav sedan upphov för eventuella justeringar till nästa observationstillfälle.

Båda lektionerna var uppbyggda på samma sätt då båda klasserna fått likvärdig upplärning av samma matematiklärare. Observationsschemat reviderades därför inte då fler elever med samma bakgrundskunskaper kunde bidra med mer mängd data för resultatet, vilket medförde ökad trovärdighet till observationerna. Dock behövdes några justeringar göras i formuleringen av intervjuer för att möjliggöra desto fler och nya uttalanden som möjligt och för att utveckla studiens ramverk. De frågor som lades till efter analys av första observationen hade för avsikt att få eleverna att sätta programmering i perspektiv till vardagen. Jag ville även ta reda på om eleverna varit med om att deras telefon inte fungerar som den ska, ”buggar”. Syftet var att eleverna skulle försöka sätta perspektiv på programmeringen i skolan till vardagliga sammanhang, i andra digitala verktyg för att utveckla studiens teoretiska ramverk.

Efter den andra observationen samlades ytterligare data in som sedan granskades och analyserades noga på samma sätt som föregående. Därefter transkriberades de intervjuer som ansågs användbara samt utgjorde ett bra underlag för undersökningen. Det intervjuer som inte bidrog till att besvara studiens forskningsfrågor exkluderades i samband med transkriberingen.

4.4 Analysmetod

Analysen har gjorts genom utvalda transskript från intervjuer samt relevant data från observationer. Den utplockade sammanställningen har gett förutsättningar att besvara studiens syfte i att fördjupa förståelsen för användandet av making för att utveckla datalogiskt tänkande i textbaserade programmeringsmiljöer. Utvalda data från observationer och intervjuer har i sin tur framkallat tre kategorier för att på så sätt utveckla studiens teoretiska ramverk computational thinking och dess tre dimensioner

computational thinking concepts, computational thinking practises samt computational thinking perspectives.

(20)

16

Att kategorisera kvalitativa data vid analys har i denna studie gjorts med grund i grounded theory, vilken syftar till att utveckla studiens teoretiska ramverk med hjälp av kategorier utifrån undersökningens insamlade data (Bryman, 2011). Att koppla samman forskning med teori kallas för att förhålla sig induktivt vilket i kvalitativa undersökningssammanhang likt denna syftar till att resultat av intervjuer och observationer sätts i förhållande till studiers teoretiska ramverk (Bryman, 2011).

Efter första observationen avlästes data från observationsschemats 12 kategorier. 5 av kategorierna erhöll som tidigare nämnts relevant data för studiens syfte vilket gjorde att schemat minskades inför andra observationstillfället. De återstående 5 kategorierna handlade nu därför bara om elevers aktiva handlingar vid ”buggar” i skapandet av kod. Anledningen till varför begreppet ”buggar” vid makingprocesser valdes ut var för att elever tenderar att tappa motivation och tålamod för att skapa kod, vilket även märktes under observationen. Forskare menar att ”misstag” hellre hamnar på deras axlar istället för att se felkodning som lärande eftersom de sedan ges möjlighet att felsöka i koden, vilket kan påverka makingprocesser i framtiden (Kim et al., 2018). Likaså valdes data ut för hur elever aktivt bestämde sig för att tackla ”buggarna” och vidta åtgärder genom processen debugging, vilket istället gav förutsättningar till ett utvecklat datalogiskt tänkande (Kim et al., 2018). Efter att den andra observationen avslutats jämfördes data systematiskt med föregående observationens insamlade data. Observationerna gav sedan underlag för mer mängd data vilket bidrog till ökad trovärdighet för studiens resultat (Fangen, 2005). Denna aspekt utvecklar studiens teoretiska ramverk i computational thinking practises (Kotsopoulos, et al., 2017) där kategorin i resultatet benämns Uthållighet (vid ”buggar”). Efter observationstillfällena granskades intervjuerna genom att lyssna på de inspelade ljudfilerna i mobiltelefonen. Där upptäcktes intressanta återkommande svårigheter kring begrepp och programmeringsssyntax vid skapandet av kod, vilket valdes ut som en del i resultatet. Svårigheternas olika nivåer berodde på om elever utförde matematiska problemlösningsuppgifter eller uppgifter där avsikt var att programmera med ord eller text, vilka sedan jämfördes sinsemellan. De intervjuer som belyste svårigheter kring begrepp och programmeringssyntax för matematiska problemlösningsuppgifter hamnade sedan i en kategori som bygger på studiens teoretiska ramverk för computational thinking concepts (Kotsopoulos, et al., 2017). Kategorin benämns i resultatet för ”Matematik och programmeringssyntax”.

(21)

17

Det andra konsekvent upprepande urplocket från intervjuerna var när elever gavs möjlighet att programmera med text och ord där elever fick välja att exemplifiera sig själva vid skapandet av kod i programmeringsmiljön. Valet gjorde att en jämförelse för elevers hantering av begrepp kunde utföras, beroende på om de programmerade med tal eller text. Även denna kategori hamnar därför i studiens teoretiska ramverk computational thinking

concepts (Kotsopoulos, et al., 2017). Denna kategori benämns som ”Vardagsnära

exempel” i resultatavsnittet. Ett sista intressant urplock från intervjuer gjordes vid elevers uttalanden om vardagsnära objekt och begrepp som mobiltelefonen och hur de ibland ”buggar”. Vid dessa intervjuer synliggjorde elever abstrakta fenomen i programmering genom att koppla mobiltelefonen och hur den agerar när den inte fungerar. Även detta urplock har i resultatet hamnat under kategorin ”Vardagsnära exempel” vilken både utvecklar studiens teoretiska ramverk computational thinking concepts samt

computational thinking perspectives (Kotsopoulos, et al., 2017).

4.5 Trovärdighet

Hög reliabilitet är ingen garanti för hög validitet (Fangen, 2005). Validitet beskrivs vara relevansen i de mätningar som utförs medan reliabiliteten utgör kvalitén i genomförandet. Begreppen benämns både i kvantitativ och kvalitativ forskning (Denscombe, 2014). Ett instrument som anses reliabelt erhåller minskade felvärden vilket medför att elevers uttalanden blir mer trovärdigt i förhållande till det valda instrumentet (Patel & Davidsson, 2015).

I denna studie konstruerades ett observationsschema där 5 väldefinierade kategorier utformats utifrån elevers tänkbara aktiva handlingar vid felsökning under observationerna. Kategorierna utformades för att kunna besvara syftet om att få en fördjupad kunskap kring användandet av making i matematikundervisningen samt för att kunna avläsa vilka svårigheter som kan uppstå i samband med skapandet av kod. Argumenten ökar studiens förutsättningar för god validitet och ökad chans till god reliabilitet (Patel & Davidsson, 2015).

Intervjuer som gjorts under observationstillfällena har spelats in med hjälp av en inspelningsfunktion på mobiltelefonen. Inspelningar har gjorts dels för att kunna analysera resultatet fler gånger i efterhand, dels för att forskare menar att det spelar en viktig roll för studiens trovärdighet då risken minskar att missa viktiga delar (Bryman, 2011). Den valda

(22)

18

metoden bidrar även till elevers uttalanden om möjligheter och svårigheter i att programmera i Python, vilket kan besvara studiens frågeställningar. Argumenten kan på så vis göra kvalitén till det bättre vid analys av intervjuerna vilket i sin tur utgör god reliabilitet.

4.6 Etiska ställningstaganden

Undersökningen har bearbetats utifrån fyra huvudkrav inom forskningsetik. Det första är

informationskravet vilket innebär att forskare ska informera aktuella undersökningsdeltagare för vad deras deltagande kommer innebära i undersökningen (Vetenskapsrådet, 2002). För att förhålla sig till informationskravet har en samtyckesblankett skickats ut till eleverna och dess vårdnadshavare (bilaga 1). I samtyckesblanklett beskrivs syftet för undersökningen samt att deltagande är frivilligt och att eleverna har rätt att avbryta sin medverkan omedelbart om så önskas. Det framgår även att information som samlas in endast kommer användas i forskningssyfte (Patel & Davidsson, 2015; Vetenskapsrådet, 2002).

Samtyckeskravet är det andra kravet i ordningen vilket beskriver att deltagarna har rätt att

själva bestämma över sin medverkan i undersökningen vilket eleverna fick göra genom att kryssa för ”ja” i samtyckesblanketten avsedd för undersökningen. I de undersökningar där aktiv insats av deltagare tar plats, ska alltid samtycke inhämtas. Om de som undersöks är under 15 år ska även samtycke infinnas från vårdnadshavare vilket för mig blev väsentligt då eleverna går i årskurs 7 (Vetenskapsrådet, 2002). Forskningsetiken syftar till att deltagare aldrig får utsättas för kränkning vid undersökningar. Forskningsetiken begränsas därför till överväganden av etiska frågor som berör de som medverkar, vilket gör att eleverna själva får bestämma över sin medverkan vid undersökningen (Vetenskapsrådet, 2017).

Då studien aldrig varit beroende av elevers personuppgifter har fjärde kravet kunnat uppnås vilket är konfidentialitetskravet (Vetenskapsrådet, 2002). Konfidentialitet har ett samband med frågan om offentlighet och sekretess, vilket innebär att personuppgifter aldrig får lämnas ut till utomstående samt att möjlighet till identifiering av deltagande aldrig får förekomma vid resultatredovisningen (Patel & Davidsson, 2015; Vetenskapsrådet, 2002). Kravet har uppfyllts genom påhittade namn vid intervjuerna.

(23)

19

Det sista kravet innebär att insamlade uppgifter om enskilda personer endast får användas för forskningens ändamål, vilket kallas för nyttjandekravet (Patel & Davidsson, 2015; Vetenskapsrådet, 2002). Därför har materialet endast analyserats för att besvara undersökningens syfte. Samtyckesblanketten gav även uttryck för denna aspekt och speglar sig i både samtyckeskravet och konfidentialitetskravet (Vetenskapsrådet, 2002).

(24)

20

5. Resultat

Undersökningen har givit förutsättningar att besvara studiens frågeställningar, vilka möjligheter och svårigheter som kan uppstå vid användandet av making samt hur elever hanterar ”buggar” vid användandet av making i programmeringsundervisningen. Resultatet har möjliggjorts med hjälp av deltagande observationer som givit studien underlag till fördjupad förståelse för användandet av making med syfte att utveckla datalogiskt tänkande. I avsnittet presenteras resultatet utifrån tre kategorier konstruerade utifrån undersökningens utfall kombinerat med studiens teoretiska ramverk. 1) Vardagsnära exempel, 2) Matematik och programmeringssyntax, 3) Uthållighet (vid ”buggar”). Vidare har kategorierna konkretiserats med specifika exempel från intervjuer och observationer där resultatet redovisas.

5.1 Vardagsnära exempel

Vardagsnära exempel är en kategori som utformats efter intervjuer av elever under observationen. Kategorin syftar till elevers hantering av begrepp, kommandon och elevers upplevelser i att programmera, när de givits möjlighet att exemplifiera sig själva i förhållande till det som skapats i programmeringsmiljön. Intervjuer har även givit data för elevers upplevelser av ”buggar” i vardagsnära objekt som mobiltelefoner. Kategorin hamnar därav i det teoretiska ramverket för computational thinking concepts samt

computational thinking perspectives (Brennan & Resnick, 2012).

Följande intervju är ett exempel från observationstillfälle 1. Eleven som jag först observerat programmerade med text där eleven exemplifierade sig själv vid skapandet av kod. Därefter ställdes frågor kring elevens upplevelser av att programmera med text i Python.

Jag: Tycker du det är lätt eller svårt att arbeta med text när du

programmerar?

Robyn: Lite svårt..

Jag: Vad är det som du tycker är svårt?

Robyn: Nej asså det han gick igenom innan på tavlan med alla

kommandon är svårt. Men det här är lite lättare för jag får skriva in mitt namn och ålder och så..

(25)

21

När eleverna programmerade med text som exemplet ovan beskriver, kunde de exempelvis skriva ”Hej, jag heter Robyn. Vad heter du?” eller ”Jag är 19 år gammal. Hur gammal är du?” där datorn vid rätt programmering gav samma svar tillbaka. Att exemplifiera sig själv som vardagsnära exempel i skapandet av kod och making var anledningen till att många elever upplevde programmeringen lättare, vilket lyftes i intervjuerna. Matematikläraren gav information om att eleven ovan hade läs- och skrivsvårigheter, vilket har problematiserat programmeringen för eleven vid tidigare tillfälle. Dock visas en positiv effekt utifrån detta exempel då användandet av making på detta sätt visades vara lustfyllt och lättare att förstå.

Intervjun nedan är ett exempel från observationstillfälle 2. Här behövdes underlag för att få elever att konkretisera ”buggar” med hjälp av vardagsnära exempel och objekt, som mobiltelefoner, vilket resulterade i intervjun nedan.

Jag: Har du haft någon användning av programmering hemma? Kim: Nej asså.. Har bara programmerat i Python i skolan. Jag: Men använder du några digitala verktyg hemma? Kim: Ja asså menar du mobil och så?

Ja: Ja precis!

Kim: Ja ganska mycket hemma, men det finns inga

programmeringsprogram där eller så..

Jag: Men har du varit med om att din telefon ”buggar” ibland? Kim: Asså typ att den inte fungerar eller så?

Jag: Ja!

Kim: Ahh, typ ibland när appen stängs ner utan anledning.. Och typ om

den får vatten i sig så fungerar inte högtalaren så bra..

Eleven i exemplet ovan förstod innebörden av ordet ”bugg”, eftersom eleven själv presenterar förklaringen att telefonen ibland slutar fungera, som när appar stängs ner eller när fuktskador förstört dess högtalare. Vid detta skede har eleven enkelt konkretiserat en ”bugg” genom att exemplifiera perspektiv från ett vardagsnära exempel med utgångspunkt i ett vardagsnära objekt - mobiltelefonen. Eleven synliggör begreppet ”bugg” och processen debugging i större sammanhang när möjlighet till vardagsnära exempel givit uttryck i intervjun.

(26)

22

5.2 Matematik och programmeringssyntax

Matematik och programmeringssyntax är en kategori som syftar till elevers svårigheter vid användandet av variabler och kommandon för matematiska problemlösningsuppgifter i Python. Kategorin utgör stor del av elevers kompetens för hantering av variabler och kommandon vilket beskriver det teoretiska ramverket för computational thinking concepts. Även denna kategori har utformats efter intervjuer med elever.

Intervjun nedan är ett exempel från observationstillfälle 2, där två elever arbetade tillsammans med att försöka lösa en matematisk problemlösningsuppgift. Därför behövdes information om deras upplevelser vid programmering med tal och siffror i skapandet av kod.

Jag: Upplever ni att det är svårare att programmera med text eller

siffror/nummer?

Wille: Nummer, svårt att komma ihåg allt.. Det är lättare att programmera

om sig själv i text.

Felix: Uträkningar! För asså det är väldigt krångligt för det är väldigt

mycket sådana här kommatecken och slash och.. så.

Jag: Men ni gör problemlösningsuppgifter med nummer, vad är det som är

svårt då?

Felix: Det är lite mer skrivande när vi gör uträkningar, det är lite

krångligare när du skriver matteproblem än med text.

I exemplet ovan beskriver eleverna att matematiska problemlösningsuppgifter upplevs krångligare med argument i att hantering av begrepp och variabler blir en svårighet vid utövandet. Det var svårare att komma ihåg alla kommandon vid uträkningar av tal vilket ställde till programmeringen för eleverna.

Intervjun nedan är ett exempel från observationstillfälle 2, där eleverna programmerade matematiska problemlösningsuppgifter och där jag bad eleverna förklara vad de räknade på vid just det tillfället.

Jag: Kan ni förklara lite vad ni räknar på just nu? Olle: Jag har ingen aning!

(27)

23 Olle: Jag förstår inte meningen med det typ…

Ted: Du skriver antal timmar ex: 5 sedan matar du in kommandot ”int”

sen skriver du parantes inputs (input) = antal timmar”int”(input)

Jag: Hur lärde du dig det här?

Ted: På vad heter det, genomgångarna som vi haft.

Eleven som förstått hur hen skulle programmera beskriver den matematiska problemlösningsuppgiften för sin kamrat. Uppgiften gick ut på att de skulle ange variabler där talet ”5” i programmeringen innebar antal timmar (5=antal timmar). Eleven förklarar alla olika kommandos sekvenser. Eleven avslutar med att kunskapen infunnit sig vid genomgångarna inför programmeringstillfällena. Eleven som inte förstått sitter mest och kollar på sin kompis och upplever uppgiften enligt eget uttalande meningslös.

Intervjun nedan är ett exempel från observationstillfälle 1, där två elever arbetar parvis med matematiska problemuppgifter. I exemplet beskriver eleverna vilka typer av matematiska uppgifter de arbetar med och vad de upplever svårt med de specifika uppgifterna.

Jag: När upplever ni att det blir svårt att programmera? Emma: Det är mer när vi ska avrunda talen och så.. Julie: Ah när vi typ ska ha två decimaler och så..

Emma: Och typ det här, när man ska använda plus och minus och sådär.

(Emma visar en additionsuppgift 50 + 20 som blivit felkodad och fått svaret 5020 istället för 70)

Julie: Då glömmer man oftast vilka kommandon man ska skrivas in och så.. Jag: Så ni upplever att ni har svårare för att programmera med siffror? Båda: Ahhh!

Jag: Men jag tänker på dom här enkel- och dubbelfnuttarna (’) (”) som

behövs ibland, är det svårt att komma ihåg?

Emma: Ah, och veta hur man ska göra typ, när det är nya kommandon och

sånt.

Julie: Ah, för allt måste ju typ vara med för att det ska bli rätt eller så. Problemlösningsuppgifter där elever haft för avsikt att avrunda ett tal med två decimaler blev svårt för eleverna, då variabler och begrepp ansågs svårhanterliga i

(28)

24

programmeringsspråket. Problemlösningsuppgifter där eleverna hade för avsikt att räkna ut exempelvis 50 + 20 resulterade i att utfallet blev 5020 istället för 70 då det som skrivs tolkas olika om algoritmerna görs inom programmering eller ordinarie matematikundervisning. Detta gjorde att hantering av variabler och begrepp avsedda för uppgiften blev svåra att komma ihåg enligt eleverna. Det nämndes även att enkel- och dubbelfnuttar (”), (” ”) var exempel på kommandon som ansågs svåra att komma ihåg vid making för att programmeringen skulle bli rätt.

Intervjun nedan är ett exempel från observationstillfälle 1, där elever haft svårt att lösa en matematisk problemlösningsuppgift med procent (%). Min avsikt blev därför att ta reda på vad som upplevts svårt.

Jag: Vad upplever ni är svårt med problemlösningsuppgiften?

Lynn: Det är svårt för vi ska ta 50% av ett talet 200 och vi visste först inte hur vi skulle göra..

Jag: Vad var det ni inte förstod?

Maya: Nej för alltså, vi visste inte vilket kommandon som var för

procenttecknet (%). Men så fick vi reda på sedan att man skulle dela talet i två istället… (200/2)

Eleverna uttalade att de inte hade några kunskaper om vilka kommandon som behövdes vid skapande av procentuppgifter. Resultatet indikerar att eleverna förstod matematiksyntaxen för uppgiften men i programmeringssyntaxen blev det desto svårare. 5.3 Uthållighet (vid ”buggar”)

Uthållighet (vid ”buggar”) är en kategori som utformats efter genomförda observationer. Kategorin syftar till elevers tålamod när de stöter på ”buggar” i programmering och hur de aktivt väljer att åtgärda felkodningen. Även denna kategori hamnar i det teoretiska ramverket computational thinking concepts då processen handlar om aktiva val att påverka koden för fortsatt lärande i programmering. Nedan redovisas observationsschemat baserat på elevers aktiva ageranden vid ”buggar” vid användandet av making. Alla elevers aktiva handlingar vid flertalet uppgifter har räknats med. Det vill säga, elevers olika handlingar finns med på fler än en aktiv handling beroende på uppgiftens svårighetsgrad.

(29)

25 Observationsschemat består av 5 kategorier och innefattar två klasser på 41 elever.

”Buggar” uppstod konsekvent vid skapandet av kod under båda observationstillfällena. Därför valdes kategorier ut för att ge data på vilka aktiva åtgärder elever bestämde sig för att ta vid, när de stötte på dessa. Totalt 17 elever valde att fråga läraren om hjälp vid felkodning i hopp om att kunna lösa uppgifterna därefter. 24 elever lyckades ta sig an felkodning på egen hand med hjälp av debugging där uppgifterna avklarades utan felkoder. 10 elever såg möjligheten att fråga en kamrat, vilket framför allt skedde vid pararbeten. Dessa elever diskuterade sig fram till rätt svar. 11 elever gav upp då intresset inte lockade dem alternativt gjorde något annat på datorn. 8 av eleverna härmade sin kompis och skrev av kodens sekvenser i hopp om att förstå uppgiften senare.

5.4 Resultatsammanfattning

I undersökningen som gjorts visar resultatet på att exemplifiering av något vardagsnära vid skapandet av kod, kan utveckla elevers förståelse för vad som programmeras. Resultatet visar även på att elever har svårigheter att programmera med tal och siffror när de tilldelas matematiska problemlösningsuppgifter. Elever upplever då att problemet sitter i hanteringen av begrepp i Python, då det är svårt att komma ihåg alla kommandon. Resultatet gav även data för hur elevers tålamod och aktiva handlingar ges i uttryck när de stöter på ”buggar” i programmeringsmiljön vid skapandet av kod.

Elevers aktiva handlingar vid felkodning

Sammanlagd data från två observationstillfällen

Frågar lärare om hjälp

17 elever

Löser felkodningen på egen hand

24 elever

Frågar kamrat om hjälp

10 elever

Gav upp

11 elever

(30)

26

6. Diskussion

6.1 Metoddiskussion

För att ta reda på studiens syfte har jag använt mig av kvalitativa metoder. Kvalitativa undersökningar baseras på att forskaren själv valt inriktning på undersökningen utifrån intresse. Påståendet medför därför att forskaren själv besitter de viktigaste verktygen för att studien ska bli så bra som möjligt (Bryman, 2011). Programmering är ett relativt nytt delmoment i matematikämnet då lärare fortfarande arbetar med hur de ska undervisa för att generera lärande. Deltagande observationer har därför givit möjlighet att tillsammans med elever uppleva möjligheter och svårigheter när de använt sig av making under programmeringsundervisningen. Genom att delta i observationer har jag intervjuat elever som spelats in med hjälp av ljudinspelning på en mobiltelefon, vilket har bidragit med ökad reliabilitet för studien.

Fördelar med att utföra deltagande observationer är att fältarbetet gör det möjligt för mig som observatör att tillägnas kunskap genom förstahandserfarenhet, vilket kan förbättra förståelsen samt fältarbetets tolkning. De intryck och känslor som elever utspelar utgör även underlag som en del av datamaterialet (Fangen, 2005). Det är intrycken och känslorna som gör metoden unik då den öppnar upp bred tolkningsmöjlighet och så även mindre uppenbara situationer. Eftersom jag hela tiden kunde höra vad eleverna sa under observationen kunde jag välja vilka jag upplevde intressanta att intervjua. Denna tillgänglighet ges inte alltid på samma sätt i samband med strukturerade intervjuer (Fangen, 2005).

Den valda metoden erhöll dock en del svårigheter. Valet av metod innebar resultat i form av uppfattningar, ageranden, uttalanden och känslor snarare än resultat av statiska svar, vilka är svåra som ensam forskare att fånga i ord. Trots att jag observerat eleverna har det varit svårt att få med allt på den korta tiden. Därför tror jag det hade varit lättare att vara fler forskare för den valda metoden. Med grund i argumentet har lång tid lagts för bearbetning av data och analys.

I efterhand har reflektioner gjorts om observationer kombinerat med strukturerade intervjuer avsedda för både lärare och fler elever kunde ha lyft studiens teoretiska ramverk ytterligare. Eftersom deltagandet i observationerna givit något djupare perspektiv på hur elever uppfattar programmering, hade eventuellt en kombination av dessa metoder bidragit

(31)

27

till ytterligare fördjupad förståelse. Då tidspressen begränsat undersökningens möjligheter indikerar exemplet på att det hade tagit för lång tid att genomföra. För att argumentera uttalandet menar Bryman (2011) att avslutad etnografisk forskningsstudie kan erhålla allt ifrån personliga angelägenheter till forskningsdesign.

6.2 Resultatdiskussion

Studien har haft för avsikt att undersöka och fördjupa förståelsen för användandet av den pedagogiska praktiken making, för att utveckla datalogiskt tänkande i textbaserade programmeringsmiljöer i senare års matematikundervisning. Genom resultatet har en bredare insikt infunnits i vilken roll making spelar för undervisningen. Diskussionerna presenteras utifrån resultatets tre kategorier. Debugging kommer nämnas genomgående eftersom det är utfallet vid felkodning vilken sedan ges en djupare diskussion mot slutet av avsnittet. Studiens resultat synliggör aspekter viktiga att ha kännedom om som lärare vid användandet av making i programmeringsundervisningen vilket följaktligen kommer diskuteras i detta avsnitt.

6.2.1 Vardagsnära exempel

Att elever lär sig genom att exemplifiera konkreta objekt av abstrakta fenomen visar forskare fungerar lika bra i ordinarie matematikundervisningen som vid skapandet av kod i programmeringsundervisningen (Skolverket, 2019b). När elever dessutom ges möjlighet att använda sig själva som exempel vid skapandet av kod, blir eleverna det konkreta objektet, ett igenkännande vardagsnära exempel. När eleverna kodade personliga handlingar som ”Hej, jag heter Robyn. Vad heter du?” eller ”Jag är 19 år gammal. Hur gammal är du?” fördes konkreta vardagsnära instruktioner över till Pythons abstrakta variabler som istället fick en mening för eleverna, vilket genererade utvecklat lärande för programmeringen (Hirza, Kusumah, Darhim och Zulkardi, 2014). Eleverna uttalade även att textprogrammering var lättare att förstå då processerna erhöll färre kommandon vid textbaserad programmering än vid matematiska problemlösningsuppgifter. Detta medförde att det var lättare för eleverna att komma ihåg kommandon vid textbaserad programmering. Därav har utvecklat datalogiskt tänkande möjliggjorts i programmeringsundervisningen genom att använda sig av vardagsnära exempel vid användandet av making. Begrepp som variabler rör dimensionen för studiens teoretiska ramverk, computational thinking concepts (Brennan & Resnick, 2012). Argumentet

(32)

28

indikerar att elever bör tillåtas att kombinera textbaserad programmering med vardagsnära exempel under en längre tid för att utveckla datalogiskt tänkande (Brennan & Resnick, 2012). Eftersom de undersökta grupperna går i årskurs 7 har eleverna inte erhållit samma programmeringsundervisning som eleverna i de lägre åldrarna gör idag. Denna diskussion

fortsätter i rubriken nedan.

Andra vardagsnära exempel var elevers användande av mobiltelefoner. Frågan eleverna fick syftade till att svara på om de någon gång upplevt att deras telefon”buggat”. Resultatet visade att elever kunde förklara att deras applikationer ibland stängs ner utan anledning eller att mobiltelefonens högtalare slutat fungera på grund av fuktskada. Eftersom eleverna kopplade innebörden av vad en ”bugg” i deras telefon innebar, med argument att något slutat fungera har de ovetande förkunskap och ett konkret exempel på vad en ”bugg” skulle kunna innebära vid programmering i skolan. Eftersom mobiltelefonen är vardagsanvändning för många kan elever uppleva störningsmoment om den plötsligt skulle sluta fungera vilket skulle kunna motivera eleverna att laga telefonen. På samma sätt hade lärare kunnat lyfta debugging i programmering för att få perspektiv på när något slutar fungera. Vid ett sådant skede hade elever givits kunskap om hur programmeringsprocesser likt debugging fungerar kopplat till verkligheten. Detta rör även en av studiens dimensioner i det teoretiska ramverket, computational thinking perspectivs (Brennan & Resnick, 2012). Om elever ges möjlighet att upptäcka denna aspekt vid programmeringsundervisning genom att koppla det till ”buggar” i ett vardagsnära objekt kan det bli en morot för dem att fortsätta programmera när ”buggar” uppstår i programmeringsmiljön. Detta medför i sin tur att elever ges möjlighet att utveckla datalogiskt tänkande vid debugging (Brennan & Resnick, 2012; Kim et al., 2018). Därför tror jag att lärare måste använda sig av vardagsnära perspektiv genom att exemplifiera vardagsnära objekt när de undervisar i programmering för att koppla programmeringen till välkända områden för eleverna. 6.2.2 Matematik och programmeringssyntax

Anledningen till varför 50 + 20 blev 5020 istället för 70 vid programmering av matematiska problemlösningsuppgifter var för att elever blandat ihop strängar med

integerser1. Elever skriver helt matematiskt korrekt utifrån matematiksyntax men i

programmeringssyntax blir koden fel, vilket indikerar att elevers matematikkunskap inte

References

Related documents

Enk öpin gs k om m un avs tår f r ån att yt tr a s ig ö ver r em iss en ” Promemoria - Ändringar i upphandlingsförordningen och förordningen om kollektivtrafik med anledning

Företagarna uppskattar att ha fått möjlighet att lämna synpunkter på förslaget men får denna gång avstå. Med

För kännedom meddelas att Göteborg stad avstår från att svara då ändringarna endast synes utgöra följdändringar med anledning av kommande lag

Denna remiss avser främst Region Östergötland som ansvarar för kollektivtrafik varför Linköpings kommun anser att yttrande ej behövs. Delegationsbeslutet fattas med stöd

Finansdepartementet har bjudit in Malmö stad att lämna synpunkter på promemorian med förslag till ändringar i upphandlingsförordningen och förordningen om kollektivtrafik med

Yttrande angående PM Ändringar i upphandlingsförordningen och förordningen om kollektivtrafik med anledning av regleringen om upphandlingsstatistik (dnr

Post- och telestyrelsen (PTS) har enligt 1§ förordningen (2007:951) med instruktion för Post- och telestyrelsen ett samlat ansvar inom postområdet och området för

Region Stockholm tillstyrker promemorians förslag till ändringar i upphandlingsförordningen och förordningen om kollektivtrafik med anledning av regleringen om