Geek Girl Mini Malmö

Inspirerade av Karin Nygårds Geek Girl Mini-initiativ körde vi för första gången en Geek Girl Mini träff i Malmö den 28 februari på Media Evolution City. Det var 28 tjejer i åldrarna 9-15 som deltog – vilket var något fler än vi hade tänkt. Efterfrågan var stor, platserna fylldes på bara någon dag.

Vi valde att köra två aktiviteter: programmering med Scratch och att bygga en ritrobot. Mer om dessa nedan. Träffen sponsrades av FooCafé, Electrokit och Appbyrån by Sigma.

Programmering med Scratch

Scratch-programmering på Geek Girl Mini i Malmö 28 februari 2015.

Scratch-programmerings-koncentration. Bild av Viktoria Blomberg Book.

Första halvan av eftermiddagen ägnades åt till Scratch. Ett fåtal av deltagarna hade provat på det innan, men de flesta var nybörjare. Efter en kort introduktion på projektor fick de köra fritt. Föreslagen aktivitet var att bygga ett labyrintspel, men de behövde inte begränsa sig till det. Under stor koncentration gick mentorerna runt för att svara på frågor.

Ritrobotar

Ritrobotar på Geek Girl Mini i Malmö 28 februari 2015.

Ritrobotarna anfaller. Bild av Viktoria Blomberg Book.

Under andra halvan av eftermiddagen byggdes ritrobotar (”scribbling machines”), en aktivitet som jag skrivit om tidigare då vi körde den med vuxna på Tinkering Fundamentals-kursen. Ritroboten byggs med enkla delar, viktigast är en vibrerande motor och tuschpennor (eller något annat som lämnar märken efter sig) – den rör sig i aningen oväntade mönster och skapar en teckning. Ett sympatiskt drag med denna aktivitet är att man inte blir riktigt färdig, man jobbar i små steg för att först få det att funka och sedan förbättra resultatet.

Utvärdering och framåt

Planeringsträff inför nästa Geek Girl Mini i Malmö.

Planeringsträff inför nästa Geek Girl Mini i Malmö.

Sedan Geek Girl Mini-träffen har vi arrangörer träffats två gånger, för att utvärdera det första tillfället och för att planera inför nästa träff.

Första tillfället var lyckat och uppskattat, och vi vill arrangera fler träffar. I den lilla utvärdering vi skickade ut till deltagarna (och som gav svar från ca en fjärdedel) tyckte de flesta att ritrobotarna var roligast. De vill gärna ha mer robotaktiviteter, men också gärna lära sig mer Scratch. Vi tyckte att det var bra att ha en programmerings/sitta framför dator-aktivitet, och en lite mer hands on-aktivitet, så det blir det även nästa gång. Något som vi vill förbättra är att skapa mer sociala kontaktytor mellan deltagarna, både under fikat och aktiviteterna, så att de lär känna varandra mer.

Jag väntar barn i april och kommer inte att vara med och arrangera fler träffar under våren, men det kommer andra att ta hand om.

Vem fixar Geek Girl Mini i Malmö?

När jag på Geek Girl Meetup i Malmö i höstas frågade om någon var intresserad av att arrangera Geek Girl Mini-träff med mig hade jag inte väntat mig att så många skulle engagera sig. De som varit aktiva i att planera och/eller vara mentorer på vår första träff:

  • Anna Cederquist – kör SKROT – workshops och konserter med instrumentbyggen, återvinning och uppfinning och gjorde Tinkering Fundamentals-kursen med mig (@AnnaCederquist)
  • Bodil Johansson – fotograf och sociala medier-konsult på Elakkanin (@elakkanin)
  • Carina Haeggblom – COO på Foo Café (@CarinaHaeggblom)
  • Elisabet M. Nilsson – lektor på K3, Malmö högskola (@elisabetmalmo)
  • Emy Spjuth – utvecklare på tretton37
  • Ester Ytterbrink – utvecklare på Trialbee och mentor på CoderDojo i Malmö (@esterytterbrink)
  • ‎Isabel Hernandez Humbla – utvecklare på Stratiteq
  • Johanna Bertilsson – studerar systemutveckling på Malmö högskola
  • Malin Christersson – doktorand i utbildningsvetenskap vid Lunds universitet med forskningsområde programmering på grundskolenivå, har site om matematik och programmering för barn
  • Viktoria Blomberg Book – digital produktionsledare på Good Old (@ViktoriaBlom)

Vill du också vara med och arrangera, vara mentor, etc.? Gå med i vår Facebook-grupp eller Google-grupp (Facebook-gruppen har något mer aktivitet).

Tinkering Fundamentals #4 – sydda kretsar

Till vår fjärde Tinkering Fundamentals-träff i Malmö provade vi att göra sydda kretsar med hjälp av ledande tråd, knappcellsbatterier, batterihållare och lysdioder (både ”vanliga” 5 mm LED och de LilyPad tillverkar). En person använde även en LilyTiny, en mindre LilyPad-komponent som kommer förprogrammerad med olika blinkmönster.

Vi utgick delvis från Exploratoriums aktivitetsguide från kursen. Resultatet blev lysande blomster, LilyTiny-experiment och en diodprydd slips.

tf-sy-blomma tf-sy-blomma2 tf-sy-lilypad tf-sy-slips

Lättare än papperskretsarna på många sätt

Anna och jag hade lagt papperskretsarna (där man använder självhäftande koppartejp för att skapa kretsen) innan de sydda kretsarna eftersom vi trodde att det skulle vara svårare med de sydda. Så visade sig inte vara fallet – jämfört med de sydda kretsarna så tror jag att det var mer frustration med att papperskretsarna och att deltagarna upplevde att de inte kom så långt som de hade tänkt. Delvis beror detta nog på att man har sytt för hand innan och har en bild av att det inte går så fort. Hanteringen av koppartejpen var också lite lurig, att få kretsen att sluta om man exempelvis klippt i den (tror att det är olika med olika tejp).

Kombinera Lilypads lysdioder med vanliga?

En sak som inte fungerade som jag hade trott var att det inte gick att kombinera Lilypad lysdioderna med de vanliga. Var för sig fungerade de, men parallelkopplade så lyste bara Lilypad-dioden. Lösningen när vi sågs var att använda två Lilypad-dioder i stället.

Det verkar som att Lilypad-dioden har ett inbyggt motstånd, så jag får testa om det går att kombinera dem om jag kopplar den vanliga dioden till motstånd av lämplig storlek. Jag går ju den här kursen för att skaffa mig förståelse för el (sådant som bara kom på ett teoretiskt plan i skolan, och därmed har glömts bort), så det är bra när saker inte fungerar, så att man får ett motiverande sammanhang att sätta sig in i hur det hänger ihop.

Tinkering Fundamentals #3 – vi gör lysande kort

Vid tredje tillfället för Tinkering Fundamentals gjorde vi lysande kort med hjälp av koppartejp och ytmonterade lysdioder. En pysslig aktivitet som krävde en del klurande och felsökande – med fördelen att man kan skapa både tämligen enkla kreationer samtidigt som man inspireras av betydligt mer komplexa skapelser (som Electronic popables av Jie Qi).

Vi utgick främst från instruktionerna från Exploratorium – denna aktivitet är dock lite mer öppen än de tidigare. Grundmaterialet är koppartejp, ytmonterade lysdioder och knappcellsbatteri – och så pappersmaterial. Det funkar fint att tejpa fast lysdioderna på koppartejpen, men vill man göra något mer beständigt så kan de lödas fast.

Våra första papperskretsar

tf-kort-flygplantf-kort-lodning

 

 

 

 

 

 

 

Jämfört med förra veckans aktivitet, ritrobotarna, så krävde denna betydligt mer koncentration och alla satt fullt upptagna under de två timmar vi sågs. Flera av oss blev inte färdiga… Tyvärr missade jag att dokumentera några av de skapelser som blev färdiga, t ex flygplanet till vänster

tf-kort tf-kort2

Ovan är mitt första experiment med papperskretsar. Här är tanken att koppartejpen inte ska synas i det färdiga kortet (även om den också kan användas som ett dekorativt element). Hade lite pyssel med att se till att tejpen var ledande hela vägen – nästa gång får vi ha med en multimeter för felsökningen. Sen behöver jag nog även kolla upp detta med hur man viker fina pappersblommor…

tf-kort-skrot

Anna använde tekniken för att skapa informationsmaterial om Skrotmusik för Skapande skola.

 

 

 

 

Mer om papperskretsar

Det finns inte så mycket information på svenska om hur man gör papperskretsar, men på engelska finns en hel del material att utgå ifrån:

  • Instruktioner från Make för hur man skapar ett mycket enkelt kort
  • Julkortsinstruktioner från Sparkfun – har mallar och detaljerade instruktioner för montering
  • Jie Qi (vars projekt länkas till ovan) har även circuitstickers.com, där man kan beställa klisterkomponenter som gör papperkretsarna enklare att tillverka men också mer avancerade
  • Och söker du på ”paper circuits” så finns det ännu mer

Tinkering Fundamentals #2 – ritrobotar

tf-scribblingbot-drawingNär jag provade att göra veckans aktivitet, en ”scribbling machine”, innan vi sågs så konstaterade jag att det dels var väldigt roligt och att man kunde fixa och justera en massa. Samtidigt så var jag lite orolig för att det skulle gå för fort att göra aktiviteten – men det hade jag inte behövt vara orolig för. Det var snarare så att Anna och jag fick avbryta deltagarna för att vi skulle hinna göra vår avslutande ”målning” och en avrundande diskussion.

(Tinkering Fundamentals? Läs mer om vår lokala kursomgång och om första aktiviteten.)

Vad är en ”scribbling machine”?

På svenska låter det nog bäst att kalla det för ritrobotar, även om jag kan tycka att det faller lite utanför definitionen av robot. Ritroboten byggs med enkla delar, viktigast är en vibrerande motor och tuschpennor (eller något annat som lämnar märken efter sig) – den rör sig i aningen oväntade mönster och skapar en teckning.

tf-scribblingbot

Vi använde dessa instruktioner, det finns även en Instructable från samma avsändare (dvs Exploratorium).

It’s alive!

Några tips och reflektioner:

  • I instruktionen står det att man ska använda ett ”broccoli band” för att fästa sladdarna vid batteriet. Detta är alltså en specifik storlek på ett tjockare gummiband som är vanligt i USA. Vi hittade inte gummiband i rätt storlek, det som funkade bäst var ett halvtjockt gummiband som kunde viras två gånger runt batteriet. Man kan använda maskeringstejp också, men det är enklare att sätta igång och stänga av sin ritrobot om man har ett gummiband.
  • Det är roligt att ge ritroboten en egen stil, så ha flera olika material att välja på för detta.
  • Ha ”testyta” vid samma bord som ni bygger – men det är även roligt att sätta upp en separat rityta för att köra den ”färdiga” ritroboten.

Det finns fler roliga ”robotar” i samma kategori, dvs sådana som rör sig genom vibrationer, eller vibrobots. En startpunkt kan vara en bildgooling på vibrobot.

Tinkering Fundamentals #1

I veckan körde vi vår första träff i Annas och min lokala omgång av Exploratoriums kurs Tinkering Fundamentals. Efter att deltagarna introducerat sig själva och vi sett en introduktionsfilm till aktiviteten körde vi igång. I kursens första aktiviteten experimenteras det med kretsar, utifrån deras aktivitetsguide Circuit Boards.

Det började med lödning

När vi sågs byggde vi inte ihop klossarna helt från scratch: komponenterna var redan fastskruvade och spikarna islagna. Så första steget blev att löda fast vid spikarna.

tf-lodning1 tf-lodning2

 

 

 

 

 

 

 

Kretsbygge

Deltagarna började med att koppla in en lampa. Sedan följde experiment med mer komponenter: fler lampor, motorer, osv (kopplat samman i serie och parallelt). Det gick åt en liten mängd aluminiumfolier för att göra strömbrytare.

tf-kretsar1

En liten liten läslampa

Det experimenterades vidare. En av kursens böcker användes tillsammans med en tilt-sensor och en liten diod för att skapa en läslampa, som tänds när boken öppnas (lite lite ljus, men det får väl ses som en prototyp – en alternativ användning är som en varning att någon obehörig öppnat boken 🙂 ).

tf-boklampa1 tf-boklampa2
Om man vill läsa lite

För att få lite bakgrundsinfo till kursen och om denna aktivitet kan man läsa

Tyvärr visar det sig att det inte längre går att gå med i 2014-versionen av kursen, så vill man komma åt materialet så får man vänta till detta års kurs som går 2015. Om du är väldigt nyfiken så kan du höra av dig till mig, jag har en del jag kan dela med mig av.

Tinkering Fundamentals i Malmö

Är du intresserad av att lära dig mer om “tinkering” och “making”, speciellt elektronik? Kanske är du även intresserad av hur man kan stödja lärande med hjälp av denna typ av aktiviteter? Du bidrar med det du kan och vi lär av varandra.

Vi som arrangerar kursen, Anna Cederquist och Marie Gustafsson Friberger, utgår från en online-kurs som heter Tinkering Fundamentals: A Constructionist Approach to STEM Learning. De som ligger bakom kursen jobbar på Tinkering Studio på museet Exploratorium i San Fransisco.

Målgrupper

Kursen har två överlappande målgrupper: (1) de som är intresserade av att komma igång med “tinkering” och “making” (två ord som är svåra att översätta till svenska), där kursen använder elektronik som huvudingång och (2) de som är intresserade av hur man kan man kan väcka intresse och förståelse för skapande och teknik genom just “tinkering”, och hur man bäst faciliterar denna typ av aktiviteter.

En "scribbling machine" – ritande maskin. Bild av Sally Wilson

En ”scribbling machine” – ritande maskin. Bild av Sally Wilson

Upplägg

Vi ses ett antal måndagar under förvåren kl 15:00 till 17:00, med start 26 januari. Vi följer kursens ungefärliga upplägg genom att göra följande aktiviteter:
26/1 – Kretsar och lär dig löda
2/2 – En ritande maskin, koppla in en motor och gör se vilka mönster den gör (se bilden).
9/2 – Vi syr kretsar och kollar in hur du kan kombinera LED-lampor på textil, Lily pad, mm,
23/2 – Papperskretsar med hjälp av koppartejp blir fina kort eller blommor av papper.
2/3 – Vad finns i gamla leksaker, gör något nytt av din gamla docka eller radiostyrda bil.
9/3 – Makey makey och intro till Arduino. Du kan styra allt du vill, motorer, ljus, ljud mm.
16/3 – Reservdatum

Plats: Malmö (återkommer om mer specifik plats)

Anmälan

Maila marie.gustafsson@gmail.com för att anmäla dig till kursen, senast torsdagen 22/1.

Material och kostnad

Vi fixar allt material som behövs och kommer att ta ett självkostnadspris för dessa när det är saker som ni tar med hem. Vissa aktiviter (t ex med Makey makey) så lånar vi ut grejer som vi arbetar med tillsammans, andra (som att göra papperskretsar) gör alla egna grejer. Totalt ca 200 kronor.

Om kursmaterialet

Kursen Tinkering Fundamentals “gick” sommaren 2014, och går igen sommaren 2015, men det finns inget som hindrar att man skapar ett konto hos Coursera för att komma åt materialet när som helst. För att faktiskt ta sig tid att göra övningarna och läsa och diskutera litteraturen (om man även är intresserad av det), tänker vi att tid i kalendern och personer att prata med är att föredra.

Mer om upplägget

Vi kommer att utgå från de mer handfasta aktiviteterna som utgör kursen. Förutom dessa finns det för varje vecka ett antal filmer: där man ser aktiviteten i Exploratriums studio, där de diskuterar designprinciper och pedagogiska aspekter, intervjuer med intressanta personer, och så filmer av mer instruktionskaraktär. Det finns även en del material att läsa. Hade man gått kursen på Coursera hade man diskuterat materialet via forum, men vi kör det “live”. Deltagarnas intresse avgör hur mycket vi fokuserar på de mer teoretiska delarna av kursen.

Varken Anna eller Marie har gått kursen innan, men vi har gjort en del liknande aktiviteter innan. Vi ser kursen som en möjlighet att lära tillsammans.

Anna Cederquist är musiker/pedagog/ljudtekniker/musikproducent. Arbetar med sång, blockflöjt, gitarr och ljuddesign mm, bland annat i SKROT-orkestern: www.skrotmusik.seIntresserad av olika sorters uppfinningar – och att lära mig intressant, ny och användbar teknik. Jag gör konstruktioner och konserter/föreställningar med musik, design, teknik, arduino, slöjd och uppfinning.

Marie Gustafsson Friberger är datavetare och engagerad i att fler ska få förståelse för datalogiskt tänkande, programmering och making. Skriver om detta på http://mariefriberger.se/.

Summering av #blogg24

Så har jag kommit till det tjugofjärde inlägget, sista inlägget för denna ”säsong”. En dag för sent eftersom det återigen blev vård av sjukt barn den 23/12 och eftersom jag prioriterade julfirande med familjen framför detta inlägg. Gav mig själv en ”deadline extension” (alla som någonsin skickat in något till en akademisk konferens, i alla fall inom datavetenskap, är mer än bekanta med detta) på det sista inlägget.

Summering av bloggens första tid

En del av idéerna jag spånade fram innan bloggen började.

En del av idéerna jag spånade fram innan bloggen började.

Att vara med i #blogg24 har lett till att min nystartade blog nu har 24 inlägg och mer text än vad jag nog hade föreställt mig när jag påbörjade den för mindre än en månad sedan. Att publicera något varje dag har tvingat mig att släppa saker innan de känns färdiga, vilket jag tror på det stora hela är bra. Jag började bloggen med att lista möjliga inlägg, där jag har en del kvar och en del idéer tillkom.

De två klart mest lästa inläggen var det om aktiviteter kopplade till kodtimmen och programmering som julpyssel. De minst lästa inläggen är de allra tidigaste och det från den 23/12, om varför programmering är roligt och svårt, som jag ännu inte hunnit dela.

Målgruppen?

Målgruppen för mina inlägg har nog varierat mer än vad jag tänkt mig. Jag är mest intresserad av att nå lärare som har eller vill ha kodaktiviteter som en del av sin undervisning, men jag har inte hunnit skriva så mycket praktiskt om detta. En del av mina inlägg har nog snarare haft karaktären av datalogisk allmänbildning, andra har nog snarast varit intressanta för de som redan arbetar aktivt för att kod och datalogiskt tänkande ska få en tydligare roll i skolan. Får se hur detta utvecklar sig framöver och om dessa kan samexistera.

Vad som förvånat mig

Så här ser det ut när jag pratar med mig själv, eller när fotoströmmen inte kommer igång tillräckligt fort.

Så här ser det ut när jag pratar med mig själv, eller när fotoströmmen inte kommer igång tillräckligt fort.

Jag har blivit glatt överraskad av hur mycket text och tankar det blivit. Det var detta som jag hoppats skulle vara resultatet av att tvinga mig att skriva varje dag under en halvlång tid (jag är däremot inte säker på att jag hade lyckats med, eller orkat #blogg100, dvs att blogga 100 dagar i rad), men på denna punkten blev det nog bättre än jag väntat. Är däremot förvånad över antalet inlägg jag vågat släppa utan någon vidare korrläsning.

Mina tidsuppskattningar för inläggen har sällan stämt – inlägg som jag trodde skulle gå fort (som att ”bara” sammanställa projekt/länkar kring ett tema) har ofta tagit förhållandevis lång tid, och ett fåtal som jag trott skulle ta mycket tid gick rätt fort (främst sådana som jag skrev från eget huvud och sedan inte redigerade värst mycket).

Det som blivit minst som jag väntat mig är hur många kvällar jag suttit och skrivit inlägg, eftersom dottern varit så sjuk under december. Den myckna sjukligheten, sammantaget med att jag inte varit sugen på att skriva ett alltför hastigt inlägg för att få upp något på rätt dag, har gjort att jag skrivit två inlägg ”dagen efter” och bakåtdaterat dem (friheter man tar sig med nystartade bloggar), och att det sista inlägget, dagens, kommer på juldagen och inte julafton.

Framåt

Ser nu fram emot en kortare bloggpaus innan jag fortsätter skrivandet. Högt upp på listan ligger fler inlägg om datalogiskt tänkande, där jag inte hann lika långt som jag tänkt. Tills dess, god fortsättning!

snowy-oaks

Programmering är roligt, programmering är svårt

Originaltanken för detta inlägg var att skriva om vad som gör programmering svårt för nybörjaren. För även om mycket av det arbete som exempelvis code.org gör handlar om att sänka tröskeln så att fler provar på programmering, så kommer de flesta någon gång att tycka att det är svårt. Vilket väl gäller det flesta saker som man inte kan, som man lär sig, frågan är om det i större utsträckning gäller för programmering? Och i vilket fall som helst så kommer även den vane programmeraren fastna och ge uttryck för frustration (och sannolikt sitta aningen för länge och försöka lösa det, bara för att efter en paus ganska snart upptäckta vad problemet var – det händer inte varje gång, men ofta). Jag blev nyfiken på vad andra sökt på, så jag gick till Google:

google-autocomplete-programmingis

Någonstans så hänger detta med det svåra och det roliga ihop, att det är roligt delvis för att man hitter den rätta mixen av utmaning och hanterbart, till den grad att man kan prata om flow för programmerare eller ”coder’s high” . Därför blir dagens inlägg både om varför programmering är roligt och varför det är svårt.

Varför programmering är roligt

För min egen del är programmering roligt (engelskans fun funkar nog lite bättre än svenskans roligt, men vi kör på det) av flera skäl. Dels handlar det om själva byggandet, att det blir något, vare sig det är något som kommer till användning eller något som man gör för något estetiskt värde eller för att man är sugen på det i stunden. En annan del, som kanske är viktigast för min egen del, är själva problemlösandet, både i det stora (identifiera vad problemen egentligen är, skapa strukturer för att lösa dem) och i det lilla (varför kompilerar inte skiten). Och så kan man kontinuerligt lära sig och utveckla sig, både vad gäller det praktiska (som bättre sätt att hantera utvecklingsprojekt) och det teoretiska (som nya modeller eller algoritmer).

Det finns en känd bok om utveckling av programvara och projektledning av projekt som syftar till att utveckla programvara som heter Mythical Man Month: Essays on Software Engineering. (När jag först hörde talas om den trodde jag den hette Mythical Man Moth, vilket jag tycket var en underlig titel på en bok om utveckling av programvara.) Trots att den kom ut för första gången 1975 anser många att den fortfarande är relevant idag (några nya kapitel kom med på 90-talet). Förutom lärdomar som att det inte hjälper att lägga till fler programmerare till ett försenat projekt, så finns även en lista med de belöningar som finns i att programmera:

  • Glädjen i att bygga saker, som barnet i sandlådan
  • Nöjet i att bygga saker som kommer till användning för andra
  • Fascinationen i att sätta samman pussel-liknande objekt med delar som rör sig tillsammans enligt det sätt som det designades från början, som en flipperspel
  • Glädjen i att lära sig nya saker, både praktiska och teoretiska
  • Förtjusningen i att arbeta med ett material som på en och samma gång ligger nära tanken och drömmarna och ändå kan ge så konkreta resultat – något som får många att dra paralleller till magins värld

Min snabba översättning är inte originalet rättvisa, gå till länken ovan listan och läs själv på engelska.

En sak jag tycker saknas i Brooks lista (och som jag inte själv kom att tänka på när jag började spåna) är nöjet att skapa saker med andra.

Varför programmering är svårt

Många som börjar med programmering tycker att det är svårt. Det som gör det svårt har delvis att göra med de sakerna som gör det roligt (och som är roliga för att man vet att man bemästrat liknande problem tidigare, eller i alla fall har anledning att tro att man ska bemästra det problem som man just nu står för). Men det är också svårt för att det finns praktiska hinder, nya tankesätt, ny teminologi. Några exempel:

  • Programmering är förhållandevis oförlåtande för små misstag. Och de felmeddelanden som man får är inte alltid begripliga för nybörjare.
  • Dokumentationen är skriven på ett sätt som är svår för nybörjare att ta till sig. Inte sällan finns felaktigheter, vilket är svårt för en nybörjare att förstå.
  • Förhoppningsvis skyddas många nybörjare från det, men att bara sätta upp själva utvecklingsmiljön (programmet där man bygger programmet) kan vara icke-trivialt. Något som kan hindra mig från att påbörja nya projekt i nya språk.
  • Det ställer förhållandevis höga krav på arbetsminnet, att man kan hålla flera saker i huvudet, eller att man skaffar sig en vana att skriva ner saker om man inte har den förmågan.

Listan på vad som gör programmering svårt för nybörjaren kan göras längre. Därför så tror jag att det finns en risk med initiativ som vill få programmering att framstå som något lätt, och det är att många kommer att dels bli frustrerade, men också ännu värre tro att de är dumma när de sedan stöter på problem som de inte reder ut.

Man kan också argumentera bredare om/hur/varför programmering är svårt, det finns en tråd på Quora som tar upp flera intressanta perspektiv.

Det är intressant hur #blogg24 ger en en ursäkt att publicera något halvfärdigt. Jag är trött , mitt sjuka barn håller på att vakna, det är lillejuleafton, så det blir inget skrivande i kväll. Jag har inte alls skrivit så utförligt om varför programmering är svårt eller hur detta faktum kan/ska framställas för en nykomling, eller vad man kan göra för att hantera det. I vanliga fall hade jag sparat utkastet och återkommit en annan dag, idag publicerar jag det. Bra eller dåligt? I mitt fall, i denna stund, mest bra tror jag.

Illustrationer av datalogiskt tänkande

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.

Bild från ctillustrated.com – "Using abstractions and models"

Bild från ctillustrated.com – ”Using abstractions and models”

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.

 

Bild från ctillustrated.com – Algorithm design

Bild från ctillustrated.com – ”Algorithm design”

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.

Denna vecka: programmering på schemat och ”creepy” algoritmer

Dataprogrammering på skolschemat redan verklighet i Storbritannien – Nyhetsinslag från SVT på 3 minuter, där vi möter elever, en lärare och en forskare som varit med och tagit fram nya läroplanen och stöd för dess införande. Inslaget finns kvar på SVT play till den 18 december 2015.

Behöver alla skolbarn lära sig programmera? – Kristina Alexandersson på .SE argumenterar kring varför alla barn behöver lära sig att programmera: för att det behövs för att förstå tekniken vi dagligen använder och för att vi lär genom att göra. Att det behöver komma in i skolan beror på att det annars finns en risk att det uppstår ett gap mellan ”de som har insatta föräldrar och de som lämnas åt sig själva att förstå består mellan de som upplever teknik som magi och de som kan styra och bestämma för hur denna teknik fungerar”.

The year we get creeped out by algorithms – Artikel som argumenterar för att folk under 2015 i större utsträckning kommer att förstå hur mycket algoritmer påverkar vad vi ser på nätet. Det jag tycker är riktigt intressant är observationen att algoritmer fattar beslut där det inte finns ett tydligt rätt eller fel, dvs de gör någon sort värdering: ”Deep philosophical questions that humans have debated for millennia — and have erected complex (and far from perfect) gatekeeping, credentialing, and judging apparatus to grapple with — are now being asked to computers, and their answers, spat out through proprietary and opaque systems, are being used to shape our lives.”