lu.se

Computer Science

Faculty of Engineering, LTH

Denna sida på svenska This page in English This page in English

Lär dig programmera!

Artikel i Hallandsposten om programmering redan i lågstadiet, 7 oktober 2014.

Video och artikel ur SVT:s Rapport om programmering som eget ämne, 25 oktober 2013.

På LTH:s Science Center Vattenhallen har vi kul med programmering för unga och utbildar lärare i hur man kan lära ut programmering för unga. Vi använder programspråket Scala och utvecklingsmiljön Kojo

Ladda ner läromaterial: för icke-kommersiellt bruk

Svenskläraren Karin Nygårds i Rapport-inslaget ovan använder detta läromaterial i sin undervisning.

Artikel i Lärarnas nyheter "De hittar koden till tekniken".

"Eleverna hade en 90 minuters workshop idag med Kojo. Det är inte ofta 90 minuter känns som 30. Ett klassrum fullt av kreativitet!" Läs mer på Karins blogg om hur hon har gått till väga. Här finns exempel på vad hennes 4:e-klass på Sjöstadsskolan programmerat med Kojo.

I Kojo kan man skriva program i Scala. Scala är ett modernt och kraftfullt programspråk som snabbt ger resultat och hjälper dig att undvika krångliga buggar. Du kan lätt komma igång med grunderna och sedan lära dig mer och mer. Och Scala är kul!

Det finns flera möjligheter att prova på programmering i Vattenhallen. Vi har bland annat tekniksommarskola, skolbesök och praktikverksamhet

Söker du kvällsaktiviteter med programmering för unga rekommenderas varmt CoderDojo Lund och CoderDojo Malmö. Dessa avdelningar är del av den globala CoderDojo-rörelsen.

DN:s teknikblogg berättar om kojo och har en bra sammanfattning av varför alla borde lära sig programmera.

Computer Sweden berättar om Kojo och andra applikationer.

Du kan läsa om olika sätt att hjälpa barn ihång i den utmärkta skriften Barnhack från stiftelsen .se

En bra film på engelska om morgondagens kunskapsbehov finns på code.org

Om du redan vet en hel del om hur man gör programkod kan du ladda ner proffsverktygen för Scala. Du kan också ta del av materialet från vår doktorandkurs i Scala.

Lycka till!

Björn Regnell

Varför borde alla lära sig programmera?

När den obligatoriska och kostnadsfira allmänna folkskolan beslutates av Sveriges riksdag 1842 så var det under livlig debatt. Idag ifrågasätts inte att alla barn ska lära sig läsa och skriva. Då ifrågasattes det om jordbruksarbetare verkligen behövde ges dessa tillgångar. Idag ifrågasätts det av vissa om alla barn behöver lära sig programmera i grundskolan. Vissa tror det räcker med "digital kompetens" som fokuserar på användande av de program som finns idag (men som är föråldrade i morgon). Jag är övertygad om att kärnan i den kompetens som behövs hos alla medborgare i morgondagens samhälle ligger i förståelsen för hur mjukvara blir till och förmåga att själv delta i utformingen av datorernas beteende.

Hur detta kan ske rent praktiskt med hjälp av Kojo kan du se i denna film med svensklärare Karin Nygårds på Sjödalsskolan i Stockholm.

Några framsynta skolor går redan före och har programmering på schemat. Detta är ett viktigt steg på vägen till att de politiker och skolledare som bestämmer över skolans budget inser att samhällsomvandlingen kräver programmeringskunskaper till alla! Detta är inte bara en debatt om vilka ämnen som ska ingå i grundskolan utan en grundläggande principiell fråga om vilka tankeverktyg och påverkansmöjligheter vi ger morgondagens medborgare för att de ska kunna delta i demokrati och samhällsutveckling. De som kan programmera har väsentligt bättre förutsättningar att ta makten över maskinen, samhällsutvecklingen och sin egen framtid. Alla som kan lära sig läsa och skriva kan lära sig programmera! Och det är dessutom en himla kul utmaning...

Här finns ett upprop till regering att se till att programmering finns med i läroplanen. Skriv på du med!

Varför börja med just Scala-programmering och Kojo?

Det finns många olika språk och system för att lära sig programmera, så varför just använda språket Scala och programmeringsverktyget Kojo när vi ska hjälpa barn att upptäcka programmering?

Kojo är det bästa verktyg jag sett för att göra "riktig" programmering tillgänglig för barn genom en låg lärandetröskel och samtidigt med fördjupningsmöjligheter ända upp till universitetsnivå.

Kojo använder Scala som är ett modernt och kraftfullt språk med det allra senaste inom programmeringsforskningen. Scala används professionellt av fler och fler systemutvecklare över hela världen. Scala erbjuder en avancerad verktygslåda som gör att programmen blir både kortfattade och lätta att bygga vidare på och lämpar sig för programmering både i liten skala för nybörjare och i extremt storskalig programmering med miljoner rader programkod. Om man lär sig Scala som sitt "modersmål" för programmering har man en flygande start i framtidens programmeringsvärld!

En stor fördel med Scala jämfört med till exempel Java är att Scala har så kallad typhärledning, vilket innebär att kompilatorn (det program som tolkar koden du skriver och gör om den till maskinkod som datorn kan köra) är smart nog att lista ut en hel del saker som du därmed slipper att skriva. Kompilatorn förstår om du vill ha ett heltal, en textsträng eller ett decimaltal då du använder dessa utan att du även måste skriva ett speciellt typnamn som i Java och många andra äldre språk.

I många barnprogrammeringsprojekt används det som kallas dynamiskt typade språk, där Python och Javascript är vanliga exempel. Fördelen med dessa, jämfört med statiskt typade språk så som Java, är att det blir mindre att skriva och man kan göra lite hur som helst med typerna utan att kompilatorn bryr sig. Den stora nackdelen med dessa språk är att kompilatorn inte i särskilt stor utsträckning kan hjälpa till att hitta buggar (programmeringsmisstag), utan man får vänta tills man kör programmet och då klia sig i huvudet medan programmet ”går sönder”. Med statiskt typade språk kan kompilatorn redan när du skriver programmet hitta många kluriga buggar och dessutom ge ett vettigt felmeddelande. Scala är statiskt typat men undviker "pratigheten" tack vare sin smarta typhärledning.

Jag har använt Scala i flera år nu med både barn i lågstadiet och doktorander vid LTH och språket är ett fantastiskt verktyg både för nybörjaren och för dataforskarna. Jag tycker man ska börja lära sig grunderna i ett professionellt språk direkt (precis som engelskundervisningen börjar med engelska) och jag tycker man ska använda ett språk som har typkontroll och därmed ger bra stöd för att hitta buggar redan innan man kör sin kod. Dessutom är Scala gratis, och fritt (i meningen att det inte är ett enskilt kommersiellt företag som bestämmer) med en global, öppen utveckling som kontrolleras av ett välrenommerat universitet i Lausanne (EPFL) med forskningsmedel från EU:s ramprogram.

Därtill finns det en het diskussion som har att göra med hur morgondagens programmering kommer att se ut när vi har allt fler kärnor i processorerna som tvingar oss att tänka på ett helt annat sätt när vi programmerar. Så kallad funktionsprogrammering hjälper till så att programmen lättare kan köras parallellt på tusentals olika kärnor. I Scala kan man kombinera funktionsprogrammering med s.k. objekt-orienterad programmering på ett enhetligt och kraftfullt sätt. Vinsten med funktionsprogrammering blir extra tydlig när vi gör riktigt stora program och framtidens massivt parallella superdatorer finns i varje lite grunka, vilket våra barn kommer att få ta del av när de växer upp och ska forma morgondagens samhälle ...

Page Manager:  |