Kodeskriver
– lær Python ved å lage noe som virker
Kodeskriver er et programmeringsmiljø laget for å gjøre det enklere å lære Python. Programmet kombinerer ekte Python-kode med ferdige kodebiter som kan settes inn i programmet med et trykk. På den måten kan nybegynnere raskt komme i gang med programmering, samtidig som de hele tiden arbeider med kode de kan lese, forstå og endre selv.

Kodeskriver passer særlig godt for elever og andre som er nye i programmering. I stedet for å begynne med et tomt kodefelt og måtte huske alle kommandoene selv, kan brukeren velge kodebiter fra ulike kategorier. Kodebitene setter inn ekte Python-kode i editoren, og koden kan deretter endres direkte.

Programmet har støtte for blant annet variabler, lister, operatorer, styring, hendelser, tastatur og berøring, bilder, lyd, animasjon, Turtle og spill. Det gjør det mulig å gå fra helt enkle programmer til grafikk, animasjoner og små spill i samme program.

Kodeskriver har et eget grafikkfelt der resultatet av grafiske programmer vises. Her kan man plassere og flytte figurer, bruke egne bilder, reagere på tastetrykk og berøring, oppdage kollisjoner og lage animasjoner og spill. Grafikkfeltet kan gjøres større, og på Mac kan grafikken også åpnes i et eget vindu.

Det er mulig å importere bilder og lydfiler til prosjektet. PNG-, JPG- og GIF-bilder kan brukes som figurer eller andre grafiske elementer, og lyd kan brukes i programmer og spill.

For å hjelpe brukeren videre fra de enklere Kodeskriver-kommandoene til vanlig Python, kan programmet også vise en mer direkte Python-versjon av koden. Med funksjonen Konverter til ren Python kan man undersøke hvordan programmet kan uttrykkes med mer vanlig Python-kode. Den rene Python-koden kan også vises i et eget vindu slik at de to versjonene kan sammenlignes.

Kodeskriver har prosjektstøtte slik at flere programmer kan lagres og organiseres. Prosjekter kan opprettes, gis nytt navn, dupliseres, slettes, importeres og eksporteres.

På iPad kan programmer som bruker tastaturstyring også få skjermknapper. Dette gjør det mulig å spille eller styre programmer uten fysisk tastatur. Dersom et tastatur er koblet til, kan skjermknappene holdes skjult.

Kodeskriver er laget med tanke på læring. Målet er at terskelen for å begynne med programmering skal være lav, samtidig som brukeren fra første stund arbeider med ekte Python-kode. Programmet kan derfor brukes både til de første programmeringsøvelsene og til mer kreative prosjekter med grafikk, bilder, lyd og spill.

Komme i gang
Når Kodeskriver åpnes, arbeider du i et prosjekt. Et prosjekt inneholder Python-koden din og eventuelle bilder, lydfiler eller andre ressurser som brukes av programmet.

For å lage ditt første program kan du gjøre følgende:

1. Opprett et nytt prosjekt eller åpne et prosjekt du allerede har.

2. Skriv Python direkte i kodefeltet, eller åpne kodebitene og velg en kodebit du ønsker å bruke.

3. Endre tekst, tall og andre verdier i koden slik du ønsker.

4. Trykk på Kjør for å starte programmet.

5. Se resultatet i resultatfeltet eller grafikkfeltet.

6. Trykk på Stopp dersom du vil avslutte et program som kjører.

7. Bruk Tilbakestill dersom du ønsker å starte programmiljøet på nytt.

Kodefeltet
Kodefeltet er hovedområdet i Kodeskriver. Her skriver og redigerer du Python-koden.

Editoren viser linjenummer og bruker farger for å gjøre forskjellige deler av Python-koden lettere å kjenne igjen. Du kan skrive vanlig Python direkte, akkurat som i andre Python-editorer.

Kodebiter du velger fra sidepanelet, blir satt inn som Python-kode i kodefeltet. Etterpå kan du endre koden på vanlig måte.

Du trenger derfor ikke velge mellom blokkprogrammering og tekstprogrammering. Kodebitene er først og fremst en hjelp til å skrive den faktiske koden.

Kodebiter
Kodebitene er delt inn i kategorier. Her finner du blant annet kode for bevegelse, bilder og figurer, hendelser, lister, lyd, operatorer, sansing, spill, styring, tastatur og berøring, tekst og skjerm, tid og animasjon, Turtle, utseende og variabler.

Når du velger en kodebit, settes den tilhørende Python-koden inn i programmet.

Noen kodebiter inneholder verdier du bør endre etter at de er satt inn. Det kan for eksempel være tekst, koordinater, hastighet, filnavn eller navn på variabler.

Du kan også lage egne kodebiter dersom du har kode du ønsker å bruke flere ganger.

Kjøre et program
Trykk på Kjør for å starte koden.

Vanlig tekstutskrift vises i resultatfeltet. Programmer som lager grafikk, viser resultatet i grafikkfeltet.

Dersom programmet fortsetter å kjøre, for eksempel fordi det inneholder et spill eller en animasjon, kan du avslutte det med Stopp.

Hvis programmet har havnet i en tilstand du ikke ønsker, kan du bruke Tilbakestill.

Resultatfeltet
Resultatfeltet viser tekst og annen utdata fra programmet.

Dersom du for eksempel bruker print(), vil teksten vises her. Feilmeldinger fra Python vil også kunne vises i resultatfeltet. Feilmeldingen kan hjelpe deg med å finne hvilken linje i programmet som må rettes.

Grafikkfeltet
Grafikkfeltet brukes når programmet tegner, viser figurer eller kjører animasjoner og spill.

Størrelsen på grafikkfeltet kan endres ved å dra i skillet mellom områdene i Kodeskriver. Når grafikkfeltet gjøres større, får programmet også et større område å arbeide på.

På Mac kan grafikken åpnes i et eget vindu. Grafikk kan også vises i fullskjerm når dette er tilgjengelig.

Grafiske objekter beholder omtrent samme størrelse selv om grafikkfeltet blir større. Det betyr at et større grafikkfelt gir mer faktisk plass i programmet, og ikke bare en forstørret utgave av det samme bildet.

Koordinater
Grafiske programmer bruker koordinater for å bestemme hvor objekter skal plasseres.

Midten av grafikkfeltet er normalt området rundt x = 0 og y = 0. Positive x-verdier flytter et objekt mot høyre, og negative x-verdier flytter det mot venstre. Positive y-verdier flytter objektet oppover, mens negative y-verdier flytter det nedover.

Størrelsen på det tilgjengelige koordinatområdet avhenger av størrelsen på grafikkfeltet.

Bilder og figurer
Du kan importere egne bilder til et prosjekt og bruke dem i Python-koden.

Kodeskriver støtter blant annet PNG-, JPG- og GIF-bilder. Et bilde kan brukes som en figur i et spill eller som en del av grafikken.

Etter at et bilde er importert, bruker du filnavnet i koden. Dersom filen for eksempel heter spiller.png, må det samme filnavnet brukes når figuren opprettes.

PNG-bilder med gjennomsiktig bakgrunn egner seg godt til spillfigurer.

Lyd
Du kan importere lydfiler og bruke dem i programmer.

Lyd kan for eksempel brukes til bakgrunnsmusikk, lydeffekter eller reaksjoner når noe skjer i et spill.

Lydfilen må først legges til i prosjektet. Deretter kan den brukes fra Python-koden.

Tastaturstyring
Programmer kan reagere på tastetrykk.

Dette kan for eksempel brukes til å styre en figur med piltastene, WASD eller andre taster.

Kodeskriver registrerer hvilke tastetrykk programmet bruker, slik at tastaturstyrte programmer kan brukes både med fysisk tastatur og, på iPad, med skjermkontroller.

Berøring på iPad
På iPad kan Kodeskriver vise skjermknapper når et program bruker tastaturstyring.

Skjermknappene er ikke nødvendigvis synlige hele tiden. De kan vises når de trengs og holdes skjult dersom du bruker et fysisk tastatur.

Dette gjør at det samme prosjektet kan brukes på både Mac og iPad uten at det må lages en egen versjon av programmet.

Turtle
Kodeskriver har støtte for Turtle-programmering.

Med Turtle kan du lære programmering ved å flytte en figur rundt på skjermen og tegne linjer. Du kan blant annet arbeide med bevegelse, vinkler, løkker, variabler og funksjoner.

Turtle passer godt til de første oppgavene i programmering fordi det er enkelt å se resultatet av hver kommando.

Spill
Kodeskriver kan brukes til å lage enkle spill.

Du kan kombinere bilder, bevegelse, tastatur eller berøring, kollisjoner, tilfeldige tall, variabler, poeng, lyd og animasjon.

Et typisk spill kan for eksempel inneholde en spillerfigur som styres med tastene, objekter som skal samles inn, hindringer, poengtelling og en regel for når spillet er slutt.

Ved å bruke kodebitene kan mange av delene settes inn uten at du må huske alle kommandoene selv.

Animasjon
Programmer kan utføre handlinger med bestemte tidsintervaller. Dette brukes blant annet til animasjon og spill.

En figur kan for eksempel flyttes litt flere ganger i sekundet. Sammen med tastaturstyring og kollisjoner kan dette brukes til å lage et komplett spill.

Hvor raskt en animasjon går, bestemmes av hvor ofte programmet oppdaterer grafikken og hvor langt objektene flyttes for hver oppdatering.

Prosjekter
Kodeskriver kan inneholde flere prosjekter.

Du kan opprette et nytt prosjekt, endre navn på et eksisterende prosjekt, duplisere et prosjekt eller slette prosjekter du ikke lenger trenger.

Duplisering er nyttig dersom du vil prøve en ny idé uten å endre originalen.

Importere og eksportere prosjekter

Prosjekter kan eksporteres slik at de kan lagres eller flyttes til en annen enhet.

Et eksportert prosjekt kan senere importeres i Kodeskriver igjen.

Dersom navnet på den eksporterte prosjektfilen endres før den importeres, brukes filnavnet som navn på det importerte prosjektet.

Eksport er også nyttig dersom du vil ta sikkerhetskopi av et prosjekt eller dele det med en annen bruker.

Konverter til ren Python
Kodeskriver har en funksjon som kan vise en mer direkte Python-versjon av programmet.

Når du velger Konverter til ren Python, blir koden i editoren vist som en mer grunnleggende Python-versjon.

Dette er særlig nyttig når du har blitt kjent med Kodeskriver-kommandoene og ønsker å forstå hvordan de samme oppgavene kan løses med mer vanlig Python.

Du kan gå tilbake til den vanlige kodevisningen etterpå.

Vis ren Python
Vis ren Python åpner den rene Python-versjonen uten at du trenger å erstatte koden du arbeider med.

Dette gjør det mulig å sammenligne de to versjonene ved siden av hverandre.

Funksjonen kan brukes som et læringsverktøy når du vil undersøke hvordan en enkel Kodeskriver-kommando tilsvarer flere Python-kommandoer.

Endre størrelsen på områdene
Kodefeltet, grafikkfeltet, resultatfeltet, prosjektfeltet og andre deler av Kodeskriver kan tilpasses.

Dra i skillet mellom to områder for å gjøre det ene større og det andre mindre.

Dette er nyttig fordi forskjellige oppgaver krever forskjellig plass. Når du skriver mye kode, kan kodefeltet gjøres stort. Når du arbeider med et spill eller grafikk, kan grafikkfeltet få mesteparten av skjermen.

Hvis programmet ikke virker
Begynn med å se etter en feilmelding i resultatfeltet.

Kontroller særlig at filnavn på bilder og lyd er skrevet helt likt som filene i prosjektet. Python skiller også mellom store og små bokstaver, slik at Spiller og spiller regnes som forskjellige navn.

Se også etter manglende parenteser, anførselstegn eller innrykk. Innrykk er viktig i Python, særlig etter if, for, while og funksjoner.

Hvis et program fortsetter å kjøre uten at du får kontroll over det, trykker du på Stopp. Dersom det fremdeles oppfører seg uventet, kan du bruke Tilbakestill og kjøre koden på nytt.

Lær ved å eksperimentere
Det er ikke nødvendig å forstå hele programmet før du begynner å endre det.

Prøv å endre ett tall, én tekst eller én kommando om gangen og kjør programmet på nytt. Da blir det lettere å se hvilken effekt hver del av koden har.

Du kan også duplisere et prosjekt før du eksperimenterer. Da beholder du en fungerende versjon samtidig som du kan prøve nye ideer.

Målet med Kodeskriver er ikke bare å få et program til å virke, men å gjøre det lettere å forstå hvorfor det virker.

Kodeskriver utvikles og publiseres av Hopen Utvikling.

Kodeskriver er laget som et lokalt lærings- og programmeringsmiljø for Python. Personvernet til brukerne, inkludert elever og barn, er viktig for oss.

1. Personopplysninger
Kodeskriver samler ikke inn, lagrer, overfører eller selger personopplysninger.

Appen krever
ikke:
• Brukerkonto
• Registrering
• Innlogging
• E-postadresse
• Navn
• Telefonnummer
• Posisjonsdata

2. Sporing og reklame

Kodeskriver inneholder ikke reklame.

Kodeskriver sporer ikke brukere på tvers av apper eller nettsteder og bruker ikke reklameidentifikatorer.

Appen bruker ikke tredjepartstjenester for analyse eller sporing.

3. Prosjekter og brukerinnhold
Prosjekter som opprettes i Kodeskriver, lagres lokalt på brukerens enhet.

Brukeren kan selv importere bilder, lydfiler og prosjektfiler. Disse filene forblir under brukerens kontroll og lastes ikke automatisk opp til Hopen Utvikling eller andre eksterne tjenester.

Brukeren kan selv velge å eksportere prosjektfiler. Kodeskriver deler ikke slike filer automatisk.

4. Python-kode
Python-kode som skrives i Kodeskriver, behandles lokalt på enheten.

Kodeskriver inneholder en lokal Python-motor slik at den viktigste programmeringsfunksjonaliteten kan brukes uten at brukerens kode sendes til en ekstern server.

5. Internett
Kjernefunksjonene i Kodeskriver krever verken nettkonto eller skylagring.

Kodeskriver laster ikke automatisk opp prosjekter, kildekode, bilder, lyd eller annet brukerinnhold til Hopen Utvikling.

6. Barn og skolebruk
Kodeskriver er laget for å kunne brukes i undervisning, også av elever.

Appen samler ikke bevisst inn personopplysninger fra barn eller andre brukere.

Siden det ikke kreves konto og prosjektene lagres lokalt, kan elever bruke appen uten å oppgi personopplysninger til Hopen Utvikling.

7. Tredjepartsprogramvare
Kodeskriver inneholder tredjeparts- og åpen kildekode-programvare som er nødvendig for Python-funksjonaliteten.

Disse komponentene brukes ikke av Hopen Utvikling til å spore brukere eller samle inn personopplysninger.

Nødvendige lisenser og merknader for tredjepartsprogramvare følger med applikasjonen der dette kreves.

8. Apple-tjenester
Apple kan selv samle inn opplysninger knyttet til App Store, enhetsdiagnostikk, kjøp eller andre Apple-tjenester i samsvar med Apples egne personvernregler.

Disse opplysningene kontrolleres av Apple og samles ikke inn av Kodeskriver eller Hopen Utvikling.

9. Deling av data
Hopen Utvikling selger, leier ikke ut eller deler brukerdata med annonsører, datameglere eller andre tredjeparter.

Siden Kodeskriver ikke samler inn personopplysninger, har Hopen Utvikling heller ingen database med personopplysninger om Kodeskriver-brukerne.

10. Lagring og sletting
Kodeskriver lagrer ikke personopplysninger på servere hos Hopen Utvikling.

Prosjekter og importerte filer som lagres lokalt av appen, kan slettes av brukeren i appen eller ved å fjerne appen og dens lokale data fra enheten.

11. Endringer i personvernerklæringen
Personvernerklæringen kan bli oppdatert dersom funksjonaliteten i Kodeskriver endres.

Hvis en senere versjon får funksjoner som samler inn eller behandler personopplysninger, vil denne personvernerklæringen bli oppdatert.