1. Algoritmisk tenkning
Et hovedpoeng med å lære elevene om programmering er å mane til en bestemt måte å tenke på, nemlig det som gjerne kalles algoritmisk tenkning. Algoritmisk tenkning er en måte å tilnærme problemer på som er inspirert av det man kaller en algoritme. En algoritme er enkelt forklart en slags oppskrift på å løse et problem, og en algoritmisk tilnærming til et problem innebærer at man forsøker å finne en «steg for steg»-måte å løse problemet på. Et sentralt begrep innen algoritmisk tenkning er «divide and conquer» (del og hersk).
Dette innebærer å dele opp problemet i mer håndterbare delproblemer, som man først løser. Når man så har løst delproblemene, kan man ta et steg tilbake, sette det hele sammen og løse hele problemet. Deretter kan man undersøke om deler av løsningen er unødvendige eller kan forenkles. Noe av det som skiller en algoritmisk tilnærming fra den tilnærmingen dagens foreldregenerasjon er vant til fra matematikkfaget er kanskje nettopp denne trinnvise måten å jobbe på. Når man jobber algoritmisk behøver man ikke vite hele løsningen så fort man har lest problemet. Det er heller ikke aktpågivende å finne den mest effektive løsningen først. Det sentrale er å finne én løsning, som da gjøres trinnvis. Optimaliseringen av løsningen kommer gjerne etter dette.
Som forelder kan det være greit å være klar over denne «baktanken» med programmeringsundervisningen. Selv om du kanskje ikke er kjent med programvaren eller programmeringsspråket barna dine bruker på skolen, kan du hjelpe dem med å tenke på en algoritmisk måte. Når man skal løse en programmeringsoppgave er nemlig noe av ideen med en algoritmisk tilnærming nettopp at man ikke bare skal lese oppgaven og skrive et program helt uten videre. Det er lurt å tenke gjennom problemet først, finne ut hvilke problemer som skal løses og legge en plan for dette. Det å skrive selve programmet, noe vi gjerne vil kalle implementasjonen av løsningen, kommer etter dette. Til slutt kommer gjerne det man kaller debugging, men alt til sin tid.
2. Hva trenger du for å prøve selv?
Skulle du som forelder ha lyst til å prøve deg på det samme som barna skal lære, er det et par ting som må være på plass. Først og fremst må man laste ned en kompilator for det språket som brukes. Mye tyder på at Python vil bli et populært språk i skolen, men andre høynivåspråk kan også bli tatt i bruk. Det kan være verdt å vite et alle Mac-er allerede har en versjon av Python installert, men dette er gjerne Python 2, som trolig i lite grad vil bli brukt i skolen. Hvis barna lærer å skrive i Python, burde man forholde seg til Python 3. I tillegg til kompilatoren, vil du trenge en editor, som er det man skriver selve programmet i (Word er ikke en editor!). Eksempler på populære editorer for Python er Atom, Visual Studio Code og Emacs. I tillegg til dette vil du trenge eventuelle tilleggspakker som blir brukt.
Akkurat hvilket programmeringsspråk som brukes og hvilke verktøy som brukes vil sannsynligvis være forskjellig fra skole til skole, og kanskje sågar lærer til lærer. For å få helt konkrete svar burde du altså kontakte barnets matematikklærer for å få informasjon om programvaren som benyttes. Bruker eleven Python og du som forelder ønsker en lett tilgjengelig måte å henge sånn cirka med på, vil jeg personlig anbefale å bruke Jupyter Notebook. I Jupyter kan du skrive koden rett inn og eksekvere den i programmet. Du slipper altså å ha en egen editor og kjøre koden fra terminalen eller lignende. Det er også lett å dele kode som er skrevet i Jupyter med andre.
3. Hva er god læring i programmering?
Programmering kan være en demotiverende geskjeft, til dels fordi man kan være så latterlig nærme en korrekt løsning og likevel føle seg så uoverkommelig lang unna en sådan. Noen ganger er det opptil et komma eller et semikolon. Da er det viktig å huske at det er ikke det kommaet eller semikolonet som definerer hvor god man er i faget. Man må faktisk ha litt hard hud og riste det av seg når man har brukt en time eller mer på å finne ut at hele feilen var at det manglet en parentes på slutten av linje 32. God praksis i programmering, eller informatikk generelt, handler om mer en korrekt syntaks, og i grunnopplæringen vil dette handle om nettopp den algoritmiske tenkningen vi diskuterte tidligere. God læring i programmering handler om å lære seg å jobbe på en spesiell måte og ta fordel av denne måten å tenke på. Og husk at nesten ikke et eneste meningsfylt program i denne verden kjører riktig på første forsøk!
4. Privatundervisning
Det viktigste er at barnet får et godt læringsutbytte. Dersom du ikke føler deg trygg på å undervise i programmering kan privatundervisning være et godt alternativ. En mentor fra MentorNorge skreddersyr undervisningen etter ditt barns personlige læringsstil. På den måten kan barnet få alternative forklaringer og tilrettelagte oppgaver. Du kan selv være med på undervisningen slik at du kan lære mer, samt ta over undervisningen igjen når du føler deg klar. Du kan lese mer om privatundervisning med en mentor her.
Er du fortsatt litt usikker på denne programmeringen egentlig går ut på, kan du også lese vårt tidligere innlegg om nettopp dette: Hva er programmering?