Data games – Spel på öppna data

Igår skrev jag om olika möjligheter att använda öppna data i skolan. En av utmaningarna med användandet av öppna data är att det kan vara svårt att sätta sig in i ett dataset och att utforska det på ett engagerande vis. Ett sätt att komma förbi utmaningarna i datamängdens storlek och komplexitet kan vara genom spel, spel byggda på öppna data.

Data games – dataspel i ordets rätta mening

Sedan något år tillbaka har min gode vän Julian Togelius och jag byggt spel på öppna data, som vi kallar data games. Det började med att vi helt enkelt ville ha ett projekt tillsammans och det föll sig naturligt att kombinera mitt intresse för öppna data med hans för spel och speciellt att generera spelinnehåll automatiskt. Förutom några enstaka presentationer har vi mest skrivit och pratat om projektet på engelska, men nu blir det på svenska, förutom att jag skriver data games för att ordet dataspel inte ska blandas ihop med det mer generella datorspel.

Data games låter spelare fritt leka med data som beskriver verkliga företeelser, för att utforska och lära sig från dem. Detta innebär någon form av automatisk konvertering av data från externa källor till ett spelbart format.

Exempel på data games

Det första spelet som vi tog fram, Open Data Monopoly, går ut på att generera Monopolbräden från indikatordata (t ex hur trygga folk känner sig eller hur många som går ut nian) för brittiska kommuner. Vår tanke var att spelaren väljer ut ett antal indikatorer och själv viktar hur bra eller dåliga den är. Utifrån detta skapas en spelplan som tar dessa värdering som grund. Spelmomentet ligger alltså mer i att generera spelplanen än att spela Monopol och kan snarast ses som en form av visualisering.

topTrumpsCard-Finland

Open Trumps-kort

Ett antal spel har utvecklats av studenter vid IT-universitetet i Köpenhamn, där Julian har jobbat. Bland annat Open Trumps, som bygger på kortspelet Top Trumps. Här används dataset från FN och Världsbanken för att skapa kort för olika länder, som innehåller ett antal indikatorer (t ex tomatproduktion och förväntad livslängd). För att spelet ska vara roligt och spelbart måste algoritmen som skapar dem se till att inget av korten är allt för mycket bättre eller sämre än de andra. För att det ska gå bra för en i spelet så behövs en del tur, men också att man kan något om de länder som ingår och hur de förhåller sig till andra länder vad gäller de indikatorer som ingår. En initial utvärdering visade att studenter som spelat Open Trumps lärde sig något om länderna i kortlekarna, men också att det blev en hel del diskussion om vad indikatorerna innebar och om det var bra eller dåligt att ha ett högt värde på dem.

BarChartBall

Vi har flera andra spelprototyper som går ut på att ta ett existerande spelkoncept och bygga upp det med öppna data. I BarChartBall är utgångspunkten en annan: vi gör stapeldiagrammet till spelplanen. Målet är att använda staplarna för att putta ut bollen till högerkanten. Genom att välja en annan indikator så ändras spelplanen och genom att känna till något om länderna så blir det lättare eller svårare att putta ut bollen. Vi skrev en kort artikel om BarChartBall.

Mer projekt kommer upp efter hand på data-games.org. Bland annat ska vi skriva mer om vårt senaste projekt, att skapa spel utifrån publikationsmetadata, som vi med stöd från KB snart genomfört tillsammans med två bibliotekarier på Malmö högskola, Jessica Lindholm and Jacob Andersson. Spelet, Abstranaut, har Anders Hartzen programmerat och Anders Thelin har gjort grafiken.

Vi ser också fram emot att fortsätta utforska lärandeaspekterna av data games i allmänhet.

Att använda öppna data i skolan

Bild: "Leidseplein Amsterdam" från Het Nieuwe Instituut på Flickr. Inga kända copyright-begränsningar.

Bild: ”Leidseplein Amsterdam” från Het Nieuwe Instituut på Flickr. Inga kända copyright-begränsningar.

Gårdagens inlägg handlade om datalogiskt tänkande, ett begrepp där organisation och analys av data ofta ingår. Det är mycket prat om data idag, till exempel ”big data” och analyser som kan göras med stora och små datamängder.

Öppna data

Det talas också en hel del om öppna data, ofta underförstått öppna offentliga data. Det handlar alltså om data som offentliga organisationer gör tillgängligt för återanvändning och analys. Det kan till exempel handla om miljödata, sociala frågor eller kulturarv. Förutom det nationella perspektivet kan man ta det lokala, där flera kommuner (t ex Örebro, Helsingborg och Stockholm) tillhandahåller data samt det internationella, med data från t ex FN och Världsbanken.

Vill du läsa mer om öppna data? Här är några startpunkter:

Öppna data i skolan

Öppna offentliga data kan vara en källa för skolan på olika vis, som att göra egna analyser av de offentliga institutionernas data, att använda olika visualiseringsverktyg eller att använda tillgängliggjort bildmaterial.

Det mest ”avancerade” sättet är att gå till källmaterialet och göra en helt egen analys, vilket man på detta vis kan göra inte bara med textmaterial. Detta kräver lite mer och ska det göras från grunden (antingen i Excel eller på mer programmatisk väg) får man komma upp i de högre årskurserna. Ett sådant arbete kan relatera till datajournalistik. Man kan också använda formatet Data Expeditions, där olika personer har olika roller (som scout, storyteller och analytiker) i att skapa en berättelse utifrån data.

För att sänka tröskeln kan olika visualiseringsverktyg användas, som GapMinder (tänker att många har kommit i kontakt med detta genom Hans Roslings presentationer) och SVT Pejl.  Om att använda interaktiva visualiseringar i skolan kan man läsa en hel del på omvärld.se, både inspiration och lärresurer.

Ett tredje sätt är att använda bilder med öppna licenser (t ex Creative Commons). Det kan återigen handla om att gå till källan för att göra egna analyser, men man kan också arbeta med att bygga vidare på materialet i former av mashups och memer (som Kristina Alexandersson pratat om – hon har även skrivit allmänt om att använda Creative Commons i skolarbeten och om återanvändande av kulturarvsmaterial). Kan tipsa om denna gemensamma ingång för att söka Creative Commons-material från flera siter som Flickr, Google och Europeana.

Jag letar efter fler möjligheter och exempel, tar tacksamt emot tips!

Ett första inlägg om datalogiskt tänkande

Innan #blogg24 (dvs blogga varje dag 1 till 24 december) började, dvs precis innan jag startade denna blogg, gjorde jag en lista med möjliga blogginlägg, för att se att jag skulle ha en sportslig chans att faktiskt producera tillräckligt många inlägg. Nu har det visat sig att själva skrivandet i sig har gett upphov till en hel del nya idéer, och att jag haft mindre tid att skriva än jag tänkt, men jag har trots allt utgått en hel del från den listan.

En av de första sakerna som jag skrev ner var ”computational thinking”, vilket jag tycker bäst översätts till datalogiskt tänkande (även om jag tror att termen kan vara avskräckande). Denna term är också den jag oftast ser och ger en del google-träffar. Har nu tänkt ta mig tid att skriva detta inlägg – för jag tänker mig att det skulle ta mer tid än de andra inläggen – i nästan tre veckor. Det blir aldrig att jag har denna längre mängd tid som jag tänker mig att jag behöver. Så jag får börja med ett inlägg idag, och bygga vidare på senare.

Vad ingår i datalogiskt tänkande

Termen computational thinking fick ett bredare genomslag genom Jeanette Wings artikel med samma namn. Den argumenterar för att dessa förmågor är användbara utanför datavetenskapen och dels exemplifierar vad det är. Till exempel handlar det konceptuell förmåga, det är mer än att ”bara” programmera. Det kompletterar och kombinerar matematiska och ingenjörsmässiga kompetenser. Artikeln är från 2006 och sedan dess har det kommit en del förslag på vilka förmågor som ingår i begreppet.

Google har en del resurser kring datalogiskt tänkande, där de tar upp följande problemlösningsförmågor som delar av begreppet:

  • Att bryta ner ett problem i mindre delar (decomposition)
  • Mönsterigenkänning (pattern recognition)
  • Mönstergeneralisering och abstraktioner (Pattern Generalization and Abstraction)
  • Algoritmdesign

Jag tycker inte att de förmågor som Google tar upp täcker allt jag skulle vilja se som en del av begreppet. Den definition som jag gillar bäst hittills är från International Society for Technology in Education och Computer Science Teachers Association, som föreslår att datalogiskt tänkande är problemlösningsprocesser som utmärks av (men inte begränsas till):

  • Formulera problem som gör att datorer och andra verktyg kan hjälpa oss lösa dem
  • Logiskt organisera och analysera data
  • Representera data genom abstraktioner som modeller och simuleringar
  • Automatisera lösningar genom algoritmiskt tänkande
  • Identifiera, analysera och implementera möjliga lösningar med målet att få den mest effektiva kombinationen av steg och resurser
  • Generalisera och överföra dessa processer till en variation av problem

De kopplar även detta till ett antal attityder, vilket jag tycker är en viktig del:

  • Trygghet inför att hantera komplexitet
  • Uthållighet inför svåra problem
  • Tolerans för tvetydighet
  • Förmåga att hantera öppna problem
  • Förmågan att kommunicera och samarbeta för att uppnå gemensamma mål och lösningar

Till slut, två bilder över vad som ingår i datalogiskt tänkande, som överlappar med det som listats ovan, men också tillför och förenklar, från Barefoot Computing och Somerset.

Några fler lästips

Computer Science Teachers Association har en sida med resurser kring datalogiskt tänkande, bland annat denna PDF som kopplar de olika förmågorna till olika ämnen och årskurser. International Society for Technology in Education har också en sida med resurser.

Datalogiskt tänkande = Data + Logik + Tänkande av Fredrik Heintz, Linköpings universitet, som har ett intressant projekt om datalogiskt tänkande.

Presentation om datalogiskt tänkande och skaparkultur i skolan av Peter Parnes, Luleå tekniska universitet, som bland annat kört workshopserie om CS4HS i Luleå och som också har ett intressant projekt om datalogiskt tänkande och maker-kultur i skolan.

Det får vara allt för denna gång, men mer finns att hämta i min Evernote.

Elektroniskt julpyssel

Jag har tidigare skrivit om programmeringsbaserat julpyssel och igår fick jag mina Circuit Sentiments, vilket ju leder oss osökt in på mer elektroniskt julpyssel. Jag blev nyfiken på vad folk hade gjort för kul, här är tre julpyssel med lite olika svårighetsnivå (och ett som innehåller lite programmering) som jag blev sugen på.

Julgransprydnad: Robot med lysande ögon

Bild från makezine.com

Bild från makezine.com

Jag gillar inledningen på instruktionen för den söta roboten med ondskligt lysande ögon: ”Crafting under pressure is irresistible”. Bakgrunden är alltså en utmaning att skapa en julgransprydnad på kort tid. Fördelen med tidspressen är att det blir en relativt enkel julgransprydnad: robotdelar utskurna i papp, målade, med två dioder kopplade till ett litet batteri.

Julgransprydnad: Twittrande julgranskula

Bild från Instructables.

Bild från Instructables.

För den som lite diskret vill hålla sig borta från telefonen under släktkalaset men inte kan släppa sociala medier kan en sådan här wifi-uppkopplad julkula vara något att hänga i granen (ledsen, det gick inte att låta bli…). Det behövs bland annat en Arduino och en liten LCD-skärm. Instruktionen innehåller kodfiler, både för att prata med Twitter och för att lägga på Arduinon.

Kräver elektronikkunskap och programmerings know-how, men verkar inte allt för komplicerat. Det verkar dock som att man behöver ha tillgång till en server för att göra projektet (för Twitter-kopplingen), vilket kanske kan vara ett hinder för en del.

Lysande paket under granen

Bild från makezine.com

Bild från makezine.com

Om man vill att ens paket ska synas lite extra under granen kan man skapa ett lysande paket. För att man ska slippa sladdarna så använder den en induktionsladdare. Enligt makezine.com så är projektet ”easy”, men eftersom jag är elektroniknovis så framstår det som görbart (eventuellt med lite hjälp) men som en utmaning. En ganska stämningsfull utmaning.

Fynd i brevlådan: Circuit Sentiments och böcker

Brevlådan gav fin utdelning idag. Längtar efter pyssling och läsning, får se om det kommer att generera fler #blogg24-inlägg (dvs, om jag hinner innan julafton).

Circuit Sentiments – byggsatser med elektroniska julkort

circuit-sentiments-arrives

Tidigare i höstas stödde jag en Kickstarter-kampanj, Circuit Sentiments, och idag fick jag ett paket med tre kit: Rudolf, Snöstjärna och Julgran. Verkar myspyssligt och lagom för en elektorniknybörjare som jag. Läs mer om projektet och kolla instruktionerna (som eventuellt inte är helt färdiga ännu).

Computational Fairy Tales, Best Practices of Spell Design och Lauren Ipsum

computationalFairyTalesplus2moreNu har böckerna som jag skrev om för ett tag sedan äntligen kommit, så jag hoppas snart återkomma med recensioner av dessa.

 

”Making” i pepparkaks-tema: 3D-skrivare och laserskärare

De senaste åren har ”Maker”-rörelsen vuxit mycket. En startpunkt är när tidskriften Make börjar ges ut 2005, men den fångade ju upp en existerande rörelse. Det handlar om att bygga saker, gärna där man kombinerar elektronik, programmering, snickeri, metallarbete, osv.

Just nu finns det två artiklar på engelska Wikipedia: Maker culture och Maker movement, får se när någon tar tag i att sammanfoga dem. Jag har inte hört någon svensk term som jag riktigt tyckt funkat, och så ser det nog ut på fler språk.

Hur som helst, denna inlägg skulle ju handla om pepparkakor…

Bygga pepparkakshus med laserskärare

vonkonow-laser-300x208

Bild från vonkonow.com.

För att skapa mer avancerade pepparkakshus kan en laserskärare vara bra att ha till hands, även om det tydligen kan osa en del.

Man kan till exempel göra som på bilden ovan, och börja med att skapa en 3D-modell över sitt sommarhus (råkar vara en svensk). Det finns fler som tänkt likadant, bland annat ett makerspace i Ohio, som ger tipset att provskära i papp först för att se att modellen funkar.

Vill man göra annat än hus kan man ladda ner instruktioner för att göra en pepparkaksbro (efter modell från Berlin) från Instructables.

Skriva ut egna pepparkasformar

escher-cookie-cutter

På Instructables finns även flera instruktioner för att skriva ut sina egna pepparkaksformar med 3D-skrivare:

En annan möjlighet är att använda cookiecaster.com. Där finns ett enkelt verktyg för att skapa formen och man kan antingen ladda ner filer för att skriva ut själv, eller beställa via dem.

Blir ju riktigt sugen, synd bara att vi bakade pepparkakor att vara oss en bra bit in på nästa år igår. Men detta borde väl vara utmärkta februari-projekt också?

(Behöver man inte fler projekt kan man beställa helt färdiga, charmigt nördiga formar från WarpZone Prints.)

Pepparkakor och programmering

Idag har det varit traditionsenligt pepparkaksbak med mamma. Vissa jag känner vill skära ut nya former och skapa nya alster varje gång. Jag är en pepparkaksbakare som gillar att använda pepparkaksformar (mamma och jag har en del…), återkomma till gamla favoriter och vara så effektiv så möjligt när jag stansar ut kakorna.

Pac man-pepparkakor

För några år sedan hittade jag dessa Pac Man-formade formar, som det det blir en plåt eller två av. Spökena blir bra kakor, medan själva Pac Man-formen inte riktigt funkar utan sin kontext. (När jag köpte formarna fick man tre spöken, vilket är en underlig syn på hur man använder formar, men det blir ju fina bilder.)

Mer pac-man pepparkakor

Vad har då pepparkakor och programmering med varandra att göra? Kakformar och kakor är faktiskt en vanlig liknelse när man lär ut objektorienterad programmering (när man lär ut Java och Python, till exempel). Grundläggande inom objektorienterad programmering är koncepten klass och objekt, där en klass är en mall utifrån vilken man skapar ett eller flera objekt med en viss typ av egenskaper.  Det vill säga, en klass kan ses som en kakform från vilken man skapar objekt. Detta är inte det första man lär sig när man programmera, vanligtvis har man stött på variabler och funktioner/metoder först.

Liknelsen har några nackdelar, som att det vanligtvis är ganska lite skillnad mellan kakorna man stansar ut, medan objekt av samma klass tar flera olika värden för en viss uppsättning variabler som beskriver dess egenskaper.

Denna vecka: Obama skriver en rad kod och kodande elever i P1

Dagens inlägg blir en samling länkar jag sparat på mig under veckan. Först några länkar som jag tror kan vara av bredare intresse:

Och så två artiklar som är intressanta för de som följer utvecklingen inom området programmering för barn och i skolan, som rör code.org:s genomslag och att programmering införs i skolan i Storbrittanien:

I morgon blir det pepparkaksbak, vilket också är ett passande tema för ett blogginlägg.

Att illustrera algoritmer med dans

Att delta i #blogg24, dvs skriva ett inlägg fram till julafton, har inte underlättats av det myckna VAB:andet de senaste två veckorna. Så när jag sitter och funderar på vad jag kan göra för lätt inlägg en trött fredagkväll som denna, så kommer jag att tänka på de fina filmerna som använder folkdans för att illustrera olika sorteringsalgoritmer.

Bubbelsortering som dans

Bubbelsortering är en av de enklare sorteringsalgoritmerna att förstå, men den är inte så effektiv. I den här ”dansillustrationen” finns det lite extra information för att kommunicera själva sorteringen: dels dansarnas nummer, som ska vara i rätt ordning när de är färdiga, dels vilken plats i en array (eller fält som man ibland säger på svenska) som dansaren representerar. Den här algoritmen funkar så att man gör parvisa jämförelser mellan (i detta fallet) dansarnas nummer – om dansaren till vänster har ett högre tal byter de plats. Om dansarnas nummer inte är i rätt ordning när man kommit till dansaren längst till höger börjar man om med parvisa jämförelser från vänster igen. Det tar nästan en minut innan dansarna kommer till själva sorteringen.

Algoritmiskt tänkande – en del av datalogiskt tänkande

Att automatisera lösningar genom att tänka algoritmiskt är en beståndsdel av datalogiskt tänkande (computational thinking). Detta vore ett bra tillfälle att skriva lite mer om algoritmer, men det får vänta till en annan gång.

Förutom att algoritmiskt tänkande är bra för problemlösning så är den även viktig för att förstå vår omvärld. En känd algoritm är Googles PageRank (även om denna numer bara är en av många faktorer som används för att avgöra vilka sökträffar som visas), ett annat är Facebooks EdgeRank och dess efterföljare – båda har en central roll i vilken information vi får ta del av.

Grace Hopper

Anledningen till att det är denna vecka som är Code Week med Hour of Code är att Grace Hoppers födelsedag infaller denna vecka – nämligen den 9 december (så jag borde skrivit detta för någon dag sedan…).

Vad gjorde Grace Hopper?

Grace Hopper har varit viktig för datavetenskap på flera sätt, bland annat för att hon skrev den första kompilatorn (ett datorprogram som översätter från ett högnivåspråk som Java till ett mer hårdvarunära språk). Ett av de äldsta programmeringsspråken som fortfarande används, COBOL, bygger på ett programmeringsspråk som Hopper utvecklat, som var nyskapande genom att det använde engelska termer snarare än matematisk notation. Hon kopplas ofta samman med frasen ”debugging”, och även om hon inte var först med att använda ordet, så är den historien väldigt känd.

Ett av mina favoritklipp på YouTube

Förutom dessa meriter är hon en rolig och kvick dam, som man kan se på denna gamla intervju från Letterman.

Mer?

grace-hopper-google-doodle

Vill du veta mer om hennes liv så finns där flera biografier, men också en fin illustration av hennes liv i serieform. Google gjorde en Doodle förra året för att fira hennes 107-årsdag.

Hittade även en läraktivitet från CSEdWeek som utgår från Grace Hopper och fokuserar på debuggning i Scratch.