Je probleemoplossende vaardigheden verbeteren met Computationeel Denken
Sinds kort hebben wij op het werk attributen ter ontspanning en vermaak (spelcomputer, karaoke, legpuzzels, etc.). Sim City en de Wii volg ik nog qua computerspellen, daarna ben ik afgehaakt. Karaoke? Het is al zo moeilijk om personeel te krijgen. Dan moet je mij dus niet laten zingen, dan jaag ik de rest ook nog weg. Legpuzzels dan. Ik puzzel eigenlijk een groot deel van de dag al. Ik schrijf binnenkort een stuk over mijn eerste zes maanden bij Stichting amsterdam&partners als data engineer, waarin genoeg gepuzzeld wordt.
Ik heb niets tegen legpuzzels in het bijzonder of in het algemeen. Ik denk dat puzzels een grote hulp kunnen zijn bij het trainen van je probleemoplossende vaardigheden. In ons dagelijks werk worden we allemaal geconfronteerd met problemen en uitdagingen. Problemen en uitdagingen die we moeten overwinnen om vooruit te komen.
Maar wat is precies een probleem? Naar mijn mening is het een situatie die als schadelijk of ongewenst kan worden beschouwd. En die moet worden aangepakt en/of opgelost. Het kan ook een vraag zijn voor onderzoek, overweging of oplossing.
Laten we teruggaan naar de legpuzzel. Ik gooi alle losse stukjes op tafel en begin te sorteren. De puzzelstukjes met een rechte rand aan één kant leg ik opzij, net als die met dezelfde kleur, patroon of vorm. Zo heb ik al snel meerdere stapels met puzzelstukjes. En vier puzzelstukjes met twee rechte randen, voor de hoeken.
Ik begin meestal met de buitenste rand van de puzzel. Ik leg de vier stukken met twee rechte randen op de hoeken en zoek dan de bijpassende stukken, zoeken en passen, zoeken en passen. Totdat de buitenste rand van de puzzel is geplaatst. Ik werk in een lus.
Het leggen van puzzels is een oefening in het oplossen van problemen, het manipuleren van bekende variabelen en het gebruiken van verschillende methodieken om tot een oplossing te komen.
Computationeel denken
Voordat ik vorig jaar aan de opleiding Cloud Engineer begon, heb ik een cursus Computational Thinking gevolgd via Coursera.
Computational thinking kwam aan bod tijdens de assessmentdagen van de Cloud opleiding. Heel interessant. Googelde het en kwam uit bij de cursus ‘Problem Solving using Computational Thinking.’
In deze cursus leer je computationeel denken. Het heeft op zich niets met programmeren te maken. Het kan je wel enorm helpen als je een programmeertaal wilt leren.
Het maken van legpuzzels is een geweldige manier om de denkprocessen te oefenen die computationeel denken gebruikt. Computationeel denken is een probleemoplossend raamwerk.
De stappen in computationeel denken
Probleemidentificatie: wat voor soort puzzel moet ik oplossen?
Decompositie: in deze fase wordt het probleem opgesplitst in kleinere componenten, zodat ze gemakkelijker kunnen worden aangepakt. Hoe meer je een probleem opsplitst, hoe eenvoudiger het is om het op te lossen.
Een puzzel zelf is een decompositie. De stukjes van de puzzel zijn de kleinere stukjes van iets groots. Deze fase stelt je ook in staat om een beter begrip te krijgen van de materie waarmee je wordt geconfronteerd door alle componenten nauwkeurig te identificeren.
Patroonherkenning: de stap waar overeenkomsten en trends binnen de materie worden geïdentificeerd. Als sommige problemen vergelijkbaar zijn (zowel binnen dit probleem dat wordt aangepakt als binnen problemen uit het verleden), is er een kans dat ze worden opgelost met vergelijkbare of eerder gebruikte technieken. Dit is vaak een belangrijk onderdeel om efficiënte oplossingen te creëren en je op de lange termijn tijd te besparen.
Een van de manieren om puzzelstukjes te sorteren, is door patronen te zoeken. Het samenvoegen van deze vergelijkbare stukjes, of je nu wel of niet weet hoe ze allemaal in elkaar passen, is vaak genoeg om doorbraken te veroorzaken in het oplossen van de puzzel.
Abstractie: dit omvat de identificatie van de belangrijkste componenten van de oplossing. In plaats van naar specifieke details te staren, vereist het de kracht om onnodige elementen van een probleem te scheiden, zodat jij je op de belangrijke elementen kunt richten.
Bij het abstraheren van een antwoord worden de stukjes gesorteerd. Patronen kunnen worden gezien. Met abstractie kun je problemen vanuit een macro bekijken in plaats van een microweergave.
Algoritmisch denken: er wordt een diepgaande, stapsgewijze reeks instructies gemaakt om de kwestie op te lossen. De maatstaf van een goed algoritme is als deze aan iemand anders wordt doorgegeven zonder dat daar extra uitleg voor nodig is. De wereld is gevuld met algoritmen; het volgen van kookrecepten, het bouwen van flatpack-meubels, het bezoeken van een fastfood drive-through of het betalen van je boodschappen bij een zelfbedieningskassa. Hoe meer je erover nadenkt, hoe meer je je realiseert dat je gewoon elke dag vele sets instructies opvolgt.
Bij puzzels zijn de aanbevolen puzzel-oplossende taken om stukjes opzij te leggen en stukjes te vinden door kleur-ondersteund of vorm-ondersteund denken. Er is een mentale checklist bij betrokken: heeft dit stuk een rechte rand? Wat is de kleur? Heeft het speciale eigenschappen?
Conclusie
Deze vijf stappen lijken lineair, maar de realiteit is dat ze op een iteratieve, niet-lineaire manier worden uitgevoerd.
In dit geval leiden meerdere wegen naar Rome!
Deze stappen vertegenwoordigen “dingen om over na te denken” terwijl je werkt aan het ontwikkelen van een plan om jouw probleem op te lossen.
Je kunt een puzzel oplossen met behulp van computationeel denken.
Plaats een Reactie
Meepraten?Draag gerust bij!