Lærebokforfattere INNHOLD. REALFAGLIG PROGRAMMERING side 3. MINIKURS I PROGRAMMERING side 4. TRINKET side 6. LØKKER side 8

Størrelse: px
Begynne med side:

Download "Lærebokforfattere INNHOLD. REALFAGLIG PROGRAMMERING side 3. MINIKURS I PROGRAMMERING side 4. TRINKET side 6. LØKKER side 8"

Transkript

1 1

2 INNHOLD Lærebokforfattere CATHRINE WAHLSTRØM TELLEFSEN er førstelektor ved Det matematisknaturvitenskapelige fakultet ved Universitetet i Oslo, der hun blant annet leder arbeidet med etter utdanning av lærere i realfaglig programmering. Hun har vært lære bok forfatter i fysikk og natur fag i mange år. REALFAGLIG PROGRAMMERING side 3 MINIKURS I PROGRAMMERING side 4 TRINKET side 6 LØKKER side 8 ARRAYER side 10 GRAFTEGNING MED PYTHON side 12 EKSEMPEL: MOSKUSPOPULASJONEN PÅ DOVREFJELL side 14 OPPGAVER side 18 HARALD BRANDT er lektor ved lærerut dannelsen i Århus og har lang undervisnings erfaring fra lærerutdanning og videregående skole, både i Dan mark og Norge. Han har også vært lærebok forfatter i kjemi og naturfag i mange år. Vi setter pris på alle tilbakemeldinger om heftet, både om innhold og erfaringer ved utprøving: naturfag@aschehoug.no ODD THORALF HUSHOVD er lektor ved Ås videregående skole og har mange års undervisningserfaring i naturfagene, både på studieforberedende og yrkesfaglige utdanningsprogrammer. Han har også lang erfaring som lærebokforfatter i naturfag og kjemi for videregående skole. Forsideillustrasjon: Lars Fiske Vi tar forbehold om trykkfeil Aschehoug Undervisning. Design og sats: Blomqvist Design. Foto: istock Trykk: RK Grafisk. Papir: Edixion Offset 120 g. 2

3 PROGRAMMERING Realfaglig programmering for å styrke fagopplæringen I dette heftet vil du finne et eksempel på hvordan programmering kan brukes i fagene naturfag og matematikk. Heftet er skrevet for læreren, og gir utgangspunkt for et undervisningsopplegg som kan brukes i ett av fagene, eller i et tverrfaglig opplegg. Vi ønsker å vise deg et konkret eksempel på hvordan programmering kan styrke fagopplæringen. Programmering innebærer å analysere en problemstilling og bryte den ned i sine enkeltdeler. Vi ser på hvordan elevene må ha både matematisk og naturfaglig forståelse for å klare dette. Selve kodingen er bare siste instans. Tankearbeidet, valg av modell og det logiske resonnementet som ligger i forkant av kodingen, er helt sentral for at elevene skal oppnå dybdeforståelse. Men om vi ikke lar dem kode, så blir det nesten som å la musikkstudenter studere noter uten å få lov til å spille selv. Dette er et frampek mot fagfornyelsen, men innholdet er tilpasset dagens læreplaner (funksjoner i matematikk og bærekraftig utvikling i naturfag) og kan derfor brukes allerede nå. Vi er opptatt av å programmere for fagets skyld, og dette vil forhåpentligvis gi deg inspirasjon i riktig retning. Lykke til! Vi har valgt en løsning som gjør at du kan skrive koden rett inn i en nettleser, og et språk (Python) som informatikksamfunnet har funnet at egner seg godt for begynneropplæring. Du trenger altså ikke installere noe programvare. Men det viktigste er ikke språk og plattform. Det viktigste er tankegangen, modelleringen og analysen. Det er dette som er kjennetegnene ved dybdelæring. «Dybdelæring innebærer at elevene bruker sine evner til å analysere, løse problemer og reflektere over egen læring til å konstruere en varig forståelse.» PROGRAMMERINGSRESSURSER PÅ NETT På lokus.no/programmering kan du finne mer informasjon om programmering i naturfag og matematikk. Der finner du blant annet dette heftet i PDF-format i tillegg til løsningsforslag til oppgavene i heftet. På dette nettstedet kommer vi til å legge ut programmeringsrelatert innhold til naturfag og matematikk fram mot fagfornyelsen. Sten Ludvigsen 3

4 MINIKURS Minikurs i programmering Målet med dette heftet er å vise et eksempel på hvordan programmering kan brukes i fag som naturfag og matematikk. Heftet er ikke ment som en fullstendig grunnopplæring i programmering, men vi går likevel gjennom noen enkle eksempler i begynnelsen, slik at hovedeksemplet blir lettere å forstå. Vi har valgt å bruke programmeringsspråket Python i dette eksemplet. Python er et nybegynnervennlig programmeringsspråk, der få linjer med kode kan gi gode resultater. Selve navnet Python er inspirert av den britiske komikergruppa Monty Python. I eksemplet vi skal se på i dette heftet, vil vi holde orden på størrelsen til en populasjon og populasjonens vekstrate. Det kan vi gjøre slik: N = 20 vekstrate = 0.05 HVOR SKRIVER VI KODEN? For å slippe å installere programvare, har vi lagt opp til å bruke den nettbaserte kodeeditoren Trinket til dette opplegget (se side 6). Du finner kodeeditoren på nettstedet lokus.no/programmering. VARIABLER Når vi programmerer, vil vi få behov for å ta vare på informasjon i form av blant annet tall og tekst. Til det bruker vi variabler. Som navnet antyder, kan informasjonen vi lagrer i en variabel variere i løpet av kjøringen av et program. Hvis du noen gang har spilt Super Mario, så har du sannsynligvis samlet opp massevis av mynter. Disse myntene telles opp, og spillet bruker en variabel for å holde orden på antallet. Her er N populasjonens størrelse (20 individer) og vekstrate er populasjonens vekstrate (den vokser med 5 % per tidsenhet). UTSKRIFT For å få skrevet ut tekst eller tall i Python, kan vi bruke print()-funksjonen: print("hei, verden!") Denne koden vil føre til at teksten «Hei, verden!» vises på skjermen. Vi kan også bruke variabler i utskrifter: N = 20 print("populasjonen består av", N, "individer.") Denne koden vil føre til at teksten «Populasjonen består av 20 individer.» vises. 4

5 5 I 1913 fant arbeiderne som anla jernbanen over Dovrefjell to fossile ryggvirvler fra moskusdyr. Dette førte til idéen om å innføre moskus til Norge fra Grønland. MELLOMROM OG KOMMENTARER Når vi programmerer, bruker vi mellomrom og linjeskift for å gjøre koden leselig. Det er ingen forskjell mellom ett og flere mellomrom (Python ignorerer ekstra mellomrom), så denne koden vil gi nøyaktig det samme som koden på forrige side (men den er ikke like lett å lese): N = 20 print ( "Populasjonen består av", N, "individer." ) På samme måte kan vi legge til ekstra linjeskift. Det er ofte en god idé å dele opp koden i biter som henger sammen, og skille dem med blanke linjer. Kommentarer er også et nyttig verktøy for å skrive ryddig kode. De er bare synlige for leseren av koden, og har ingen effekt på resultatet av koden. Vi bruker dem for å informere leseren om hva koden gjør. Ofte er kommentarene like viktige for den som har skrevet koden, spesielt når koden tas fram igjen flere uker eller måneder etter at den ble skrevet. Vi lager kommentarer med emneknagg/ «hashtag»-tegnet (#). All tekst som kommer etter dette tegnet, blir regnet som en kommentar: N = 20 # populasjonens størrelse # Skriver ut en tekst som viser populasjonens størrelse: print("populasjonen består av", N, "individer.") 5

6 KODEEDITOR Trinket Trinket er et nettbasert verktøy som gjør det lett å komme i gang med programmering. Den lar oss skrive og kjøre Python-kode direkte i nettleseren. Du finner kodeeditoren til Trinket og annet relevant innhold på lokus.no/programmering (se skjermbilder nedenfor). Her finner du løsningsforslag til oppgavene i heftet (velg «Vg1») Her finner du kodeeditoren du skal bruke Fra lokus.no/programmering 6

7 Her skriver vi kode Knappen «Run» lar oss kjøre koden Resultatet vil dukke opp her Fra kodeeditoren på lokus.no/programmering 7

8 LØKKER OG FEILMELDINGER Løkker Én av tingene en datamaskin kan hjelpe oss med, er å gjenta en oppgave mange ganger. Vi skal i dette heftet modellere størrelsen til en moskuspopulasjon gjennom mange år. Vi beskriver da hva som skjer i løpet av ett år, og lar datamaskinen gjenta prosessen så mange ganger vi ønsker. For å gjenta en prosess bruker vi noe som kalles en løkke. Det finnes flere varianter av løkker, men vi skal bare se på de som kalles for-løkker. En typisk for-løkke ser slik ut: Vi kan også angi et start-tall med range()-funksjonen. Da starter vi å telle på tallet vi angir (i stedet for 0), og teller opp til, men ikke med, det andre tallet vi angir: for i in range(5): print(i) for i in range(2, 6): print(i) Legg merke til at vi har et innrykk foran print(i). Vi gjør det for å vise hvilke linjer i programmet som hører til løkken. Lengden på innrykket har ingenting å si, men her har vi brukt to mellomrom. For å forklare denne løkken må vi først se på hva range(5) betyr. Funksjonen range() gir oss en liste med heltall. Hvis vi bare skriver ett tall i parentesen, så starter vi på 0, og teller opp til, men ikke med, tallet som vi angir. Det betyr at range(5) gir oss tallene 0, 1, 2, 3 og 4. Denne koden skriver ut: Det er vanlig å bruke bokstavene i, j og k som variabelnavn i løkker, men vi kunne like gjerne ha skrevet koden vår slik (og fått samme resultat): I løkken vår vil variabelen i ta verdiene 0, 1, 2, 3 og 4, én etter én, slik at vi får følgende utskrift: for langtvariabelnavn in range(5): print(langtvariabelnavn)

9 5 Den norske stammen på Dovrefjell består av 244 dyr i FEILMELDINGER Når du programmerer, vil du møte mange ulike feilmeldinger. Du bør lese dem ordentlig, slik at du etter hvert kan kjenne dem igjen. De fleste feilmeldingene skyldes enkle skrivefeil eller manglende tegn. Hvis vi for eksempel skriver print("hallo), vil vi få en slik feilmelding: File "/tmp/sessions/bcd8e5504c7a35ff/main.py", line 1 print("hallo) ^ SyntaxError: EOL while scanning string literal Her får vi vite hvilken linje og hvilken kode som forårsaker feilen. Denne feilen skyldes at Python ikke fant slutten på teksten, fordi vi manglet et avsluttende anførselstegn. Vi får en annen feilmelding hvis vi i stedet skriver print"hallo"): File "/tmp/sessions/d60cf021c327391f/main.py", line 1 print"hallo") ^ SyntaxError: invalid syntax Her er det den første parentesen som mangler. Feilmeldingen forteller oss at det dreier seg om en skrivefeil (en syntaksfeil). 9

10 ARRAY Arrayer Det er upraktisk å bruke variabler hvis vi ønsker å lagre mange verdier. I eksemplet i dette heftet vil vi lagre populasjonsstørrelsen for hvert år, og det vil gi mange tall. I slike situasjoner kan vi bruke en array. Vi kan tenke på en array som en samling med verdier, der verdienes rekkefølge er bestemt. For å bruke arrayer i Python må vi importere kode som er skrevet av andre, fordi Python i seg selv ikke har støtte for arrayer. Koden vi ønsker å bruke finnes i en pakke / et bibliotek som heter pylab. Den importerer vi slik (vi skriver dette helt øverst i koden): from pylab import * Denne linjen betyr at vi importerer alt (*) fra pakken pylab. Nå kan vi lage vår første array. I eksemplet vårt skal vi lage arrayer på to ulike måter. Den første måten lar oss lage en array som inneholder et bestemt antall nuller, og den lager vi med funksjonen zeros(), slik: minarray = zeros(10) Her har vi laget en array med navnet «minarray» som inneholder 10 nuller. Vi kan skrive ut innholdet av denne for å se hva den inneholder: print(minarray) Her har vi en array med 10 verdier. Disse kan vi forandre på senere. Punktumene illustrerer at vi har med desimaltall å gjøre, og «0.» er en forkortelse for «0.0». Den andre varianten vi skal se på, lar oss lage en array som inneholder en sekvens av tall. Vi angir sekvensens første tall, sekvensens siste tall, og antall tall vi ønsker. Til det bruker vi funksjonen linspace(), slik: enannenarray = linspace(1, 5, 9) Denne koden gir oss følgende array: [ ] Vi har ni jevnt fordelte tall som starter på 1 og slutter på 5. Alle verdiene i en array har sin faste posisjon, og hver posisjon er assosiert med et tall (en indeks). Den første verdien har indeks 0, den andre har indeks 1, osv. Hvis vi ønsker å skrive ut tallet 3 fra arrayen ovenfor, så kan vi skrive: Resultatet vil da se slik ut: print(enannenarray[4]) [ ] 10

11 Posisjoner (indekser) Verdier 5 Vi kan tenke på en array som en samling med verdier, der verdienes rekkefølge er bestemt. Denne koden gir oss følgende utskrift: 3.0 Vi bruker altså hakeparenteser for å angi spesifikke verdier. Her har vi hentet ut verdien med indeks 4, altså det femte tallet i arrayen (fordi vi starter å telle på 0). På samme måte kan vi gjøre om en verdi: enannenarray[2] = 9 Nå vil arrayen se slik ut (verdien med indeks 2 er forandret): [ ] 11

12 GRAFTEGNING Graftegning med Python La oss for eksempel si at vi skal tegne grafen til funksjonen y = x2. Hvis vi skal tegne denne grafen på papir, så må vi først bestemme oss for hvilke x-verdier vi vil bruke, og så må vi beregne de tilhørende y-verdiene. Hvis vi velger x-verdiene 0, 2, 4, 6, 8 og 10, vil vi få en slik verditabell: x y Hvis vi markerer disse 6 punktene i en graf, og trekker rette linjer mellom dem, får vi noe som likner på dette: (8, 64) y X Alle som har sett grafen til y = x2, vet at den er mye glattere enn grafen vi har vist ovenfor. Det kan vi også få til, men da må vi bruke flere punkter. La oss øke antallet x-verdier til 100. Vi lager en array med 100 x-verdier slik: x = linspace(0, 10, 100) En fordel med å bruke arrayer, er at vi kan bruke dem direkte i beregninger. Så når vi nå vil beregne y-verdier, kan vi gjøre det slik (i Python betyr ** det samme som «opphøyd i»): y = x**2 Her blir y en ny array, men verdiene blir alle verdiene i x opphøyd i annen. 12

13 Vi har nå to arrayer, hver med 100 verdier. Arrayen x tilsvarer den første raden i verditabellen ovenfor, og arrayen y tilsvarer den andre raden. Hvis vi tegner disse 100 punktene, og trekker rette linjer mellom dem, så får vi et resultat som minner mer om det vi forventer: VARIABLER I PROGRAMMERING y X Vi har allerede nevnt at vi må importere pylab for å lage arrayer. I den samme pakken finner vi det vi trenger for å tegne grafer. Den fullstendige koden for å lage grafen ovenfor ser slik ut (prøv gjerne å variere antall punkter): from pylab import * # importerer pylab Fra matematikken er vi vant til å bruke x og y som variabler. Vi definerer da gjerne y som en funksjon som avhenger av x. Når vi programmerer, er det ikke alltid at vi løser det slik. Alt vi trenger for å tegne en graf er to serier med like mange verdier (slik som våre arrayer i eksemplet). Deretter må vi bestemme hva som skal plasseres langs førsteaksen og hva som skal plasseres langs andreaksen. x = linspace(0, 10, 40) y = x**2 plot(x, y) # tegner opp grafen xlabel("x") # skriver på en tittel langs x-aksen ylabel("y") # skriver på en tittel langs y-aksen grid() # tegner rutenett show() # gjør grafen synlig I eksemplet kunne vi fint ha skrevet plot(y, x) i stedet for plot(x, y), og vi ville likevel ha fått en graf. Prøv selv! 13

14 EKSEMPEL Moskuspopulasjonen på Dovrefjell Vi ser på et eksempel med populasjonsvekst av moskus. Vi antar at vi har en populasjon bestående av 20 dyr og at populasjonen har en vekst rate på 5 % per år. I første omgang antar vi at det ikke finnes noen begrensende faktorer, altså at populasjonsveksten alltid vil fortsette. I begynnelsen av koden vår må vi huske å importere pylab-biblioteket: from pylab import * # importerer pylab Nå kan vi begynne å skrive koden som vi skal bruke i eksemplet vårt. Først må vi lage noen variabler. En variabel har et navn og en verdi. Det er lurt å gi variablene gode navn så vi lettere kan lese koden. I matematikk bruker vi ofte en bokstav for en variabel. Det kan vi gjøre i programmering også, men det kan være fornuftig å velge noe som er mer selvforklarende. Slik lager vi variablene vi trenger i programmet som skal plotte populasjonsvekst: N = 20 # antall individer i populasjonen ved begynnelsen (år 0) vekstrate = 0.05 # populasjonens vekstrate (5 % økning for hvert år) n_aar = 100 # antall år vi vil undersøke Legg merke til at punktum brukes som desimaltegn, og ikke komma. Før vi kan tegne en graf, må vi lage verdiene som skal utgjøre x- og y-koordinatene til grafen. Vi begynner med x-koordinatene, som i vårt eksempel skal stå for antall år. Da bruker vi funksjonen linspace() til å lage en array som beskrevet tidligere i heftet. Arrayen skal starte på tallet 0 (år 0, altså nå), og inneholde tallene 1, 2, 3, 4, helt opp til n_aar. Fordi n_aar har fått verdien 100 får vi til sammen 101 tall (fordi vi starter på 0), vi må derfor angi at vi skal ha n_aar+1 tall til sammen: BRUK AV Æ, Ø OG Å I enkelte sammenhenger kan bokstavene æ, ø og å by på problemer. Det er derfor god praksis å unngå disse bokstavene i variabelnavn og filnavn. Vi har for eksempel valgt å kalle den ene variabelen vår for n_aar i stedet for n_år. aar = linspace(0, n_aar, n_aar+1) 14

15 3 Hvor stor kan moskus bestanden på Dovre være om 100 år? Hvis du har skrevet inn disse kodelinjene, og i tillegg legger til følgende linje, print(aar) kan du nå klikke på «Run»-knappen, og du vil få se innholdet i denne arrayen skrevet ut i sin helhet. Det er dette som skal være x-koordinatene når vi skal tegne grafen (tilsvarende den første raden i verditabellen på side 12). Nå må vi også regne ut de tilhørende verdiene. Elevene er vant til å tenke på dette som y-koordinatene. I programmering kan vi bruke mer selvforklarende variabelnavn, så vi kaller det antall. Vi vet at antallet ved år 0 er 20 individer. Deretter vokser antallet med 5 % per år. Vi har altså en eksponentiell vekst (fordi veksten er 5 % av populasjonens størrelse, og når populasjonen blir større, så vil veksten bli større). Vi starter med å lage en enkel array som bare inneholder nuller og setter den første verdien (med indeks 0) lik antall individer ved år 0: antall = zeros(n_aar+1) antall[0] = N # array med n_aar+1 nuller # setter første verdi lik N Vi lager her n_aar+1 nuller, fordi vi skal holde orden på antall individer ved år 0 i tillegg til de neste n_aar årene. Så kommer den mest kompliserte delen av koden. Vi må lage en løkke som lar oss beregne populasjonsstørrelsen for alle de 100 neste årene. Løkken vår ser slik ut: for i in range(1, n_aar+1): endring = vekstrate * N # beregner antall nye individer N = N + endring # øker populasjonsstørrelsen (N) antall[i] = N # ny N-verdi i antall-arrayen (for år i) Funksjonen range(1, n_aar+1) gir oss en liste med heltall som begynner på 1 og slutter på n_aar (tallet 1 blir inkludert i listen, men tallet n_aar+1 blir ikke inkludert). Bokstaven i er et eksempel på en variabel, og den vil få ny verdi for hver gjennomgang av løkken. Det vil si at den først har verdien 1, så verdien 2, så verdien 3, osv. helt til den har verdien n_aar. Etter det avsluttes løkken. Inni selve løkken har vi tre linjer med kode. Den første linjen lager variabelen endring og gir den verdien vekstrate * N (vekstrate ganger nåværende populasjonsstørrelse). Den andre linjen oppdaterer verdien til variabelen N, slik at den alltid inneholder den siste populasjonsstørrelsen vi har beregnet. Til slutt tar vi verdien til N og setter den inn på riktig posisjon i arrayen antall. På den måten vil vi til slutt ha populasjonsstørrelsen for hvert av årene i arrayen antall. 15

16 16 EKSEMPEL

17 Hvis vi nå ønsker å se hvor stor populasjonen er etter et gitt antall år, for eksempel etter 10 år, kan vi skrive: print(antall[10]) Hakeparentesene lar oss hente ut verdien på posisjon 10 i listen vår (husk at første posisjon er 0, så posisjon 10 vil inneholde antallet moskus 10 år etter år 0). Nå har vi laget ferdig tallmaterialet vårt, så da kan vi lage en graf! Det gjør vi slik: plot(aar, antall) # tegner opp grafen xlabel("år") # skriver på en tittel langs x-aksen ylabel("antall individer") # skriver på en tittel langs y-aksen grid() # tegner på et rutenett show() # gjør grafen synlig Legg merke til at vi bruker arrayene aar og antall for å lage grafen vår. De må ha nøyaktig like mange verdier (like mange tall), og til sammen danner de alle punktene i grafen vår. Det første tallet i aar gir oss x-koordinaten til det første punktet, og det første tallet i antall gir oss den tilhørende y-koordinaten. Slik fortsetter det for alle verdiene i de to arrayene. Grafen vil se slik ut: Antall individer År Du finner koden fra dette eksemplet i sin helhet på nettstedet lokus.no/programmering. 17

18 OPPGAVER Oppgaver OPPGAVE 1: I eksemplet lagde vi en graf som viser at populasjonsstørrelsen alltid vil øke, uten begrensninger. Forklar hvorfor dette ikke er særlig realistisk. Hvilke faktorer kan virke begrensende på en populasjon? I løkken i eksemplet har vi følgende ut regning: endring = vekstrate * N Her ser vi at endringen bare vil øke etter hvert som N (populasjonsstørrelsen) blir større. Vi kaller dette eksponentiell vekst. OPPGAVE 2: Funksjonen y = 20 1,05x gir det samme resultatet som det vi plottet i hovedeksemplet. Forklar hvorfor de to framgangsmåtene gir samme resultat. For å lage eksemplet mer realistisk må vi ta hensyn til at veksten avtar når populasjonen blir større. Da kan vi inkludere populasjonens bæreevne (B) i utregningen. Matematisk vil det se slik ut: endring = vekstrate B N B N Her ganger vi vekstraten med et tall som avhenger av populasjonens størrelse, før vi ganger med N. Når populasjonen (N) blir stor, og nærmer seg bæreevnen (B), vil telleren i brøken nærme seg 0. Da ganger vi vekstraten med 0, og endringen vil også bli 0. Nå er det altså ikke lenger en konstant vekstfaktor på 1,05 (5 %) og det blir mer krevende å løse med en matematisk likning. Med programmering løste vi det enkelt ved å regne ut én og én verdi i arrayen vår (verditabellen vår). OPPGAVE 3: Gjør endringer i programmet fra hovedeksemplet, slik at populasjonen får en bæreevne på 250 individer. For å synliggjøre effekten av bæreevnen kan det lønne seg å øke antall år du undersøker. LØSNINGFORSLAG TIL OPPGAVENE På lokus.no/programmering finner du grundige løsningsforslag til disse oppgavene. 18

19 Vi har foreløpig jobbet med en modell. Den forsøker å si noe om virkeligheten, men den er ikke nødvendigvis helt lik den virkelige situasjonen. På nettsiden miljostatus.no/tema/naturmangfold/arter/moskus/ kan du finne faktiske tall om antall moskus på Dovrefjell (trykk på knappen «Les mer om dataene» nedenfor grafen). OPPGAVE 4: Bruk tallene fra miljostatus.no og lag to nye arrayer, én for år og én for antall. Vi valgte å starte på år 0 i eksemplet vårt. Du kan derfor si at 1950 er år 0. For å lage en array med forhåndsbestemte verdier kan du gjøre slik: aar_ekte = array([0, 10, 20, 30, osv ]) Lag deretter en ny graf (gjerne oppå den du allerede har laget med bæreevne) med disse verdiene. Husk at du må skrive plot() for begge grafene før du skriver show() for at de skal bli synlige. Sammenlikn de to grafene og kommenter. FORSLAG TIL UTVIDELSE: POPULASJONSVEKST MED ANDEMAT Fra regjeringen.no: «Faget skal bli mer praktisk med mindre fokus på detaljer og enkeltemner og mer vekt på opplæring ute i naturen.» For å komme enda tettere på koblingen mellom modell og virkelighet kan dere gjøre et eget eksperiment i klasserommet. Andemat er en god modellorganisme til et slikt eksperiment. Den vokser i små vann, så klassen kan gå ut og finne sine egne individer, og den er lett å holde levende. Antall individer kan telles daglig, og resultatet kan plottes i en graf. Elevene kan deretter lage sine egne modeller for å beskrive veksten til andematpopulasjonen. 4 Andemat (Lemna minor) egner seg godt til bruk i klasse rommet. 19

20 Kurskveld Programmering i naturfag TIRSDAG 29. JANUAR 2019 Aschehoug Undervisning har gleden av å invitere naturfagslærere i videre gående skole til kurskveld på Thon hotell, Universitetsgata i Oslo. Vi byr på faglig påfyll, kollegialt samvær og selvfølgelig god mat og kaker. Arrangementet er gratis. Invitasjon med detaljert program kommer, men hold av datoen allerede nå! «Innen kjerneelementet teknologi skal også programmering inngå som en naturlig del av faget.» Fra regjeringen.no 20

Eksempel 1: Bestemmer om tallet som skrives inn er et partall eller et oddetall side 12

Eksempel 1: Bestemmer om tallet som skrives inn er et partall eller et oddetall side 12 1 INNHOLD PROGRAMMERING I MATEMATIKK side 3 MINIKURS I PROGRAMMERING side 4 TRINKET side 5 LØKKER side 6 ARRAYER side 8 GRAFTEGNING MED PYTHON side 10 Eksempel 1: Bestemmer om tallet som skrives inn er

Detaljer

ProFag Realfaglig programmering

ProFag Realfaglig programmering Det matematisk-naturvitenskapelige fakultet ProFag Realfaglig programmering Andre samling 1. september 018 Kompetansesenter for Undervisning i Realfag og Teknologi www.mn.uio.no/kurt Det matematisk-naturvitenskapelige

Detaljer

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 13. september, 2018 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 27/9-2018, kl. 14:30 i Devilry Obligatoriske oppgaver («obliger») er en sentral del av MAT-INF1100 og er utmerket trening i å

Detaljer

MAT-INF 1100: Obligatorisk oppgave 1

MAT-INF 1100: Obligatorisk oppgave 1 22. september, 2016 MAT-INF 1100: Obligatorisk oppgave 1 Innleveringsfrist: 6/10-2016, kl. 14:30 i Devilry Obligatoriske oppgaver («obliger») er en sentral del av MAT-INF1100 og er utmerket trening i å

Detaljer

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen. Kuprat Skrevet av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert Fag: Norsk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I dette kurset skal vi introdusere programmeringsspråket Python. Dette

Detaljer

Kom i gang med Python

Kom i gang med Python Kom i gang med Python Instruksjon for lærere Pål Hellesnes SYSTEMUTVIKLER paal@firstpoint.no www.bedreinnsikt.no Dette dokumentet er en del av skolematerialet for undervisning i programmering. «Alle barn

Detaljer

Læreplan i Programmering og modellering - programfag i studiespesialiserende utdanningsprogram

Læreplan i Programmering og modellering - programfag i studiespesialiserende utdanningsprogram 2.12.2016 Læreplan i - programfag i studiespesialiserende utdanningsprogram Formål Programmering er et emne som stadig blir viktigere i vår moderne tid. Det er en stor fordel å kunne forstå og bruke programmering

Detaljer

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro

Verden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro Verden - Del 2 Nybegynner Processing Intro Denne oppgaven bygger på oppgaven med samme navn som ligger på introduksjonsnivå her i Processingoppgavene. Klikk her for å gå til introduksjonsoppgaven av verden.

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære å designe

Detaljer

Kom i gang med micro:bit

Kom i gang med micro:bit Kom i gang med micro:bit Kenneth Fossland, Brundalen skole 2019 Bilde: flickr.com makecode.microbit.org https://docs.google.com/document/d/1rjglb2tczwjhzcrklfyxhhn6vguuj-1jdt9ivuvbpu0/edit#heading=h.7s5hifmcog5y

Detaljer

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Variable og beregninger, input og utskrift. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Variable og beregninger, input og utskrift TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål for denne uka: Vite litt om design av programmer (2.1, 2.2, 2.4) Kunne skrive ut

Detaljer

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P. Geogebra

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P. Geogebra Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen Digitalt verktøy for Geogebra Innhold 1 Om Geogebra 4 1.1 Innstillinger................................... 5 2 Regning 5 2.1 Tallregning...................................

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 3 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære om hvordan

Detaljer

Oppgaver uke 1: Løsningsforslag

Oppgaver uke 1: Løsningsforslag Oppgaver uke 1: Løsningsforslag Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen. alder = 30 print("din alder er", alder) alder = 15 Din alder er 30 Når print() kalles

Detaljer

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen. Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å

Detaljer

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken

Detaljer

Forsøkslæreplan i valgfag programmering

Forsøkslæreplan i valgfag programmering Forsøkslæreplan i valgfag programmering Gjelder bare for skoler som har fått innvilget forsøk med programmering valgfag fra 1.8.2016 Formål Valgfagene skal bidra til at elevene, hver for seg og i fellesskap,

Detaljer

INF Ekstrainnlevering

INF Ekstrainnlevering INF000 - Ekstrainnlevering Temaer på innleveringen: Hele pensum fram til nå. Oppgave E.) Tema: Beslutninger (if/else) Filnavn: Rekkefolge.java a) Lag et program som leser inn tre tall fra brukeren. b)

Detaljer

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale. Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig

Detaljer

Kodetime for Nordstrand barneskole

Kodetime for Nordstrand barneskole Kodetime for Nordstrand barneskole av Veronika Heimsbakk og Lars Erik Realfsen 1 Hva er Processing? Processing er et programmeringsspråk som er gratis, og tilgjengelig for alle! Man kan programmere i Processing

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler

lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen mellom globale og lokale variabler 42 Funksjoner Kapittel 4 Funksjoner Etter dette kapitlet skal du kunne lage og bruke enkle funksjoner lage og bruke funksjoner som tar argumenter lage og bruke funksjoner med returverdier forklare forskjellen

Detaljer

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!

Tetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill! Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett

Detaljer

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i. Skilpaddeskolen Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk) Oversatt av: Bjørn Einar Bjartnes Kurs: Python Tema: Tekstbasert Fag: Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim Hvor gammel er du? Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse Hvor gammel er du? I dette oppgavesettet

Detaljer

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide

Verden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide Verden - Del 2 Skrevet av: Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Intro Denne oppgaven bygger på

Detaljer

Argumenter fra kommandolinjen

Argumenter fra kommandolinjen Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene

Detaljer

ITGK - H2010, Matlab. Repetisjon

ITGK - H2010, Matlab. Repetisjon 1 ITGK - H2010, Matlab Repetisjon 2 Variabler og tabeller Variabler brukes til å ta vare på/lagre resultater Datamaskinen setter av plass i minne for hver variabel En flyttallsvariabel tar 8 bytes i minne

Detaljer

Før super:bit-oppdraget (120 min) Lærerveiledning forarbeid (6. trinn)

Før super:bit-oppdraget (120 min) Lærerveiledning forarbeid (6. trinn) Før super:bit-oppdraget (120 min) Lærerveiledning forarbeid (6. trinn) Versjon: August 2019 Innhold Om super:bit... 3 Hovedområder og kompetansemål fra læreplanene 2020... 4 Forarbeid... 4 1 Telle 1 2

Detaljer

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering Uke 34 Uke 35 Uke 36 Uke 37 Uke 38 Uke 39 Uke 40 Uke 41 Uke 42 Uke 43 Uke 44 Uke 45 Uke 46 Uke 47 sikkerhet datanett programvare digitale kretser Prosessoren II Kort oppsummering Løkker og tester Mer om

Detaljer

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1. Pingviner på tur Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon Velkommen til Scratch. Vi skal

Detaljer

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008 Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008 Leveringsfrist Oppgaven må løses individuelt og leveres senest fredag 22. februar 2008 kl 16.00 via Joly. Viktig: les slutten av oppgaven for

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

Programmering i barnehagen

Programmering i barnehagen Programmering i barnehagen Etter at du har lest teksten skal du skrive med stikkord: Hva handler programmering om? Hvilke erfaringer bør barna i barnehagen få med programmering? 1 En digital verden Av:

Detaljer

Oppsummering fra sist

Oppsummering fra sist 1 av 34 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker/Sløyfer Utgave 3: Kap. 4 Terje Rydland - IDI/NTNU 2 av 34 Oppsummering fra sist Betingelser i Python: ,

Detaljer

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen.

Oppgave 1 Hva tror du følgende program skriver ut til terminalen? Diskuter med gruppen. IN1000 - Seminaroppgaver til uke 1 Nyttig å vite: PEP 8 -- Style Guide for Python Code. Dersom det som undervises i IN1000 ikke samstemmer med PEP, så skal dere følge den stilen som undervises og ikke

Detaljer

Om plotting. Knut Mørken. 31. oktober 2003

Om plotting. Knut Mørken. 31. oktober 2003 Om plotting Knut Mørken 31. oktober 2003 1 Innledning Dette lille notatet tar for seg primitiv plotting av funksjoner og visualisering av Newtons metode ved hjelp av Java-klassen PlotDisplayer. Merk at

Detaljer

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide

Verden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Verden Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Velkommen

Detaljer

Matematikk - veilednings- og støttemateriell

Matematikk - veilednings- og støttemateriell Matematikk - veilednings- og Veilednings-/ Veiledning til læreplanene i matematikk fellesfag Veiledning 16.08. 21.08. 0,- Lærer på videregående Veiledningen gir praktiske eksempler på hvordan lærer kan

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

Hva kjennetegner god undervisning i Newtonrommet?

Hva kjennetegner god undervisning i Newtonrommet? Hva kjennetegner god undervisning i Newtonrommet? Skolelaboratoriet ved NTNU Kvalitetssikrer Newtonrom Hva betyr det? Hva kjennetegner god undervisning i et Newtonrom? Hva kjennetegner god undervisning

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, prosedyrer, funksjoner, tekst og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve 1 Tilbakeblikk Dere bør nå beherske det sentrale fra uke 1 og 2: Uttrykk, typer,

Detaljer

Lærerveiledning - Snake

Lærerveiledning - Snake Lærerveiledning - Snake Skrevet av: Stein Olav Romslo Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Om oppgaven En eller

Detaljer

IN uke 1. Komme i gang med programmering

IN uke 1. Komme i gang med programmering IN1000 - uke 1 Komme i gang med programmering Plan for forelesingen Hva er programmering? Skrive og kjøre våre første program Variabler Feilmeldinger Innlesing fra tastatur Beslutninger (if) Plan for forelesingen

Detaljer

Det matematisk-naturvitenskapelige fakultet Økt forståelse for matematikk ved bruk av programmering Sinusseminar 2019

Det matematisk-naturvitenskapelige fakultet Økt forståelse for matematikk ved bruk av programmering Sinusseminar 2019 Det matematisk-naturvitenskapelige fakultet Økt forståelse for matematikk ved bruk av programmering Sinusseminar 2019 Henrik Hillestad Løvold Institutt for Informatikk, UiO Program 1. Hva er programmering?

Detaljer

Sandvold Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma R2. Geogebra

Sandvold Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma R2. Geogebra Sandvold Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen Digitalt verktøy for Geogebra Innhold 1 Om Geogebra 4 2 Regning 4 2.1 Tallregning................................... 4 2.2 Tallet e......................................

Detaljer

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:

Detaljer

Steg 1: Lag bildedeklarasjon

Steg 1: Lag bildedeklarasjon Bildepresentasjon Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole

Detaljer

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer

Et lite oppdrag i bakgrunnen

Et lite oppdrag i bakgrunnen Et lite oppdrag i bakgrunnen Under pultene på bakerste rad er det klistret post-it lapper med to tall skrevet på Regn ut summen av to nederste tall, skriv denne summen under de andre tallene, og send lappen

Detaljer

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14 Kom i gang med 2 I dette heftet skal vi gjøre oss kjent med micro:bit og lære å programmere med blokk-kode. Heftet inneholder seks ulike prosjektoppgaver med differensiert innhold og tema. 1. Rullende

Detaljer

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 Leveringsfrist Oppgaven må leveres senest fredag 29 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet med

Detaljer

Snurrige figurer. Steg 1: En snurrig figur. Sjekkliste. Introduksjon

Snurrige figurer. Steg 1: En snurrig figur. Sjekkliste. Introduksjon Snurrige figurer Nybegynner Scratch Introduksjon Det er ganske enkelt å lage interessante animasjoner i Scratch. Her skal vi se hvordan vi kan flytte og snurre på figurer for å skape spennende mønstre.

Detaljer

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. PXT: Stein, saks, papir Skrevet av: Bjørn Hamre Kurs: Microbit Introduksjon Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. Steg 1: Velge tilfeldig

Detaljer

Verden. Steg 1: Vinduet. Introduksjon

Verden. Steg 1: Vinduet. Introduksjon Verden Introduksjon Processing Introduksjon Velkommen til verdensspillet! Her skal vi lage begynnelsen av et spill hvor man skal gjette hvilke verdensdeler som er hvor. Så kan du utvide oppgava til å heller

Detaljer

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009 Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009 Leveringsfrist Oppgaven må løses individuelt og leveres senest fredag 20. februar kl 16.00 via Joly. Viktig: les slutten av oppgaven for detaljerte

Detaljer

JS: Grunnleggende JavaScript

JS: Grunnleggende JavaScript JS: Grunnleggende JavaScript Skrevet av: Lars Klingenberg Kurs: Web Tema: Tekstbasert, Nettside Fag: Matematikk, Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole Introduksjon

Detaljer

IN1000 Obligatorisk innlevering 7

IN1000 Obligatorisk innlevering 7 IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en

Detaljer

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF

Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Bli Kjent med Datamaskinen Introduksjon ComputerCraft PDF Introduksjon Vi begynner med å bygge en enkel datamaskin. Etter å ha brukt litt tid på å bli kjent med hvordan datamaskinen virker, bruker vi den

Detaljer

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006 Oblig2 - obligatorisk oppgave nr 2 (av 4) i INF1000 h2006 Leveringsfrist Oppgaven må leveres senest fredag 30 september kl 1600 Viktig: les slutten av oppgaven for detaljerte leveringskrav Formål Formålet

Detaljer

Obligatorisk oppgave MAT-INF1100. Lars Kristian Henriksen UiO

Obligatorisk oppgave MAT-INF1100. Lars Kristian Henriksen UiO Obligatorisk oppgave MAT-INF Lars Kristian Henriksen UiO 6. september 3 Oppgave a)for å skrive fb 6 i -tallssystem, bruker vi at: Tabell : 6 -tallssystemet 6 6 9 9 a b 3 3 c 3 d 5 5 e 6 6 5 f Vi tar følgende

Detaljer

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde Norsk informatikkolympiade 2017 2018 1. runde Sponset av Uke 46, 2017 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler.

Detaljer

En enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt

En enkel while-løkke. 1 of 12 15.09.2015 15:28. 2 of 12 15.09.2015 15:28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt [Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hioa.no) 15/09-15 En liten repetisjon Løkker Arrayer (tabeller) Løkker

Detaljer

Lærerveiledning - Straffespark

Lærerveiledning - Straffespark Lærerveiledning - Straffespark Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Matematikk, Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Om oppgaven I denne

Detaljer

Programmering i naturfag. Av Emil Thune

Programmering i naturfag. Av Emil Thune Programmering i naturfag Av Emil Thune Grunnleggende ferdigheter i faget (forslag) Digitale ferdigheter i naturfag er å bruke digitale verktøy til å utforske, registrere, gjøre beregninger, visualisere,

Detaljer

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide

ToPlayer. Introduksjon: Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide ToPlayer Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon: Nå skal vi

Detaljer

Dere klarer kanskje ikke å komme gjennom hele heftet, men gjør så godt dere kan.

Dere klarer kanskje ikke å komme gjennom hele heftet, men gjør så godt dere kan. I denne timen skal dere få en innføring i skriveprogrammet vi har på skolen, Writer. De aller fleste av dere er vel mest vant til Word, og Writer ser litt annerledes ut, men har stort sett de samme funksjonene

Detaljer

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke) KONTROLLSTRUKTURER MAT1030 Diskret matematikk Forelesning 2: Flere pseudokoder. Representasjoner av tall. Dag Normann Matematisk Institutt, Universitetet i Oslo 16. januar 2008 Mandag innførte vi pseudokoder

Detaljer

INF109 - Uke 1a

INF109 - Uke 1a INF109 - Uke 1a 19.01.16 NOTE: Download the latest version of python: 3.5.1. 1 Introduksjon 1.1 Goodbye world! For å komme i gang, start IDLE fra Start Programs Python3.5.1 IDLE. (Varierer litt fra datamaskin

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

Hver ting i en liste kalles et element. En liste lages ved å skrive elementer inni [], med, mellom elementene:

Hver ting i en liste kalles et element. En liste lages ved å skrive elementer inni [], med, mellom elementene: Lister og indekser Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon Denne oppgaven handler

Detaljer

Steg 1: Piler og knappetrykk

Steg 1: Piler og knappetrykk PXT: Er du rask nok? Skrevet av: Julie Christina Revdahl Kurs: Microbit Tema: Blokkbasert, Spill, Elektronikk Fag: Programmering, Teknologi Klassetrinn: 5.-7. klasse, 8.-10. klasse, Videregående skole

Detaljer

Exercises population. Øyvind Ryan

Exercises population. Øyvind Ryan Exercises population Øyvind Ryan 19. februar 2013 1. Vi antar at en bakteriepopulasjon vokser eksponentielt og har en vekst gitt ved P = P 0 e kt der t er tiden i sekunder, P 0 = 120 er antall bakterier

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Ny, GeoGebra til forkurset ved HiOA sommeren 2016

Ny, GeoGebra til forkurset ved HiOA sommeren 2016 Ny, GeoGebra til forkurset ved HiOA sommeren 2016 Fra Prøveveiledning, Matematikk 1P + 2P, Sentralt gitt skriftlig prøve etter forkurs i lærerutdanningene, 2016 1.6.2.1 Graftegner (programvare på datamaskin).

Detaljer

Forkurs i informatikk Python. Andreas Færøvig Olsen

Forkurs i informatikk Python. Andreas Færøvig Olsen Andreas Færøvig Olsen andrefol@ifi.uio.no Mål Hvorfor Python? Gi en mykere start på INF1100 Komme i gang med programmering 2 3 Hva er Python? Hva er programmering? 4 Hva er Python? Hva er programmering?

Detaljer

Grafisk løsning av ligninger i GeoGebra

Grafisk løsning av ligninger i GeoGebra Grafisk løsning av ligninger i GeoGebra Arbeidskrav 2 Læring med digitale medier 2013 Magne Svendsen, Universitetet i Nordland Innholdsfortegnelse INNLEDNING... 3 GRAFISK LØSNING AV LIGNINGER I GEOGEBRA...

Detaljer

En skoletime med programmering. Bli med, ta Norge inn i det 21. århundre!

En skoletime med programmering. Bli med, ta Norge inn i det 21. århundre! En skoletime med programmering. Bli med, ta Norge inn i det 21. århundre! Alle barn bør lære å programmere en datamaskin fordi det lærer deg å tenke. Steve Jobs Dette er en veiledning for de som er interessert

Detaljer

Del 2 skal leveres inn etter 5 timer. verktøy som tillater kommunikasjon. framgangsmåte.

Del 2 skal leveres inn etter 5 timer. verktøy som tillater kommunikasjon. framgangsmåte. Eksamen.05.009 REA306 Matematikk S1 Nynorsk/Bokmål Bokmål Eksamensinformasjon Eksamenstid: Hjelpemidler på Del 1: Hjelpemidler på Del : Bruk av kilder: Vedlegg: Framgangsmåte: Veiledning om vurderingen:

Detaljer

Donkey Kong. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle

Donkey Kong. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle Donkey Kong Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill, Animasjon Fag: Naturfag, Programmering, Engelsk, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker. - 3rd edition: Kapittel 4. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker - 3rd edition: Kapittel 4 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av

Detaljer

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i. Skilpaddeskolen Steg 1: Flere firkanter Nybegynner Python Åpne IDLE-editoren, og åpne en ny fil ved å trykke File > New File, og la oss begynne. Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell'

Detaljer

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre Python: Intro til funksjoner TDT4110 IT Grunnkurs Professor Guttorm Sindre Snart referansegruppemøte Viktig mulighet for å gi tilbakemelding på emnet Pensumbøker Forelesninger Øvingsforelesninger Veiledning

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 16. Sept. Noen oppstartsproblemer

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

Sandvold Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P. Geogebra

Sandvold Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P. Geogebra Sandvold Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen Digitalt verktøy for Geogebra Geogebra for Sigma matematikk 1P Innledning Denne bruksanvisningen er ment som en beskrivelse av dataprogrammet

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. JS: Hei JavaScript! Skrevet av: Arve Seljebu Kurs: Web Tema: Tekstbasert, Nettside Fag: Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I denne oppgaven blir du introdusert for

Detaljer

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen

Kanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen Kanter, kanter, mange mangekanter Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole

Detaljer

YouTube-kanal ITGK. Læringsmål og pensum

YouTube-kanal ITGK.  Læringsmål og pensum 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Enkle funksjoner - 3rd edition: Kapittel 5.1-5.6 Professor Alf Inge Wang 2 YouTube-kanal ITGK Professor Guttorm Sindre (foreleser den andre Python-parallellen

Detaljer

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke [Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Michael Preminger

Detaljer

Asteroids. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle

Asteroids. Introduksjon. Oversikt over prosjektet. Skrevet av: Geir Arne Hjelle Asteroids Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon På slutten

Detaljer

Læringsmål og pensum. Designe et program

Læringsmål og pensum. Designe et program 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 2 Python: Bruk av funksjoner, variabler og input/output Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om å designe et program Lære om skrive

Detaljer

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer Forelesning 2 Flere pseudokoder. Representasjoner av tall. Dag Normann - 16. januar 2008 KONTROLLSTRUKTURER Mandag innførte vi pseudokoder og kontrollstrukturer. Vi hadde tre typer grunn-instruksjoner:

Detaljer

INF109 - Uke 1b 20.01.2016

INF109 - Uke 1b 20.01.2016 INF109 - Uke 1b 20.01.2016 1 Variabler Et program er ikke til stor hjelp hvis det er statisk. Statisk betyr at programmet bare bearbeider faste data som er lagt inn i programkoden. For å gjøre programmer

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4.

Læringsmål og pensum. Intro løkker. Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av for-løkke Pensum. Kapittel 4. 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Løkker - 3rd edition: Kapittel 4 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om begrepet løkker Lære om bruk av while-løkke Lære om bruk av

Detaljer

Det matematisk-naturvitenskapelige fakultet Programmering i naturfag ProFag Realfaglig programmering Naturfagkonferansen 2018

Det matematisk-naturvitenskapelige fakultet Programmering i naturfag ProFag Realfaglig programmering Naturfagkonferansen 2018 Det matematisk-naturvitenskapelige fakultet Programmering i naturfag ProFag Realfaglig programmering Naturfagkonferansen 2018 Knut M. Mørken Cathrine W. Telllefsen Situasjonsbeskrivelse Naturfaglæreren

Detaljer