Forstår du, hvad en algoritme er?

I den indledende video på startsiden hørte du, at algoritmisk kunst er resultatet af en algoritmisk proces, som kunstneren har bestemt, men ved du egentlig, hvad en algoritme er?


En algoritme kan beskrives som en række entydige instruktioner, som løser et problem, hvis de følges trin for trin. En algoritme kan både udføres af et menneske og af en computer. Der findes forskellige algoritmer med særlige formål, fx søgealgoritmer og sorteringsalgoritmer.

Nogle gange kan du opleve, at kode bruges som synonym for algoritme, men det er faktisk ikke helt det samme. En algoritme kan skrives i et sprog, som du og jeg forstår (det kaldes også pseudokode), mens en kode altid skal følge et programmeringssprogs regler og altid skal udføres af en computer. På sin vis kan man sige, at mens en kode altid også er en algoritme, behøver en algoritme ikke nødvendigvis at være en kode, men kan sådan set også være en bageopskrift.


Her nedenfor ser du en række mindre aktiviteter, som alle har til formål at få dig til at forstå, hvad en algoritme er, bedre.

Øvelser

Tegn, hvad jeg siger

(Aktiviteten er udviklet af CFU VIA som del af projektet "Matematik, sprog, kreativitet og programmering")

Øvelse 1:
Gå sammen i grupper á fem elever. En af jer får udleveret en tegning af jeres lærer, som de andre ikke må se. Den af jer, som får udleveret tegningen skal sætte dig med ryggen til resten af gruppen. Du skal nu forklare de andre i gruppen, hvordan de tegner den samlede figur, så deres tegninger bliver nøjagtig magen til din figur. Begynd med den øverste figur og gå efterhånden nedad, idet du beskriver en figur ad gangen. Tag særlig hensyn til hvordan figurerne er anbragt i forhold til hinanden. Det er ikke tilladt for hverken dig eller resten af gruppen af stille eller besvare spørgsmål. Du må ikke se de andres tegninger, før de er færdige.

Øvelse 2:

I gruppen tegner I en figur på samme måde som figuren i bilag 1. Herefter designer I en algoritme med præcise og entydige instruktioner, som I skal læse op for en anden gruppe, således at den anden gruppe kan tegne jeres figur. En fra jeres
gruppe skal nu ud fra det design, I har udarbejdet, forklare en anden gruppe, hvordan figuren skal tegnes. Den anden gruppes besvarelser samles sammen. Herefter byttes der, således at den anden gruppe får afprøvet deres algoritme. Det er ikke tilladt at stille eller besvare spørgsmål. Ingen må se tegningen og eleven må ikke se de andres forsøg på at tegne figurerne.


Øvelse 3: I kigger besvarelserne igennem og overvejer mulige forbedringer i instruktionen. I debugger (forbedrer) jeres algoritme, således den kan læses op for en ny gruppe. En fra jeres gruppe skal nu ud fra det nye design forklare en ny gruppe, hvordan figuren fra øvelse 2 skal tegnes. Herefter byttes der, således at den anden gruppe får afprøvet deres algoritme. Det er ikke tilladt at stille eller besvare spørgsmål. Ingen må se tegningen og eleven må ikke se de andres forsøg på at tegne
figurerne.

Eksempel på figur

Kan du se algoritmen bag?

Her nedenfor ser du nogle simple mønstre. Kan du regne ud, hvilken algoritme, der er brugt, for at lave hver af mønstrene?

Og kan du fortsætte mønstret ud fra den algoritme, du har fundet frem til?

Et fysisk bevægelsespartitur

Gå sammen i grupper á tre-fire personer. Markér en firkant på gulvet, som måler 3 x 3 meter. I skal nu finde på nogle simple fysiske bevægelser, som I gentager i en bestemt rækkefølge inden for firkanten. Hver person skal lave sin egen serie af bevægelser, og I må ikke støde sammen, når I laver jeres bevægelser på samme tid i firkanten. I skal altså regne ud, hvordan I kan bevæge jer rundt i forskellige baner og måske også arbejde med tempo, så nogle af jer måske skal vente i et antal sekunder mellem hver bevægelse, for at det kan lade sig gøre.


Skriv algoritmen for hver persons bevægelsesmønster ned og opvis jeres bevægelsespartitur for jeres klassekammerater. De skal nu prøve, om de kan gætte jeres algoritmer.


Sorteringsnetværket

(Aktiviteten er udviklet af ComputerScienceUnplugged og oversat af CFU Absalon)


Denne aktivitet vil vise jer, hvordan computer sorterer tilfældige tal i den rigtige rækkefølge ved at bruge en sorteringsalgoritme. Tegn dette netværk op med kridt før aktiviteten.


  1. Organisér jer i grupper på seks personer. Kun 1 team bruger netværket af gangen.
  2. Hvert teammedlem tager et nummereret kort
  3. Hvert teammedlem stiller sig i en firkant i starten af netværksbanen. Jeres numre skal være i en vilkårlig rækkefølge.
  4. Bevæg jer langs de optegnede linjer. Når I kommer til en cirkel, skal I vente på, at der ankommer en anden. 
  5. Når et andet teammedlem ankommer, skal I sammenligne jeres kort. Den af jer, der har det mindste nummer, går til venstre, og den, der har det højeste nummer, går til højre. Sådan gør I hele banen igennem.
  6. Er I sorteret I den rigtige rækkefølge, når I kommer til enden af banen? 

Hvis I laver en fejl, må I starte forfra. Tjek, at I har forstået, hvad I skal i cirklerne, hvor den med det laveste tal går til venstre, og den med det højeste tal går til højre. Fx:



  1. Lav selv kort med endnu større tal, som vil tage noget tid at sammenligne, eller brug ord, og sortér dem i alfabetisk rækkefølge.
  2. Hvad sker der, hvis de mindste tal går til højre i stedet for venstre og omvendt? (Svar: Numrene bliver sorteret i omvendt rækkefølge)
  3. Virker det også, hvis netværket bliver brugt bagfra? Kan I finde en måde, hvor det ikke virker?
  4. Prøv at lave mindre og større netværk, fx sortering af 3 tal eller af 20 tal.
  5. Nedenfor ses 2 forskellige netværk, som begge sorterer 4 inputs. Det første netværk er et eksempel på seriel sortering, altså et talpar ad gangen, hvor det andet bruger parallel sortering. Hvilket er den hurtigste, tror I?

    Netværk kan også bruges til at finde den mindste eller den største værdi i et samling inputs. Fx ses her et netværk med 8 inputs, hvor det endelige output vil være det tal med mindst værdi (de andre er placeret i de “blinde” kryds.  



    Tal om hvilke processer, som kendes fra dagligdagen, kan eller kan ikke blive accelereret ved at bruge parallel sortering? Fx vil madlavning gå meget langsommere, hvis der kun bruges en kogeplade, fordi de forskellige dele af måltidet så skal laves efter hinanden. Hvilke jobs kan udføres hurtigere ved at ansætte flere folk? Hvilke kan ikke? 

    Undersøg et af Sol Lewitts algoritmiske værker

    Sol Lewitt var en kunstner, som lavede mere end 1300 værker som algoritmer, som han indbød museer  og andre til at skabe.  En algoritme kunne lyde “with blyant, tegn 1000 vilkårlige lige linjer, 10 inches (25,4 cm) lange, hver dag i 10 dage i en 10x10 foot (304,8 x 304,8 cm) firkant. For Sol Lewitt var idéen bag et værk vigtigere end dets udformning. 

    I denne aktivitet kan I prøve, om I kan lave en version af Sol Lewitts Wall Drawing #273 fra september 1975. Algoritmen lyder således:


    Sol LeWitt’sWall Drawing 273, September 1975


    Grafit og farveblyanter på syv vægge.

    Et 15 x 15 cm net, som dækker væggene. Linjer fra hjørner, sider og midte til vilkårlige punkter på nettet. 


    1. væg: Røde linjer fra midten af de fire sider. 

    2. væg: Blå linjer fra de fire hjørner.

    3. væg: Gule linjer fra midten.

    4. væg: Røde linjer fra midten af de fire sider, blå linjer fra de fire hjørner.

    5. væg: Røde linjer fra midten af de fire sider, gule linjer fra midten.

    6. væg: Blå linjer fra de fire hjørner, gule linjer fra midten.

    7. væg: Røde linjer fra midten af de fire sider, blå linjer fra de fire hjørner, gule linjer fra midten.


    Hver væg skal have det samme antal linjer (Antallet og deres længde bestemmes af den, der udfører værket).



    Note til læreren: Der er udarbejdet et længere scenariedidaktisk forløb til det nationale forsøg med teknologiforståelse udgangspunkt i denne vægtegning, som aktiviteten kan udvides med, hvis det ønskes. I det scenariedidaktiske forløb skal eleverne til sidst programmere deres udformninger i scratch, men det vil de også sagtens kunne i OpenProcessing.

    Computeren hjælper os med at beregne

    (Aktiviteten stammer fra bogen "Make Your Own Algorithmic Art" af Tariq Rashid)

    Prøv at lave dette lille eksempel. Først skal du tegne en pyramide med firkanter ligesom du ser her. Klik dig igennem billederne for instruktion. Du kan bare tegne i hånden, men ellers kan du bruge programmet Pixilart, som du finder på nettet her:

    https://www.pixilart.com/draw 

    1
    22
    Skærmbillede 2019-06-12 kl. 21.46.42
    Skærmbillede 2019-06-12 kl. 21.46.51
    4
    5
    6
    7
    8

    Lav dit eget algoritmiske mønster i Pixilart

    Hvis ikke du allerede har brugt Pixilart i opgaven ovenfor, så åbn det nu. Leg med at lave dit eget algoritmiske mønster, Du bestemmer helt selv, hvad algoritmen skal være, men andre skal kunne følge den og genskabe dit mønster.