Effect van Programmeren op het Probleemoplossend Vermogen Bachelorscriptie Onderwijskunde
Universiteit van Amsterdam
Naam: Lisa Habermehl Studentnummer: 10549404
Begeleider: Thomas Jaarsma
Inhoudsopgave
Abstract………. 3
Inleiding………. 4
Computational thinking………. 4
Programmeren……….…..……. 6
Onderzoeksvraag en belangrijke begrippen…..………. 8
Methode literatuurverzameling………..…… 10
Het effect van visueel programmeren op het probleemoplossend vermogen……… 12
Primair onderwijs………... 13
Secundair onderwijs………... 15
Conclusie……… 16
Het effect van tastbaar programmeren op computational thinking……….... 18
Primair onderwijs……….…….. 19 Secundair onderwijs………... 20 Conclusie……….... 22 Conclusie en discussie………... 24 Literatuurlijst……….. 28 Begrippenlijst………. 32
Abstract
One of the most recent discussions in the educational field is the development of the 21st century skills and how these should be implemented in the curriculum. Computational thinking is such a skill: the ability to solve problems by using computer science concepts and techniques. Since there is a lack of structure in the education of computational thinking in the curriculum, this study analyses the positive and the negative factors that can influence visual and tangible programming education.
Through an analysis of 13 studies an overview will be given of the effect of visual and tangible programming on the problem solving ability of students in the primary and secondary schools. To analyse the problem solving ability the framework of Brennan and Resnick was used, they distinguish three key dimensions: computational concepts, computational practices and computational perspectives.
The results indicate that in order for visual or tangible programming to be effective it is important that students get enough guidance while learning to program. And combining visual or tangible programming with methods like scaffolding, using flowcharts or Project Based Learning can improve the development of the problem solving ability.
Keywords: visual programming, tangible programming, computational
Het effect van programmeren op het probleemoplossend vermogen
In 2015 is het Platform Onderwijs2032 opgericht met als taak de kennis en vaardigheden die leerlingen binnen het primaire en het secundaire onderwijs aangeboden moeten krijgen in beeld te krijgen (Onderwijs2032, 2016). Het gaat hier om de vaardigheden die van belang zijn in de huidige en toekomstige samenleving, dit worden vaak de 21e eeuwse vaardigheden genoemd (zie figuur 1). Het onderwijs van de toekomst is een populair discussiepunt binnen het onderwijsveld (KNAW, 2012; Thijs, Fisser & van der Hoeven, 2014), maar ook buiten het onderwijsveld (PW de Gids, 2016). Naast het Platform hebben ook de KNAW (2012) en SLO (Thijs, Fisser & van der Hoeven, 2014) onderzoek gedaan naar wat de belangrijkste 21e eeuwse vaardigheden zijn. Hier werd onder andere uit geconcludeerd dat er te weinig aandacht wordt besteed aan de digitale geletterdheid in het Nederlandse onderwijs: digitale geletterdheid komt “weinig doelgericht en weinig structureel aan de orde” (KNAW, 2012; Thijs, Fisser & van der Hoeven, 2014). Binnen dit literatuuronderzoek wordt er onderzocht hoe de ontwikkeling van digitale geletterdheid structureel vorm kan krijgen binnen het onderwijs.
Figuur 1
De 21e eeuwse vaardigheden
21e eeuwse vaardigheden
creativiteit kritisch denken probleemoplos -vaardigheden
communiceren samenwerken digitale
geletterdheid basiskennis computational thinking gebruik gedrag sociaal en cultureel bewustzijn zelfregulering
Computational thinking
Een van de punten die door de KNAW, SLO en andere onderwijskundige instanties wordt besproken is de ontwikkeling van computational thinking (CT) als onderdeel van de ontwikkeling van digitale geletterdheid (zie figuur 1). Het begrip CT is niet eenduidig: het is een manier van denken bij het oplossen van een probleem, maar het bestaat niet uit een lijst vaardigheden die hier verplicht gebruikt moeten worden (Voogt, Fisser, Good, Mishra & Yadav, 2015). Met andere woorden, als een van deze vaardigheden niet gebruikt wordt betekent dat niet meteen dat er geen sprake is van CT. Daarom moet er worden gekeken naar “overeenkomsten en relaties” tussen de verschillende begrippen van CT om het CT te kunnen analyseren.
CT werd voor het eerst geïntroduceerd door Papert (1980). Hij stelt dat dit een manier van denken is wat leerlingen door het leren programmeren in Logo aanleren en waarbij zij problemen leren oplossen (Selwyn, 2011). Daarnaast stelt hij dat deze manier van denken ook in het dagelijkse leven toegepast kan worden. Maar het aanleren van deze vorm van CT is later weggevallen, omdat het leren programmeren te moeilijk bleek te zijn voor jonge leerlingen (Leron, 1983; Sutherland, 1994). Een aantal jaren geleden werd het begrip CT weer door Wing (2006) gebruikt. Zij heeft het echter over een andere uitvoering van CT, namelijk over het denken volgens concepten die binnen het programmeren worden gebruikt maar niet wordt aangeleerd door het leren programmeren. Volgens Wing is CT een denkproces waarbij er gebruik wordt gemaakt van computationele stappen om te bepalen wat het probleem is en wat de oplossing zou kunnen zijn (Wing, 2011; Aho, 2012 aangehaald in Grover & Pea, 2013).
Een overeenkomst tussen deze definities is dat CT als een manier van denken wordt gezien waarbij er gebruik wordt gemaakt van concepten of strategieën die bij
het programmeren of in de computer science (CS) worden gebruikt om problemen op te lossen. CT definities komen overeen in “the focus on the skills, habits and dispositions needed to solve complex problems with the help of computing and computers” (Voogt et al., 2015), maar deze verschillen in hoe deze “skills, habits and dispositions” worden ontwikkeld. Papert en Wing hebben het allebei over het ontwikkelen van CT vaardigheden, maar zij hebben verschillende ideeën over hoe deze strategieën worden aangeleerd. Papert (1980) stelt dat leerlingen CT vaardigheden aanleren door te leren programmeren, Wing (2006) stelt dat het ook mogelijk is om leerlingen CT vaardigheden aan te leren zonder dat leerlingen te maken krijgen met het leren van syntax en dergelijke.
Programmeren
Een manier om CT te ontwikkelen is door te leren programmeren (Papert, 1980; Kennisnet, 2016), maar dit blijkt dus te moeilijk te zijn voor jonge leerlingen. Uit onderzoek naar het effect van traditionele programmeertalen op CT van leerlingen binnen het primaire en het secundaire onderwijs blijkt dat er geen significant effect is (Pea, 1983; Clements & Gullo, 1984; Kurland, Pea, Clement & Mawby, 1986). Een oorzaak hiervan is dat leerlingen niet bekend zijn met het gebruik van syntax binnen traditionele programmeertalen. Traditionele programmeertalen zijn programmeertalen waar er gebruik wordt gemaakt van codes die in de juiste combinatie een actie uitvoeren. Syntax is de volgorde van woorden in een zin. Programmeersyntax is dan de volgorde van codes in een programmeertaal. Lu en Fletcher (2009) stellen dat leerlingen daarom pas moeten leren programmeren als zij op een hoger niveau van CS zitten. Het kan namelijk moeilijk zijn om woorden in een andere taal toe te passen of te gebruiken als de taal nog niet wordt beheerst. Aan de andere kant kan het programmeren ook gezien worden als een manier om creatieve ideeën te uiten
(Resnick et al., 2009) en als een middel om leerlingen niet alleen tot gebruikers van technologie te maken maar ook makers van technologie (Wyeth, 2008).
Daarom is het belangrijk dat programmeren een onderdeel is van de ontwikkeling van CT. Maar er moet hier wel rekening gehouden worden met hoe onbekend de programmeertaal voor leerlingen is. Om programmeren op jonge leeftijd aan te leren moet er sprake zijn van een low floor en een high ceiling (Grover & Pea, 2013). Dit betekent dat het makkelijk toegankelijk moet zijn, maar dat leerlingen wel veel over het programmeren leren. Binnen het rekenonderwijs wordt er vaak gebruik gemaakt van concreet materiaal om abstracte wiskundige concepten uit te leggen. Hierdoor zijn leerlingen in staat om deze concepten toe te passen zonder de ingewikkelde wiskundige symbolen te begrijpen (Kennedy & Tipps, 1994; Uttal, Scudder & DeLaoche, 1997). Bij het vormgeven van programmeren binnen het primaire en het secundaire onderwijs zou er daarom, net zoals in het rekenonderwijs, een volgorde moeten zijn waarbij leerlingen eerst de makkelijke concepten leren en vervolgens steeds een niveau hoger gaan. Wing (2016) zegt hier het volgende over:
“Consider an analogy to mathematics. We teach numbers to 5-year-olds, algebra to 12-year-olds and calculus to 18-year-olds. We have somehow figured out the progression of concepts to teach in mathematics, where learning one new concept builds on understanding the previous concept, and where the progression reflects the progression of mathematical sophistication of a child as he or she matures.”
Zoals er in het leren van wiskunde een opbouw is, moet er ook in het leren van programmeren een opbouw zijn. Leerlingen moeten hierbij niet meteen leren welke syntax er gebruikt kan worden in een programma, maar ze moeten eerst leren wat de logica achter het gebruik van bepaalde syntax in het programmeren is (Filiz, Korhan
& Arabacioglu, 2009 aangehaald in Oluk & Saltan, 2015). Een mogelijkheid om deze logica aan te leren en om het programmeren makkelijk toegankelijk te maken is door het gebruik van visuele representaties en concrete materialen. Hierdoor wordt de cognitieve belasting verminderd doordat leerlingen niet hoeven na te denken over de betekenis van de syntax zoals in een traditionele programmeertaal gedaan moet worden (Kelleher & Pausch, 2005; Maches, O’Mally & Benford, 2009).
Onderzoeksvraag en belangrijke begrippen
Binnen dit literatuuronderzoek wordt er onderzocht hoe het visueel en tastbaar programmeren invloed kan hebben op CT. Er wordt dus onderzocht hoe het visueel en tastbaar programmeren invloed kan hebben op de mate waarin leerlingen aan de hand van concepten en strategieën uit de CS problemen kunnen oplossen. De volgende vraag staat centraal: “Wat is het effect van visueel en tastbaar programmeren op het probleemoplossend vermogen van leerlingen binnen het primaire en het secundaire onderwijs?” Visueel programmeren is hier het programmeren waarbij er geen gebruik wordt gemaakt van tekst of codes maar van visuele representaties van stukjes codes. Tastbaar programmeren is het programmeren waarbij er gebruik wordt gemaakt van concrete materialen die gemanipuleerd kunnen worden door leerlingen. Het probleemoplossend vermogen is binnen dit onderzoek de mate waarin leerlingen met behulp van concepten of strategieën uit de CS problemen kunnen oplossen. Met andere woorden: de mate waarin er sprake is van CT. Omdat CT een onbekend begrip is en dit een manier om problemen op te lossen is. Is ervoor gekozen om binnen dit onderzoek de term ‘het probleemoplossend vermogen’ te gebruiken in plaats van CT.
Daarnaast wordt er binnen dit onderzoek gebruik gemaakt van het conceptuele kader van Brennan en Resnick (2012). Zij stellen dat de ontwikkeling van het probleemoplossend vermogen op drie manieren onderzocht kan worden. Namelijk
door naar de gebruikte concepten (algoritmen, condities, loops), de gebruikte strategieën (debuggen, abstractie) of het perspectief van de leerlingen (van zichzelf in relatie tot technologie) te kijken. Bij het analyseren van de verschillende studies is er gekeken naar de mate waarin het concept, de uitvoering of het perspectief is ontwikkeld om te bepalen in hoeverre er sprake is van een effect op het probleemoplossend vermogen. De geobserveerde of gemeten concepten of strategieën worden tussen haakjes vermeld. Daarnaast wordt er ook meegenomen welke andere factoren hier mogelijk een rol in spelen.
Tabel 1
Conceptueel kader van Brennan en Resnick (2012)
Probleemoplossend vermogen (onderdelen)
Omschrijving
Concepten Patronen Het herkennen van patronen
Herhalingen Een loop waarin iets herhaald wordt
Voorwaarden Er wordt iets gedaan als er aan een bepaalde voorwaarde wordt voldaan (‘als’ dit er is ‘dan’ gebeurt dit)
Functie Een hulpprogramma binnen het hoofdprogramma Variabele Een waarde die kan worden opgeslagen om te
kunnen vergelijken met andere waarden
Strategieën Algoritmes Een reeks instructies, het denken in stappen als een robot
Decompositie Een groot probleem in kleine deelproblemen opsplitsen om deze op te lossen
Debuggen Fouten opsporen en oplossen, hierbij kan er gebruik gemaakt worden van reflectie
Abstractie De overbodige informatie bij een probleem weglaten om zo het probleem algemeen te maken Perspectieven Wat vindt de leerling van technologie of hoe ziet de
leerling zichzelf als het gaat om het gebruik van technologie?
In het volgende hoofdstuk wordt er eerst besproken hoe er naar literatuur is gezocht, welke stappen hier voor zijn genomen. Vervolgens wordt er in twee hoofdstukken in kaart gebracht wat er gevonden is over het effect van (1) het visueel programmeren en (2) het tastbaar programmeren op de probleemoplosvaardigheden
van leerlingen. Het literatuuronderzoek wordt afgesloten met een conclusie- en een discussiehoofdstuk.
Figuur 2
De relaties tussen het programmeren, CT en het oplossen van een probleem
• tekstueel programmeren • grafisch programmeren
• tastbaar programmeren programmeren
• concepten • strategieën • perspectieven computational thinking probleem oplossing
Methode literatuurverzameling
Voor de literatuurverzameling is er gebruik gemaakt van verschillende zoekmachines: ScienceDirect, Web of Science, Elsevier, Scopus en Google Scholar. Eerst is er gezocht met de zoekterm “computational thinking” en de zoektermen “thinking” “computing education”. Op dit moment was het nog onduidelijk welke variabelen gerelateerd waren aan deze term. Toen duidelijk werd dat CT vaak als het probleemoplossend vermogen werd onderzocht, is er verder gezocht met de kernwoorden “computational thinking” en “problem solving”. Uit de artikelen die hier werden gevonden bleek het programmeren ook een gerelateerde variabele te zijn. En hieruit bleek dat veel studies CT meten door het probleemoplossend vermogen van leerlingen te meten. Er werd verder gezocht met “programming” en “problem solving”. Hieruit bleek dat er een onderscheid gemaakt kon worden tussen visueel programmeren en tastbaar programmeren. Daarna is er gezocht naar visueel programmeren en het probleemoplossend vermogen met de kernwoorden “computational thinking” en “visual programming”. Er is ook gezocht naar tastbaar programmeren en het probleemoplossend vermogen met de kernwoorden “computational thinking” en “tangible programming”, maar ook met “computational thinking” en “robotics”.
Om te bepalen of een artikel geschikt was voor dit literatuuronderzoek werden de volgende vragen gesteld. (1) Is er hier sprake van een visuele of tastbare programmeertaal? (2) Wordt hier een probleemoplossingsvaardigheid gemeten of geobserveerd? Een probleemoplossingsvaardigheid kon hierbij een van de concepten of strategieën uit het conceptuele kader van Brennan en Resnick (2012) zijn.
Het effect van visueel programmeren op het probleemoplossend vermogen Visueel programmeren is het programmeren waarbij er geen gebruik wordt gemaakt van syntax in de vorm van tekst en codes, maar van syntax in de vorm van visuele representaties van stukjes codes. Een programma dat vaak wordt gebruikt om leerlingen kennis te laten maken met het programmeren is Scratch. Binnen dit programma is het mogelijk om met puzzelstukjes een spelletje of een digital story te maken. Een puzzelstukje stelt een stukje code voor, dit kan bijvoorbeeld een ‘als-dan’ conditie zijn (als er op de linkermuisknop wordt geklikt, dan springt het poppetje omhoog). Leerlingen kunnen zo kennis maken met de logica achter het programmeren zonder dat ze kennis over syntax nodig hebben (Wang, Huang & Hwang, 2014). Binnen dit hoofdstuk worden studies vergeleken waarbij het gebruik van een visuele programmeertaal (Scratch) de onafhankelijke variabele is en het probleemoplossend vermogen van leerlingen de afhankelijke variabele is. Er wordt in kaart gebracht welke uitvoeringen van het visueel programmeren een significant effect hebben en welke uitvoeringen een klein tot geen effect laten zien. Eerst worden de resultaten uit het primaire onderwijs besproken dan de resultaten uit het secundaire onderwijs om vervolgens een conclusie te trekken.
In totaal zijn er zeven studies geanalyseerd: vijf studies binnen het primaire onderwijs (Kalelioglu & Gulbahar, 2014; Brown, Mongan, Kusic, Garbarine, Fromm & Fontecchio, 2013; Lai & Yang, 2011; Calao, Moreno-Leon, Correna & Robles, 2015; Calder, 2010) en twee studies binnen het secundaire onderwijs (Oluk & Sultan, 2015; Wang, Huang & Hwang, 2014). Alle studies gaan over het effect van de visuele programmeertaal ‘Scratch’ op het probleemoplossend vermogen van leerlingen. De studies verschillen in hoe Scratch wordt toegepast binnen het onderwijs, welke
experimentele activiteiten er zijn en hoe er wordt bepaald in welke mate er sprake is van een ontwikkeling in het probleemoplossend vermogen.
Primair onderwijs (Brown et al., 2013; Calder, 2010; Calao et al., 2015; Kalelogiu & Gulbahar, 2014; Lai & Yang, 2011)
Brown et al. (2013), Calder (2010) en Calao et al. (2015) deden onderzoek naar het gebruik van Scratch binnen het rekenonderwijs. In de studie van Brown et al. (2013) werd er onderzocht of het visualiseren van strategieën om rekenproblemen op te lossen invloed heeft op de mate waarin leerlingen voor efficiënte strategieën kiezen om rekensommen op te lossen. Hier kan er gedacht worden aan het verschil tussen het gebruik van vermenigvuldigen als efficiëntere techniek van het continu optellen. Binnen de lessen worden er zowel efficiënte als minder efficiënte strategieën geoefend. Vervolgens wordt er gemeten in welke mate de leerlingen voor de meest efficiënte techniek kiezen bij het maken van een wiskundesom. De leerlingen laten een significante toename van 9% zien in het kiezen van een efficiënte techniek.
Calder (2010) en Calao et al. (2015) lijken de leerlingen wat meer te leren over het programmeren in Scratch. De leerlingen krijgen hier namelijk eerst een introductieles in het gebruik van Scratch, bij de een wat uitgebreider (Calao et al., 2015) dan bij de ander (Calder, 2010).
Calao et al. (2015) gaven de leerlingen eerst een aantal lessen over het gebruik van programmeerstrategieën (algoritmen) en programmeerconcepten (herhaling, voorwaarden en variabelen) om deze kennis vervolgens toe te passen door het maken van een eigen programma in Scratch. Om erachter te komen in hoeverre de probleemoplosvaardigheden van leerlingen zich ontwikkelen ten opzichte van voor het gebruik van Scratch is er een pretest en een posttest afgenomen waarin leerlingen een aantal verhaalsommen moesten maken. Er is een kleine toename te zien als er
naar de probleemoplosvaardigheden over het algemeen wordt gekeken. Maar er is wel een grote toename te zien als er specifiek naar de mate waarin leerlingen bekend raken met het gebruik van algoritmen wordt gekeken. In het onderzoek wordt deze vaardigheid omschreven als “realizing the concepts on which they rest and recognizing when you can apply a given technical or mathematical operation”.
Binnen de studie van Calder (2010) kregen de leerlingen ook een introductieles in Scratch, maar hier was de opdracht om hun groepsnaam in Scratch te presenteren door gebruik van animaties en andere functies binnen dit programma. Vervolgens kregen deze leerlingen uit groep 8 de opdracht om een spel voor leerlingen uit groep 3 te maken zodat zij leren begrijpen wat ‘cijfers’ zijn. Tijdens het maken van deze spelletjes in Scratch was er regelmatig ruimte voor reflectie door het presenteren van het spel waar ze mee bezig waren, door hierbij te redeneren waarom ze bepaalde keuzes hebben gemaakt en door ontvangen feedback vanuit de klas (debuggen). Binnen dit onderzoek is er sprake van een kwalitatieve meting: de blogs die leerlingen bijhielden bij dit proces, de interviews van leerkrachten en leerlingen en de observaties binnen de klas werden geanalyseerd. Hieruit blijkt dat leerlingen in staat waren om hun ideeën in Scratch uit te werken, om een verbinding te maken met wat zij in het programma schreven en wat er op het scherm gebeurde. Bovendien werd de communicatie en samenwerking tussen de leerlingen ook gestimuleerd met Scratch.
Lai en Yang (2011) en Kalelioglu en Gulbahar (2014) deden onderzoek naar het effect van Scratch op het probleemoplossend vermogen binnen een informaticales. In het onderzoek van Lai en Yang (2011) kregen de leerlingen eerst een introductie in het gebruik van Scratch. Vervolgens liet de leerkracht voorbeelden van probleemoplosvaardigheden zien: Bepalen wat het probleem is, deze analyseren, een
oplossing bedenken en deze uitvoeren binnen Scratch, de oplossing testen en aanpassen indien nodig (scaffolding). De leerlingen oefenen deze vaardigheid en passen deze toe in Scratch. Als laatste reflecteren ze op dat wat ze hebben gemaakt en ontvangen zij feedback van klasgenoten (debuggen). Dit allemaal blijkt een positief effect te hebben op het probleemoplossend vermogen over het algemeen, maar voornamelijk op hoe leerlingen redeneren als ze voorspellen hoe het programma werkt. Daarnaast laten leerlingen ook een positieve houding zien naar het leren met Scratch. Maar de leerlingen die slecht presteren niet. Het is mogelijk dat deze groep leerlingen op een andere manier leert, daarom moet er aandacht komen voor verschillende leerstijlen.
Kalelogliu en Gulbahar (2014) hebben ook eerst aandacht besteed aan het introduceren van het gebruik van Scratch. Daarna kregen de leerlingen verschillende opdrachten die zij moesten uitvoeren in Scratch. Om de opdracht juist uit te voeren moesten de leerlingen gebruik maken van verschillende programmeerconcepten (herhalingen, variabelen). De opdrachten namen in moeilijksgraad toe. Naast het meten van de probleemoplosvaardigheden is het zelfbeeld van leerlingen in het gebruik van Scratch gemeten. Er blijkt geen ontwikkeling te zijn de probleemoplosvaardigheden van leerlingen, maar wel een kleine (niet-significante) positieve ontwikkeling in het zelfvertrouwen in het vermogen om problemen op te lossen.
Secundair onderwijs (Oluk & Saltan, 2015; Wang, Huan & Hwang, 2014)
Oluk & Saltan (2015) hebben onderzocht of het gebruik van Scratch bij het leren over algoritmen of het gebruik van flowcharts invloed heeft op de ontwikkeling van probleemoplosvaardigheden binnen een informaticales. Hieruit blijkt dat het gebruik van Scratch geen effect heeft op het leren over algoritmen of flowcharts.
Binnen dit onderzoek werd er geconcludeerd dat er geen effect was door de moeilijkheidsgraad van de algoritmen, dat leerlingen dit daarom niet snappen.
Wang, Huang & Hwang (2014) hebben het visueel leren programmeren gecombineerd met het Problem Based Learning (PBL). Leerlingen kregen eerst informatie over een onderwerp (computervirussen), vervolgens kregen zij de opdracht om een digital story te maken waarin dit onderwerp werd uitgelegd. Dit onderwijs blijkt een significant effect te hebben op het probleemoplossend vermogen. Er is ook een significante positieve ontwikkeling te zien in de motivatie en de houding van leerlingen naar Scratch. Verder werd er geconcludeerd dat het hier wel belangrijk is dat leerlingen die niet bekend zijn met technologie begeleiding nodig hebben.
Conclusie
Uit de resultaten blijkt dat het visueel programmeren binnen verschillende contexten (rekenonderwijs, informaticales) en op verschillende manieren (scaffolding,
Project Based Learning) effect kan hebben op het probleemoplossend vermogen.
Bij het onderwijzen van visueel programmeren binnen het rekenonderwijs worden er vaak algoritmes als programmeerstrategie onderwezen en gemeten. Brown et al. (2013) onderwijzen het visueel programmeren door efficiënte en minder efficiënte rekenstrategieën te visualiseren. Leerlingen leren niet zozeer wat over hoe zij kunnen programmeren, maar er is wel sprake van een effect op het probleemoplossend vermogen (op de mate waarin leerlingen algoritmes op de juiste manier gebruiken). Daarnaast laten studies waarin het visueel programmeren aan de hand van opdrachten wordt onderwezen een effect zien (Calao et al., 2015; Calder, 2010).
Het visueel programmeren onderwezen door scaffolding of door Problem
2014). Bij het visueel leren programmeren door scaffolding worden er ook algoritmes onderwezen als programmeerstrategie. Leerlingen leren welke stappen zij moeten ondernemen om een probleem op te lossen. Hieruit blijkt dat leerlingen zich vooral ontwikkelen in hoe zij over de werking van een programma redeneren. Calder (2010) noemt dat leerlingen in staat zijn om hun ideeën in Scratch uit te werken en om een verbinding te maken tussen wat zij in het programma ‘schrijven’ en wat er op het scherm gebeurt. Het visueel programmeren binnen het Problem Based Learning blijkt een positief effect te hebben op de motivatie en de houding van leerlingen naar het visueel programmeren (Wang, Huang & Hwang, 2014).
Het perspectief dat leerlingen over het visueel programmeren hebben (het programma, maar ook het eigen kunnen in relatie tot het visueel programmeren) kan een rol spelen in de mate waarin het visueel programmeren een effect heeft op het probleemoplossend vermogen. De meeste leerlingen laten een positieve houding zien naar het leren met Scratch, maar de leerlingen die slecht presteren niet (Lai & Yang, 2011). Dit impliceert dat de leerlingen die slecht presteren niet geïnteresseerd zijn in het visueel programmeren met Scratch. Daarom moet er ook aandacht zijn voor uitvoeringen waar deze leerlingen wel in geïnteresseerd zijn. Daarnaast is er een klein (niet-significant) effect van het visueel programmeren op het zelfvertrouwen van leerlingen in het eigen probleemoplossend vermogen (Kalelogliu & Gulbahar, 2014).
Het effect van het tastbaar programmeren op het probleemoplossend vermogen Tastbaar programmeren is het programmeren waarbij er gebruik wordt gemaakt van concrete materialen om een voorwerp te manipuleren. In tegenstelling tot het gebruik van een visuele programmeertaal wordt er bij het gebruik van tastbare programmeertalen gebruik gemaakt van verschillende methodes (Tangible K, Lego Mindstorms). Het materiaal dat gebruikt wordt binnen deze methodes is vaak hetzelfde. Dit bestaat uit blokken waar sensoren in zijn verwerkt die een reactie kunnen uitoefenen op een blok (een blok maakt geluid of geeft licht) of op een apparaat (een robot die beweegt). Het tastbaar programmeren kan ook gebruikt worden in combinatie met het visueel programmeren, maar omdat het hier wel voornamelijk draait om het tastbaar programmeren worden deze als hetzelfde gezien (Flannery & Bers, 2013). Ook binnen dit hoofdstuk is tastbaar programmeren de onafhankelijke variabele en de ontwikkeling van het probleemoplossend vermogen de afhankelijke variabele. Eerst zullen de resultaten van de studies binnen het primaire onderwijs besproken worden, vervolgens de resultaten van studies binnen het secundaire onderwijs en als laatste volgt er een conclusie over alle studies.
Er zijn in totaal drie studies binnen het primaire onderwijs geanalyseerd (Flannery & Bers, 2013; Sipitakiat & Nusen, 2012; Wyeth, 2008) en drie studies binnen het secundaire onderwijs (Lindh & Holgersson, 2007; Chambers, Carbonaro & Rex, 2007; Sullivan, 2005). Binnen alle studies wordt er een vorm van tastbaar programmeren onderwezen en binnen alle studies wordt er een programmeerconcept of –strategie onderzocht. Ook binnen dit hoofdstuk worden eerst de resultaten uit het primaire onderwijs besproken, vervolgens de resultaten uit het secundaire onderwijs en als laatste een globale conclusie.
Primair onderwijs (Flannery & Bers, 2013; Sipitakiat & Nusen, 2012; Wyeth, 2008) Flannery en Bers (2013) hebben onderzoek gedaan naar de mate waarin leerlingen (4 tot 7 jaar) problemen oplossen als zij met de methode Robotics-K werken. Binnen deze methode hebben de leerlingen de mogelijkheid om blokken op de computer (visueel programmeren) of concrete blokken (tastbaar programmeren) in een volgorde te plaatsen om zo een robot te programmeren. De leerlingen kregen eerst een introductie les over technologie, vervolgens leerden zij programmeerconcepten door zelf een robot te bouwen en tussendoor reflecteerden zij regelmatig op hun werk (debuggen). Bij het analyseren van de resultaten is er een onderscheid gemaakt tussen de verschillende cognitieve ontwikkelingsfasen waar de leerlingen in zitten. 60% van de leerlingen kregen het voor elkaar om het programmeren volledig werkend te krijgen. Het effect dat het tastbaar programmeren heeft op het probleemoplossend vermogen (debuggen) is afhankelijk van de cognitieve ontwikkelingsfase waar de leerling in zit. Leerlingen in de derde cognitieve ontwikkelingsfase zijn in staat om een programma werkend te krijgen. Leerlingen in de eerste en tweede cognitieve ontwikkelingsfase blijken moeite te hebben met het bepalen van het probleem en het bedenken van een oplossing. Ze vonden het makkelijker om opnieuw te beginnen dan uit te zoeken waar het probleem door veroorzaakt wordt. Zij hebben waarschijnlijk meer profijt van het leren programmeren als zij eerst bekend worden met de methode en het materiaal en vervolgens kleine problemen oplossen. Uit de resultaten blijkt ook dat de leerlingen die het programma werkend krijgen vaak gebruik maken van een systematische benadering om het probleem op te lossen in tegenstelling tot de
trial-and-error benadering. Of het tastbaar programmeren een effect heeft op het
probleemoplossend vermogen is daarom mogelijk ook afhankelijk van de programmeerstrategie die wordt gebruikt.
In het onderzoek van Sipitakiat en Nusen (2012) werd er onderzocht in hoeverre het probleemoplossend vermogen van leerlingen (8 tot 9 jaar) zich ontwikkelde nadat zij met Robo-Blocks leerden werken. Binnen deze methode kregen de leerlingen twee verschillende strategieën aangeleerd om problemen op te lossen (debuggen). Hierdoor werd het systematisch denken van de leerlingen gestimuleerd. Uit het onderzoek blijkt dat leerlingen vaak moeite hadden met het begrijpen van deze methode en snel hun aandacht kwijt waren als zij geen voortuitgang zagen. Maar er is wel een significant effect op het probleemoplossend vermogen (debuggen). Daarnaast vinden leerlingen het interessant om te zien hoe hun robot functioneert en wat er gebeurt als zij aanpassingen maken.
Wyeth (2008) heeft onderzocht of leerlingen (3-8 jaar) de programmeerconcepten aanleren door het maken van programmeeropdrachten. Er werd gebruik gemaakt van scaffolding om leerlingen overweg te helpen met het programmeren. Dit werd onder andere gedaan door strategieën aan te bieden om problemen op te lossen. Uit de resultaten blijkt dat leerlingen snappen wat de functie van elk blok is (variabelen), dat leerlingen niet in staat zijn om te bepalen waar het probleem door veroorzaakt wordt of dat ze wel zien waar het probleem door veroorzaakt wordt maar weten niet wat de juiste oplossing is (debuggen). Daarnaast hadden ze in het begin moeite met het uitleggen van hoe de blokken elkaar beïnvloeden, maar naarmate ze meer opdrachten uitvoerden was hier een verbetering in te zien. Deze verbetering was ook te zien in de mate waarin leerlingen in staat zijn om een juiste oplossing te bedenken.
Secundair onderwijs (Lindh & Holgersson, 2005; Chambers, Carbonaro & Rex, 2007; Sullivan, 2005)
Lindh en Holgersson (2005) onderzoek binnen het rekenonderwijs. In het onderzoek van Lindh en Holgersson (2005) werd er onderzocht in hoeverre het gebruik van tastbaar programmeermateriaal invloed heeft op de mate waarin leerlingen wiskundige en logica problemen kunnen oplossen. Er was hier geen specifieke volgorde van lessen of opdrachten. De leerlingen moesten in ieder geval een aantal uren per maand bezig zijn met het tastbaar programmeren. Uit de resultaten blijkt dat er geen significante stijging is in de mate waarin leerlingen problemen oplossen. Een verklaring die hiervoor wordt genoemd is de heterogene groep in het onderzoek en de verschillende niveaus van het probleemoplossend vermogen die daardoor worden onderzocht. Leerlingen die het probleemoplossend vermogen al redelijk beheersen laten mogelijk geen vooruitgang zien omdat zij het al kunnen. Leerlingen die dit vermogen niet hebben laten mogelijk geen vooruitgang zien omdat het te moeilijk is. Een van de omgevingsfactoren die binnen dit onderzoek als belangrijk wordt gezien is een relevante en realistische opdracht voor de leerlingen. Ook moet er rekening worden gehouden met de verschillende manieren waarop leerlingen leren, namelijk door trial-and-error, door samenwerking of door de instructies van de leerkracht te lezen.
De focus van het onderzoek van Chambers, Carbonaro en Rex (2007) was gericht op hoe leerlingen het leren met robotica beleefden. De reeks lessen begon met het bekend worden met de verschillende onderwerpen in de methode Lego Mindstorms. Leerlingen werden in groepen verdeeld en kregen de opdracht om elk een onderwerp van de methode te behandelen. Vervolgens werden de robots in groepen geprogrammeerd. Er werd door alle leerlingen een logboek bijgehouden om zodat zij konden reflecteren op de keuzes die zij hebben gemaakt bij het oplossen van problemen en zodat de leerkracht de juiste manier van scaffolding kon aanbieden aan
de leerling. Daarnaast werd het gebruik van flowcharts geïntroduceerd (algoritmes). Door commando’s (‘gaat naar links’) en conditionele checks (‘is de ondergrond geel?’) wordt het gedrag van de robots in kaart gebracht en kunnen de leerlingen hun ideeën te structuren. Uit de observaties blijkt dat leerlingen binnen deze methode leren reflecteren en debuggen: leerlingen zijn in staat om hun programma’s aan te passen en zo de werking van de robots aan te passen.
Sullivan (2007) ging op zoek naar welke vaardigheden leerlingen gebruiken bij het oplossen van een probleem in een robotics opdracht. Het onderwijs bestond uit het leren door instructies van de leerkracht en het leren door samen aan een opdracht te werken. 11 van de 26 leerlingen maakten gebruik van wiskundige sommen om de opdracht te maken (operators). Vaardigheden die het meest werden gebruikt zijn observatie, het evalueren van de oplossing en voorspelling (debuggen). Daarnaast is er een significant verschil tussen de pretest (M = 23.09) en de posttest (M = 25.82). Dit betekent dat leerlingen door het weken met robotics snappen hoe een robot werkt. Bij het debuggen laten leerlingen zien dat zij eerder een onderdeel veranderen en de uitkomst hiervan observeren dan twee onderdelen veranderen.
Conclusie
Of het tastbaar programmeren effect heeft op het probleemoplossend vermogen kan afhankelijk zijn van de leeftijd van de leerling (Flannery & Bers, 2013; Sipitakiat & Nusen, 2012). Leerlingen die nog in de eerste fasen van hun cognitieve ontwikkeling zitten vinden het moeilijk om te bepalen wat het probleem precies is en om een oplossing te bedenken (Flannery & Bers, 2013). In het onderzoek van Sipitakiat en Nusen (2012) en Wyeth (2008) blijkt dat leerlingen ook moeite hebben met het tastbaar programmeren. Maar ondanks de moeite is hier wel sprake van een significant effect (Sipitakiat & Nusen, 2012) en een verbetering in het begrijpen van
de functies van de blokken (Wyeth, 2008). Een mogelijke verklaring is dat de leerlingen in de studies waar er een significant effect te zien is genoeg begeleiding hebben gehad om het tastbaar programmeren te begrijpen en zo het probleemoplossend vermogen te ontwikkelen.
Daarnaast wordt het effect van het tastbaar programmeren ook beïnvloed door de manier waarop het programmeren wordt onderwerzen. Door het gebruik van
flowcharts als programmeerstrategie bijvoorbeeld (algoritmes). Leerlingen geven aan
dat zij hierdoor in staat zijn om hun ideeën te structureren.
De vaardigheden die het meest worden gebruikt bij een programmeeropdracht zijn observatie, evaluatie van de oplossing en voorspelling (debuggen) (Chambers, Carbonaro & Rex, 2007; Sullivan, 2007). Dit betekent dat het tastbaar programmeren een effect heeft op het probleemoplossend vermogen doordat er sprake is van de ontwikkeling van debug vaardigheden.
Conclusie en discussie
Het oplossen van problemen door gebruik van concepten en strategieën die bij het programmeren worden gebruikt (CT) wordt als een belangrijke vaardigheid gezien voor in de huidige en toekomstige samenleving. Het traditioneel programmeren heeft een positief effect op het probleemoplossend vermogen van studenten binnen het hoger onderwijs. Deze vorm van programmeren blijkt te moeilijk te zijn voor leerlingen binnen het primaire en het secundaire onderwijs. Dit komt mogelijk door de onbekende taal van het programmeren dat hier gebruikt moet worden. Een andere optie om leerlingen het programmeren toch aan te leren is door het gebruik van programmeersyntax waarbij leerlingen niet te maken hebben met codes, maar met visuele representaties van stukjes code. Dit is mogelijk door het visueel en tastbaar programmeren. Binnen dit literatuuronderzoek werd in kaart gebracht welke uitvoeringen van visueel en tastbaar programmeren een effect hebben op het probleemoplossings vermogen van leerlingen binnen het primaire en het secundaire onderwijs. In de volgende alinea’s worden de bevindingen van dit literatuuronderzoek besproken, de sterke en de zwakke punten van het onderzoek op een rij gezet, implicaties voor het onderwijs en aanbevelingen voor vervolgonderzoek gegeven.
Uit de resultaten blijkt dat het visueel programmeren binnen verschillende contexten (rekenonderwijs, informaticales) en op verschillende manieren (scaffolding,
Project Based Learning) effect kan hebben op het probleemoplossend vermogen. Uit
de resultaten blijkt dat het niet uitmaakt in welke context en op welke manier het visueel programmeren wordt geïmplementeerd, zolang er sprake is van goede begeleiding tijdens het visueel programmeren zullen leerlingen hierdoor hun probleemoplossend vermogen ontwikkelen.
Uit de analyse van de studies over tastbaar programmeren blijkt dat jonge leerlingen moeite hebben met het oplossen van problemen en vaak niet snappen waar zij moeten zoeken naar de oorzaak van het probleem (Flannery & Bers, 2013; Sipitakiat & Nuse, 2012; Wyeth; 2008). Maar als het tastbaar programmeren vaak wordt geoefend (Wyeth, 2008) of als leerlingen systematisch over de oplossing nadenken (Flannery & Bers, 2013; Sipitakiat & Nusen, 2012) dan is er een verbetering te zien in de mate waarin zij problemen kunnen oplossen. Daarnaast blijkt het gebruik van flowcharts bij het tastbaar programmeren een effectief middel te zijn om het probleemoplossend vermogen te ontwikkelen.
Ondanks deze effectieve implementaties stellen veel studies dat het ook beter kan. Er kan meer gehaald worden uit het visueel en tastbaar programmeren door opdrachten binnen een realistische context aan te bieden, door rekening te houden met de verschillende leerstijlen die leerlingen hebben. Binnen een van de studies werd er namelijk geconcludeerd dat de negatieve houding die leerlingen naar het visueel of het tastbaar programmeren hebben mogelijk te maken heeft met de leerstijl van deze leerlingen. Het is mogelijk dat deze manier van visueel of tastbaar leren programmeren niet aansluit bij de manier waarop zij leren. En dit kan weer invloed hebben op het uiteindelijke effect op het probleemoplossend vermogen van leerlingen. Om antwoord te geven op de vraag wat het effect van visueel en tastbaar programmeren op het probleemoplossend vermogen is, kan er gezegd worden dat zowel het visueel programmeren als het tastbaar programmeren op verschillende manieren een effect kunnen hebben op de ontwikkeling van het probleemoplossend vermogen. Een voorwaarde is hier wel dat er goede begeleiding bij aanwezig is. Dit is vooral belangrijk bij het onderwijs van tastbaar programmeren aan jonge leerlingen, daarnaast hebben zij het nodig om veel te kunnen oefenen met het tastbaar
programmeren om zo het probleemoplossend vermogen te ontwikkelen. Dit zijn dus ook de punten waar rekening mee gehouden moeten worden bij het implementeren van het visueel en tastbaar programmeren binnen het onderwijs. Voorbeelden van hulpmiddelen die gebruikt kunnen worden bij het onderwijzen van het visueel en het tastbaar programmeren zijn scaffolding, flowcharts en Project Based Learning.
Een sterk punt van dit onderzoek is dat de doelgroepen uit de geanalyseerde studies een brede leeftijdsgroep bestaat. Hierdoor werd duidelijk voor welke leeftijdsgroepen het visueel en het tastbaar programmeren waarschijnlijk wel effectief zal zijn (en in welke leeromstandigheden) en voor welke leeftijdsgroepen dit niet effectief zal zijn (of waar er rekening mee gehouden moet worden). Er is echter ook een beperking in dit onderzoek. De geanalyseerde studies gaan namelijk over het onderwijs in verschillende landen. Hierdoor is er sprake van verschillende onderwijssystemen en deze kunnen impliciet invloed hebben op de uitvoering van het visueel en het tastbaar programmeren in het onderwijs. In vervolgonderzoek zouden er daarom studies geanalyseerd moeten worden waarbij er scholen zijn onderzocht die hetzelfde onderwijssysteem hebben of waarvan de onderwijssystemen bijna hetzelfde zijn.
Een ander punt wat interessant kan zijn voor vervolgonderzoek is het effect van het tastbaar programmeren binnen het Montessori onderwijs. Uit de geanalyseerde studies blijkt dat het tastbaar programmeren vaak gekoppeld wordt aan de theorie van Piaget. Piaget stelt dat leerlingen pas echt leren als zij hier actief mee bezig zijn. Een van de uitgangspunten binnen het Montessori onderwijs is dat leerlingen vaardigheden efficiënter leren als cognitie en fysieke beweging gecombineerd worden (Montessori, 1912). In tegenstelling tot het traditionele onderwijs waar leerlingen vaak passief leren, wordt er binnen het Montessori
onderwijs actief geleerd. Het is mogelijk dat leerlingen uit het Montessori onderwijs al overweg kunnen met het tastbaar programmeren omdat zij al vanaf het eerste schooljaar bezig zijn met actief leren.
Literatuurlijst
Brennan, K., & Resnick, M. (2012). New frameworks for studying and assessing the development of computational thinking. In Proceedings of the 2012 annual
meeting of the American Educational Research Association, Vancouver, Canada.
Brown, Q., Mongan, W., Kusic, D., Garbarine, E., Fromm, E., & Fontecchio, A. (2013). Computer aided instruction as a vehicle for problem solving: Scratch programming environment in the middle years classroom. Retrieved
September, 22.
Calao, L. A., Moreno-León, J., Correa, H. E., & Robles, G. (2015). Developing Mathematical Thinking with Scratch. In Design for Teaching and Learning in
a Networked World (pp. 17-27). Springer International Publishing.
Clements, D. H., & Gullo, D. F. (1984). Effects of computer programming on young children's cognition. Journal of Educational Psychology, 76(6), 1051.
Chambers, J., Carbonaro, M., & Rex, M. (2007). Scaffolding knowledge construction through robotic technology: A middle school case study.Electronic Journal
for the Integration of Technology in Education, 6, 55-70.
Flannery, L. P., & Bers, M. U. (2013). Let’s dance the “robot hokey-pokey!” children’s programming approaches and achievement throughout early cognitive development. Journal of research on technology in education,46(1), 81-101.
Grover, S., & Pea, R. (2013). Computational Thinking in K–12 A Review of the State of the Field. Educational Researcher, 42(1), 38-43.
Kalelioğlu, F., Gülbahar, Y., Akçay, S., & Doğan, D. (2014). Curriculum integration ideas for improving the computational thinking skills of learners through
programming via scratch. In Local proceedings of the 7th international
conference on informatics in schools: Situation, evolution and perspectives (pp. 101-112).
Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys (CSUR), 37(2), 83-137.
Kennedy, L., & Tipps, S. (1994). Guiding children'slearning of mathematics , Belmont, CA: Wadswort h.
Kennisnet (2016). Trendrapport 2016-2017.
KNAW (2012). Digitale geletterdheid in het voortgezet onderwijs: Vaardigheden en attitudes voor de 21ste eeuw. Amsterdam: KNAW.
Kurland, D. M., Pea, R. D., Clement, C., & Mawby, R. (1986). A study of the development of programming ability and thinking skills in high school students. Journal of Educational Computing Research, 2(4), 429-458.
Lai, A. F., & Yang, S. M. (2011, September). The learning effect of visualized programming learning on 6 th graders' problem solving and logical reasoning abilities. In Electrical and Control Engineering (ICECE), 2011 International
Conference on (pp. 6940-6944). IEEE.
Leron, U. (1983). Structuring mathematical proofs. The American Mathematical
Monthly, 90(3), 174-185.
Lindh, J., & Holgersson, T. (2007). Does lego training stimulate pupils’ ability to solve logical problems?. Computers & education, 49(4), 1097-1111.
Manches, A., O’Malley, C., & Benford, S. (2010). The role of physical representations in solving number problems: A comparison of young
children’s use of physical and virtual materials. Computers &
Education,54(3), 622-640.
Oluk, A., & Saltan, F. Effects of Using the Scratch Program in 6th Grade Information Technologies Courses on Algorithm Development and Problem Solving Skills.
Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc..
Pea, R. D. (1983). Logo Programming and Problem Solving.[Technical Report No. 12.].
PW de Gids. (2016, 01 juni). Manager snapt zelfsturing (nog) niet. PW de Gids. Geraadpleegd van http://pwdegids.nl/artikel/manager-snapt-zelfsturing-nog/ Thijs, A., Fisser, P., & Hoeven, M. van der (2014). 21e eeuwse vaardigheden in het
curriculum van het funderend onderwijs. Enschede: SLO.
Voogt, J., Fisser, P., Good, J., Mishra, P., & Yadav, A. (2015). Computational thinking in compulsory education: Towards an agenda for research and practice. Education and Information Technologies, 20(4), 715-728.
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, & Kafai, Y. (2009). Scratch: programming for all. Communications of the
ACM, 52(11), 60-67.
Selwyn, N. (2011). Education and technology: Key issues and debates. A&C Black. Sipitakiat, A., & Nusen, N. (2012). Robo-Blocks: designing debugging abilities in a
tangible programming system for early primary school children. In Proceedings of the 11th International Conference on Interaction Design
Sutherland, R. (1994). The role of programming: towards experimental mathematics. Didactics of Mathematics as a Scientific Discipline–The State of
the Art, 177-187.
Sullivan, F. R. (2008). Robotics and science literacy: Thinking skills, science process skills and systems understanding. Journal of Research in Science
Teaching, 45(3), 373-394.
Uttal, D. H., Scudder, K. V., & DeLoache, J. S. (1997). Manipulatives as symbols: A new perspective on the use of concrete objects to teach mathematics. Journal
of applied developmental psychology, 18(1), 37-54.
Wang, H. Y., Huang, I., & Hwang, G. J. (2014, August). Effects of an integrated Scratch and project-based learning approach on the learning achievements of gifted students in computer courses. In Advanced Applied Informatics
(IIAIAAI), 2014 IIAI 3rd International Conference on (pp. 382-387). IEEE.
Wing, J. M. (2006). Computational thinking. Communications of the ACM,49(3), 33-35.
Wing, J. M. (2008). Computational thinking and thinking about computing.Philosophical Transactions of the Royal Society of London A:
Mathematical, Physical and Engineering Sciences, 366(1881), 3717-3725.
Wing, J. M. (2016). Computational thinking, 10 years later. Microsoft research blog. Geraadpleegd van https://blogs.msdn.microsoft.com/msr_er/2016/03/23
/computational-thinking-10-years-later/
Wyeth, P. (2008). How young children learn to program with sensor, action, and logic blocks. The Journal of the learning sciences, 17(4), 517-550.
Begrippenlijst
Computational thinking: een manier van denken waarbij er gebruik wordt gemaakt van computationale concepten en strategieën om problemen op te lossen.
Computationele concepten: ideeën die vaak binnen het programmeren worden gebruikt (patronen, herhalingen, voorwaarden, functies, variabelen).
Computationele strategieën: manieren die gebruikt kunnen worden bij het oplossen van problemen bij het programmeren (algoritmes, decomposities, debuggen, abstractie)
Computationeel perspectief: het beeld dat iemand van technologie heeft of het beeld dat iemand van zichzelf in relatie tot de technologie heeft
Traditioneel programmeren: het schrijven van een programma door een reeks instructies in code-taal te schrijven
Visueel programmeren: het ‘schrijven’ van een programma door visuele representaties van stukjes codes aan elkaar te koppelen
Tastbaar programmeren: het ‘schrijven’ van een programma door concrete materialen op een bepaalde volgorde te plaatsen en op deze manier een reeks instructies aan een robot wordt doorgegeven