Technology-Will-Save-Us_BBC_Micro-Bit_dezeen_ban

Jeg har vært skeptisk til alle dingser som skal kobles til PC’er – fordi det som regel hører med software som må installeres på nedlåste skole-PC’er. Men BBC og det norske selskapet Nordic Semiconductor har løst floken. Og dingsen er billig!

Les mer

Artikkelforfatter

Ole Kristian Pedersen

Jeg anser meg selv som selvlært. Jeg lærte meg selv å programmere i niende klasse. Det tok meg lang tid å komme i ordentlig i gang. Jeg var interessert i datamaskiner og likte å spille dataspill – men det å programmere var noe helt nytt. Det var mange problemer jeg møtte på i starten. Hvor begynner man egentlig? Hvilket språk? Hva slags læringsressurser er tilgjengelig? Alle disse er spørsmål jeg vil prøve å besvare i denne teksten.

Da jeg begynte å programmere var det svært begrenset med læringsressurser. Det fantes noen videoer på youtube, mange nettsider og bøker – det aller aller meste på engelsk. Det var mye å velge i, og det var ikke lett å vite hvor man skulle begynne. Tilstanden har ikke blitt noe bedre i dag. Du kan fremdeles ikke unngå å kunne lese engelsk – dokumentasjon og læringsressurser er ofte på engelsk. Det finnes imidlertid flere ressurser på norsk i dag enn da jeg lærte å programmere.

Jeg begynte med å lære meg Python. Dette er et språk som er veldig godt egnet for de som er helt nye, men også de mer erfarne. Alternativt kan det å lære seg HTML og CSS for å kunne lage noen enkle nettsider kan også være et godt utgangspunkt. HTML/CSS er teknisk sett ikke programmeringsspråk men såkalte “Markup Languages”. Disse språkene kan likevel være nyttig å lære, spesielt om du skal lære deg å programmere interaktive nettsider i JavaScript. Etter at du er godt kjent med et par programmeringsspråk, så er det ikke så vanskelig å lære ett til. Programmeringsspråk er stort sett like, bare med litt andre navn og en litt annerledes måte å skrive på.

Det er mange språk å velge mellom…

Bøker er undervurdert. Å lære seg å programmering fra ei ordentlig bok er ekstremt nyttig. Du kan ikke kopiere koden direkte fra et nettsted eller liknende, men må skrive koden selv. Den treningen du får ved å skrive all koden selv, lete etter feil osv. er utrolig viktig for både for å lære seg å forstå hvordan det aktuelle programmeringsspråket fungerer, men også for å “få det i fingrene”. Dermed kan du skrive koden raskere og du får en “følelse” for hva som er rett, og hva som er galt. Du lærer svært mye mer av å skrive koden selv – kanskje først skrive av eksempelet i boka, før du senere endrer på koden for å se hva som skjer.

CodeSchool - enda en YouTube-kanal

CodeSchool – enda en YouTube-kanal

Det er selvfølgelig ikke noe problem å lære fra nettressurser, men husk på at du lærer mest av å skrive koden selv. Av alle ressursene som finnes på internett, så er det spesielt verdt å merke seg YouTube-videoer, gratis bøker, nettsteder/blogger og interaktive nettsteder. Imidlertid er det viktig å huske på at innholdet du finner på nett ikke alltid er oppdatert, og kanskje ikke gjelder lenger.

YouTube-videoer er en uvurderlig ressurs, du kan bare søke opp det man ønsker å lære om og som regel eksisterer en video om akkurat det man ønsker å lære. For eksempel har en foreleser ved NTNU lagt ut mange videoer om programmering i Python (på norsk).

Det finnes en mengde gratis bøker og nettsteder, og akkurat hva som passer for deg avhenger av hva du har lyst til å lære. Har du lyst til å lære Python kan du for eksempel begynne med boka Automate the Boring Stuff, eller om du har mer lyst til å lære JavaScript kan du prøve deg på Eloquent JavaScript. Begge bøkene kan leses gratis på nett. Internett har utrolig mange læringsressurser, men heldigvis er det noen som har laget en liste for oss, den kan du finne her. Søk etter det du har lyst til å lære om, for det finnes trolig på denne lista. Jeg må i tillegg nevne Lær Kidsa Koding sin egen oversikt, samt Kodeklubbens nettressurser (på norsk).

Sist, men ikke minst: interaktive nettsteder. Denne typen nettsteder er noe nytt som har kommet de siste årene, og var ikke noe som fantes da jeg lærte å programmere. Blant disse kan spesielt Codecadmy, og HackerRank være aktuelle. Slike nettsteder er ofte gode for å lære seg det grunnleggende, men gir ofte ikke den samme dybdeforståelsen som en bok eller en lengre tekst ville gjort. Dermed kan det ofte være et godt sted å begynne på et av disse nettstedene, også kan du gå videre til en god bok eller en annen mer dyptgående læringsressurs etterpå.

Codecademy lar deg skrive kode rett i nettleseren!

Codecademy lar deg skrive kode rett i nettleseren!

Hva gjør jeg når jeg har lært meg å programmere? Vel, man er aldri utlært. Noen omtaler programmering som en kunstform som det kan ta et livsløp å mestre. Man kan alltid gjøre seg nye erfaringer. En av de beste måtene å lære på er å lage noe selv. Prøv for eksempel å lage ditt eget nettsted, ditt eget spill, eller kanskje din egen app? Du vil lære enda mer av dette. Du må tenke deg frem til løsninger på egenhånd, og ikke bare løse oppgaver lagd av andre. I tillegg så er det utrolig kult å kunne vise frem noe man har lagd til andre.

Jeg vil ønske deg lykke til videre på veien i programmeringens verden. Vi kodes!

Ole Kristian Pedersen, Kodeklubben Trondheim.

 

Den første helga i juni arrangerer Kartverket og Difi hackathonet #hack4no på Hønefoss over temaet kart og åpne data. I den forbindelse inviteres også alle datainteresserte barn og unge til junior-hackathon.

Ideene bak junior-hackathon slekter mye på kodeklubbene. Vi vil vise barn hvordan de selv kan være kreative og skapende med datamaskinen. Samtidig er det litt ekstra fokus på å vise frem at åpne data kan være nyttige også for barn og unge, hvor vi vil presentere noe av det som finnes og lære dem å ta dataene i bruk. For eksempel ved å lage Minecraftverdener konvertert direkte fra åpne kartdata.

Deltager på hackathon?

Om du allerede tenker å delta på Hackathon er junior-hackathon en glimrende anledning til å dele datainteressen med hele familien. Både hackathon og junior-hackathon foregår ved hovedkontoret til Kartverket utenfor Hønefoss.

junior-hackathon

Barn som ønsker å delta?

Junior-hackathon er for barn og unge med ingen eller en del programmeringserfaring, og vil være en arena hvor de vil oppleve hvordan man bruker datamaskinen på en kreativ måte. Samtidig vil de treffe barn og voksne med tilsvarende interesser. Programmet inkluderer ting som programmering i Minecraft, rebusløp, hvordan GPS virker, hvordan lage sine egne kart, og hvordan man bygger en app. Hovedprogrammet er tilpasset aldersgruppen 12 – 16 år, men mange av aktivitetene vil også passe fra 8 år og oppover, i tillegg til at de yngre barna får egne utfordringer i blant annet Scratch og Lego (i et program vi har kalt junior-junior-hackathon).

Bidra på andre måter?

Ungdom og voksne som vil være med å veilede barna eller bare er nysgjerrig på hva barna gjør er hjertelig velkomne til Hønefoss disse dagene. Om du har noe du vil lære bort til barna, for eksempel datavisualisering i Processing, interaksjon med omverdenen gjennom Arduino eller helt andre ting så ta kontakt med junior-hackathon-ansvarlig Geir Arne Hjelle.

Praktisk å vite

Junior-hackathon foregår fredag 5. juni og lørdag 6. juni ved Kartverkets hovedkontor på Hønefoss. Deltagelse er gratis, og alle måltider er inkludert. Junior-hackathon starter klokken 15:00, men om noen barn kommer tidligere (hackathon starter på morgenen) vil det være aktiviteter også før klokken tre. All info, inkludert påmelding og informasjon om overnatting, finnes på nettsiden http://hack4.no/. Se også flyer for junior-hackathon.

Ta med deg selv og barna til Hønefoss første helga i juni! Påmelding innen 17. mai.

I den første artikkelen viste jeg hvordan en kan få gitt beskjed til en Arduino om at en drar i en spak vha. ComputerCraft. Denne gangen skal jeg vise hvordan du kan gjøre det tilsvarende med ScriptCraft. Det er mange forskjeller:

  • ScriptCraft bruker Javascript som programmeringsspråk. Det vil komme til nytte dersom du skal lage websider, siden all logikk der skrives i det språket
  • Du får tilgang til å hekte logikk på mange hendelser i hele Minecraft, og er ikke begrenset til “Computere” slik som i Computercraft
  • Det er vesentlig enklere å installere
  • Det er basert på bukkit-server, som er den mest populære plattformen for å lage plugins til Minecraft
  • Javascript-utvidelsen er basert på det faktum at det faktisk er støtte for å ha javaScript som scriptspråk i et javaprogram. Dermed har du også tilgang til mange Java-API´er og klasser. Så det er muligheter for å gjøre veldig mye.

Walter Higgins skapte ScriptCraft blant annet for å kunne lære barn koding i CoderDojo. Her ser du en artikkel fra CoderDojo, med noen eksempler på bruk i en kodeklubb-setting. Denne artikkelserien ser ellers ut til å være en fin ressurs for “modding” av Minecraft generelt. .

Her er en video som viser noe av hva en kan få til med ScriptCraft:

Installasjon

Dette er delvis oversatt fra den engelske veiledningen. Om du har noen Minecraft-kyndige barn er det gjort på 1-2-3

  1. Siden dette er en server-versjon, må du skaffe deg en bruker hos Minecraft – men det hadde du kanskje? Det er en engangskostnad på ca. 175 kroner. Så må du installere den vanlige Minecraft-klienten og sjekke at den virker. Det er en fordel om du har installert Java på forhånd, og du trenger ikke være redd for sikkerhetshull – her skal programmene kjøres lokalt
  2. Så må du installere Bukkit Server. som altså er en versjon av Minecraft hvor du kan legge inn plugins. Du kan laste den ned herfra
  3. Neste skritt er å laste ned ScriptCraft – altså den plugin’en som lar deg kontrollere Minecraft ved hjelp av JavaScript. Det er en enkelt jar-fil som du kopierer inn i plugins-katalogen til bukkit server.
  4. Gå til http://scriptcraftjs.org og sjekk alle de fine eksemplene. Du kan for eksempel styre en drone som bygger ting i minecraft, eller kalle på enkle kommandoer som lager fyrverkeri, arrangerer snøballkamp, eller bygger et slott!

Her er Javascript-versjonen av programmet

[gist id=”8566683″]

Kildekoden på Arduino er identisk med den forrige artikkelen, og så må du huske å kjøre den samme shell-kommandoen.

Neste skritt: Internet of things

Siden jeg sitter og pusler litt med Internet of things om dagen, spurte jeg på forumet til ScriptCraft om hvordan en kunne koble seg til MQTT fra ScriptCraft. MQTT er blant de ledende standardene innenfor feltet. Det var ikke helt rett fram, så Walter Higgins laget det like gjerne som en utvidelse til ScripCraft! Dermed kan vi koble Minecraft med sensorer og brytere i hele huset. Eller koble sammen flere minecraft-verdener på forskjellige PC´er – i forskjellige byer! Jeg har laget en demo av konseptet, og pusler med en artikkel om dette også.