Digital kompetens och programmering ska stärkas i skolan


- What programming language should I learn? 

- All of them! 

Fråga från en av mina studenter till en programmerare på IBM som besökte skolan


Tillägg 5 April

Skolverket har nu även lagt ut ett förslag om hur programmering ska in på gymnasiets olika program
Skolverket snart ett förslag på hur alla gymnasieelever som går ett nationellt program ska kunna läsa programmering.
Alla elever ska kunna välja kursen Programmering 1, som revideras från dagens Programmering 1 troligen för att fler ska kunna läsa den. Bla tas objektorienteringen bort som krav och ligger endast i Programmering 2. Dessutom ska alla kunna välja Tillämpad programmering som kurs. Tanken är att elever ska kunna använda programspecifika kunskaper för att programmera.
Till exempel ska elever på estetiska programmet kunna lära sig att programmera musik medan elever på industritekniska programmet ska kunna lära sig att programmera robotar för smart industri och spelprogrammering ska finnas som en möjlig specialisering inom teknikprogrammet
Jag anser att detta göra mina fem punkter nedan ännu viktigare. Man måste ha någon form av lärplattform så alla som ska undervisa i programmering på grundskolan eller gymnasiet inte måste uppfinna hjulet.

-------------------------------------------------------------------------------------------------------------------------
Publicerad 16 Mars

Sammanfattning av vad jag tycker man ska göra när man tar med programmering i skolan

  1. Ta in bra exempel från olika grundskolor där man använt programmering redan nu och publicera dem på skolverkets webbplats
  2. Skapa en referensgrupp med lärare på grundskola, gymnasiet, högskola, företag
  3. Gör en lärplattform både för lärare och elever.
    Kodcentrum är tidigt ute med en lärplattform riktade till åk 4-6!
  4. Använd Python på mellan och högstadiet och Scratch som språk på lärplattformen. (Vill man lägga till fler språk/miljöer kan man göra det efter hand)
  5. Gör programmering valbart som ett extra språk/individuellt i grundskolan

Digital kompetens och programmering ska stärkas i skolan. Jag håller inte med att programmering inte ska vara ett eget ämne utan bakas in i matematik och teknik. Det riskerar att komma i bakgrunden och att många lärare inte har kompetensen att genomföra programmeringsavsnitten i den kommande reviderade läroplanen. Fler har liknade synpunkter [NyT], [Dagens Samhälle]

Oavsett vad som skrivs i läroplanen anser jag att det ska göras en lärplattform som dels ökar kompetensen för de lärare som förväntas lära ut om programmering och dels som kan lära eleverna programmera. Det finns många exempel på lärplattformar som man skulle kunna ta efter och anpassa till elevernas ålder.
Det finns interaktiva webbplatser där man får skriva in kod efter att ha läst instruktioner. Webbsidan kontrollerar koden och ger återkoppling. Exempel på webbplatser är www.sololearn.comcodecademy.comfreecodecamp.com.

Det finns webbplatser som innehåller mer videobaserad undervisning som
https://www.khanacademy.org och https://classroom.udacity.com/

För några år sedan satsades det på lärares fortbildning inom IT inom ett projekt som hette PIM. Jag tror något liknade måste till för att införandet av programmering och digitalisering ska lyckas i skolan. Men denna gång måste det finnas lärplattform för elever också.

Jag tror på att införa ren kodning tidigt. Ska detta lyckas bör man välja ett programmeringsspråk som går lätt att komma igång med. Längst ner går jag igenom olika språk och deras för- och nackdelar som jag ser på det. När jag läser tilläggen till läroplanen, tycker jag att de är väldigt öppna. Man kan i princip använda blockprogrammering i Scratch genom hela grundskolan. Det står inget om selektion (if-satser), iteration (loopar) eller funktioner/metoder. Dessa är grundläggande för att använda programmering på högre nivå. Jag tänker mig att elever som lärt sig om detta har ett försprång jämfört med de som endast fått stegvisa instruktioner. Var är likvärdigheten då?

Jag var på ett seminarium där Fredrick Rybarczyk som startat Patwic föreslog att programmering borde vara som ett extra språk i skolan. Det tycker jag låter som en utmärkt förslag.
Under ett antal år har prövat på olika utvecklingsmiljöer och programmeringsspråk.

Python

Av alla programmeringsspråk som använd professionellt tror jag det är lättast att komma igång med Python. Det går att installera på Windows, Mac eller olika Linuxvarianter. 
+ Man kan använda onlinetjänster och programmera i Python utan att installera det. 
+ Man kan göra  många olika saker med Python.

- det finns i två versioner, version 2 och version 3, som jag förstått det kan man inte göra allt i version 3 och det kan vara lite förvirrande vilken version man ska använda

Java med NetBeans/Eclipse 

Detta är ett vanligt sätt att introducera programmering på gymnasiet. 
+ Du kodar i en professionell utvecklingsmiljö direkt

- Det blir väldigt lätt fel. Fel i syntaxen, fel i logiken.
- Komplicerat gränssnitt i utvecklingsmiljön.
- I början måste man ha med kod som en nybörjare inte förstår

Android Studios 

Man gör mobilappar till Android här så varför jobbar inte alla i det i skolan direkt? 
+ Man kan tjäna pengar om man kommer på en bra idé
+ Man gör något "på riktigt"

- Det är komplext på alla nivåer. Koden, hur man ska hantera grafiken, 
- Utvecklingsmiljön ändrar sig konstant. Dels hur man ska programmera, dels gränssnittsmiljön  


Greenfoot och Java

Utvecklingsmiljö för att lära sig programmering i allmänhet och Java i synnerhet
+ Det är lätt att komma igång
+ Det finns 33 gratis videomanualer och en book på engelska att beställa
+ Nu finns det tom en extra anpassning som kallas Stride för att få ännu yngre att lära sig
+ Det finns många färdiga exempel att bygga vidare på
+ Funkar till svaga elever till duktiga elever

- Det är inte en professionell utveckligsmiljö
- Man bara exportera som Javaapplets

JavaScript

Javascript används i webbläsarna för att skapa interaktivitet, effekter, 3D, VR(virtual reality) och animationer. Man kan koda direkt i javascript eller använda olika ramtillägg där någon annan skapat färdiga funktioner som man kan använda utan att skapa de på egen hand. Ren JavaScript är svårare att komma igång med än tex med p5.js. 

jQuery - för att skapa interaktivitet och animationer på webben. 

three.js - för 3D och VR. Av alla programmeringstillägg är three det som ger mest WOW-effekt snabbast. Man kan göra 3D-miljöer och virtuella världar som exempelvis detta julkort jag gjorde 2016.

p5.js - är ett tillägg för att snabbt komma igång med visualiseringar på webbsidor. p5.js är den del av
processing. Den stora fördelen är att man kommer igång med att synliggöra koden. Om man vill veta med så rekomenderar jag att man tittar på Daniel Shiffmans videomanualer om p5.js.

Den som passar bäst för grundskolan är p5.js

+ Lite kod för att se något resultat
+ Man lär sig visuellt
+ Om man kan engelska finns fantastiska videomanualer att lära sig av.

- Man hade tidigare ett program som man kunde ladda ner och komma igång snabbt

Från en av mina kurser i programmering


C# i Unity

Jag hat använt C# i det professionella utvecklingsverktyget Unity. En del av de elever som jag haft på Teknikprogrammet vill jobba i proffsverktyg direkt. En del klarar av detta utmärkt men det är inte för alla. Min erfarenhet är att precis som NetBeans har många inställningar och menyer i utvecklingsmiljön. Dessutom behöver man lära sig många nya metoder som är unika för Unity tidigt så inlärningskurvan lutar brant ren i början.

+ ett proffsprogram där man kan göra riktigt snygga spel
- svårt att starta med sedan blir det svårare

Php och sql 

För att göra dynamiska webbplaster räcker det inte med HTML, CSS och JavaScript. Med php kan du göra sidor som ser olika ut beroende på vem som använder sidan. En webbshop eller Facebook skulle kunna göras med php. Sql är för att ha hand om databaser.

+ Om man tycker det är roligt att göra webbsidor och kombinera tekniker som HTML, CSS och php så är detta rätt väg
- Troligen den sämsta vägen att gå om man ska börja programmera. Man behöver kunna HTML och kanske CSS för att lära sig php, och använder du inte sql kan du inte använda php fullt ut

Blockprogrammering i Scratch och App Inventor.

Scratch är populärt inom grundskolan. Jag kan förstå lockelsen med att starta med detta program. blocken innehåller många programmeringsbegrepp som loopar, if-satser och funktioner/metoder. För lågstadiet, kanske mellanstadiet är det lämpligt. Men om man vill låta eleverna göra något som liknar vad man gör på företag är det mindre lämpligt
App Inventor använder liknade blockprogrammering som Scratch men man kan göra appar till Android istället. Nackdelarna är att man är fast i en begränsad design.

+ för yngre barn
- begränsar för framtiden

Allt handlar om vilken ålder du har, vilket intresse du har och om du vill pröva på hur det är att skriva kod som en riktig utvecklare.

Använd miljöer som är på engelska. Vill du jobba med programmering så kommer manualer, dokumentationer, hjälpforum att vara på engelska.


Här kommer förslag på förändringar i läroplanen


Matematik
Algebra i årskurs 1–3: Hur entydiga stegvisa instruktioner kan konstrueras, beskrivas och följas som grund för programmering. Symbolers användning vid stegvisa instruktioner.

Algebra i årskurs 4–6 samt årskurs 7-9: Hur algoritmer kan skapas och användas vid programmering. Programmering i visuella/olika programmeringsmiljöer.

Problemlösning i årskurs 7–9: Hur algoritmer kan skapas, testas och förbättras vid programmering för matematisk problemlösning.

Teknik
Arbetssätt för utveckling av tekniska lösningar i årskurs 1–3: Att styra föremål med programmering.

Arbetssätt för utveckling av tekniska lösningar i årskurs 4–6: Att styra egna konstruktioner eller andra föremål med programmering.

Tekniska lösningar i årskurs 7–9: Tekniska lösningar som utnyttjar elektronik och hur de kan programmeras.
Arbetssätt för utveckling av tekniska lösningar i årskurs 7–9: Egna konstruktioner där man tillämpar styrning och reglering, bland annat med hjälp av programmering. Hur digitala verktyg kan vara stöd i teknikutvecklingsarbete till exempel för att göra ritningar och simuleringar.

De naturorienterande ämnena; biologi, fysik och kemi 
I respektive ämnes metoder och arbetssätt i årskurs 7–9; bland annat hur simuleringar kan användas som stöd vid modellering. Formulering av enkla frågeställningar, planering, utförande och utvärdering.

Gymnasieskolan
Ändringar i ämnesplaner Matematik
Förtydliganden och förstärkningar av arbete med digitala verktyg men också i vissa kurser tillägg av programmering. Samhällskunskap
Förtydliganden av hur digitaliseringen påverkar samhället och en förstärkning av medie- och informationskunnighet Svenska och svenska som andraspråk
Digital läsning och digitala texter omfattas tydligare liksom digitaliseringens påverkan på texter och kommunikation

Kommentarer