Jeg tok kontakt med Deichman bibliotek på Lambertseter senter 16 september 2013 for å høre om muligheten til å holde et innholdsrikt, dog noe ambisiøst, programmeringskurs for ungdom via biblioteket. Jeg hadde tidligere vært inne på tanken om å organisere et programmeringskurs for ungdom uten at det resulterte i noe konkret. Når Lær Kidsa Koding så startet sitt engasjement, følte jeg at tiden var inne for å sette meg ned og planlegge et konkret innhold. Starten på Lambertseter Kodeklubb var dermed i gang! Det er også nylig opprettet en Facebook side for Lambertseter Kodeklubb. Alt kursmaterialet publiseres fritt på nettsiden Kodegenet.
 
Det å lære å programmere er vanskelig og innebærer at man må lære seg et tankemønster som er annerledes enn de fleste fag som læres bort på ungdomsskole nivå. Programmering er til tider frustrerende og man kommer til å gjøre feil – MANGE feil. Noen feil er enkle å se og rette opp i, andre er vanskeligere og ofte ser man ikke de mest åpenlyste feilene før man er på nippet til å røske strømkabelen ut av veggen. Oppskriften på å lære å programmere er å finne seg et prosjekt eller en oppgave man ønsker å utføre, for så å prøve seg frem og feile – helt til det ikke feiler lenger. Tro det eller ei, men slik er det faktisk også selv etter en høyere utdanning og 10 års erfaring i faget. For at frustrasjonen skal være enklere å takle, ønsket jeg at kurset skal være morsomt for deltakerne å være med på, og at de lærer å lage noe de kan ta og føle på.
 
Jeg har holdt introduksjonskurs i bruk av Raspberry Pi og enkel elektronikk på IT konferanser og hos IT selskaper som fagdager og ønsket at Raspberry Pi skulle være sentralt i programmeringskurset mitt. Både fordi Raspberry Pi er en fantastisk kul liten datamaskin, men også fordi den fungerer som en ypperlig og trygg platform for å lære seg mer om hva en datamaskin er, hva den består av og hvordan den kan brukes som en del av elektroniske produkter.
 
Til tross for sin kredittkort-størrelse er Raspberry Pi en fullverdig datamaskin kraftig nok til å kunne levere video i full HD, samtidig som den har innganger og utganger som gjør det mulig å koble og styre elektriske kretser.
 
 
Raspberry Pi
 
Planlegging av kursinnholdet
Utfordringen var å lage et kursopplegg som jeg hadde tro på at deltakerne følte var verd å bruke en lørdag hver tredje uke på mellom januar og mai. Vi satt opp 7 lørdager av 2-3 timer hver mellom januar og mai, med det ambisiøse målet om å lære en gruppe ungdom fra 12 til 16 år å bygge og programmere en radiostyrt bil som kan styres trådløst. Men i tillegg til å lære enkel programmering og elektronikk, skal vi også lære å installere et Linux basert operativsystem og bruke Linux sin kommandolinje gjennom hele kurset.
 
Selv om kommandolinjen kan virke som en veldig gammeldags måte å styre en datamaskin på, kommer man ikke bort fra at kunnskap om hvordan kommandolinjen fungerer og hvordan operativsystemet kan styres via kommandolinjen er svært viktig i IT bransjen.
 
Når jeg planla kursinnholdet forsøkte jeg å dele inn kurset i 7 seperate deler som bygger på hverandre, og hvor sluttresultatet er en fungerende radiostyrt bil som deltakerne selv i grupper har bygget, selv har koblet sammen de elektriske kretsene og programmert hvordan bilen skal styres.
 
For at innholdet skulle være lett tilgjengelig og enkelt og forstå, laget jeg en nettside, http://kodegenet.no, hvor kursinnholdet publiseres. Her forsøker jeg å forklare så detaljert og forståelig som mulig hva som skal gjøres, hvordan og hvorfor, samtidig som jeg har laget korte video segmenter for å demonstrere deler av innholdet. Det var også viktig for meg at kursinnholdet var fritt tilgjengelig på nett, slik at andre får muligheten til å følge eller bruke innholdet.
 
Som nevnt, inneholder kursmaterialet både tekst og videoer. Videoene er ment som et supplement til teksten, og forklarer innholdet på en mer “hands-on” og interaktiv måte enn teksten gjør. Under ser du et av eksemplene på en av videoene som følger med kursinnholdet. Hittil er det laget ca. 10 slike videoer, og det er planlagt flere i løpet av de siste 3 kapitlene/kursdagene.
 
[youtube=https://www.youtube.com/watch?v=8fLyjexdEbg]
 
Gjennomføringen av kursdagene
Vi startet med å sette av 2 timer til hver kursdag, men utvidet dette til 3 timer halvveis i kurset for å få mer tid til å jobbe med det vi lærte, samtidig som deltakerne fikk mer tid til å kunne spørre direkte når de stod fast eller lurte på noe.
 
Første kursdag startet med at deltakerne fikk utlevert hver sin Raspberry Pi datamaskin komplett med SD kort, strøm og nettverkskabler. Deretter fortsatte vi med på å sette opp og installere Raspian, samt til å koble Raspberry Pi datamaskinene til nettverket og koble seg til via en protokoll som heter Secure Shell (SSH).
 
En av deltakerne kobler sin Raspberry Pi til LAN nettverket

En av deltakerne kobler sin Raspberry Pi til LAN nettverket

 
Andre kursdag tok vi et dypdykk inn i Linux og kommandolinjen og lærte hvordan vi navigerer i filsystemet, oppretter mapper og filer, samt hvordan filer kan editeres via kommandolinjeverktøyet “nano”. Vi fikk også installert node.js, som er kjøremiljøet vi skal bruke for å kjøre JavaScript programmene vi skriver i løpet av de øvrige kursdagene.
Noen eksempler på elektriske kretser som ble bygget og programmert på kursdag 4

Noen eksempler på elektriske kretser som ble bygget og programmert på kursdag 4

 
Etter at vi ble kjent med Linux og kommandolinjen, benyttet vi tredje kursdag til å lære grunnleggende programmeringskonsepter som variabler, sammenlikninger og kontrollstrukturer, før vi fjerde kursdag tok frem elektriske komponenter som monstander, transistorer, ledninger, LED lys og koblingsbrett. Her lærte vi både hvordan vi kan koble elektriske kretser med Raspberry Pi som utgangspunkt, samtidig som vi lærte hvordan vi kan bruke Raspberry Pi til å programmere kretsene.
 
De siste 3 kursdagene skal vi bruke på å lære å kontrollere DC motorer, forskjellen på seriekobling og parallellkobling av komponenter, samt å bygge og programmere den radiostyrte bilen. Vi har satt av god tid til denne delen av kurset, for det er her jeg tror deltakerne vil være aller mest gjennom prøving og feiling.
 
Når vi startet kurset, var jeg litt redd for at opplegget var litt for omfattende og ambisiøst, og at vi ikke kom til å bli ferdig i løpet av 7 kursdager. Men det viser seg at deltakerne, som er mellom 12 og 15 år, har tatt til seg innholdet raskt og vi har stort sett kommet gjennom det planlagte innholdet på hver av kursdagene.
 
Jeg gleder meg til å se sluttresultatet 24. mai! 🙂
 
Prototypen til bilen

Prototypen til bilen med alle komponentene på plass 🙂

Jeg har laget en intro til hvordan du kan kombinere Raspberry Pi, Arduino og Minecraft. Det er kanskje litt drøyt for de aller yngste, men burde være fullt mulig for 12+ Da lærer de å lodde også…

Et bra utgangspunkt for å skremme barn som vil ha godteri

Et bra utgangspunkt for å skremme barn som vil ha godteri

 

Lambertseter Kodeklubb starter opp med en spennende kursserie for ungdom basert på RaspberryPi. Kurset starter 18. januar og vil fortsette med 3 ukers intervaller utover vinteren og høsten. Kurset baserer seg på den fantastiske mini-datamaskinen Raspberry Pi, som til tross for at den ikke er større enn et kredittkort er mer enn fullt utstyrt. Via maskinens GPIO-pinner kan den enkelt kobles til blant annet fysiske sensorer, motorer LED lamper og releer.

RaspiModelB

Kurset på Lambertseter Kodeklubb gjennomføres hos Deichmann Bibliotek på Lambertseter Senter på lørdager mellom kl. 15 og 17 og holdes av Joachim Haagen Skeie.

Deltakerne vil blir introdusert til Linux, JavaScript programmering, oppsett og bruk av Raspberry Pi, samt enkel elektronikk. Vi skal starte med å lære å koble enkle elektroniske kretser for å få LED lamper til å blinke og motta input via trykk-knapper før vi går videre til bruke av elektroniske brytere (transistorer), oppsett av Wifi på Raspberry Pi med mål om at vi i grupper skal bygge en komplett radiostryrt bil som kan kontrolleres trådløst fra en hvilken som helst enhet med støtte for WiFi. Underveis skal vi lære å programmere med JavaScript for å styre kretsene.

prototypebrettraspicar

Kurset er  fordelt over totalt 7 lørdager. Ingen forkunnskaper er nødvendige, men noe tid må deltakerne regne med å bruke mellom hvert kurs.

Kurset passer for ungdom mellom 12 og 16 år. Bortsett fra egen medbrakt bærbar datamaskin er kurset og utstyret gratis for kursdeltakerne. Påmelding gjøres via Biblioteket. Det er totalt 15 plasser: http://www.deichman.no/arrangement/programmeringskurs-for-ungdom

Når kurset er ferdig vil alt materiale gås gjennom på nytt og bli publisert gratis under en Creative Commons lisens via http://www.kodegenet.no (som er under oppbygging).

Kurset har følgende foreløpige fremdriftsplan. Deltakerne vil ha mulighet til å selv påvirke deler av innholdet i kurset underveis.

18 Januar

  • Introduksjon og utdeling av RaspberryPi
  • Introduksjon til Linux
  • Logge seg inn på RaspberryPi og kjøre enkle kommandoer (liste mapper, opprette filer, osv).
  • Inndeling i grupper

8. Februar

  • Introduksjon til programmering og JavaScript
  • Vise Pijs.io og vise hvordan Pijs.io kan kobles opp mot hver elevs Pi
  • Skrive enkle små programmer som utfører enkle oppgaver (summering av tall, enkle if-else setninger, løkker)

8. Mars

  • Introduksjon til elektronikk og utdeling av utstyr
  • Koble opp kretser som får LED lamper til å lyse
  • Bruke Pijs.io til å programmatisk skru av og på lamper

22. Mars

  • Konfigurere trådløst nett på Pi (mulig denne oppgaven må flyttes til en tidligere dato, 8. februar)
  • Programmere en liten JavaScript appliaksjon som tar imot input som kan benyttes til å utføre hendelser (f.eks. skru på og av LED lamper)
  • PC til Pi kommunikasjon

5. April

  • Introduksjon til DC motorer
  • Lære hvordan motorer kan kobles opp for å styre spin-retning, samt bremsing
  • Programmere motoren til å kjøre frem og tilbake, samt bremse
  • Forklare en enkel motor-controller og hvordan denne kan kobles slik at motoren kan bruke en ekstern strømkilde.

3. Mai

  • Dele ut byggesett for radiostyrt bil
  • Bygging av radiostyrt bil
  • Bruke RaspberryPi og motorene for å styre bilen (fortsetter med dette neste gang også)

24. Mai

  • Bygge videre på radiostyrt bil
  • Avslutning av kurset, oppsummering og tilbakemelding
  • Feire med Pizza, el.l. ?