Blokkprogrammering#

Det finnes i hovedsak to måter å programmere på: tekstprogrammering og blokkprogrammering. I tekstprogrammering skriver vi hver linje med konkrete instruksjoner, tegn for tegn. I blokkprogrammering er kodesegmenter ferdige programmert og satt sammen i blokker. Blokkene kan dermed pusles sammen, slik at du får et fullstendig program.

Blokkprogrammering benyttes i utstrakt grad i begynneropplæringen, spesielt på barnetrinnet, men egner seg godt for ungdom og voksne også. Noen fordeler med blokkprogrammering er:

  • Det er enklere å komme i gang.

  • Det kan gi et større fokus på logikk enn syntaksdetaljer.

  • Det kan være visuelt innbydende, med integrert grafikk, farger, bakgrunner og liknende.

  • Det er lettere å leke med det og være kreativ uten for mye forkunnskaper.

Noen ulemper med blokkprogrammering er:

  • Det er flere begrensninger enn ved bruk av tekstbaserte språk.

  • Det kan bli visuelt litt rotete pga. mange blokker og farger inni hverandre.

  • Matematikken blir ikke så klart representert. Når vi bruker tekstprogrammering, likner ofte koden på det analytiske uttrykket. Dette kan være en faglig og pedagogisk fordel.

Underveisoppgave

Nedenfor ser du to programmer som gjør omtrent det samme, men det ene er lagd i Python (tekst) og det andre er lagd i Scratch (blokk). De regner ut et visst antall tall i tallfølgen gitt ved den rekursive formelen \(a_{n+1} = a_n + 2n + 2\). Dessuten regner de ut summen av disse tallene. Vurder hvordan programmene formidler det matematiske innholdet, og diskuter i hvilke tilfeller du ville brukt den ene eller den andre varianten.

a = 1     # første tall i tallrekken
s = a     # summen

n = 1
while n <= 10:
  print("Tall nummer", n, "er:", a)
  a = a + 2*n + 2
  s = s + a
  n = n + 1
  
print("Summen er:", s)

Ulike blokkprogrammeringsspråk#

Det finnes mange ulike blokkprogrammeringsspråk. Det som er mest brukt, er Scratch, et programmeringsspråk utviklet av MIT i 2007 for å lære barn programmering. Scratch er svært anvendelig, og kan i tillegg kobles opp mot ekstern teknologi som Micro:bit, Lego

Felles for alle blokkspråkene er at du finner igjen de viktigste grunnstrukturene variabler, vilkår, løkker og funksjoner. Deretter vil resten av den tilgjengelige koden variere mellom de ulike språkene. Det finnes også et programmeringsspråk som heter Blockly, som en kan bruke i kombinasjon med for eksempel Pasco-sensorer og på egen hånd, for eksempel integrert i Trinket. En fordel med dette språket, er at det kan oversettes til Python-kode ved å trykke på en knapp! Her er et eksempel:

Underveisoppgave

Trykk på “View Code” og sammenlikn blokkene med den tilsvarende Python-koden. Eksperimenter litt med blokker og tekst i editoren.

Her er en liten oppsummering av noen vanlige blokkprogrammeringsspråk som brukes i skolen:

Språk

Beskrivelse

Scratch

Svært vanlig blokkspråk med mange muligheter. Kan også brukes til å programmere Micro:bit og Lego

Makecode

Språk som er designet for å programmere Micro:bit, Minecraft, Lego m.m.

Blockly

Enkelt språk som lett kan oversettes til Python-kode.

Sphero Blocks, Lego Blocks o.l.

Spesialblokkspråk som kun brukes til programmering av f.eks. Sphero Bolt og Lego Mindstorms/Lego Spike.

Mange av disse programmeringsspråkene er mulig å bruke på de fleste plattformer (Windows, Mac, iPad, Chromebook).

Videoer#

I videoene nedenfor kan du få en innføring eller repetisjon i grunnleggende programmering i Scratch.