Programmering er et sentralt fag for å utvikle algoritmisk tenkning og forståelse av digital teknologi gjennom praktisk arbeid med å utvikle og skape programmerbare teknologiske løsninger på ulike problem. Den globale utviklingen og behov i samfunnet og næringslivet krever løsningsorienterte prosesser, evne til å se sammenhenger mellom fagområder og evne til å lære å lære.
Alle fag skal bidra til å realisere verdigrunnlaget for opplæringen. Valgfaget programmering skal bidra til at elevene kan utvikle og vise skaperglede, engasjement og utforskertrang i samspill med andre. Faget skal også bidra til at elevene utvikler evne til å løse kjente og ukjente problemer innen teknologi og deres evne til å skape nye eller forbedre eksisterende produkter. Faget legger til rette for at elevene kan utvikle evne til kritisk tenkning og etisk bevissthet innenfor bruk av teknologi gjennom refleksjon rundt egne og andres produkter og prosesser. Refleksjon rundt personvern og delingskultur er også sentralt i faget.
Valgfaget programmering henter elementer fra matematikk, naturfag og kunst og håndverk/duodji.
Kjerneelementet algoritmisk tenkning i programmering innebærer at elevene skal kunne analysere og planlegge hvordan de gjennom bruk av teknologi skal løse problemer eller deler av problemer fra forskjellige fagområder, næringsliv eller samfunn ut fra gitte regler.
Kjerneelementet koding innebærer at elevene skal forstå og bruke grunnleggende prinsipper i programmering. Elevene skal også utvikle et funksjonelt digitalt produkt og forstå hvordan interaksjon med fysiske objekter foregår.
Kjerneelementet programvareutvikling innebærer at elevene skal jobbe praktisk med planlegging, utvikling og videreutvikling av et brukervennlig digitalt produkt gjennom testing, feilsøking og tilpasning.
Mål for opplæringen er at eleven skal kunne
forklare egne og andres koder
bruke og gjøre rede for flere programmeringsspråk der minst ett er tekstbasert
bruke og reflektere rundt grunnleggende prinsipper i programmering, slik som variabler, løkker, vilkår og funksjoner
analysere problemer, omgjøre dem til delproblemer og beskrive hvordan noen av delproblemene kan løses med programmering
planlegge og skape et digitalt produkt som tar hensyn til brukervennlighet, individuelt og i samarbeid med andre
utvikle og feilsøke på dataprogram som løser definerte problemer, inkludert kontrollering eller simulering av fysiske objekter
Underveisvurderingen skal bidra til å fremme læring og til å utvikle kompetanse. Elevene viser og utvikler kompetanse i valgfaget programmering når de bruker og gjør rede for kode. Elevene viser også kompetanse når de jobber praktisk og utforskende med å planlegge, utføre og presentere selvstendig arbeid i utviklingen av digitale produkt.
Læreren skal legge til rette for elevmedvirkning og stimulere til lærelyst gjennom varierte praktiske, utforskende og kreative arbeidsmåter i programmering. Læreren skal være i dialog med elevene om utviklingen deres i valgfaget programmering. Elevene skal få mulighet til å prøve seg fram. Med utgangspunkt i kompetansen elevene viser, skal de få mulighet til å sette ord på hva de opplever at de får til, og reflektere over egen faglig utvikling. Læreren skal gi veiledning om videre læring og tilpasse opplæringen slik at elevene kan bruke veiledningen for å utvikle kompetansen sin i algoritmisk tenkning, koding og programvareutvikling.
Standpunktkarakteren skal være et uttrykk for den samlede kompetansen eleven har i valgfaget programmering ved avslutningen av opplæringen. Læreren skal planlegge og legge til rette for at elevene får vist kompetansen sin på varierte måter som inkluderer forståelse, refleksjon og kritisk tenking i ulike sammenhenger. Læreren skal sette karakter i valgfaget programmering basert på kompetansen eleven har vist i problemløsning og planlegging, utvikling, koding og feilsøking av digitale produkt.
Elevene skal ha én standpunktkarakter.