Att illustrera datalogiskt tänkande är inte helt lätt, men det kan göra mycket för att konkretisera koncepten. Blev därför glad när jag hittade Computational Thinking Illustrated. Siten har varit otillgänglig ganska länge, men nu har jag äntligen kommit åt den.
Illustrationerna av datalogiskt tänkande utgår från koncept från den nya datavetenskapskursen Computer Science Principles, som är på gång på high school-nivå i USA (aningen mer om detta senare) och tar upp:
- Analyzing effects of computation (Computatinal thinking practices)
- Producing computational artifacts (Computatinal thinking practices)
- Using abstractions and models (Computatinal thinking practices)
- Analyzing problems and artifacts (Computatinal thinking practices)
- Communicating processes and results (Computatinal thinking practices)
- Working effectively in teams (Computatinal thinking practices)
- Decomposition (Exploring computational thinking)
- Pattern recognition (Exploring computational thinking)
- Pattern generalization and abstraction (Exploring computational thinking)
- Algorithm design (Exploring computational thinking)
Det är alltså en uppdelning i ”computational thinking practices” och ”exploring computational thinking”, som delvis mappar mot det jag skrivit tidigare om datalogiskt tänkande.
Alla illustrationer med förklaringar finns att ladda ner som en PDF-fil om man inte vill bläddra runt en och en på deras site. Illustrationerna är Creative Commons Erkännande-DelaLika, så de är fria att använda så länge du erkänner källan och om den ändrats, samt att du själv använder samma licens när du sprider materialet vidare. Så nu har jag till slut lagt upp en CC-licens här på bloggen.
Två favoriter: Använda abstraktioner och modeller samt algoritmdesign
Jag gillar de flesta av illustrationerna (dock inte riktigt alla) – dessa två är jag extra förtjust i. Det handlar om hur de fångat koncepten, känslan i bilden och beskrivningarna av koncepten. Har även lyft in delar av dessa beskrivningar nedan.
Från beskrivningen av illustrationen för att använda abstraktioner och modeller:
In a complex system, we might use many different models and make them work together. We might not even care if one part of the system was switched out for something else that can accomplish the same goal. We could say we’ve abstracted that part of the system. Carefully selecting the qualities we care about and ignoring the rest of the details is the key to abstraction. When we deliberately separate our system into parts that can be individually understood, tested, reused, and substituted, then we are creating new abstractions.
Från beskrivningen av illustrationen för algoritmdesign:
Sometimes we think of algorithms as being written down like a computer program, but an algorithm is more like an idea. The same algorithm can be written in many different computer languages. It’s the steps in the process that make an algorithm what it is.
In order to design an algorithm, or a dance, you need to understand your goal. You also need to understand the constraints of the system. Humans only have two feet, so a dance designed for humans has to work with that limitation. Computational systems have different kinds of limitations, such as the speed of the processors or the size of the memory or the amount of electricity they consume. Designing an algorithm that accomplishes specific goal within the constraints of the system is like creating an elegant dance that everyone else wants to learn.
Bakgrund till Computational Thinking Illustrated
Många har nog läst ”Så funkar det”-böckerna eller liknande när de var små, så även jag. Det är denna typen av illustrationer som de som skapat bilderna är ute efter, enligt denna korta bakgrundsbeskrivning. Det man utgick från för illustrationerna var de principer som är centrala för den nya amerikanska Advanced Placement-kursen CS Principles (som alltså är på gymnasienivå och även om den är tänkt att bredda rekrytering till datavetenskap så är den inte en kurs som alla kommer att gå) . Denna kurs är börjar ges 2016-2017, efter att ha gått på försök utan slutprov (se översikt över kursinnehåll).
Projektet startades genom en Kickstarter-kampanj 2011.
För övrigt, en av de som startade Computational Thinking Illustrated, Ben Chun, startade även ilearnedtoprogram.com, som jag tidigare skrivit om.