Modul 5 - Input, betingelser og tilbakemeldinger

Betingelse - ikon, med skygge

Hensikt

Matematikk

  • Vurdere strategier for å finne et hemmelig tall innenfor et gitt intervall.
  • Vurdere strategier for å finne sammenhengen mellom tall som blir "matet" inn i en funksjonsmaskin (lineær sammenheng) og resultatet som kommer ut.

Programmering

  • Kommunisere med et program gjennom å sende og motta informasjon.
  • Få programmet til å gi en betinget tilbakemelding ut fra innspill brukeren kommer med.
  • Ta vare på innspill brukeren har gjort.
  • Introdusere flytskjema.

Oversikt over nye blokker i denne modulen

Tabell med oversikt over blokkene i Scratch som brukes i denne modulen.

Kort oversikt

Denne modulen handler om å vurdere strategier. I DEL 1 skal elevene finne et hemmelig tall innenfor et oppgitt tall-intervall. De lager først et enkelt program der det hemmelige tallet er i intervallet 1-5 og de får gjette én gang. Programmet utvides til slik at det hemmelige tallet er i intervallet 1-64 og man skal gjette helt til man finner det hemmelige tallet. DEL 2 handler om å finne to hemmelige tall etter fem forsøk. Her kan elevene utvikle strategier for å finne konstantene a og b i en lineær sammenheng: ax + b. a og b er de hemmelige tallene som programmet velger og x er det tallet man ber programmet gjøre beregningen med.

Del 1 - finn tallet 

Fase 1

Læreren trekker det hemmelige tallet

Læreren har kort med tallene 1-5, trekker tilfeldig ett av dem og legger det på bordet med framsiden ned. Grupper av elever gjetter etter tur på ett av de fem tallene. Læreren skriver tallene fra hver gruppe på tavla. Deretter ser læreren på kortet og gir tilbakemelding på om tallene er feil eller riktig. Det kan være lurt å spare det riktige til slutt.

Forbered et program som velger det hemmelige tallet

Elevgruppene får utlevert et flytskjema og skal sette inn beskrivende tekst i de åpne delene (arbeidsark 05a - gjett ett forsøk).

Flytskjema og program i Scratch som gjennomfører "gjett tallet" med tilfeldig tall fra 1-5.

Elevgruppene får utlevert flytskjemaet og programmet. Gruppene skal finne ut og kunne forklare

  • hvorfor programmet bør starte med blokka skjul variabel
  • hvilke blokker som blir brukt for å velge det hemmelige tallet
  • hva som kan stå i de tomme rutene i flytskjemaet
  • hvilke blokker som sammen kan svare på om brukeren har gjettet riktig
  • hvilken tekst som skal stå i hver av de to blokkene si.

Elevene lager programmet og bruker det til en utforsking

Punkt 1 og 2 står også på arbeidsark 05a - gjett 1-5, formulert som et oppdrag til elevene. Punkt 3 gjennomføres med klassen når elevene har tilstrekkelig å dele.

  1. Elevene kjører programmet og gjetter på samme tall helt til de gjetter riktig tall. Elevene teller hvor mange ganger de må gjette for å få det tallet de har valgt og noterer både hvilket tall de brukte og hvor mange ganger de måtte gjette før de fikk dette tallet.
  2. Gjenta utforskingen med andre tall og noter resultatene. Det er selvsagt OK å teste samme tall flere ganger!
  3. Hvis man samler dataen fra utforskingen fra alle elvene/elevgruppene i klassen, har man et stort tallmateriale man kan undersøke. Dataene kan med fordel samles i et regneark.
    1. Hvor mange fikk riktig på første gjett?
    2. Hva var det høyeste antall gjett hver av gruppene måtte bruke?

Fase 2

Programmet skal nå utvides slik at brukeren får tilbakemelding på om tallet brukeren gjetter, er for stort eller for lite.

Studer flytskjemaet

Arbeidsark 05b - flytskjema flere forsøk.

Flytskjema som beskriver algoritmen for Gjett tallet, med tallene fra 1-64.

Sammenlign dette flytskjemaet med det forrige.

  1. Hva er likt med de to flytskjemaene?
  2. Hva er forskjellig?

Studer det uferdige programmet

Arbeidsark 05c - program flere forsøk

Ferdig program gjett tallet 1-5 og uferdig program gjett tallet 1-64.

Kodeblokkene A og B er laget ut fra de to flytskjemaene elevene nettopp har sammenlignet.

Elevene skal sammenligne de to kodeblokkene.

  1. Hvilke endringer er gjort i hvis-blokka i B? Hvorfor må man gjøre disse endringene?
  2. Hvilke blokker er lagt til i program B sammenlignet med program A? Hva er hensikten med disse blokkene?
  3. Hva må settes inn i tomrommene i program B?

Elevene lager programmet og bruker det til utforsking

  1. Elevene prøver programmet noen ganger. For hver gang de prøver seg, noterer de hvilket tall de prøvde på og om tallet var for stort eller for lite. De holder på helt til de har funnet det hemmelige tallet.
  2. Læreren legger opp til en samtale om ulike strategier elevene kan bruke når de prøver å finne tallet.

Tips: En liten endring som gir mer liv til programmet
Det er mulig å få det hemmelige tallet med i svaret til slutt i programmet. Da legger vi blokke sett sammen inn i si-blokka: Kodeblokk i Scratch som setter sammen to variabler eller tekst og variabler.

Vi kan også legge sett sammen-blokka inn i spør-blokka, slik at tilbakemeldingene inneholder både svar og om svaret er for stort eller for lite. Tilbakemeldingene kan da bli slik:

Tilbakemeldingsblokker som sier om taller er for stort, for lite eller riktig.

En mulig utvidelse av programmet

Nederst i blokkene med variabler, ligger knappen Lag en Liste: Knapp med teksten "Lag en Liste"..

Klikker man på knappen, kommer det opp en dialogboks, hvor man kan gi navn til listen man vil lage.

Dialogboks som oppretter navngitt liste.

Etter at man har laget en liste, vises den på samme måte som en variabel.

Listen "Tall gjettet" i Scratch er opprettet.

Samtidig får man tilgang til en rekke blokker. Dette er de tre første:

Blokkene "Legg til i liste", "Slett element i liste" og "Slett alt i liste".

Man kan bruke den første av disse tre blokkene for å legge tallet brukeren gjetter inn i lista Tall gjettet. Lengden til lista vil da også vise hvor mange ganger man har gjettet i alt. Finn ut hvor denne blokka må settes inn i kodeblokka slik at programmet holder kontroll på hvilke tall brukeren gjetter på før det blir treff på det hemmelige tallet.

Blokka slett alt i _, tømmer lista og må settes inn i kodeblokka før brukeren begynner å gjette.

Elevene utvider programmet

Arbeidsark 05d - 1-n med liste.

Studer programmet der du selv bestemmer det største tallet.

  1. Spor alle variablene gjennom programmet.
  2. Hvilke variabler endrer ikke verdi underveis?
  3. Hvilken variabel får nye verdier underveis i programmet?
    Når endrer denne variabelen verdi?
    Hvorfor må denne variabelen endre verdi?
  4. Hvordan tar programmet vare på de verdiene dere har gjettet på?

Første halvdel av programmet "Gjett tall". Programmet sender "melding1" når det er ferdig.

Andre halvdel av programmet "Gjett tall". Programmet starter med å ta imot "Melding 1", og sjekker om brukeren gjetter riktig tall. Når brukeren har gjettet et tall, lagres dette i en liste, slik at man har oversikt over alle tall som brukeren har gjettet.

Bruk programmet til utforsking

  1. Kjør programmet mange ganger. For hver gang noterer dere
    1. det hemmelige tallet
    2. hvor mange ganger dere måtte gjette før dere fant det hemmelige tallet.
  2. Det er mulig å finne en strategi som garantere at man gjetter det hemmelige tallet etter et bestemt antall forsøk (man kan selvsagt være heldig og finne tallet på færre forsøk).
    1. Hva er største antall gjett man trenger bruke når det hemmelige tallet er 1-64? Beskriv denne strategien.
    2. Hva blir det største antall gjett man trenger når det hemmelige tallet ligger i et annet tall-intervall, for eksempel 1-50?
    3. Undersøk andre verdier for største tall.
    4. Kan dere lage en regel for største antall gjett man trenger?

Kommentarer

Når man bruker blokka tilfeldig fra _ til _ kan man få alle hele tall fra og med det første til og med det andre tallet man skriver inn.

En god strategi for å sikre seg at man finner det ønskede tallet er først å gjette på det midterste tallet (her 32). Da er halvparten av tallene ekskludert når vi får vite om tallet er for stort/lite. Neste gjett bør da være 16 eller 48. nok en gang blir mulige valg halvert. Slik kan vi fortsette, og etter 6 halveringer er det kun ett tall igjen: 32, 16, 8, 4, 2, 1.

En mulig utforskingsoppgave med dette programmet kan være å undersøke minst mulig antall gjett som garanterer at man finner det hemmelige tallet med denne halveringsstrategien.

Eksempler

Man kan velge tall i intervallet 1-64. Det hemmelige tallet er 49. Brukeren gjetter

  1. 32 – for lavt
  2. 48 – for lavt
  3. 56 – for høyt
  4. 52 – for høyt
  5. 50 – for høyt
  6. 49 – riktig

Når det største mulige tallet er 64 er man garantert å finne riktig svar på det sjette forsøket.

Man kan velge tall i intervallet 1-50. Det hemmelige tallet er 27. Brukeren gjetter

  1. 25 – for lavt
  2. 37 – for høyt
  3. 31 – for høyt
  4. 28 – for høyt
  5. 26 – for lavt
  6. 27 – riktig

Spørsmål å reflektere over:

  • Hvor stort kan det største mulige tallet være for at man garantert finner riktig tall på maksimalt seks forsøk, om man følger strategien om å halvere?
  • Hvor stort er det største mulige tallet om man er garantert å finne riktig tall på maksimalt
    • fem forsøk?
    • sju forsøk?

    Del 2 - funksjonsmaskin

    Analog aktivitet Funksjonsmaskin

    Læreren velger seg et enkelt lineært uttrykk, for eksempel `y=2x+3`. Elevene blir bedt om å gi læreren et tall og læreren sier hva resultatet blir etter at tallet er matet inn i "Funksjonsmaskinen".

    Eksempel: Elevene sier 5 og læreren svarer 13. Tallene skrives på tavla.

    Prosessen blir gjentatt til det står fem tallpar på tavla.

    Elevene studerer tallene som er lagt inn i funksjonsmaskinen og hvilke tall som da kom ut. Utfordringen blir å resonnere seg fram til hva funksjonsmaskinen gjør med tallet som blir lagt inn.

    En mulig start på programmet Funksjonsmaskin

    Studer denne starten på programmet Funksjonsmaskin (arbeidsark 05e - oppstart Funksjonsmaskin).

    Begynnelsen på programmet Funksjonsmaskin.

    • Hvorfor kan det være lurt å lage variabelen b slik programmereren har gjort?
    • Hva må man sette inn i blokka sett y til?
    • Hva bør stå i det tomme feltet i gjenta-blokka, hvis brukeren skal få velge tall fem ganger?
    • Hva må man sette inn i blokka sett y til?
    • Hvilke variabler skal stå i de tomme feltene i den siste spør-blokka?
    • Hvorfor må vi ha si-blokka til slutt? Er det nok at teksten står i tre sekunder?

    Lag denne første delen av programmet slik dere tenker den bør være. Stopper programmet etter at dere har valgt tall fem ganger?

    Kommentar

    Det er mange figurer å velge blant i Scratch. Oppfordre gjerne elevene til å velge en figur som passer til programmet de skal lage. Her er det en funksjonsmaskin man skal gi et tall, og funksjonsmaskinen gir et svar. Da kan figuren Retro Robot være et alternativ:

    Robot sier: "5 gir svaret 21. Skriv tallene og velg en gang til."

    Lag en plan for resten av programmet

    Flytskjemaet beskriver starten på programmet Funksjonsmaskin (arbeidsark 05f - Flytskjema funksjonsmaskin).

    Flytskjema som beskriver algoritmen for starten av programmet Funksjonsmaskin.

    Utvid flytskjemaet slik at programmet

    • spør brukeren om verdiene til a og b
    • sjekker om verdiene brukeren gir passer med de tilfeldige verdiene programmet valgte til å begynne med
    • gir tilbakemelding til brukeren

    Fullfør og test programmet

    1. Lag og test programmet.
      MERK:
      Du må studere sammenhengen mellom tallet du setter inn og det svaret du får for å finne ut hvilke tall og er.
      Du har tre sekunder på å notere tallet du skrev inn og det svaret du fikk.
      Dersom det er for kort tid, kan du endre til fire eller fem sekunder.
    2. Finn en strategi for å avsløre tallene a og b.
    3. Hvor mange tall må man prøve før man med sikkerhet kan si hvilke verdier a og b har?
    4. Gjør endringer slik at a og b også kan være negative. Hvor mange tall må man da prøve før man med sikkerhet kan si hvilke verdier de har?

    Kommentar

    Sørg for å legge opp til samtaler både om flytskjemaet og programmet underveis i arbeidet. Grupper som står fast med å lage programmet, kan kanskje få den hjelpen de trenger med å studere denne uferdige kodeblokken (arbeidsark 05g - Siste del funksjonsmaskin):

    Siste del av programmet Funksjonsmaskin.

    Elevene må selv finne ut hva som skal stå i de tomme feltene.

    Utvidelse av programmet

    Funksjonsmaskinen er laget slik at brukerne selv må notere de fem tallene de velger og svarene de får. Programmet kan utvides slik at brukerne slipper å notere tallene de velger og svarene de får. Da må man lage ei liste tilsvarende den i programmet Gjett tallet. Det kan gjøres på to måter:

    1. lage to lister: ei for tallet man velger og ei for svaret man får
    2. lage en liste som man f.eks. kaller valgt tall og svar. Verdiene legges inn i listen slik:
      Kodeblokk i Scratch som setter sammen variabler og tekst til: "x gir y".
      Utfordre elevene på å endre programmet slik at brukeren slipper å skrive tallene. Valgte tall og svarene må da lagres i en eller to lister.
      Underveis kan da resultatvinduet se slik ut:
      Robot i Scratch sier "Du valgte 5 og jeg får da 53". Liste viser tre tallpar som allerede er produsert. 

     

    Relaterte filer