Progammering för alla

Jag är engagerad i KodCentrum.se - ett initiativ som likt MatteCentrum försöker lyfta och stötta spridandet inom detta ämnesområde till unga i Sverige. Man håller på att starta upp kodboken som skall vara något i likhet med en “mattebok”. Jag blev tillfrågad om det finns någon uppgift jag kan bidraga med.

Här är mina utkast till idéer. Målgruppen är barn i 9-12 års ålder, men det lär fungera även för vuxna som aldrig programmerat.


A) 5 personer varav en programmerare

Bestäm vem som är programmerare. Om ni har svårt att bestämma, utgå från skostorlek och kanske sten-sax-påse.

Alla de andra får nu ställa sig på ett led, som om de var vagnar i ett tåg. Alla kompisar står alltså vända med näsan mot ryggen eller nacken på den som står framför, förutom för den som står längst fram så klart!
Kompisarna får ställa sig i vilken ordning de vill, men helst skall det vara “slumpat”.

Blir inte så detaljera här, men i stora drag:

  • sortera efter ålder (du får inte använda orden “yngst” eller “äldst” - bara “yngre” eller “äldre”)
  • sortera efter längd
  • blunda, eller stå med ryggen mot dina kompisar
  • skriv ned alla instruktioner du tror du kommer behöva på papper (eller skriv ut förberedda), nu får du bara använda dessa instruktioner när du sorterar dina kompisar!
  • plocka bort en instruktion som ni tror programmeraren kan klara sig utan - försök igen!
  • plocka bort en instruktion igen, och gör om sorteringen! Fortsätt med nya försök, ända tills ni inte längre kan ta bort några instruktioner!

B) 2 personer varav en programmerare

  • Du är programmeraren!
  • Din kompis, som sitter mitt emot dig har 5 pennor på ett bord. Alla pennor är olika långa.

Uppvärmning, utmaning 1:

  • Alla pennor som har spetsen uppåt skall ligga till vänster. Du får endast använda ord.

Utmaning 2, lite svårare:

  • Hjälp din kompis sortera pennorna efter längd, endast genom att använda ord.

Tips:

  • Det kan vara bra att komma överens om vad som är vänster och höger! Kanske skall du sitta bredvid din kompis istället för mitt emot.
  • Försök låta bli att peka eller visa vad du menar! Det kan vara svårt!

Utmaning 3, ännu svårare:

  • Byt plats med din kompis.
  • Nu skall kompisen programmera dig.
  • Du blir alltså dator och din kompis programmeraren.
  • Blanda pennorna så de inte ligger ordnade efter längd. (Att “blanda” kallas ibland för att “slumpa”.)
  • Programmeraren får nu inte använda orden: kortast, längst. Programmeraren får använda orden: kortare, längre.

Exempel:

  • “Ta pennan längst till vänster i vänster hand”
  • “Ta pennan längst till vänster i höger hand”
  • “Är pennan i vänster hand är längre än pennan i höger hand?”
  • “-JA”
  • “OK, byt plats på pennorna som du håller i, så att vänster handens penna hamnar i höger och tvärtom”
  • “Färdig”
  • “Lägg ned pennorna”

Tips:

  • Det kanske går snabbare att bara peka på pennor istället för att plocka upp och ned.

Utmaning 4, svårast:

  • Byt plats igen.
  • Slumpa pennorna.
  • Programmeraren får nu inte titta på pennorna. Håll för ögonen eller sitt med ryggen mot pennorna.
  • Kompisen som är dator för berätta när alla pennor är sorterade.
  • Kompisen får inte säga vilka pennor som ligger fel!

Tips:

  • Om det tar lång tid kan det bli jobbigt att hålla för ögonen - då kanske det är bättre att sitta med ryggen mot pennorna.

Variationer:

  • använd 10 pennor istället för 5, och se hur lång tid det tar
  • Ta bort regel fyra. Kompisen som är dator får inte säga när alla pennor är sorterade. Programmeraren skall försöka lista ut det själv och säga “Klar!” när hen tror att pennorna ligger i rätt ordning.

Ett liknande alternativ, som inte har med sortering att göra, skulle vara att leka med lampor och binära tal.

C) 2 personer - båda som dator och programmerare!

En person får vara sändande dator, och en blir mottagande dator. Utmaningen är att skicka hemliga meddelanden som inte kan avlyssnas av någon som tjuvlyssnar! Det enda ni kan använda för att “prata” är sex lampor och en boll (eller en penna). Den sändande datorn har sex lampor, och den mottagande datorn har en lampa.

Uppgift 1: Uppvärmning

Båda datorerna får en översättningstabell:

A = 0 0 0 0 0 0 1
B = 0 0 0 0 0 1 0
C = 0 0 0 0 0 1 1
...
Mellanslag (mellan ord) = 1 1 1 1 1 1
Slut på meddelandet = 0 0 0 0 0 0

Utmaning: Skicka över namnet på en planet!

Den sändande datorn tänder lamporna enligt tabellen, så det motsvarar första bokstaven … När lamporna är programmerade rätt, skicka över bollen/pennan till mottagande dator. När mottagaren har skrivit ned det tecken som lamporna visar, skickar mottagaren tillbaka bollen/pennan så att nästa tecken kan programmeras. Upprepa tills slut på meddelandet är skickat och mottaget!

Uppgift 2a: Skicka en siffra

Samma som ovan, fast med en tabell över tal.

0 = 0 0 0 0 0 0
1 = 0 0 0 0 0 1
2 = 0 0 0 0 1 0
...

Uppgift 2b: Skicka fram och tillbaka

Utmaning: Den en datorn skall skicka två tal. Den andra datorn skall ta emot talen, lägga ihop dem (plus, addition) och sedan skicka tillbaka svaret.

Uppgift 3: Svårt Omvandla från siffror till binär representation

Här beskrivs en algoritm som båda personerna skall följa: den ena skall koda om tal till lampor (t ex , den andra skall koda

Uppgift 4: Extra svårt: Hur många lampor behövs?

Hur många lampor behövs om man skall beskriva följande tal:

10
20
50
100
200
500
1 000
10 000
1 000 000

All feedback är varmt välkommen!

This work by Fredrik Wendt is licensed under CC by-sa.