månadsarkiv: december 2014

Att lära ut programmeringskoncept med fiktionens hjälp

Jag var tretton år när Sofies värld kom ut på svenska. Även om jag inte minns så mycket av handlingen så minns jag att jag gillade idén om att lära mig om filosofi och filosofihistoria genom en roman.

De senaste åren har det kommit ut ett antal böcker för barn och ungdom som handlar om programmering. En del rena programmeringsböcker (som Python for Kids och Learn to Program with Scratch), men också sådana som använder berättelsens form för att tillgängliggöra koncept som algoritmer, rekursion och länkade listor.

Den bok som kanske fått mest uppmärksamhet (även DN har skrivit en artikel) har faktiskt inte kommit ut ännu: Hello Ruby av Linda Liukas. Boken drog in drygt $380.000 på Kickstarter och väntas komma ut hösten 2015.

Boken Lauren Ipsum

Lauren Ipsum, skriven av Carlos Bueno och illustrerad av Ytaelena Lopez, är en barnbok för att lära ut datavetenskapliga koncept. Bilderna är charmiga och vad jag kan se på recensionerna på Amazon så går den i alla fall hem hos 9-åringar. Några av bokens kapitel kan man läsa på bokens hemsida.

Böckerna Computational Fairy Tales och Best Practices of Spell Design

Jeremy Kubica har skrivit två böcker med liknande teman: Computational Fairy Tales och Best Practices of Spell Design. Computational Fairy Tales går igenom hyfsat avancerade datavetenskapliga begrepp genom att läsaren följer princessan Ann när hon ska rädda kungariket från Mörket. Enligt recension på Wired så passar boken för en alla från gymnasieåldern, eller yngre med guidning av vuxen eller fallenhet för ämnet. Best Practices of Spell Design handlar om goda vanor vid programvaruutveckling, som testning, kommentarer och variabelnamn. Författaren har även en blog där det verkar finnas rätt mycket material, som eventuellt är snarlikt det som finns i böckerna.

Kopplingen till magin och trollformler är ett inte helt ovanligt grepp. Den görs bland annat i Code Crafter, som får lite mer blandade recensioner än böckerna ovan på Amazon.

Dessvärre så finns böckerna inte på svenska.

Jag har länkat till Amazon ovan, eftersom det finns mer information om böckerna där än på t ex Adlibris och Bokus, där böckerna också finns att köpa.

Jag har ännu inte läst någon av dessa, men tänker köpa några av dem och återkomma.

Primo – programmering för de yngsta

Den här upptäckte jag för bara någon vecka sedan och blev kär direkt! Primo lär yngre barn en av grunderna i programmering – att logiskt sätta samman sekvenser – genom att använda fyra typer av klossar, med olika färg och form. Målet är att guida en leende robot till sitt mål (dess hem) genom att placera klossarna i en fungerande ordning i en ”gränssnittslåda”.

Vad är det då som gjorde att jag föll för Primo?

  • Den ger en tydlig inbyggd visualisering av instruktionen (till skillnad från till exempel Bee Bot) – vilket jag tänker mig bland annat underlättar felsökning.
  • Man kan lägga till en funktion, så att ett visst mönster kan upprepas flera gånger.
  • Det är något visst med att den är gjord i trä.
  • Den är open source och bygger på Arduino – så jag kan bygga en egen. Instruktionerna har ett intressant bakgrundsavsnitt också. Jag kommer att behöva lära mig lite nya skills för att bygga en, men en utmärkt anledning att bli medlem i Fabriken på Stpln.

Man kan så klart även köpa en färdig. Den kostar drygt 200 euro och levereras i början av nästa år  (det verkar som att de som deltog i deras Kickstarter inte har fått sina ännu).

Alla ska koda?

För någon vecka sedan var det Geek Girl Meetup Öresund på Media Evolution City. Ett utmärkt tillfälle att prata om programmering i skolan, och givet forumet en liten twist om varför det är förhållandevis få kvinnor som läser till och arbetar som programmerare (och hur vi kan ändra det). En del av problemet är att många som läser datavetenskap sedan inte stannar kvar inom branschen, men det är inte det som jag fokuserar på.

Jag tror att om fler kommer i kontakt med ämnet på ett genomtänkt och mångfacetterat vis som en del av grundskolan, så kommer det att få stort genomslag. Det är dessutom väsentligt ur ett demokratiskt perspektiv, för att förstå samhället och de system som vi använder dagligen.

Det är idag förhållandevis många som arbetar för att barn ska programmera, och det finns många olika sätt att börja, till exempel:

  • Helt utan datorer, genom att barnen ”programmerar” sin förälder enligt ett begränsat instruktionsset.
  • Med Primo och Bee Bot lär man sig bygga enkla program för att styra en robot, till exempel genom en enkel labyrint.
  • code.org, som har flera olika programmeringsintroduktioner och som kör kodtimmen 8-14 december i år.
  • Scratch – ett populärt grafiskt verktyg för att lära sig programmera genom att bygga spel och berättelser.

Men, i många fall så sker detta genom fritidsaktiviteter. Inget ont om dessa, de är ofta drivna av engagerade volontärer. Min bild är dock att det ofta är de som redan på ett eller annat vis skulle komma i kontakt med programmering som nås av dessa fritidsaktiviteter. Därför tror jag det är viktigt att programmering kommer in i skolan. Just nu är jag inne på att det främst bör ske genom att integrera det i de ämnen som redan finns, snarare än som ett eget ämne. Dels för att det finns kopplingar till alla skolans ämnen, i olika utsträckning, dels för att det blir mindre sårbart än om ett barns bild av programmering formas av säg en lärare och en kurs i en viss årskurs. Här ska det bli spännande att se vad Karin Nygårds och Terese Raymond kommer fram till på Teacherhack, där de kommer att gå igenom hur programmering och digitalkunskap kan förankras i läroplanen.

Förutom att se bortom fritidsaktiviteter och teknik, behöver vi också se bortom kod och programmering (därav frågetecknet i rubriken, bland annat). Detta genom att titta på det större begreppet datalogiskt tänkande (eng. computational thinking) som handlar om koncept och angreppssätt som är en del i att bygga mjukvara, men som också är användbara i många andra sammanhang. I presentationen har jag med en bild som illustrerar vad som kan ingå i begreppet (bilden är från Barefoot Computing). Jag planerar att skriva mer om detta under december.

Det kom många intressanta frågor under presentationen och ännu mer diskussion på slutet. Jag avslutade med att fråga efter

  • kontakt med lärare och skolor
  • om någon vill dra igång Geek Girl Mini Öresund med mig
  • och om någon vill köra en omgång av Coursera-kursen Tinkering Fundamentals med mig efter jul (den gick i somras och går igen nästa sommar, men har man ett socialt sammanhang och inte behöver intyget så hindrar ju inget att man kör den när man vill)

Jag fick mer respons än jag väntat mig! På torsdag kör vi en första planeringslunch om Geek Girl Mini Öresund.

En början

Här tänker jag skriva om programmering och datalogiskt tänkande (det engelska ordet, computational thinking, är betydligt mer etablerat), i skolan, med barn och i allmänhet. Det blir nog även lite om maker-rörelsen och allmänna nörderier.

Passar på att göra #blogg24 – det passar väl i tiden för mig att komma igång med min blogg (tack för tipset Ida).

Vem är jag? Jag avslutar just en anställning som lektor i datavetenskap på Malmö högskola. Nu vill jag arbeta för att programmering ska in i skolan, eftersom jag tycker att datalogiskt tänkande och det som hör till är verktyg som alla i alla fall ska ha kommit i kontakt med.

Till slut, min programmerings-”origin story”: Jag började inte programmera förrän jag började läsa datavetenskap vid Lunds universitet, vilket jag gjorde främst för att jag ville läsa kognitionsforskning på D-nivå (och tänkte att datavetenskap nog var nyttigare än bara psykologi eller filosofi, som det också blev en del av). Det blev en kandidat i datavetenskap, och jag undrade varför jag aldrig föll för programmering när jag var yngre. Stötte på det i sjuan i USA, men det gav inte mersmak (har funderat en del på vad det berodde på – min bild är att vi inte gjorde något som var problemlösande eller utmanande – jag gick å andra sidan bara halv kursen pga flytt). Försökte mig också på AMOS på Amigan (det införskaffades en Amiga 1000 någon gång på 80-talet), men kom aldrig riktigt igång – ingen jag kände höll ju på med något sådant. När jag väl lärde mig att programmera så tyckte jag att det var något som jag gärna ägnat mer tid åt under min tonår.