Klicka på bilden för att se video

Programmera ett övergångsställe

I lektionen programmeras en algoritm för att styra trafikljus i en korsning. Eleverna får skapa en praktisk applikation och lära sig att skapa och modifiera algoritmer.

Måns Jonasson har arbetat fram materialet som en del av Digitala lektioner.

Se lärarinstruktioner

Lektionens syfte

Syftet med lektionen är att låta eleverna programmera algoritmer för att lära sig styra tekniska system och öva på programmering, samt att ge dem förståelse för användningen av algoritmer i tekniska system i vår vardag.

Förberedelser

En förutsättning för att göra denna övning är att eleverna har grundläggande kunskaper i hur blockprogrammeringsverktyget* Scratch fungerar som programmeringsspråk. Du hittar fler lektioner där verktyget Scratch används om du tittar under resurssidan för Scratch.

Denna lektion förutsätter att eleverna är bekanta med begreppet algoritmer, gärna genom att först ha genomfört lektionen ”Undersök och diskutera algoritmer”.

Tänk på att det är viktigt att förmedla att programmering handlar om att prova, testa och göra om. Misstag och fel är nödvändiga delar för att kunna lösa problem. Prata gärna om begreppet bugg, genom att använda material från lektionen ”Buggar eller fel vid programmering”.

*Blockprogrammeringsverktyg är ett verktyg där eleverna arbetar med programmering genom att använda block som sammanfattar kodsnuttar i ”vanlig” kod. Scratch är utvecklat av MIT – Massachusetts Institute of Technology.

Genomförande

Titta på Scratchprojektet tillsammans med eleverna och låt dem sedan remixa produktionen för att skapa en algoritm som löser uppgiften.

Se läroplanskoppling

Centralt innehåll i ämnet teknik (årskurs 7-9)

Arbetssätt för utveckling av tekniska lösningar

  • Tekniska lösningar som utnyttjar elektronik och hur de kan programmeras.
  • Teknikutvecklingsarbetets olika faser: identifiering av behov, undersökning, förslag till lösningar, konstruktion och utprövning. Hur faserna i arbetsprocessen samverkar.
  • Hur digitala verktyg kan vara stöd i teknikutvecklingsarbete till exempel för att göra ritningar och simuleringar.
  • Programmering i olika programmeringsmiljöer.

Centralt innehåll i ämnet matematik (årskurs 7-9)

Matematisk problemlösning

  • Hur algoritmer kan skapas, testas och förbättras vid programmering för problemlösning.

Lektionen

Visa i klassrumsläge

1 Lektionsdel 1:

Hur kan algoritmer appliceras i vardagen?

Instruktioner

Läs igenom avsnittet och besvara frågorna.

I lektionen ”Undersök och diskutera algoritmer” liknas en algoritm vid ett recept. En serie instruktioner som ska följas, med flera olika vägar till ett eller flera slutresultat.

Fundera på hur algoritmer styr vår vardag. Var finns recepten i datorstyrda objekt i klassrummet? I hemmet? På stan?

Frågor att besvara

  1. Vilka andra sätt att beskriva en algoritm finns utöver liknelsen ”recept”? Skulle man kunna säga att en vanlig bok, som ju läses i en viss ordning är en algoritm? Varför inte?
  2. Vilka prylar i klassrummet har algoritmer inbyggda? Hur går de att beskriva?
  3. Varför är algoritmer nödvändiga för att ett trafikljus ska fungera?
2 Lektionsdel 2:

Diskutera hur ett övergångsställe fungerar som tekniskt system

Instruktioner

Diskutera i grupper eller par.

Frågor att diskutera

Ett övergångsställe med trafikljus för bilar och fotgängare är en del av ett tekniskt system för att reglera flöden av bilar, cyklar och människor samt att minska antalet skador. Vilka delar skulle kunna sägas ingå i systemet, utöver själva lamporna?

Diskutera även kopplingen till andra tekniska system i samhället som måste användas för att ett övergångsställe ska fungera.

3 Lektionsdel 3:

Programmera en algoritm som styr övergångsstället i Scratch

Instruktioner

Jobba i par eller lös uppgifterna individuellt.

Uppgift

Surfa in på Scratch-projektet (https://scratch.mit.edu/projects/214211923/) och jobba självständigt för att lösa uppgiften.

I övningsprojektet på Scratch kommer fotgängare gående mot ett övergångsställe som visar rött. Bilar kör förbi, för de har grönt ljus. Du ska programmera algoritmen som växlar trafikljusen så att flödet mellan fotgängare och bilister blir optimalt.

När antalet väntande fotgängare blir för stort får du ett varningsljud. Samma sak händer om det blir för många bilar i kö. Målet är att automatisera trafikljusen så att de växlar vid vissa intervaller, eller när antalet väntande bilar och fotgängare håller på att bli för högt.

  1. Börja med att fundera på den bästa metoden. Skriv pseudokod* på papper eller i en textredigerare.
  2. I Scratchprojektet finns redan ganska mycket kod. Gå igenom den och försök att förstå vad varje del utför.
  3. Testa att köra igång projektet och se vad som händer. Analysera varför fotgängarna blir påkörda.
  4. Leta reda på var i projektet algoritmen som styr trafikljusen ligger.
  5. Utvärdera koden för att förstå hur den fungerar. Testa att ändra några av värdena för att ändra funktionen.
  6. Testa! Utvärdera. Förändra koden. Testa igen!

I Scratch-projektet finns två variabler som automatiskt styr om trafikljusen. Genom att ändra innehållet i dessa variabler kan du styra ljusen, och därmed stoppa bilar eller fotgängare.

Du kommer att behöva använda följande block:

* Pseudokod är ett sätt att börja tänka i programmering utan att behöva skriva riktig kod. Pseudokoden kan vara uttryckt på vanlig svenska. Ett exempel för denna övning skulle kunna börja så här:

Om antalet fotgängare är högre än 10 så
växla till grön gubbe
växla till rödljus för bilarna

4 Lektionsdel 4:

Avslutande reflektion

Instruktioner

Jämför olika lösningar som tagits fram under lektionen med varandra. Diskutera vilken/vilka som löst uppgiften på ett effektivt sätt.

Presentera era lösningar inför klassen och berätta hur ni tänkt när ni löst uppgiften. Reflektera över att det går att lösa samma uppgift på många olika sätt med algoritmer och programmering. Diskutera gärna hur olika programmerare kan lösa uppgifter på olika sätt och hur det kan påverka vårt samhälle.

5 Lektionsdel 5:

Extrauppgift: Programmera ett trafikljus med Javascript

Instruktioner

Scratch är en utmärkt miljö för att lära sig programmeringslogik. För en mer avancerad nivå kan den här övningen vara ett bra alternativ.

Javascript-övningen går att köra i en dator med webbläsare. Övningen är framtagen av Mikael Tylmad, författare av läromedel i Javascript.

Har du synpunkter på IIS Digitala lektioner?

Hör av dig till oss! Vi tar gärna emot idéer till nya lektioner och tankar om hur tjänsten borde utformas.

Kontakta oss