Programmering

Inom digital kompetens gäller det för skolorna att skifta fokus från datalogiskt tänkande och programmering till bredare problemställningar och frågor som rör pågående samhällsutveckling.

Frågor som exempelvis hur digital teknologi utmanar våra rättigheter och vårt samhällsengagemang eller hur vår vardag och våra relationer med andra människor ändras, behöver få ta mer plats. Eleverna behöver få tillgång till verktyg som behövs får att kunna bli kritiska samhällsmedborgare som aktivt påverkar samhällsutvecklingen. Eleverna ska själva få möjlighet att skapa tekniska lösningar för att få en bättre förståelse av hur företag, myndigheter och organisationer tänker och hur utvecklingsprocessen går till. 

Definitioner

I programmeringsvärlden slänger vi oss med olika ord och begrepp som inte alltid är lätta att förstå innebörden av. I listan nedan hittar du definitioner som kanske bidrar till en bättre förståelse av programmeringens olika steg och begrepp.

Definitioner

 
Algoritm kan beskrivas som en systematisk procedur för hur man utför en steg för steg instruktion som utför en beräkning eller löser ett specifikt problem. 
Analog programmering/
programmering utan dator
Programmering utan dator är en form av programmering som används för att lära ut principerna för programmering. Det kan till exempel handla om entydiga stegvisa instruktioner eller hur symboler kan representera en instruktion till exempel en ritad pil som betyder gå framåt. Här används inte datorer utan istället används papper och penna eller tal för att förmedla instruktionerna. Instruktionerna utförs av människor som t.ex. flyttar sig själva eller en kompis eller flyttar en sak baserat på programmet.
Blockprogrammering Blockprogrammering, eller programmering i visuella programmeringsmiljöer, är en variant av programmering där programmeraren använder grafiska element för att bygga upp sitt program. Används primärt i utbildningssyfte men är också populärt i t.ex. vissa programmeringsmiljöer för dataspel, arkitektur, musik och enklare kontrollsystem. Blockprogrammering används också för att bygga upp grafiska gränssnitt till program
Bugg/fel och felsökning En bugg är ett fel i ett program som gör att programmet inte fungerar som det är tänkt. Ibland kan en bugg betyda att programmet fortsätter köra men ger ett felaktigt svar (t.ex. vid en beräkning) och i andra fall kan det betyda att programmet kraschar, dvs. slutar köra. Ordet “bugg” (från engelskans bug som betyder insekt) sägs komma ifrån att en insekt, en mal flög in i en stordator som kraschade. Detta skulle ha hänt 1947
Datalogiskt tänkande är en problemlösningsprocess för att beskriva, analysera och lösa problem. Samtidigt som datalogiskt tänkande kräver kompetenser kring logiskt tänkande, algoritmer, nedbrytning i mindre delar, mönsterigenkänning, abstraktioner och utvärdering utvecklas dessa kompetenser genom att arbeta med datalogiskt tänkande. Tillvägagångssätten kan bland annat kan vara utforskande, analyserande, skapande, felsökning, uthållighet och samarbete
Felkorrigering En fas i programmeringen där fel i programmet lokaliseras och korrigeras.
Funktion En funktion är en procedur som returnerar ett värde. Med hjälp av funktioner kan man skapa abstraktioner och lösa problem på allmän form. Funktionsanropet är ett uttryck. Det värde som funktionen ger ska endast grunda sig på de parametrar som har skickats till funktionen. En funktion kan t.ex. beräkna arean av en rektangel eller det nedsatta priset på en produkt.
Grafiskt element I blockprogrammering används grafiska element, bilder, för att representera skriven kod
Gränssnitt Det sätt som en användare styr och interagerar med ett program kallas för gränssnitt. Alla program har någon form av gränssnitt, dessa kan vara grafiska med knappar och fönster, textbaserade, talbaserade eller haptiska, vilket betyder att de nyttjar vår känsel och kroppsrörelse. Ett gränssnitt kan också finnas mellan olika delar i ett program eller mellan program.
Hårdvara Datorer eller en dators fysiska delar, som kan utföra program. Mjukvaran bestämmer vad hårdvaran ska utföra.
Händelse En händelse är ett begrepp inom programmering som innebär att en kommandoserie utförs när användaren gör vissa saker. Exempel: När man trycker på en knapp, spelar programmet upp ett ljud och en katt i spelet byter riktning eller när klockan är 7.00 ringer en väckningssignal.
I/O, Input/Output In- och utenheterna i en teknisk apparat, t.ex. i en dator eller robot, som överför data till eller från apparaten. Exempelvis kan en termometer (input) och en elmotor (output) vara kopplade till en mikrokontrollers I/O-portar och programmet kan starta elmotorn vid en viss temperatur.
Interpretator En interpretator fungerar som en programtolk och översätter steg för steg de instruktioner som ett program beskriver till maskinkod som datorn förstår. Exempel på programspråk som körs i en interpretator är Basic och JavaScript.
Kod det som skrivs in för att få en dator att utföra något. När man skriver in koden kallas det för att man kodar. Koden kan ses som ett teckensystem, ett programmeringsspråk.
Kompilator En kompilator är ett datorprogram som översätter från ett programspråk som människor kan skriva och läsa till maskinkod som datorn förstår.
Maskinkod Maskinkod, även kallat binärkod är det språk som en dator förstår och det består av ettor och nollor. Maskinkod är svårt för människor att läsa och förstå. Olika typer av datorer förstår olika typer av maskinkod.
Mjukvara Mjukvaran är en helhet som består av flera dataprogram, de filer som programmen använder och dokumentationen av dem.
Parallellism Parallellism innebär att programmet utför olika satsblock samtidigt. I många visuella programmeringsspråk uppstår parallellism när man skapar flera satsblock som reagerar på olika händelser i programmet. Om en del reagerar på ett klick och en del när man trycker på en tangent kan delarna utföras samtidigt.
Planering Planeringen är en del av programmeringen där man planerar vad programmet ska göra och hur programmeringen ska genomföras.
Procedur, underprogram Ett namngivet satsblock som utförs vid anrop. I samband med anropet kan man eventuellt skicka parametrar till proceduren. Procedurer används när samma satsblock behövs på flera ställen i programmet. På så sätt behöver man inte skriva satsblocken flera gånger utan det räcker med att anropa proceduren. Anropet är en sats.
Programmering för att kunna skapa ett program med hjälp av koder behövs mera än själva koderna. Det krävs en planering av koderna och man måste veta hur olika delar i en kod eller flera koder påverkar varandra men det krävs också problemlösningsförmåga.
Programmeringsspråk När en algoritm kodas till en kod som datorn förstår används alltid ett programmeringsspråk, som i allmänhet är textbaserat, ibland visuellt. En del programmeringsspråk lämpar sig för studier i programmering, medan en del används i arbetslivet.
Programmeringsspråk Programspråk, kallas även programmeringsspråk, är språk som människor använder för att skapa program. Datorn förstår inte programspråk direkt utan detta måste översättas till maskinkod av en kompilator eller interpretator. Olika programspråk är lämpade för olika tillämpningar och det finns idag mer än 750 olika programspråk. Exempel på programspråk: Python, C, C++, Javascript, Java, Ruby och Blockly
Rekursion En rekursiv funktion är en funktion som anropar sig själv. Med hjälp av rekursion kan man skapa slingor eller lösa problem bit för bit genom att identifiera lösningens elementärfall och fortsätta söka lösningen enligt ”söndra och härska”-metoden. Exempel: När man letar efter ett föremål i en hög kan man dela högen i två delar om och om igen tills föremålet hittas eller högen inte längre kan delas i mindre delar.
Sats, kommando En sats är ett kommando i kod som datorn utför 
Satsblock, kommandoblock I ett satsblock eller kommandoblock utförs satserna i en viss ordning. Villkorsstrukturer och upprepningsstrukturer kan påverka i vilken prioritetsordning satserna ska utföras
Sprajt eller sprite En sprajt är en grafisk komponent som kan flyttas omkring på skärmen i ett program. Används främst i dataspel och mer modernt i blockprogrammeringsmiljöer.
Syntax Det sätt en kod skrivs på eller formuleras i ett programmeringsspråk. Jämför med t.ex. rättstavningsreglerna för ett språk.
Testning Testning är en del av programmeringen där man testar programmet och försäkrar sig om att programmet eller delar av det (procedurer) fungerar som det ska och producerar rätt resultat.
Textbaserad programmering Textbaserad programmering är den vanligaste formen av programmering där programmeraren beskriver sitt program med hjälp av text (bokstäver, siffror och tecken).
Upprepningsstruktur, upprepningssats,
slinga (loop)
En upprepningsstruktur upprepar en viss del i programmet flera gånger enligt de villkor som har getts, t.ex. “ta 5 steg framåt” eller “gå framåt tills du är framme”.
Uttryck Satser består av uttryck. Ett uttryck är en räkneoperation eller någon annan operation där resultatet är ett värde som används i satsen. En jämförelse av två värden (är priset mindre än 10 eller inte?) är ett uttryck som kan användas t.ex. i en villkorsstruktur. Jämför med de matematiska termerna sats och uttryck och de grammatiska termerna mening, sats och fras.
Variabel En variabel är ett namngivet datalager. Data som lagras i variabeln kan t.ex. vara text, siffror eller en bild. Till exempel kan poängen i ett dataspel lagras i en variabel med namnet ”spelarens_poang”, där värdet förändras under spelets gång.
Villkorsstruktur,
villkorssatser
Villkorsstrukturer innebär att ett program utför olika saker enligt de villkor som har getts. I programmet kan t.ex. en figur röra sig till vänster, om det finns utrymme.
Stegvisa instruktioner En entydig instruktion kan till exempel vara att en robot ska köra framåt ett steg, eller ett block inom visuell programmering som innebär att en sprajt (grafisk figur) ska rotera 90 grader. Flera entydiga instruktioner kan sättas samman i flera steg för att få något att hända och läses i exakt den ordning som de satts samman. När du sätter samman flera stegvisa entydiga instruktioner som löser en uppgift kan man säga att du har skapat en algoritm.

Tips på resurser

Ifall du vill fördjupa dig i olika verktyg eller arbetssätt finns nedan en lista på digitala resurser i form av länkar till filmer, klipp och fortbildningar

Tips på resurser

https://www.kodboken.se/ En gratis gudie från Kodcentrum för barn och pedagoger
https://kodknack.se/ Handledning inom programmering, Årstaskolan
https://kurser.arstaskolan.se/ Kursportalen Årstaskolan
https://urplay.se/serie/196673-programmera-mera  Kortfilmer för att lära ut begrepp
 https://csunplugged.org/en/ Koda utan dator (engelskspråkig)
https://svenska.yle.fi/
kategori/vetamix/medie-och-digitalkunskap
Vetamix, medie och digital kunskap
https://eperusteet.opintopolku.fi/#/sv/digiosaaminen
/8706410/osaamiskokonaisuus/8706431
Kunskapsbeskrivningarna för digital kompetens i Finland (tidigare Nylitteracitet) 
https://www.larum.fi/sv/materialbank/
lararmaterial/laroamne/
ma/tema_programmering/
Lärum - materialbank för temat programmering
https://tutorlarare.fi/2019/11/29/
makey-makey-i-undervisningen/
Makey Makey i undervisningen, på Tutorlärarnas webbsida
https://suomi.luma.fi/sv/
files/2019/08/
Bli_bekant_med_Arduino.pdf
Bli bekant med Arduino
https://suomi.luma.fi/sv/material/ LUMA FINLAND - programmet, material för bland annat teknologiforstran: programmering, robotik och informationssamhälle
https://digitalalektioner.se/ Fria lektioner i digital kompetens Internetstiftelsen
https://tjejerkodar.se/blogg/lar-dig-programmering-3-tips-for-att-komma-igang/ Tjejer kodar
https://kinsta.com/se/blog/python-guider/ Python

Undervisningstips

I materialet nedan hittar du tips kopplade till olika ämnesområden och ofta också till olika årskurser. Samlingen består till stor del av tips som åländska lärare i Progis-projetet (2020) testat eller tipsat om men en del tips har samlats från olika källor på nätet. 

Svenska

Åk 1 Bee bot; lägg ut alfabetet under ett genomskinligt rutsystem och programmera Bee boten att köra från A till B osv. 
Åk 1 Träna på läsinlärning/skrivinlärning i åk 1 med Bluebot. Genom att programmera botten att skapa ordet "SOL" får du träna på vilka bokstäver det är, var. I ordet du hör bokstäverna. 
  Bee bot; lägg ut alfabetet under ett genomskinligt rutsystem och programmera Bee boten att köra från A till B osv. 
  Skriva grupparbeten i gemensamma dokument. Fungerar i office, pages och på google dokument. Alla elever i gruppen (eller klassen) Kan skriva samtidigt i dokumentet och se vad de andra skriver och lägger till. Som lärare får du dessutom bra översikt över vad alla arbetar med för tillfälle!
  Skrivprojekt huset där en berättande text om huset görs och som innehåller fyra lägenheter. Spela in beskrivning av vilka som bor i de fyra lägenheterna finns på scratch, koppla ihop med makeymakey och kunna spela upp sin berättande text när man trycker på respektive lägenhet.
Åk  2 - 3   Alfabetisk ordning, stavning och meningsbyggnad  med hjäp av dator, programmeringskort och BeeBot. Se Progis-rapport
Åk  2 Multimodal berättelse - Eleverna övar sig att skriva berättelser som följer en röd tråd och över på att måla noggranna bilder med hjälp av Makey Maky och code.org. Se Progis-rapport
Åk 1 - 6       Interaktiv presentation - modersmål, språk, samhällslära. Eleverna får skapa en multimedia-presentation för att dokumentera sitt
arbete med hjälp av programmering. https://www.oph.fi/sites/default/files/documents/interaktivpresentation.pdf

Matematik, fysik och kemi

Åk 2-3 Du kan jobba med att träna multiplikationstabellerna genom att programmera Bluebot som skall gå från faktor x faktor till produkt.
  Dra ett kort med tabeller. Programmera Bee boten att köra till svaret.
  Analog programmering där instruktioner (koder, pilkort) läggs i en sekvens för att kunna hitta till en viss koordinat i ett koordinatsystem. Grupparbete
Åk 4  Du kan träna på bråktalen genom att använda Bluebot. Ha olika bråktal eleverna ska räkna ut, både addition och subtraktion. Ha en Bluebot matta med olika svar på bråktalen. Låt eleverna programmera Bluebot musen till rätt svar.
  Dra ett kort med tabeller. Programmera Bee boten att köra till svaret.
  Skapa bilder te.x. snögubbe genom att skapa figurer i python eller javascript och lägga dem över varandra (circle, triangle, rectangle).
Åk 3 - 6 Utforska geometri - I denna aktivitet får eleverna utforska geometriska figurer, med fokus på månghörningar.
Eleverna arbetar fram olika varianter av ett program som ritar en månghörning, först genom att ställa upp instruktionerna steg för steg och sedan utveckla denna lösning vidare genom att identifiera mönster i både programmet och hur månghörningar konstrueras - https://www.oph.fi/sites/default/files/documents/geometri.pdf
Åk 4 - 6 Omvandla enheter - eleverna får öva sig i att omvandla mellan olika enheter med hjälp av ett färdigt program i Scratch. https://www.oph.fi/sites/default/files/documents/omvandla.pdf
Åk 5 Vattnets aggragationstillstånd - Eleverna visualiserar hur vattenmolekylerna beter sig i olika aggregationstillstånd (fast, flytande och gasform). Genom att klicka på en av tre programmerade knappar skall molekylerna omforma sig till den aktuella formen. 
https://www.oph.fi/sites/default/files/documents/
vattnets_aggregationtillstand_0.pdf
 
Åk 6 Materials ledningsförmåga - tillverkning av "lednings"-maskin för att testa olika materials ledningsförmåga och skapa en planch med solsystemet men knappar för att höra informationen. Se Progis-rapport
Åk 4 Räkna med bråk - lära sig räkna med bråktal geno att använda det med programmering och Bluebot. Se Progis-rapport
  Skapa konst med hjälp av ex. Scratch. Eleven tränar sig i algoritmer, design, programmering med repetition och händelser, viklar och geometri. Se Linda Mannilas bok Att undervisa i programmering.
Åk 7 - 9 Programmera ett dörrlarm - Material som bygger på den svenska läroplanen för teknikämnen
https://digitalalektioner.se/lektionspaket/programmera-ett-dorrlarm/

Språk

  Skapa interaktiv karta där man kan trycka på olika länder och får olika fraser upplästa. Se Progis-rapporten
Åk 1 - 6 Interaktiv presentation - modersmål, språk, samhällslära. Eleverna får skapa en multimedia-presentation för att dokumentera sitt arbete med hjälp av programmering. https://www.oph.fi/sites/default/files/documents/interaktivpresentation.pdf
  Digitala berättelser - återberätta och levandegör dialoger, belysa debatter och simulera diskussioner på främmande språk med hjälp av t.ex Scratch. Se Linda Mannilas bok Att undervisa i programmering.

Geografi och biologi

  Interaktiv karta för att lära sig länder och städer. Träna koordinatsystemet genom Bee-Bot på en världskarta. Se Progis-rapport om Jultraditioner i världen
  Skapa ett mönster som du t.ex. ritar i ett bildprogram som du sedan skall göra klart i praktiken genom att brodera/sy på annat sätt. Går även att göra i träslöjd. Skapa din produkt i ett program med mått, verktyg och gör sedan produkten på riktigt.
  Tillverka en interaktiv människokropp med Scratch och MakeyMakey där beskrivning över kanske kroppens organ och funktion har spelats in.
  Prata om fotosyntesen och kretsloppet. Göra ett eget kretslopp i Scratch för att visualisera kretsloppet. Se Progis-rapport om Fotosyntes
  Lära sig om djur och växter genom QR-koder som sätts upp som längs en korridor eller ute på skolgården. 
Åk 3 - 6 Finlands städer Eleverna gör ett eget förhör på Finlands städer. När uppgiften är färdig kan förhöret delas och
eleverna kan öva/testa sina kunskaper - https://www.oph.fi/sites/default/files/documents/finlands_stader.pdf

Religion och livsåskådning, samhällskunskap

  Gör en sketch i scratch jr. Fungerar bra för yngre åldrar när man pratar om ordet förlåt eller hur man är en bra kompis. 
  Följ upp hur man lämnar digitala fotspår efter sig. Ex på  Internetstiftelsen
Åk 1 - 6 Interaktiv presentation - modersmål, språk, samhällslära. Eleverna får skapa en multimedia-presentation för att dokumentera sitt arbete med hjälp av programmering. https://www.oph.fi/sites/default/files/documents/interaktivpresentation.pdf
Åk 5 Jultraditioner i världen - geografi, språk, musik, samhällskunskap. Eleverna gör en världskarta där jultraditioner i 24 länder presenteras i ljud och text. Se Progis-rapport
  Digitala berättelser - återberätta och levandegör historiska eller samtida dialoger, belysa debatter och simulera diskussioner med hjälp av t.ex Scratch. Se Linda Mannilas bok Att undervisa i programmering och Progis-rapporten, Multimodal berättelse

Musik

Skapa musik i Garageband
Tillverka ett piano på ett papper/använda en trappa med hjälp av scratch och makeymakey.
Cup song - Eleverna utför aktiviteten parvis i olika utrymmen. Eleverna programmerar varandra att utföra lätta cup songs. Börja med lätta ramsor och avancera enligt elevernas ålder och nivå. Eleverna får framföra sina ramsor för de andra i gruppen. https://www.oph.fi/sites/default/files/documents/cupsong.pdf
Musicera genom att arbete med toner, ljud och instrument i Scratch eller spela in via datorns inbyggda mikrofon. Exempel bygga ett piano. Elever över programmering, algoritmer, krativitet, noter, ackord, musikteori, ljudsampel, komposition, samarbete och nedbrytning av problem i mindre delar. Se Linda Mannilas bok Att undervisa i programmering.

Hälsokunskap

Programmera en kompis analogt genom att få den att göra olika rörelser/ gympaövningar.
Orientering med QR-koder på surfplatta eller telefon.

Slöjd och bild

Skapa en egen ritning/ eget recept, testa det. Göra om beskrivningar. Fortsätt omprövning osv. Träna på övertydlig beskrivning för att få förförståelse till att programmera
Skapa ett mönster som du t.ex. ritar i ett bildprogram som du sedan skall göra i praktiken genom att brodera/sy på annat sätt. Går även att göra i träslöjd. Skapa din produkt i ett program med mått, verktyg och gör sedan produkten på riktigt.
Skapa interaktiv konst, spelkonsoller, interaktiva brädspel
Skapa konst med hjälp av ex. Scratch. Eleven tränar sig i algoritmer, design, programmering med repetition och händelser, viklar och geometri. Se Linda Mannilas bok Att undervisa i programmering.

Ämnesövergripande samarbete

Åk 2-4 Animera en saga - modersmål och bild https://www.oph.fi/sites/default/files/documents/animera_egen_fabel.pdf
Åk 1 - 6 Interaktiv presentation - modersmål, språk, samhällslära. Eleverna får skapa en multimedia-presentation för att dokumentera sitt arbete med hjälp av programmering. https://www.oph.fi/sites/default/files/documents/interaktivpresentation.pdf
Åk 5 - 6 Planera en resa Uppgiften kan varieras så att man gör en resa mellan olika städer i Norden, olika länder i Europa, olika världsdelar. Uppgiften kan planeras parvis och ändå genomföras så att alla får programmera på sin egen iPad eller dator. https://www.oph.fi/sites/default/files/documents/resa_i_finland.pdf
Åk 2 Multimodal berättelse - Eleverna övar sig att skriva berättelser som följer en röd tråd och över på att måla noggranna bilder med hjälp av Makey Maky och code.org. Se Progis-rapport
  Skapa konst med hjälp av ex. Scratch. Eleven tränar sig i algoritmer, design, programmering med repetition och händelser, viklar och geometri. Se Linda Mannilas bok  Att undervisa i programmering.
  Interativa kort (för jul, födelsedagar osv.) skapa en hälsning där mottagaren måste vara aktiv för att se det slutliga meddelandet. Kortet kan göras med Scratch. Eleven tränar design, kreativitet, programmering, algoritmer och nedbrytning av problem i mindre delar. Se Linda Mannilas bok Att undervisa programmering i grundskolan.

Allmänt

Åk 3 Vad är klockan? - elever lär sig klockan med hjälp av att programmera sin BeeBot. Se Progis-rapport, klockan
  I praktiken/praktisk handling Här ingår problemlösning, att lösa problem och omsätta i praktisk handling, försök och misstag, felsöka (gå tillbaka om något gått fel, ”gör om gör rätt”) och även uthållighet, skapa produkter och analysera (vad som kan ha gått fel).
  Hour of code går att köra på  många olika hemsidor och på många olika nivåer! https://code.org/ eller  https://www.khanacademy.org/
  Träna på Bebras och var med i tävlingen. https://www.bebras.se/