Waar moet je beginnen?
Effectief leren programmeren
“Mevrouw, het boek is enorm dik. Kunt u het niet allemaal even voor doen? Dan kijken wij wel mee en zo leren wij het écht sneller.” Dit is één van de opmerkingen die zowel leerlingen als studenten maken. Uit ervaring en diverse onderzoeken, waaronder het onderzoek van Dunlosky (Dunlosky, Rawson, Marsh, Nathan, & Willingham, 2013), blijkt echter dat het passief aanschouwen van een docent die een stuk code schrijft niet leidt tot kennis. Als studenten geen ervaring hebben met het bedenken van codes, zullen zij niet in staat zijn om de toets te halen. Daarom vind je in dit document geen oplossingen voor opdrachten, maar een routekaart die uitlegt hoe je Python kunt leren programmeren.
“Hoe dan? Op welke manier kan ik dan het beste leren programmeren?”
Leerstrategie
Volgens Dunlosky bestaan er diverse leerstrategieën die variëren in hun effectiviteit. Maar hoe weet je welke strategie het meest geschikt is voor jou? Een van de besproken strategieën is elaboratie, waarbij de student zichzelf voortdurend vragen stelt over de leerstof, op zoek gaat naar verbanden en controleert wat hij denkt te weten. De specifieke vragen die je jezelf stelt bij elaboratie, zijn deels afhankelijk van de onderwerpen die je bestudeert. In het geval van het programmeren in Python zijn dit bijvoorbeeld vragen als: hoe werkt dit stukje code? Waarom gaat de robot naar links? Wanneer kan ik twee getallen bij elkaar optellen? Wat veroorzaakte die botsing precies? Wat is het resultaat van deze code?
Eerst de basis!
Ik vind dat studenten eerst moeten weten wat programmeren nu eigenlijk is, wat je ermee kunt en hoe je de basisprincipes onder de knie krijgt, voordat je aan de slag gaan met dikke boeken en opdrachten.
Dunlosky
Dunlosky, J. (2013). Strengthening the student toolbox. American Educator. https://www.academia.edu/29950252/Strengthening_the_Student_Toolbox_study_strategies_to_Boost_learning
Een aantal definities
Seymour Papert (1928 – 2016) een in Zuid-Afrika geboren Amerikaans hoogleraar wiskunde en pedagogie aan het Massachusetts Institute of Technology introduceerde het begrip “Computational Thinking (CT)”. (Papert, Children,Computers and Poweful Ideas, 1980). Papert was een pionier in kunstmatige intelligentie.
Jeanette Wing, hoogleraar aan de Universiteit van Pittsburgh, definieert Computational Thinking als volgt: “Computational thinking involves solving problems, designing systems, and understanding human behavior, by drawing on the concepts fundamental to computer science” (Wing, 2006 p.33).
De Stichting Leerplan Ontwikkeling (SLO) definieert computational thinking op haar website als volgt: “Computational thinking is het procesmatig (her)formuleren van problemen op een zodanige manier dat het mogelijk wordt om met computertechnologie het probleem op te lossen. Het gaat daarbij om een verzameling van denkprocessen waarbij probleemformulering, gegevensorganisatie, -analyse en -representatie worden gebruikt voor het oplossen van problemen met behulp van ICT-technieken en -gereedschappen” (SLO, 2015).
Als voorloper in het bijbrengen van Computational Thinking Skills wordt het Verenigd Koningrijk genoemd. Daar is programmeren sinds 2014 een verplicht onderdeel voor alle openbare scholen. Centraal in dat onderwijs staat het trainen van leerlingen in het oplossen van problemen in computer termen. Britse kinderen leren vanaf hun 5e jaar Computational Thinking. Dit wordt ook wel, in navolging van “begrijpend lezen”, “begrijpend programmeren” genoemd. Als kinderen op hun 11e jaar het primair onderwijs verlaten kennen ze twee computertalen en kunnen ze robots en veiligheidssystemen besturen. In het voortgezet onderwijs breiden zij hun kennis verder uit onder begeleiding van natuurkunde-, wiskunde- en IT-specialisten (Kennisnet, 2015).
Dat is toch wel even iets anders dan wat ik de afgelopen jaren in het Nederlands onderwijs heb meegemaakt.
Computational thinking
Ik heb het in deze routekaart over het leren programmeren in Python, maar welke programmeertaal je ook kiest, je zult eerst moeten trainen in wat men noemt ‘computational thinking’. Door op die manier te kunnen denken, ben je niet ineens een programmeur, maar je leert een probleem te ontleden in kleine deelproblemen. Je leert abstract na te denken. Dit doet een programmeur ook.
Papert
Papert, Seymour. (1980). Mindstorms: Children, Computers, and Powerful Ideas ..
SLO
SLO. 2015. Computational Thining. Geraadpleegd van http://curriculumvandetoekomst.slo.nl/21e-eeuwse-vaardigheden/digitale-geletterdheid/computational-thinking
Wing
Wing, Jeannette. (2006). Computational thinking. Communications of the ACM. ACM
Wat wordt er van jou verwacht?
Je hebt al interesse getoond door naar deze website te gaan, een goed begin! Het antwoord op de vraag wat er van jou wordt verwacht is eigenlijk heel simpel: wees altijd nieuwsgierig en leergierig, blijf zelf nadenken, geef niet op als je het even niet weet en vooral, begin gewoon! Deze eigenschappen zijn de sleutel tot het beheersen van de basis van programmeren.
Als ervaren ICT-docent heb ik gemerkt dat veel studenten vastlopen door dikke boeken te gebruiken met kleine lettertjes, te veel opdrachten in te weinig tijd en docenten die de opdrachten voor ze uitvoeren. Maar met deze routekaart kun jij op je eigen tempo de basis helemaal onder de knie krijgen.
Duizenden mensen zijn je al voorgegaan, dus ik weet zeker dat jij het ook kunt! Blijf geïnteresseerd en toegewijd, en voor je het weet ben je een echte programmeerexpert.
Veel succes en plezier gewenst!
Download de gratis routekaart
Wow, jouw routekaart is echt geweldig!
Dank je hartelijk voor jouw steun en laten we samen de magie van coderen blijven verspreiden!