SPIL Styr robotten Roberta og lær hvordan du koder

Du lægger ikke mærke til det. Men din mobiltelefon er proppet med linjevis af computerkode. Men hvad vil det egentlig sige at kode?

Du trykker på skærmen på din smartphone, når du vil bruge en app. Det er jo nemt.

Og så skriver du en besked til din ven, tjekker Instagram eller hvad det nu var, at du ville gøre med lige præcis den app, du åbnede.

Det hele er pakket ind i lækker grafik. Og du tænker ikke på lange linjer af computerkode. Men det er faktisk dem, som får det hele til at fungere.

Taler du kode? Det gør de færreste af os. Men når du har læst artiklen, så kan du faktisk kode dine to første ord.

Mere om det senere. For allerførst skal du møde Roberta.

SPIL: Robuddies

Hjælp Roberta med at reparere sin ven. Du skal hente og aflevere armen uden at falde i huller og vandpytter undervejs.

Du navigerer robottens rute ved at bruge pilene. Og hold øje med koden på skærmen, får her får du et overblik over dine kommandoer.

Hvad sker der i robottens hoved?

Hvis du åbner din foretrukne beskedapp på din telefon, bliver du ikke konfronteret med en hel skærm fyldt med computerkode.

Det gør du heller ikke, når du sender en besked afsted fra den. Du ser et flot grafisk design med en masse indbydende knapper. Som brugere har vi vænnet os til, at teknologien ser sådan ud, og at den er nem at betjene.

Hvis du er den glade indehaver af en robot, ville du også hurtigt vænne dig til at trykke på "Bag en kage"-knappen, hvis du havde lyst til kage. I robottens hjerne ville der så begynde at ske en hel masse beregninger.

Men ligesom på telefonen ser du det ikke. Du ser bare, at robotten selv går i gang med at bage. Den finder ingredienser, blander, tilbereder og vasker op efter sig selv.

Vi er passive knap-trykkere

Robotten bevæger sig trygt rundt i køkkenet, som i dette kan svare til styresystemet på telefonen. Styresystemet stiller hukommelse, data og regnekraft til rådighed for de enkelte programmer på telefonen, ligesom et køkken stiller ingredienser, ovn og køkkengrej til rådighed for vores robot.

Det er sådan mange apps fungerer i dag. Vi ser ikke de dybere lag, hvor kode kører på kryds og tværs, og data bliver hentet, bragt, blandet og slettet igen. Vi har vænnet os til at trykke på knappen, og så virker det.

Computerkode får magien til at ske

Kigger vi ind bag facaden, så har udvikleren af robotten skrevet et program til den, som bliver kørt, når vi trykker på "Bag en kage"-knappen. Her kan det godt minde om en madopskrift - man får ikke eksplicit fortalt alle små detaljer, fordi forfatteren regner med, at du godt ved, hvad æg er.

Vores robot kan blandt andet selv tyde, hvad det betyder, når der står "rør mel og æg sammen" i opskriften. Robotten ved også, at den skal finde melet i skabet, før den kan hælde det op.

Den kan også finde æggene i køleskabet, slå dem ud og finde ud af, at den skal bruge en ske til at røre det hele sammen med.

Det kan sammenlignes med de programmeringssprog, der kaldes "high-level"-sprog. Det kaldes de, fordi de ikke behøver at detaljestyre alle telefonens handlinger. Der er en vis forforståelse indlagt i robotten. Det er den type sprog, som de fleste programmører og udviklere bruger i dag.

Når man skriver en madopskrift, er der en vis form, man skal følge i sine skriverier, ellers er der en risiko for, at modtageren går galt i byen.

Det er en dårlig idé at begynde at nævne nye ingredienser, efter du har skrevet at kagen skal i ovnen - det er svært at tilføje en teskefuld bagepulver til en kage, der er begyndt at bage.

Hvis du laver fejl, gentager robotten dem

I computerkode hedder formen "syntaks". Hvis man laver fejl i den, og computeren misforstår, går det galt - men ikke mere galt end at man kan lukke programmet og skrive det om. Køkkenet, som i dette tilfælde er computerens vigtigste programmer, bliver ikke ødelagt af det.

Det er derfor, at computerkode tit er fyldt med symboler, forkortelser, linjeskift og forskellige parenteser. Det er altsammen standardiseret, så hvis man bare følger syntaksen, kan computeren for det meste forstå, hvad den skal.

Men det er vigtigt at være præcis, for computeren kan ikke se bort fra stavefejl på samme måde som du kan læse henover tante Olgas kragetæer. Den tager tingene MEGET bogstaveligt!

Under computerkoden er de hemmelige koder

Vi kan skrælle endnu et lag af - inde i robottens hoved sker der nemlig en hel masse, når den læser opskriften på kagen. Den begynder at oversætte de meget brede kommandoer, som at røre æg og mel sammen til mindre handlinger.

Den samme oversættelsesproces sker også i almindelige computere, der skal udføre kommandoerne i et high-level-programmeringssprog. De bliver oversat til såkaldte "low-level"-sprog, som fortæller computerens chips og printplader præcis, hvad den skal gøre i hvilken rækkefølge.

Faktisk er det bare en masse ulæselige tal og bogstaver, der beskriver, hvordan vores robot skal hente og blande forskellige ting i køkkenet i en bestemt rækkefølge.

På dette niveau kan man sige, at robotten ikke ser forskel på mel og æg - den følger bare de meget detaljerede små-instrukser den har oversat den oprindelige opskrift til. Måske ved den ikke engang, at den bager. Men der kommer en kage ud af det i sidste ende!

På samme måde rykker din egen computers centrale chip rundt på informationer og foretager bare de handlinger og beregninger, den får besked på. Det kaldes i daglig tale maskinkode, og er ikke noget, som de fleste programmører eller udviklere bekymrer sig om.

I stedet findes der særlige programmer, der hedder compilere, oversætter den håndskrevne kode til maskinkode, som chippen i robottens hjerne kan forstå.

Hello World!

Dansk, tysk og engelsk er alle sprog med hver sin betydning. Det samme gælder for computersprog, der i stedet for ord kommunikerer igennem koder. Inden for kodning findes flere forskellige sprog som for eksempel JavaScript og C++.

Gå på opdagelse i kodesprogene for at se, hvordan det samme program – nemlig teksten ”Hello World!” – kodes forskelligt med de forskellige sprog.

Artiklen er rettet mandag d. 2/10 kl. 12:51 med en ny forklaring af, hvordan programkoden bliver oversat til maskinkode.

Facebook
Twitter