Jag gillar att låta elever göra analoga saker när de ska lära sig programmering. Jag vill att de ska fatta att syntax och kod egentligen inte är den svåra delen; att det viktigaste är problemlösning. Tidigare har de t.ex. fått skriva ner reglerna för en lek såpass detaljerat att en robot eller utomjording skulle kunna följa och förstå.
Nu på fredag tänkte jag ha en workshop om sortering. Jag hatar sortering; det är nästan det tråkigaste jag vet inom programmering, men det står i kursplanen. I praktiken brukar jag mest kolla vilken algoritm som borde funka bäst och sedan plocka nån annans implementation.
Nu på fredag tänkte jag ha en workshop om sortering. Jag hatar sortering; det är nästan det tråkigaste jag vet inom programmering, men det står i kursplanen. I praktiken brukar jag mest kolla vilken algoritm som borde funka bäst och sedan plocka nån annans implementation.
TL;DR: Jag ska ha en workshop om sortering med mina programmeringselever.
Jag tänkte göra det här i form av ett spel. Dela in klassen i grupper om 3-4 styckna per grupp (semirandom; blanda duktiga och mindre duktiga) och ge varje grupp en serie osorterade tal och en serie operationer. Varje operation har en kostnad.
Uppgiften är givetvis att med minsta möjliga antal operationer få fram en lista med sorterade tal. Kravet är också att instruktionerna ska kunna systematiseras så att de funkar för andra talserier.
Helst vill jag göra något väldigt konkret; typ ha korktavlor där siffrorna sitter fast på små pluppar eller häftstift eller nåt. Vi får se.
Men, jag tänker mig typ följande operationer:
- Jämföra två häftstifts tal (större än/mindre än/lika med)
- Plocka upp ett häftstift och lägga det åt sidan
- Skapa en ny, tom, lista
- Kolla längden på en lista
- Sätta in ett häftstift någonstans i en lista
- Komma ihåg ett tal (t.ex. vilket stift man är på eller så)
- Göra en matematisk operation (+,-,*,/ etc)
- (Gå till ett annat häftstift i listan)
Grejen är att jag inte är så superbra på sorteringsalgoritmer själv.
- Finns det några sorteringsalgoritmer som inte kan modelleras med ovanstående?
- Bör någon av ovanstående "kosta mer" vad gäller poäng? Dvs, är det nån av de ovanstående som bör vara "dyr" i tid, såpass dyr att det påverkar spelet? Eller kan alla kosta 1p?