Programmera ett övergångsställe
Lektionen handlar om att styra trafikljus i en korsning.
Diskutera hur ett övergångsställe fungerar som tekniskt system
Titta på filmen för att få en överblick av uppgiften
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.
Läs och diskutera.
- Vad ingår i det tekniska systemet för övergångsstället, utöver lamporna?
- Vad ska systemet styra, kontrollera?
- Vilka andra tekniska system måste övergångsstället kopplas ihop med för att det ska fungera?
Programmera en algoritm som styr övergångsstället i Scratch
I övningsprojektet "Programmera ett övergångsställe" 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.
I Scratch-projektet "Programmera ett övergångsställe" 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:
Arbetsgång
- Börja med att testa projektet "Programmera ett övergångsställe", vad händer? Hur kan du styra trafikljusen?
- I Scratchprojektet finns ganska mycket kod. Gå igenom den och förklara vad varje del gör.
- Försök förklara varför fotgängarna blir påkörda.
- Titta i koden och sök reda på var algoritmen som styr trafikljusen ligger.
- Berätta för en kompis vad som händer i koden.
- Testa att ändra några av värdena för att ändra funktionen.
- Testa! Utvärdera. Förändra koden. Testa igen!
* 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
Avslutande reflektion
Presentera er lösning inför klassen och berätta hur ni tänkt när ni löst uppgiften. Jämför er lösning med andras.
- Finns det en "rätt" lösning?
- Finns det en "effektiv" lösning?
- Finns det en oetisk lösning?
- Reflektera över att det går att lösa samma uppgift på många olika sätt med algoritmer och programmering.
- Hur kan olika programmerare och deras värderingar påverka vårt samhälle?
Extrauppgift: Programmera ett trafikljus med Javascript
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 trafikljus går att köra i en dator med webbläsare. Övningen är framtagen av Mikael Tylmad, författare av läromedel i Javascript.
För läraren
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
Skolans uppdrag
Skolan ska bidra till att eleverna utvecklar förståelse för hur digitaliseringen påverkar individen och samhällets utveckling. Alla elever ska ges möjlighet att utveckla sin förmåga att använda digital teknik. De ska även ges möjlighet att utveckla ett kritiskt och ansvarsfullt förhållningssätt till digital teknik, för att kunna se möjligheter och förstå risker samt kunna värdera information.
Teknik
Syfte
Undervisningen i ämnet teknik ska syfta till att eleverna utvecklar intresse för och kunskaper om tekniken som omger oss. Eleverna ska ges möjligheter att utveckla förståelse för att teknik har betydelse för och påverkar människan, samhället och miljön. /.../
Undervisningen ska ge eleverna möjligheter att reflektera över teknikens historiska utveckling. Därmed får de bättre förutsättningar att förstå samtidens tekniska företeelser, hur tekniken och samhällsutvecklingen påverkar varandra samt hur teknik kan användas på ett ansvarsfullt sätt.
I undervisningen ska eleverna ges möjligheter att använda ämnets begrepp och att utveckla kunskaper om hur tekniska lösningar används och fungerar. Genom att tekniska lösningar görs synliga och begripliga i undervisningen ges eleverna förutsättningar att orientera sig och agera i en teknikintensiv värld.
Undervisningen i ämnet teknik ska ge eleverna förutsättningar att utveckla
- förmåga att reflektera över olika val av tekniska lösningar, deras konsekvenser för
individen, samhället och miljön samt hur tekniken har förändrats över tid,
Centralt innehåll i ämnet teknik (åk 7–9)
Teknik, människa, samhälle och miljö
- Möjligheter, risker och säkerhet vid teknikanvändning i samhället, däribland vid lagring av data.
- Hur tekniken möjliggjort vetenskapliga upptäckter och hur vetenskapen har möjliggjort tekniska innovationer.
- Hur föreställningar om teknik påverkar individers användning av tekniska lösningar och yrkesval.
Tekniska lösningar
- Hur komponenter och delsystem benämns och samverkar inom tekniska system, till exempel informations- och kommunikationsteknik och transportsystem.
- Tekniska lösningar för styrning och reglering med hjälp av elektronik och olika typer av sensorer. Hur tekniska lösningar som utnyttjar elektronik kan programmeras. Begrepp som används i samband med detta.
Arbetsmetoder för utveckling av tekniska lösningar
- Hur digitala verktyg kan användas i teknikutvecklingsarbete, till exempel för att göra ritningar och simuleringar.
- Egna konstruktioner där man använder styrning eller reglering med hjälp av programmering.
- Dokumentation av tekniska lösningar: skisser, ritningar, fysiska och digitala modeller samt rapporter som beskriver teknikutvecklings- och konstruktionsarbeten.
Matematik
Syfte
Undervisningen i ämnet matematik ska syfta till att eleverna utvecklar kunskaper om matematik och matematikens användning i vardagen och inom olika ämnesområden. /.../Genom undervisningen ska eleverna ges förutsättningar att utveckla förtrogenhet med grundläggande matematiska begrepp och metoder och deras användbarhet. Vidare ska eleverna genom undervisningen ges möjligheter att utveckla kunskaper i att använda digitala verktyg och programmering för att kunna undersöka problemställningar och matematiska begrepp, göra beräkningar samt för att presentera och tolka data.
Centralt innehåll i ämnet matematik (åk 7-9)
Algebra
- Programmering i visuell och textbaserad programmeringsmiljö. Hur algoritmer skapas, testas och förbättras vid programmering.
Sannolikhet och statistik
- Tabeller, diagram och grafer samt hur de tolkas och används för att beskriva resultat av egna och andras undersökningar, såväl med som utan digitala verktyg.
Dela lektionen
Spara som PDF
Google Classroom
Google Drive
Microsoft Teams
Eller installera vårMicrosoft Teams app