Nogle programmeringssprog er mere lige end andre

Størrelse: px
Starte visningen fra side:

Download "Nogle programmeringssprog er mere lige end andre"

Transkript

1 Nogle programmeringssprog er mere lige end andre Af Torben Mogensen, DIKU Der findes tusindvis af forskellige programmeringssprog, og der bliver dagligt designet nye. Men er der virkelig så stor forskel på forskellige sprog, og hvis ikke, hvorfor så i det hele taget lave nye sprog? Begyndelsen: Church og Turing Allerede inden der fandtes egentlige computere, var matematikere og logikere i gang med at definere modeller for automatiserede beregninger. De mest kendte af disse var englænderen Alan Turing ( ) og amerikaneren Alonzo Church ( ). De havde i 1930 erne udviklet hver deres model for automatiske beregninger: Turings model er kendt som turingmaskinen, og Churchs model som lambdakalkulen. Se tekstboksene på de følgende sider for detaljer om de to modeller. Hverken turingmaskinen eller lambdakalkulen var tænkt som forslag til fysiske beregningsmaskiner. Turingmaskiner kunne godt realiseres med datidens teknologi (hvis man ser bort fra strimlens uendelighed), men de var for bøvlede at bruge: Selv forholdsvis enkle beregninger såsom at lægge to tal sammen krævede ret komplicerede turingmaskiner. Lambdakalkulen var noget nemmere at bruge, men der var ikke nogen oplagt måde at lave en maskine, der kunne foretage beregninger i lambdakalkule. Både turingmaskinen og lambdakalkulen var primært designet som værktøjer til at filosofere over hvilke problemer, der i det hele taget kan lade sig gøre at løse med automatiske beregninger. Derfor var fokus i designet på at gøre det nemt at lave matematiske beviser for deres egenskaber uden det store hensyn til realiserbarhed eller brugbarhed til andre formål. Det blev for eksempel bevist, at det er muligt at definere matematiske funktioner, der ikke kan beregnes i disse to modeller for beregning. Når man har to så forskellige modeller for automatiske beregninger som turingmaskinen og lambdakalkulen, er det selvfølgelig interessant at vide, om de kan det samme, eller om den ene kan lave beregninger, som den anden ikke kan. Sammen med logikerne Stephen Kleene og J.B. Rosser beviste Church og Turing, at enhver beregning, der kan laves med en turingmaskine, også kan laves i lambdakalkulen og omvendt. Så hvis man skal filosofere over grænserne for automatiske beregninger, er det ét fedt, om man bruger turingmaskiner eller lambdakalkulen i sine tankeeksperimenter. Men hvad med andre modeller? Kunne det tænkes, at en helt tredje model for beregninger kunne mere end både turingmaskiner og lambdakalkule? 50 DATALOGISK INSTITUT

2 Alan Turing Alonzo Church Det mente Church og Turing ikke og formulerede derfor en hypotese, som i dag er kendt som Church-Turing-tesen: Enhver beregning, der kan laves som en mekanisk proces, kan også laves af en turingmaskine eller i lambdakalkulen. Derfor ville et bevis for, at en bestemt funktion ikke kan beregnes med en turingmaskine (eller i lambdakalkulen), med det samme bevise, at ingen mekanisk proces kan lave denne beregning. Church-Turing-tesen kan ikke bevises matematisk, da der ikke er nogen matematisk definition af, hvad en mekanisk proces er. Men tesen er generelt accepteret som sand, da ingen endnu har kunnet beskrive en mekanisk proces for beregning, som ikke kan eftergøres med en turingmaskine eller i lambdakalkulen. Et programmeringssprog såsom Java eller C er også en model for automatiske beregninger: Man beskriver en beregning som et program i sproget og kan efterfølgende lave beregningen på en computer. Så det er naturligt at spørge, om et givent programmeringssprog kan lave alle beregninger, der kan laves af en turingmaskine eller lambdakalkulen. I givet fald kaldes sproget for turingkomplet. Langt de fleste gængse programmeringssprog (for eksempel Java og BASIC) er turingkomplette og kan derfor bruges til at beskrive alle tænkelige automatiske beregninger. Så set ud fra et matematisk synspunkt kan det være hip som hap, hvilket programmeringssprog, man bruger til at programmere sin computer. Så hvorfor i det hele taget lave nye programmeringssprog? Langt de fleste gængse programmeringssprog (for eksempel Java og BASIC) er turingkomplette KØBENHAVNS UNIVERSITET 51

3 Turingmaskinen En turingmaskine består af fire komponenter: En uendelig lang strimmel af tegn, hvor hvert tegn kan være 0 eller 1. Et vindue til strimlen. I dette vindue kan man se et tegn på strimlen. Et tilstandsregister, der kan indeholde et tilstandsnummer. En aktionstabel, der for hver kombination af tilstanden og tegnet i vinduet giver en ny tilstand og en aktion, der kan være en af følgende fire: N: Erstat tegnet i vinduet med 0. E: Erstat tegnet i vinduet med 1. V: Ryk vinduet til venstre. H: Ryk vinduet til højre. l Tilstand E2 H1 2 H3 V2 3 H0 N3 Aktionstabel Man kan betragte strimlen som lageret i en computer og aktionstabellen som programmet. Ved starten af beregningen er alle tegn på strimlen nuller undtagen under og til højre for vinduet, hvor inddata til beregningen er repræsenteret som et endeligt antal nuller og ettaller, hvorefter strimlen igen kun indeholder nuller. Tilstandsregistret indeholder ved start tilstandsnummer 1, og man sætter derefter maskinen i gang med at lave skridt. Hvert skridt består i at gøre det, som aktionstabellen angiver. Når tilstandsregistret bliver 0, stopper maskinen, og uddata af beregningen ligger under og til højre for vinduet efterfulgt af nuller. Man kan repræsentere et tal n som n 1 ere efterfulgt af et 0, så en turingmaskine, der beregner summen af to tal, vil starte med en strimmel, hvor de to inddatatal m og n er repræsenteret som m 1 ere, et 0, n 1 ere og derefter 0 er på resten af strimlen. Ved afslutning vil strimlen indholde m+n 1 ere og ellers 0 er. Det kan man gøre med den aktionstabel, der er vist i billedet, hvor man slår op med den nuværende tilstand (1, 2 eller 3) og tegnet i vinduet (0 eller 1) og finder en aktion (N, E, V eller H) og en ny tilstand (0, 1, 2 eller 3). Først rykkes vinduet til højre indtil det 0, der adskiller de to tal. Det erstattes af et 1, og vinduet rykkes til venstre indtil 0 et før det første tal. Derefter rykkes vinduet en gang til højre, og 1 et udskiftes med et 0, hvorefter der rykkes endnu en gang til højre, og maskinen stopper. 52 DATALOGISK INSTITUT

4 Lambdakalkulen Lambdakalkulen har navn efter det græske bogstav λ, som udtales lambda. Lambdakalkulen består af symbolske udtryk og regler for, hvordan man kan reducere udtryk til værdier ligesom regneregler beskriver, hvordan et regneudtryk kan reduceres til et tal. Et udtryk kan være en variabel. Vi bruger små bogstaver som fx. a, b, x og y til variable. Et udtryk kan have formen (M N), hvor M og N også er udtryk. Et udtryk kan have formen λx.m, hvor x er en variabel, og M er et udtryk, der kan indeholde variablen x. Det er endvidere et krav, at forskellige forekomster af λ skal efterfølges af forskellige variable. Fx. er udtrykket λx.λx.x ikke et lovligt udtryk, da de to forekomster af λ begge efterfølges af variablen x. Et udtryk af formen λx.m siges at være ækvivalent med et udtryk af formen λy.n, hvis M og N er ens, bortset fra at M bruger x alle de steder, hvor N bruger y, og omvendt. For eksempel er udtrykkene λx.(a x) og λy.(a y) ækvivalente. Der er kun én reduktionsregel i Lambdakalkule: Et deludtryk af formen (λx.m N) reduceres til et kopi af udtrykket M, hvori alle forekomster af x er erstattet med udtryk, der er ækvivalente med N. Hvis man uden videre erstatter alle forekomster af x med N, kan man overtræde forbuddet mod gentagne variable efter λ, men ved at bruge ækvivalente udtryk kan man undgå dette. For eksempel reduceres (λx.(x x) λy.y) til (λa.a λb.b), idet de to forekomster af x er erstattet med de til λy.y ækvivalente udtryk λa.a og λb.b. En normalform er et udtryk, der ikke kan reduceres med denne reduktionsregel. Programmer er vilkårlige udtryk, og værdier er udtryk i normalform. Man kører et program P med inddata D ved at reducere udtrykket (P D) til normalform. Man kan repræsentere naturlige tal som værdier i Lambdakalkule på følgende måde: 0 repræsenteres som udtrykket λx.λy.y, 1 som λx.λy.(x y), 2 som λx.λy.(x (x y)), 3 som λx.λy.(x (x (x y))) og så videre. Vi kan definere et program P, som beregner N N, hvor N er et naturligt tal, som P = λn.(n n). Vi kan for eksempel køre P med repræsentationen af tallet 2 som inddata: (λn.(n n) λx.λy.(x (x y)) (λa.λb.(a (a b)) λc.λd.(c (c d))) λb.(λe.λ f.(e (e f )) (λg.λh.(g (g h)) b)) λb.(λe.λ f.(e (e f )) λh.(b (b h))) λb. λf.(λi.(b (b i)) (λj.(b (b j)) f)) λb. λf.(λi.(b (b i)) (b (b f))) λb. λf.(b (b (b (b f)))) hvor pile angiver reduktioner. Bemærk, at vi flere gange omdøber udtryk for at undgå forbuddet mod gentagelse af navne efter λ. Det resulterende udtryk er, som forventet, ækvivalent med repræsentationen af 4. KØBENHAVNS UNIVERSITET 53

5 Hvornår er et sprog bedre end et andet? Når to programmeringssprog begge er turingkomplette, er de som sagt på en måde lige gode: De kan beregne de samme ting. Hvis man vil diskutere, om et programmeringssprog er bedre end et andet, må man derfor i de fleste tilfælde bruge andre kriterier end hvilke beregninger, det er muligt at lave i sprogene. Der har været mange forskellige forslag til sammenligningskriterier for programmeringssprog. Her er nogle af de mest almindeligt brugte kriterier: Også runer findes i skandinaviske varianter. Rosettastenen, som stammer tilbage fra de gamle Egypen, viser, at man allerede i oldtiden anvendte forskellige sprog til at formidle det samme budskab. 54 DATALOGISK INSTITUT

6 Programmers størrelse: Hvis et program i et sprog A altid kan omskrives til et kortere program i sproget B, er B et bedre sprog. Hastighed: Hvis et program i et sprog A altid kan omskrives til et hurtigere program i sproget B, er B et bedre sprog. Nemhed: Hvis det for alle beregninger er nemmere at lave et program til beregningen i sproget B, end det er i sproget A, så er B et bedre sprog. Men der er også problemer med alle disse kriterier: Størrelse: Man kan bevise, at hvis både A og B er turingkomplette sprog, så kan alle tilstrækkelig store programmer i sproget A omskrives til programmer i sproget B, som højst er en smule større. Med andre ord er det kun for små programmer, at der kan være en væsentlig forskel på, hvor meget tilsvarende programmer fylder i de to sprog. Endvidere kan det være umuligt at afgøre, om et givent program er det mindst mulige program til at lave en given beregning i et givent sprog. Hastighed: Et programmeringssprog kan implementeres på forskellige computere på mange forskellige måder, så hastigheden af programmer i sproget er afhængig dels af implementeringsmetoden for sproget og dels af den computer, sproget er implementeret på. Man kan derfor ikke give noget almengyldigt mål for, hvor hurtigt et program er. Man kan allerhøjst sige, at på denne specifikke maskine med denne specifikke implementering af de to sprog, kører dette specifikke program i sproget A hurtigere end dette specifikke tilsvarende program i sproget B. Og selv når man gør tidsforbruget veldefineret ved at fastlægge sprogets implementering og maskine, er det, ligesom det er umuligt at bevise, at et program er det korteste til at lave en bestemt beregning, også umuligt at vise, at et specifikt program er det absolut hurtigste til en bestemt beregning. Nemhed: Hvor nemt det er at skrive et program, er en meget subjektiv sag: Én programmør kan synes, at det er nemmere at skrive programmer i sproget A, mens en anden kan synes, at det er nemmere at skrive i sproget B. Så man kan ikke lave et objektivt mål for nemhed. Man kan lave studier af udvalgte menneskers erfaring med forskellige programmeringssprog, men resultatet af et sådant studie vil altid afhænge af de udvalgte mennesker deres uddannelse, kultur og personlighed. Der vil derfor altid være masser af forbehold, når man skal sammenligne programmeringssprog. Ikke desto mindre finder man mange diskussioner, hvor folk prøver at overbevise andre om deres personlige favoritsprogs overlegenhed uden at lave de nødvendige forbehold. Man ser fx. ofte udsagn som C er et hurtigere sprog end Java, Det er nemmere at skrive programmer i Javascript end i C, Programmer i Perl er kortere end programmer i Java og så videre. Men den slags påstande kan man ikke bruge til noget de siger mere om de personer, der laver udsagnene, end om de sprog, udsagnene omhandler. KØBENHAVNS UNIVERSITET 55

7 Det betyder dog ikke, at man overhovedet ikke kan sammenligne turingkomplette programmeringssprog: Hvis man laver passende forbehold, kan man godt sige, at et sprog under disse specifikke forbehold opfylder et bestemt kriterium bedre end et andet. Man kan for eksempel vælge en bestemt computertype og de mest udbredte implementeringer af udvalgte programmeringssprog til denne computertype og sammenligne programmer, der er skrevet af erfarne programmører med henblik på at løse specifikke problemer enten med det kortest mulige program eller i kortest tid. Så kan man godt sige, at i denne kunstige situation var programmerne i det ene sprog typisk kortere eller hurtigere end programmerne i det andet sprog. Hvis man gør lignende forbehold klart, kan man også forsøge at designe et sprog, der udmærker sig på en særlig måde under disse specifikke forbehold. Men det er meningsløst at sammenligne eller designe programmeringssprog uden at have gjort sig klart, hvilke forbehold man har taget, og hvilke kriterier sammenligningen eller designet laves under. Et svagt sprog kan have fordele, som turingkomplette sprog ikke har Svage sprog Et sprog, der ikke er turingkomplet, kan pr. definition ikke lave alle tænkelige automatiske beregninger, og man kan derfor kalde det et svagt sprog. Umiddelbart kunne man tro, at det er meningsløst at bruge svage programmeringssprog, når der findes så mange stærke (turingkomplette) sprog. Men et svagt sprog kan have fordele, som turingkomplette sprog ikke har: Det kan være umuligt at bevise korrekthed af programmer i turingkomplette sprog, men man kan lave svage sprog, hvor det altid er muligt automatisk at afgøre, om et program overholder en given formel specifikation. Det kan være umuligt at give øvre grænser for tids- og pladsforbrug for programmer i stærke sprog, men svage sprog kan garantere, at køretid og plads er begrænsede. Det kan være meget nemmere at implementere et svagt sprog effektivt, end det er at implementere et stærkt sprog effektivt. Det kan for eksempel gælde, hvis man vil køre programmer på højparallelle computere. Der kan også være tilfælde, hvor der kendes effektive metoder til at lave beregninger inden for et bestemt problemområde, men hvor disse metoder er meget komplicerede. I denne situation kan man lave et sprog, der kun kan bruges til dette problemområde, men hvor implementeringen af sproget sørger for, at de effektive metoder altid bruges, uden at programmøren behøver at bekymre sig om det. Derfor er der en stigende tendens til, at der bliver designet stærkt specialiserede svage sprog. Det, man taber i fleksibilitet og beregningsstyrke ved at bruge et svagt sprog, vinder man på andre områder: sikkerhed, garantier for ressourceforbrug, bedre effektivitet og så videre. Man kan i reglen godt opnå den samme sikkerhed, effektivitet og ressourcegaranti i et turingkomplet sprog, men det vil kræve, at der for hvert enkelt program laves bevis for disse egenskaber, hvor et svagt sprog kan garantere dette for alle programmer, der kan skrives i dette sprog. Man kan groft sagt sige, at et svagt sprog er for dovne programmører: En omhyggelig programmør kan lave et lige så godt eller bedre program i et turingkomplet sprog, men det kræver ofte meget mere arbejde både at skrive programmet og efterfølgende at vise, at programmet opfylder de stillede krav. 56 DATALOGISK INSTITUT

8 Man kan sammenligne svage og stærke sprog med værktøj: Man kan ikke save med en skruetrækker, og man kan ikke skrue skruer i med en sav, men man kan begge dele med en schweizerkniv. Men hvis man skal skrue en skrue i, så er det nemmere at bruge skruetrækkeren end schweizerkniven, og hvis man skal save, er det nemmere at bruge saven end schweizerkniven. Det, man mister i HTML er et eksempel på et svagt sprog, der har fået stor anvendelse. KØBENHAVNS UNIVERSITET 57

9 fleksibilitet med de specialiserede værktøjer, vinder man i brugbarhed til specifikke opgaver. Og hvor sammenligning af turingkomplette sprog kræver en masse forbehold og subjektivitet, kan man ofte lave uforbeholdne sammenligninger mellem svage sprog: Man kan vise, at et sprog A kan lave flere beregninger end et sprog B, eller at et sprog A kan give flere garantier om programmers opførsel end et sprog B. Herunder er nogle eksempler på svage sprog med beskrivelser af de fordele, man opnår ved at sætte begrænsninger i sprogenes beregningsstyrke, og de ting, man mister ved at sætte disse begrænsninger. Eksempel på, at cyklisk afhænghed er umulig i regneark: Cellen A1 kan ikke indeholde formlen =B1+1, samtidig med at cellen B1 indeholder formlen =A1+1. Regneark Regneark såsom Microsofts Excel og Open Office Calc er også programmeringssprog: Man kan beskrive beregninger og få dem udført automatisk. De mest avancerede regneark har efterhånden fået så mange faciliteter, at de er turingkomplette, men i grundformen er de ikke: Hver celle kan indeholde enten et tal, en formel eller en tekst. Formler kan bruge indholdet af andre celler til at beregne en værdi for sin egen celle, men det er ikke tilladt at have cykliske afhængigheder mellem formlerne. For eksempel kan cellen A1 ikke indeholde formlen =B1+1, samtidig med at cellen B1 indeholder formlen =A1+1, for ingen af disse formler kan beregnes, før man kender værdien af den anden celle. Manglen på cykliske afhængigheder sikrer, at beregningen kan ske hurtigt: Uanset hvor mange celler der ændrer indhold, behøver man kun at genberegne hver formel én gang for at få det færdige resultat forudsat, at man regner formlerne i den rigtige rækkefølge. Denne rækkefølge kan man også finde i forholdsvis kort tid, så hele genberegningsprocessen er hurtig (forudsat, at de enkelte formler ikke tager lang tid at beregne). Denne garanti for hurtig beregning vil man ikke have i et turingkomplet sprog. Man kan ikke sige, at regneark er specialiserede programmeringssprog: De bliver brugt til mange forskellige slags beregninger lige fra en skoles udflugtsbudget til styrken af en bropille. Fordelene ved regneark kan derfor ikke siges at stamme fra en indskrænkning af problemområdet men snarere en indskrænkning af kompleksiteten af de beregninger, der kan udtrykkes i regnearkene. Stærkt specialiserede sprog En anden måde at opnå fordele gennem svage sprog er at designe dem til at løse opgaver inden for et meget specifikt problemområde: Mange detaljer ved løsningen kan underforstås og behøver derfor ikke at beskrives eksplicit i programmerne, og man kan lave automatiske analyser af programmerne, så man kan få oplysninger om deres egenskaber. Et eksempel er sproget Troll: Det eneste, man kan programmere i Troll, er forskellige måder at kaste med terninger på og kombinere terningernes værdier til et enkelt tal. For eksempel vil programmet max 3d10 give resultatet af at kaste 3 tisidede terninger (3d10) og finde den største af de tre værdier (max). Da terningeslag er tilfældige, vil det samme program give forskellige resultater, hver gang det bliver kørt. Tre forskellige kørsler kan for eksempel give værdierne 8, 10 og 7. Hvis man gerne vil vide, hvilke resultater der er mulige, og sandsynlighederne for de forskellige resultater, kan man køre dette program mange tusind gange. Ved at tælle antallet af gange, hvert resultat forekommer, kan man estimere sandsynlighederne. Man får dog ikke eksakte sandsynligheder: Jo flere kørsler man laver, jo bedre bliver estimaterne, men man får aldrig helt præcise værdier. 58 DATALOGISK INSTITUT

10 Men man kan analysere programmet og finde eksakte sandsynligheder for alle udfald. For max 3d10 er de mulige udfald som følger: Udfald Sandsynlighed 0,1% 0,7% 1,9% 3,7% 6,1% 9,1% 12,7% 16,9% 21,7% 27,1% Denne analyse kan laves automatisk, men kun fordi Troll er et meget simpelt sprog. Hvis man havde brugt et turingkomplet programmeringssprog til at lave terningekastene med, så ville man ikke kunne lave analysen automatisk. Samtidig gør den stærke specialisering af sproget, at de fleste almindelige måder at bruge terninger på kan laves med meget korte programmer. Behandling af store datamængder Søgemaskinefirmaet Google har nogle af verdens største datacentre, hvor de gemmer informationer om alverdens hjemmesider og om de søgninger, der bliver foretaget gennem Googles søgetjeneste. Alle disse data er fordelt på flere tusind computere hver med deres egne lokale diske. For at sikre sig mod maskinnedbrud findes hver bid data på flere forskellige computere på forskellige dele af det netværk, der forbinder alle computerne. Når Google skal lave statistik over disse store datamængder, for eksempel for at finde de mest almindelige søgeord, skal beregningerne effektivt fordeles over mange tusind computere, og beregningerne skal laves, så de tager højde for, at nogle af computerne bryder sammen under beregningen noget, der sker, næsten hver gang der laves en større beregning. Det er meget komplekst at programmere denne slags fordelte beregninger i et almindeligt programmeringssprog, så Google har lavet deres eget sprog, Sawzall, til formålet. Et program i Sawzall består af to dele: en del, der beskriver en delberegning på en enkelt bid data i isolation fra de andre dele af data, og en del, der beskriver, hvordan de delresultater, der kommer ud af de individuelle delberegninger, kombineres til et samlet resultat. Kombineringsfunktionen skal kunne tage delresultaterne i en vilkårlig rækkefølge, uden at det ændrer det endelige resultat, og uden at kombineringsfunktionen behøver at huske store datamængder undervejs. Denne begrænsning medfører, at man ikke kan lave alle tænkelige beregninger i sproget, men til gengæld er man garanteret effektiv beregning: Fordi kombineringsfunktionen kan tage delresultater i vilkårlig rækkefølge, kan den tage dem, efterhånden som de bliver færdige, og den computer, der leverede delresultatet, kan sættes i gang med en ny delberegning. Og hvis en delberegning går galt, fordi den computer, der laver delberegningen, bryder sammen, kan man genstarte delberegningen på en anden computer. I dette tilfælde udnytter man egenskaber ved kombineringsfunktionen til effektivt at fordele beregningerne og kompensere for computersammenbrud. Det ville man ikke kunne garantere, hvis kombineringsfunktionen var skrevet i et turingkomplet sprog. Samtidig er et program i Sawzall meget kort i forhold til et tilsvarende program skrevet i et almindeligt turingkomplet sprog, da hele processen omkring fordeling af beregninger, kommunikation over netværk, håndtering af maskinnedbrud osv. er underforstået og ikke behøves at stå eksplicit i hvert Sawzallprogram. Det KØBENHAVNS UNIVERSITET 59

11 herunder viste program i Sawzall finder fordelingen af Googlesøgninger på bredde og længdegrad. Den anden linje beskriver kombineringsfunktionen: Man laver en tabel over bredde- og længdegrader (lat og lon) og lægger delresultaterne sammen (sum). De tre sidste linjer beskriver behandling af de enkelte deldata: Inddata (input) er data om en enkelt søgning. Derefter udtrækkes positionsinformation ud fra IP-adressen, og man sætter et ettal ind i tabellen ved denne position. Ordet emit angiver, at det er det delresultat, der sendes videre til kombineringsfunktionen. proto querylog.proto queries_per_degree: table sum[lat: int][lon: int] of int; log_record: QueryLogProto = input; loc: Location = locationinfo(log_record.ip); emit queries_per_degree[int(loc.lat)][int(loc.lon)] <-1; Tabellen queries_per_degree kan vises som et billede: Antallet af forespørgsler fra et bestemt sted vises som farven i et billedpunkt: Jo mørkere punktet er, jo flere forespørgsler. Et billede svarende til forespørgslerne i et døgn i august 2003 er vist herunder. Reversible sprog En egenskab, som et svagt sprog kan have, men som et turingkomplet sprog ikke har, er reversibilitet: Evnen til at køre et program baglæns, så man fra uddata kan finde det inddata, der giver dette uddata. Reversibilitet kræver, at der for hvert muligt uddata kun er et muligt inddata, der giver dette uddata. Så et program, der som inddata tager to tal og som uddata giver deres sum, er ikke reversibelt der er mange forskellige inddata, der giver samme uddata. Men et program, der som inddata tager to tal og som uddata giver både deres sum og deres differens, kan være reversibelt: Hvis man kender uddata, er der kun ét muligt inddata, for hvis a = x+y og b = x y, så er x = (a+b)/2 og y = (a b)/2. 60 DATALOGISK INSTITUT

12 Billed The Tower of Babel, Pieter Bruegel, Kunsthistorisches Museum, Vienna. Historien om Babelstårnet illustrerer mangfoldigheden af sprog. KØBENHAVNS UNIVERSITET 61

13 I et reversibelt programmeringssprog kan man kun skrive reversible programmer, og man kan implementere sproget på en reversibel computer: en computer, der kun kan lave reversible beregninger En konsekvens af termodynamikkens anden lov er, at en reversibel computer kan laves, så den bruger mindre energi end en ikke-reversibel computer. Så til formål, hvor lavt energiforbrug er vigtigt, kan reversible computere og sprog være interessante. Indtil videre er det dog fremtidsmusik, da energieffektive reversible computere endnu kun er på tegnebrættet. Tendensen går i retning af specialiserede sprog Men reversible sprog har en anden fordel. Ofte har man brug for at lave beregninger både forlæns og baglæns: Hvis man for eksempel komprimerer data til en kompakt form, vil man gerne kunne genskabe det oprindelige data, så man laver i reglen to programmer: et til at komprimere data og et andet til at genskabe det originale data fra det komprimerede. Hvis man skriver komprimeringsprogrammet i et reversibelt sprog, behøver man ikke at skrive det andet program: Man kan bare køre komprimeringsprogrammet baglæns i stedet. I de reversible programmeringssprog, der findes i dag, kan det dog være vanskeligere at skrive dette ene program, end det vil være at skrive de to indbyrdes omvendte programmer. Det kan bemærkes, at reversible beregninger er en forudsætning for kvantecomputere, der udnytter kvantemekanikkens superpositionsbegreb til at lave beregninger på mange værdier samtidig. De beregninger, der kan laves på en kvantecomputer, er dog kun en delmængde af alle reversible beregninger. Opsummering Der findes tusindvis af forskellige programmeringssprog. De fleste kan beregne det samme: alle beregninger, der kan automatiseres. Det kan blandt andet være svært at sige, at et sprog er bedre end et andet, uden at specificere en meget præcis kontekst for sammenligningen. Der kan være grunde til at bruge programmeringssprog, der ikke kan beregne alting: Begrænsningerne kan give andre fordele såsom ressourcegarantier, analyserbarhed og parallel beregning. Der kommer hele tiden nye programmeringssprog til, og tendensen går i retning af specialiserede sprog. Og selv folk, der ikke betragter sig som it-arbejdere, vil i stigende grad bruge simple programmeringssprog såsom regneark eller stærkt specialiserede sprog. Læs mere Alan Turing og turingmaskiner: Alonzo Church og lambdakalkulen: Troll: Sawzall: Reversible beregninger: 62 DATALOGISK INSTITUT

14 TORBEN ÆGIDIUS MOGENSEN Torben Ægidius Mogensen har siden 1994 været lektor og siden 2007 studieleder på Datalogisk Institut på Københavns Universitet. Torben er ph.d. fra 1989 og har modtaget en undervisningspris fra Det Naturvidenskabelige Fakultet i Han har desuden været med til at akkreditere uddannelser i Estland. Torben har bl.a. skrevet lærebogen Basics of Compiler Design (2000, 2010), som han anvender i sin undervisning inden for samme område på DIKU. Som en del af APL-gruppen (algoritmer og programmeringssprog) arbejder Torben med automatisk programanalyse og -transformation, oversættere og domænespecifikke sprog. Af udvalgte artikler kan nævnes: Troll: A Language for Specifying Dice-Rolls, ACM Symposium on Applied Computing 2009, Semi-Inversion of Functional Parameters, Partial Evaluation and Program Manipulation 2008, og Linear-Time Self-Interpretation of the Pure Lambda Calculus, Journal of Higher-Order and Symbolic Computation KØBENHAVNS UNIVERSITET 63

15 Den digitale revolution fortællinger fra datalogiens verden Bogen er udgivet af Datalogisk Institut, Københavns Universitet (DIKU) i anledning af instituttets 40 års jubilæum med bidrag fra forskere tilknyttet instituttet. Redaktion: Tariq Andersen, phd-studerende, Jørgen Bansler, professor, Hasse Clausen, lektor, Inge Hviid Jensen, kommunikationsmedarbejder og Martin Zachariasen, institutleder. Forsidemotiv: Foto af skulptur af Alan Turing, basegreen lokaliseret på flickr.om/photos/basegreen Oplag: 1000 eks. Grafisk design og produktion: Westring + Welling A/S ISBN: Datalogisk Institut Citater er tilladt under creative commons. 2 DATALOGISK INSTITUT

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang.

Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Den tekniske platform Af redaktionen Computeren repræsenterer en teknologi, som er tæt knyttet til den naturvidenskabelige tilgang. Teknologisk udvikling går således hånd i hånd med videnskabelig udvikling.

Læs mere

Den digitale verden er i dag en del af de fleste menneskers dagligdag. Når mennesker bruger

Den digitale verden er i dag en del af de fleste menneskers dagligdag. Når mennesker bruger Menneskers omgang med den digitale teknik Af redaktionen Den digitale verden er i dag en del af de fleste menneskers dagligdag. Når mennesker bruger deres mobiltelefon, ser tv, søger oplysninger på Wikipedia,

Læs mere

Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund.

Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund. Den digitale verden et barn af oplysningstiden Af redaktionen Gennem de sidste par årtier er en digital revolution fejet ind over vores tidligere så analoge samfund. Den elektroniske computer er blevet

Læs mere

Simulering af stokastiske fænomener med Excel

Simulering af stokastiske fænomener med Excel Simulering af stokastiske fænomener med Excel John Andersen, Læreruddannelsen i Aarhus, VIA Det kan være en ret krævende læreproces at udvikle fornemmelse for mange begreber fra sandsynlighedsregningen

Læs mere

Programmering, algoritmik og matematik en nødvendig sammenblanding?

Programmering, algoritmik og matematik en nødvendig sammenblanding? Programmering, algoritmik og matematik en nødvendig sammenblanding? Oplæg til IDA møde, 29. november 2004 Martin Zachariasen DIKU 1 Egen baggrund B.Sc. i datalogi 1989; Kandidat i datalogi 1995; Ph.D.

Læs mere

Fagårsplan 10/11 Fag: Matematik Klasse: 7.ABC Lærer: Henrik Stillits. Fagområde/ emne

Fagårsplan 10/11 Fag: Matematik Klasse: 7.ABC Lærer: Henrik Stillits. Fagområde/ emne Fagårsplan 10/11 Fag: Matematik Klasse: 7.ABC Lærer: Henrik Stillits. Fagområde/ emne Matematiske færdigheder Grundlæggende færdigheder - plus, minus, gange, division (hele tal, decimaltal og brøker) Identificer

Læs mere

Regneark hvorfor nu det?

Regneark hvorfor nu det? Regneark hvorfor nu det? Af seminarielektor, cand. pæd. Arne Mogensen Et åbent program et værktøj... 2 Sådan ser det ud... 3 Type 1 Beregning... 3 Type 2 Præsentation... 4 Type 3 Gæt... 5 Type 4 Eksperiment...

Læs mere

Kapitel 2 Tal og variable

Kapitel 2 Tal og variable Tal og variable Uden tal ingen matematik - matematik handler om tal og anvendelse af tal. Matematik beskæftiger sig ikke udelukkende med konkrete problemer fra andre fag, og de konkrete tal fra andre fagområder

Læs mere

Oprids over grundforløbet i matematik

Oprids over grundforløbet i matematik Oprids over grundforløbet i matematik Dette oprids er tænkt som en meget kort gennemgang af de vigtigste hovedpointer vi har gennemgået i grundforløbet i matematik. Det er en kombination af at repetere

Læs mere

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP()

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP() John Andersen, Læreruddannelsen i Aarhus, VIA Et kast med 10 terninger gav følgende udfald Fig. 1 Result of rolling 10 dices

Læs mere

Tal og algebra. I kapitlet arbejdes med følgende centrale matematiske begreber: algebra variable. Huskeliste: Tændstikker (til side 146) FRA FAGHÆFTET

Tal og algebra. I kapitlet arbejdes med følgende centrale matematiske begreber: algebra variable. Huskeliste: Tændstikker (til side 146) FRA FAGHÆFTET I kapitlet skal eleverne arbejde med fire forskellige vinkler på algebra de præsenteres på kapitlets første mundtlige opslag. De fire vinkler er algebra som et redskab til at løse matematiske problemer.

Læs mere

3. klasse 6. klasse 9. klasse

3. klasse 6. klasse 9. klasse Børne- og Undervisningsudvalget 2012-13 BUU Alm.del Bilag 326 Offentligt Elevplan 3. klasse 6. klasse 9. klasse Matematiske kompetencer Status tal og algebra sikker i, er usikker i de naturlige tals opbygning

Læs mere

SÅDAN BRUGER DU REGNEARK INTRODUKTION

SÅDAN BRUGER DU REGNEARK INTRODUKTION SÅDAN BRUGER DU REGNEARK INTRODUKTION I vejledningen bruger vi det gratis program Calc fra OpenOffice som eksempel til at vise, hvordan man bruger nogle helt grundlæggende funktioner i regneark. De øvrige

Læs mere

Baggrundsnote om logiske operatorer

Baggrundsnote om logiske operatorer Baggrundsnote om logiske operatorer Man kan regne på udsagn ligesom man kan regne på tal. Regneoperationerne kaldes da logiske operatorer. De tre vigtigste logiske operatorer er NOT, AND og. Den første

Læs mere

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger

Eleven kan handle med overblik i sammensatte situationer med matematik. Eleven kan anvende rationale tal og variable i beskrivelser og beregninger Kompetenceområde Efter klassetrin Efter 6. klassetrin Efter 9. klassetrin Matematiske kompetencer handle hensigtsmæssigt i situationer med handle med overblik i sammensatte situationer med handle med dømmekraft

Læs mere

VisiRegn: En e-bro mellem regning og algebra

VisiRegn: En e-bro mellem regning og algebra Artikel i Matematik nr. 2 marts 2001 VisiRegn: En e-bro mellem regning og algebra Inge B. Larsen Siden midten af 80 erne har vi i INFA-projektet arbejdet med at udvikle regne(arks)programmer til skolens

Læs mere

Matematik. Matematiske kompetencer

Matematik. Matematiske kompetencer Matematiske kompetencer formulere sig skriftligt og mundtligt om matematiske påstande og spørgsmål og have blik for hvilke typer af svar, der kan forventes (tankegangskompetence) løse matematiske problemer

Læs mere

Hvad er meningen? Et forløb om opinionsundersøgelser

Hvad er meningen? Et forløb om opinionsundersøgelser Hvad er meningen? Et forløb om opinionsundersøgelser Jette Rygaard Poulsen, Frederikshavn Gymnasium og HF-kursus Hans Vestergaard, Frederikshavn Gymnasium og HF-kursus Søren Lundbye-Christensen, AAU 17-10-2004

Læs mere

Skriftlig Eksamen Diskret Matematik (DM528)

Skriftlig Eksamen Diskret Matematik (DM528) Skriftlig Eksamen Diskret Matematik (DM528) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den 20 Januar 2009, kl. 9 13 Alle sædvanlige hjælpemidler (lærebøger, notater etc.) samt brug

Læs mere

Appendiks 6: Universet som en matematisk struktur

Appendiks 6: Universet som en matematisk struktur Appendiks 6: Universet som en matematisk struktur En matematisk struktur er et meget abstrakt dyr, der kan defineres på følgende måde: En mængde, S, af elementer {s 1, s 2,,s n }, mellem hvilke der findes

Læs mere

Hypotesetest. Altså vores formodning eller påstand om tingens tilstand. Alternativ hypotese (hvis vores påstand er forkert) H a : 0

Hypotesetest. Altså vores formodning eller påstand om tingens tilstand. Alternativ hypotese (hvis vores påstand er forkert) H a : 0 Hypotesetest Hypotesetest generelt Ingredienserne i en hypotesetest: Statistisk model, f.eks. X 1,,X n uafhængige fra bestemt fordeling. Parameter med estimat. Nulhypotese, f.eks. at antager en bestemt

Læs mere

Årsplan for 5. klasse, matematik

Årsplan for 5. klasse, matematik Årsplan for 5. klasse, matematik I matematik bruger vi bogsystemet Sigma som grundmateriale. I systemet er der, ud over også kopiark og tests tilknyttet de enkelte kapitler. Systemet er udarbejdet så det

Læs mere

Selam Friskole Fagplan for Matematik

Selam Friskole Fagplan for Matematik Selam Friskole Fagplan for Matematik Formål Formålet med undervisningen er, at eleverne udvikler matematiske kompetencer og opnår viden og kunnen således, at de bliver i stand til at begå sig hensigtsmæssigt

Læs mere

Temaopgave i statistik for

Temaopgave i statistik for Temaopgave i statistik for matematik B og A Indhold Opgave 1. Kast med 12 terninger 20 gange i praksis... 3 Opgave 2. Kast med 12 terninger teoretisk... 4 Opgave 3. Kast med 12 terninger 20 gange simulering...

Læs mere

Fag- og indholdsplan 9. kl.:

Fag- og indholdsplan 9. kl.: Fag- og indholdsplan 9. kl.: Indholdsområder: Tal og algebra: Tal - regneregler og formler Størrelser måling, beregning og sammenligning. Matematiske udtryk Algebra - teoretiske sammenhænge absolut og

Læs mere

Om brugen af matematiske tegn og objekter i en god matematisk fremstilling

Om brugen af matematiske tegn og objekter i en god matematisk fremstilling Om brugen af matematiske tegn og objekter i en god matematisk fremstilling af Petur Birgir Petersen Et særpræg ved matematik som videnskab er den udstrakte brug af symboler. Det er vigtigt at symbolerne

Læs mere

Årsplan for 7. klasse, matematik

Årsplan for 7. klasse, matematik Årsplan for 7. klasse, matematik I matematik bruger vi bogsystemet Sigma som grundmateriale. I systemet er der, ud over grundbogen, også kopiark og tests tilknyttet de enkelte kapitler. Systemet er udarbejdet

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

Regularitet og Automater

Regularitet og Automater Plan dregaut 2007 Regularitet og Automater Hvad er Regularitet og Automater? Praktiske oplysninger om kurset Ugens emner Introduktion til ugens opgaver 2 Regularitet og Automater Formål med kurset: at

Læs mere

Eleverne skal lære at:

Eleverne skal lære at: PK: Årsplan 8.Ga. M, matematik Tid og fagligt område Aktivitet Læringsmål Uge 32 uge 50 Tal og algebra Eleverne skal arbejde med at: kende de reelle tal og anvende dem i praktiske og teoretiske sammenhænge

Læs mere

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides

01017 Diskret Matematik E12 Alle bokse fra logikdelens slides 01017 Diskret Matematik E12 Alle bokse fra logikdelens slides Thomas Bolander 1 Udsagnslogik 1.1 Formler og sandhedstildelinger symbol står for ikke eller og ( A And) hvis... så... hvis og kun hvis...

Læs mere

Excel 2007 (5): Formler, diagrammer og tips

Excel 2007 (5): Formler, diagrammer og tips Excel 2007 (5): Formler, diagrammer og tips HUSK AT: Man kan godt skrive flere linjer under hinanden i den samme celle. Marker den pågældende celle (evt. flere celler) og vælg "Ombryd tekst" på fanebladet

Læs mere

Klassen er sammenlæst, altså 5 og 6 klasse på en og samme tid. Samtidig er klassen pt på ca 11 elever ialt.

Klassen er sammenlæst, altså 5 og 6 klasse på en og samme tid. Samtidig er klassen pt på ca 11 elever ialt. Introduktion til mat i 5/6 klasse Vejle Privatskole 13/14: Klassen er sammenlæst, altså 5 og 6 klasse på en og samme tid. Samtidig er klassen pt på ca 11 elever ialt. Udgangspunktet bliver en blød screening,

Læs mere

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal?

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal? Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal? Det er ret let at svare på: arealet af en trekant, husker vi fra vor kære folkeskole, findes ved at gange

Læs mere

Kursusindhold: X i : tilfældig værdi af ite eksperiment. Antag X i kun antager værdierne 1, 2,..., M.

Kursusindhold: X i : tilfældig værdi af ite eksperiment. Antag X i kun antager værdierne 1, 2,..., M. Kursusindhold: Produkt og marked - matematiske og statistiske metoder Rasmus Waagepetersen Institut for Matematiske Fag Aalborg Universitet February 9, 2015 Sandsynlighedsregning og lagerstyring Normalfordelingen

Læs mere

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard Mandags Chancen En optimal spilstrategi Erik Vestergaard Spilleregler denne note skal vi studere en optimal spilstrategi i det spil, som i fjernsynet går under navnet Mandags Chancen. Spillets regler er

Læs mere

Undervisningsplan: Matematik Skoleåret 2014/2015 Strib Skole: 5B Ugenumre: Hovedområder: Emner og temaer: Side 1 af 5

Undervisningsplan: Matematik Skoleåret 2014/2015 Strib Skole: 5B Ugenumre: Hovedområder: Emner og temaer: Side 1 af 5 Ugenumre: Hovedområder: Emner og temaer: 33 Addition og subtraktion Anvendelse af regningsarter 34 Multiplikation og division Anvendelse af regningsarter 35 Multiplikation med decimaltal Anvendelse af

Læs mere

Projekt - Visual Basic for Applications N på stribe

Projekt - Visual Basic for Applications N på stribe Projekt - Visual Basic for Applications N på stribe Mikkel Kaas og Troels Henriksen - 03x 3. november 2005 1 Introduktion Spillet tager udgangspunkt i det gamle kendte 4 på stribe, dog med den ændring,

Læs mere

Grundlæggende Matematik

Grundlæggende Matematik Grundlæggende Matematik Hayati Balo, AAMS August 2012 1. Matematiske symboler For at udtrykke de verbale udsagn matematisk korrekt, så det bliver lettere og hurtigere at skrive, indføres en række matematiske

Læs mere

Hastigheden på en computers centrale regneenhed, CPU en, har altid været en vigtig

Hastigheden på en computers centrale regneenhed, CPU en, har altid været en vigtig Supercomputere mange bække små... Af Brian Vinter, DIKU Hastigheden på en computers centrale regneenhed, CPU en, har altid været en vigtig konkurrenceparameter for leverandørerne. Med hurtigere computere

Læs mere

Evaluering af matematik undervisning

Evaluering af matematik undervisning Evaluering af matematik undervisning Udarbejdet af Khaled Zaher, matematiklærer 6-9 klasse og Boushra Chami, matematiklærer 2-5 klasse Matematiske kompetencer. Fællesmål efter 3.klasse indgå i dialog om

Læs mere

Matematik i AT (til elever)

Matematik i AT (til elever) 1 Matematik i AT (til elever) Matematik i AT (til elever) INDHOLD 1. MATEMATIK I AT 2 2. METODER I MATEMATIK OG MATEMATIKKENS VIDENSKABSTEORI 2 3. AFSLUTTENDE AT-EKSAMEN 3 4. SYNOPSIS MED MATEMATIK 4 5.

Læs mere

Numeriske metoder. Af: Alexander Bergendorff, Frederik Lundby Trebbien Rasmussen og Jonas Degn. Side 1 af 15

Numeriske metoder. Af: Alexander Bergendorff, Frederik Lundby Trebbien Rasmussen og Jonas Degn. Side 1 af 15 Numeriske metoder Af: Alexander Bergendorff, Frederik Lundby Trebbien Rasmussen og Jonas Degn Side 1 af 15 Indholdsfortegnelse Matematik forklaring... 3 Lineær regression... 3 Numerisk differentiation...

Læs mere

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN

MODELSÆT 2; MATEMATIK TIL LÆREREKSAMEN MODELSÆT ; MATEMATIK TIL LÆREREKSAMEN Forberedende materiale Den individuelle skriftlige røve i matematik vil tage udgangsunkt i følgende materiale:. En diskette med to regnearks-filer og en MathCad-fil..

Læs mere

EXCEL 2011 TIL MAC GODT I GANG MED PETER JENSEN GUIDE VISUEL

EXCEL 2011 TIL MAC GODT I GANG MED PETER JENSEN GUIDE VISUEL PETER JENSEN EXCEL 2011 TIL MAC GODT I GANG MED EXCEL 2011 TIL MAC VISUEL GUIDE 59 guides der får dig videre med Excel En instruktion på hver side - nemt og overskueligt Opslagsværk med letforståelig gennemgang

Læs mere

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010

Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Introduktion til MatLab Matematisk Modellering af Dynamiske Modeller ved Kasper Bjering Jensen, RUC, februar 2010 Computere er uvurderlige redskaber for personer der ønsker at arbejde med matematiske modeller

Læs mere

Excel anvendt på laboratoriet

Excel anvendt på laboratoriet U D K A S T Plan for kursusforløb Excel anvendt på laboratoriet Statens Seruminstitut Foråret 2006 KURSUSFORLØB Det forventes, at der vil blive tale om 2 parallelle forløb: A: Forløb for deltagere på begynder-niveau

Læs mere

Årsplan 9. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 Årsprøven i matematik

Årsplan 9. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 Årsprøven i matematik Årsplan 9. klasse matematik 2013-2014 33 Årsprøven i matematik Årsprøve og rettevejledledning 34-35 36 og løbe nde Talmængder og regnemetoder Mundtlig matematik 37 Fordybelses uge 38-39 Procent - Gennemgå

Læs mere

ALMINDELIGT ANVENDTE FUNKTIONER

ALMINDELIGT ANVENDTE FUNKTIONER ALMINDELIGT ANVENDTE FUNKTIONER I dette kapitel gennemgås de almindelige regnefunktioner, samt en række af de mest nødvendige redigerings- og formateringsfunktioner. De øvrige redigerings- og formateringsfunktioner

Læs mere

Space Challenge og Undervisningsminsteriets Fælles Mål for folkeskolen

Space Challenge og Undervisningsminsteriets Fælles Mål for folkeskolen Space Challenge og Undervisningsminsteriets Fælles Mål for folkeskolen I dette kapitel beskrives det, hvilke Fælles Mål man kan nå inden for udvalgte fag, når man i skolen laver aktiviteter med Space Challenge.

Læs mere

Komplekse tal. Mikkel Stouby Petersen 27. februar 2013

Komplekse tal. Mikkel Stouby Petersen 27. februar 2013 Komplekse tal Mikkel Stouby Petersen 27. februar 2013 1 Motivationen Historien om de komplekse tal er i virkeligheden historien om at fjerne forhindringerne og gøre det umulige muligt. For at se det, vil

Læs mere

FlexMatematik B. Introduktion

FlexMatematik B. Introduktion Introduktion TI-89 er fra start indstillet til at åbne skrivebordet med de forskellige applikationer, når man taster. Almindelige regneoperationer foregår på hovedskærmen som fås ved at vælge applikationen

Læs mere

Dagens program. Velkommen og præsentation.

Dagens program. Velkommen og præsentation. Dagens program Velkommen og præsentation. Evt. udveksling af mailadresser. Forenklede Fælles Mål om geometri og dynamiske programmer. Screencast, hvordan og hvorfor? Opgave om polygoner i GeoGebra, løst

Læs mere

Det er en af de hyppigst forekommende udregninger i den elementære talbehandling at beregne gennemsnit eller middeltal af en række tal.

Det er en af de hyppigst forekommende udregninger i den elementære talbehandling at beregne gennemsnit eller middeltal af en række tal. Tre slags gennemsnit Allan C. Malmberg Det er en af de hyppigst forekommende udregninger i den elementære talbehandling at beregne gennemsnit eller middeltal af en række tal. For mange skoleelever indgår

Læs mere

Microsoft Excel - en kort introduktion. Grundlag

Microsoft Excel - en kort introduktion. Grundlag Microsoft Excel - en kort introduktion Grundlag Udover menuer og knapper - i princippet som du kender det fra Words eller andre tekstbehandlingsprogrammer - er der to grundlæggende vigtige størrelser i

Læs mere

Års- og aktivitetsplan i matematik hold 4 2014/2015

Års- og aktivitetsplan i matematik hold 4 2014/2015 Års- og aktivitetsplan i matematik hold 4 2014/2015 Der arbejdes hen mod slutmålene i matematik efter 10. klassetrin. www.uvm.dk => Fælles Mål 2009 => Faghæfter alfabetisk => Matematik => Slutmål for faget

Læs mere

Årsplan 8. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 og løbende

Årsplan 8. klasse matematik 2013-2014 Uge Emne Faglige mål Trinmål Materialer/ systemer 33 og løbende Årsplan 8. klasse matematik 2013-2014 33 løbende 33-34 løbende Løbende Problemregning ( faglig læsning) Mundtlig matematik (forberede oplæg til 6. klasse) - flere forskellige trinmål Ben, formelsamlingen,

Læs mere

Matematik. Trinmål 2. Nordvestskolen 2006 Forord. Trinmål 2 (4. 6. klasse)

Matematik. Trinmål 2. Nordvestskolen 2006 Forord. Trinmål 2 (4. 6. klasse) Matematik Trinmål 2 Nordvestskolen 2006 Forord Forord For at sikre kvaliteten og fagligheden i folkeskolen har Undervisningsministeriet udarbejdet faghæfter til samtlige fag i folkeskolen med bindende

Læs mere

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER

ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER ØVEHÆFTE FOR MATEMATIK C FORMLER OG LIGNINGER INDHOLDSFORTEGNELSE 0. FORMELSAMLING TIL FORMLER OG LIGNINGER... 2 Tal, regneoperationer og ligninger... 2 Ligning med + - / hvor x optræder 1 gang... 3 IT-programmer

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

VISUEL MIND MAPPING. Visuel Mind Mapping

VISUEL MIND MAPPING. Visuel Mind Mapping Visuel Mind Mapping 5 Visuel Mind Mapping - introduktion Kunne du tænke dig: At have overblik - også i pressede situationer - det gælder som taler, som referent, som mødeleder, i eksamenssituationer eller...?

Læs mere

Personlig stemmeafgivning

Personlig stemmeafgivning Ib Michelsen X 2 -test 1 Personlig stemmeafgivning Efter valget i 2005 1 har man udspurgt en mindre del af de deltagende, om de har stemt personligt. Man har svar fra 1131 mænd (hvoraf 54 % har stemt personligt

Læs mere

Seniorklubben TDC Jylland Cloud Computing Kursus 2011_5: Rev. 02.11.2011

Seniorklubben TDC Jylland Cloud Computing Kursus 2011_5: Rev. 02.11.2011 1. Om 2. Valg af Google som gratis udbyder ved 3. Valg af browser 4. Oprette en mail-adresse (G-mail) og en konto ved Google 5. Hierarkisk opbygning af mappe- og filsystem i Google 6. Oprette mapper i

Læs mere

Spørgeskemaundersøgelser og databehandling

Spørgeskemaundersøgelser og databehandling DASG. Nye veje i statistik og sandsynlighedsregning. side 1 af 12 Spørgeskemaundersøgelser og databehandling Disse noter er udarbejdet i forbindelse med et tværfagligt samarbejde mellem matematik og samfundsfag

Læs mere

Årsplan for matematik 2012-13

Årsplan for matematik 2012-13 Årsplan for matematik 2012-13 Uge Tema/emne Metode/mål 32 Matematiske arbejdsmåder(metode) 33 Intro 34 Tal + talforståelse 35 Brøker-procent 36 Potens+kvadrat-og kubikrod 37 Emneuge 38 Ligninger-uligheder

Læs mere

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse.

Boolesk Algebra og det binære talsystem - temahæfte informatik. Oprindelse. Boolesk Algebra og det binære talsystem - temahæfte informatik. I dette hæfte arbejdes der med to-tals systemet og logiske udtryk. Vi oplever at de almindelige regneregler også gælder her, og vi prøver

Læs mere

Matematik - undervisningsplan

Matematik - undervisningsplan I 4. klasse starter man på andet forløb i matematik, der skal lede frem mod at eleverne kan opfylde fagets trinmål efter 6. klasse. Det er dermed det som undervisningen tilrettelægges ud fra og målsættes

Læs mere

{ } { } {( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )}

{ } { } {( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )} Stokastisk eksperiment Et stokastisk eksperiment er et eksperiment, hvor vi fornuftigvis ikke på forhånd kan have en formodning om resultatet af eksperimentet. Til gengæld kan vi prøve at sige noget om,

Læs mere

Excel tutorial om indekstal og samfundsfag 2008

Excel tutorial om indekstal og samfundsfag 2008 Excel tutorial om indekstal og samfundsfag 2008 I denne note skal vi behandle data fra CD-rommen Samfundsstatistik 2008, som indeholder en mængde data, som er relevant i samfundsfag. Vi skal specielt analysere

Læs mere

Guide til lektielæsning

Guide til lektielæsning Guide til lektielæsning Gefions lærere har udarbejdet denne guide om lektielæsning. Den henvender sig til alle Gefions elever og er relevant for alle fag. Faglig læsning (=lektielæsning) 5- trinsmodellen

Læs mere

Matematisk induktion

Matematisk induktion Induktionsbeviser MT01.0.07 1 1 Induktionsbeviser Matematisk induktion Sætninger der udtaler sig om hvad der gælder for alle naturlige tal n N, kan undertiden bevises ved matematisk induktion. Idéen bag

Læs mere

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Matematik i WordMat En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau) Indholdsfortegnelse 1. Introduktion... 3 2. Beregning... 4 3. Beregning med brøker...

Læs mere

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk

matematik Demo excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel trin 1 preben bernitt bernitt-matematik.dk 1 excel 1 2007 by bernitt-matematik.dk matematik excel 1 1. udgave som E-bog 2007 by bernitt-matematik.dk Kopiering af denne bog er kun tilladt

Læs mere

Dig og din puls Lærervejleding

Dig og din puls Lærervejleding Dig og din puls Lærervejleding Indledning I det efterfølgende materiale beskrives et forløb til matematik C, hvori eleverne skal måle hvilepuls og arbejdspuls og beskrive observationerne matematisk. Materialet

Læs mere

Computerundervisning

Computerundervisning Frederiksberg Seminarium Computerundervisning Koordinatsystemer og Funktioner Lærervejledning 12-02-2009 Udarbejdet af: Pernille Suhr Poulsen Christina Klitlyng Julie Nielsen Indhold Introduktion... 3

Læs mere

Funktioner og ligninger

Funktioner og ligninger Eleverne har både i Kolorit på mellemtrinnet og i Kolorit 7 matematik grundbog arbejdet med funktioner. I 7. klasse blev funktionsbegrebet defineret, og eleverne arbejdede med forskellige måder at beskrive

Læs mere

Metoder og erkendelsesteori

Metoder og erkendelsesteori Metoder og erkendelsesteori Af Ole Bjerg Inden for folkesundhedsvidenskabelig forskning finder vi to forskellige metodiske tilgange: det kvantitative og det kvalitative. Ser vi på disse, kan vi konstatere

Læs mere

1. Opbygning af et regneark

1. Opbygning af et regneark 1. Opbygning af et regneark Et regneark er et skema. Vandrette rækker og lodrette kolonner danner celler, hvori man kan indtaste tal, tekst, datoer og formler. De indtastede tal og data kan bearbejdes

Læs mere

2 Erik Vestergaard www.matematikfysik.dk

2 Erik Vestergaard www.matematikfysik.dk Erik Vestergaard www.matematikfysik.dk Erik Vestergaard www.matematikfysik.dk 3 Lineære funktioner En vigtig type funktioner at studere er de såkaldte lineære funktioner. Vi skal udlede en række egenskaber

Læs mere

Projekt 10.16: Matematik og demokrati Mandatfordelinger ved sidste kommunalvalg

Projekt 10.16: Matematik og demokrati Mandatfordelinger ved sidste kommunalvalg Projekt 10.16: Matematik og demokrati Mandatfordelinger ved sidste kommunalvalg Introduktion: Vi vil nu se på et konkret eksempel på hvordan man i praksis fordeler mandaterne i et repræsentativt demokrati,

Læs mere

Kapitel 7 Matematiske vækstmodeller

Kapitel 7 Matematiske vækstmodeller Matematiske vækstmodeller I matematik undersøger man ofte variables afhængighed af hinanden. Her ser man, at samme type af sammenhænge tit forekommer inden for en lang række forskellige områder. I kapitel

Læs mere

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler.

Symbolbehandlingskompetencen er central gennem arbejdet med hele kapitlet i elevernes arbejde med tal og regneregler. Det første kapitel i grundbogen til Kolorit i 8. klasse handler om tal og regning. Kapitlet indledes med, at vores titalssystem som positionssystem sættes i en historisk sammenhæng. Gennem arbejdet med

Læs mere

Matematik for stx C-niveau

Matematik for stx C-niveau Thomas Jensen og Morten Overgård Nielsen Matematik for stx C-niveau Frydenlund Nu 2. reviderede, udvidede og ajourførte udgave Nu 2. reviderede, udvidede og ajourførte udgave Matema10k Matematik for stx

Læs mere

Tip til 1. runde af Georg Mohr-Konkurrencen Kombinatorik

Tip til 1. runde af Georg Mohr-Konkurrencen Kombinatorik Tip til 1. runde af - Kombinatorik, Kirsten Rosenkilde. Tip til 1. runde af Kombinatorik Her er nogle centrale principper om og strategier for hvordan man tæller et antal kombinationer på en smart måde,

Læs mere

Matematiske kompetencer - hvad og hvorfor? DLF-Kursus Frederikshavn 24.-25.9 2015 Eva Rønn UCC

Matematiske kompetencer - hvad og hvorfor? DLF-Kursus Frederikshavn 24.-25.9 2015 Eva Rønn UCC Matematiske kompetencer - hvad og hvorfor? DLF-Kursus Frederikshavn 24.-25.9 2015 Eva Rønn UCC Komrapporten Kompetencer og matematiklæring. Ideer og inspiration til udvikling af matematikundervisningen

Læs mere

Udtræk Udtræk findes under fanebladet Udtræk i imastra hovedmenuen. Skærmen er delt op i 5 afsnit, blokke, som har hver deres funktion

Udtræk Udtræk findes under fanebladet Udtræk i imastra hovedmenuen. Skærmen er delt op i 5 afsnit, blokke, som har hver deres funktion Udtræk Udtræk findes under fanebladet Udtræk i imastra hovedmenuen. Skærmen er delt op i 5 afsnit, blokke, som har hver deres funktion 1.Trafiksnit Her udvælges hvilke snit, som udtrækket skal omfatte.

Læs mere

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber Produktsystemer, substitutions-permutations-net samt lineær og differentiel kryptoanalyse Kryptologi, fredag den 10. februar 2006 Nils Andersen (Stinson 3., afsnit 2.7 3.4 samt side 95) Produkt af kryptosystemer

Læs mere

Prioritetskøer og hobe. Philip Bille

Prioritetskøer og hobe. Philip Bille Prioritetskøer og hobe Philip Bille Plan Prioritetskøer Træer Hobe Repræsentation Prioritetskøoperationer Konstruktion af hob Hobsortering Prioritetskøer Prioritetskø Vedligehold en dynamisk mængde S af

Læs mere

For at få tegnet en graf trykkes på knappen for graftegning. Knap for graftegning

For at få tegnet en graf trykkes på knappen for graftegning. Knap for graftegning Graftegning på regneark. Ved hjælp af Excel regneark kan man nemt tegne grafer. Man åbner for regnearket ligger under Microsoft Office. Så indtaster man tallene fra tabellen i regnearkets celler i en vandret

Læs mere

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42 Slide 1/42 Hvad er matematik? 1) Den matematiske metode 2) Hvad vil det sige at bevise noget? 3) Hvor begynder det hele? 4) Hvordan vælger man et sæt aksiomer? Slide 2/42 Indhold 1 2 3 4 Slide 3/42 Mængder

Læs mere

Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org. OpenOffice.org

Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org. OpenOffice.org Kom i gang med... Kapitel 11 Math: Formelredigering med OpenOffice.org OpenOffice.org Rettigheder Dette dokument er beskyttet af Copyright 2005 til bidragsyderne som er oplistet i afsnittet Forfattere.

Læs mere

Studieretningsprojekter i machine learning

Studieretningsprojekter i machine learning i machine learning 1 Introduktion Machine learning (ml) er et område indenfor kunstig intelligens, der beskæftiger sig med at konstruere programmer, der kan kan lære fra data. Tanken er at give en computer

Læs mere

Årsplan matematik 7.klasse 2014/2015

Årsplan matematik 7.klasse 2014/2015 Årsplan matematik 7.klasse 2014/2015 Emne Indhold Mål Tal og størrelser Arbejde med brøktal som repræsentationsform på omverdenssituationer. Fx i undersøgelser. Arbejde med forskellige typer af diagrammer.

Læs mere

VUC IT Niveau G. Drev Mapper Filer

VUC IT Niveau G. Drev Mapper Filer VUC IT Niveau G Drev Mapper Filer Harddiske og andre lagringsmedier ( drev ) Det mest enkle er at tænke på disk-drev som et arkivskab. Drev navngives med et bogstav. Normalt navngives med C:, D:, E: osv.

Læs mere

Differential- regning

Differential- regning Differential- regning del () f () m l () 6 Karsten Juul Indhold Tretrinsreglen 59 Formler for differentialkvotienter64 Regneregler for differentialkvotienter67 Differentialkvotient af sammensat funktion7

Læs mere

Matematik, der afgør spil

Matematik, der afgør spil Artikeltype 47 Matematik, der afgør spil Sandsynlighedsregning vinder ofte. Kombinatorisk spilteori sejrer hver gang Mads Thrane Hvis du er træt af at tabe opvasketjansen i Sten Saks Papir eller Terning,

Læs mere

Adobe Acrobat Professional 11. ISBN nr.: 978-87-93212-08-4

Adobe Acrobat Professional 11. ISBN nr.: 978-87-93212-08-4 Adobe Acrobat Professional 11 ISBN nr.: 978-87-93212-08-4 I n d h o l d s f o r t e g n e l s e Hvad er Adobe Acrobat?... 1 Elektroniske dokumenter... 2 PDF... 2 Acrobat-programmer... 3 Hvor kommer dokumenterne

Læs mere

Statistik i GeoGebra

Statistik i GeoGebra Statistik i GeoGebra Peter Harremoës 13. maj 2015 Jeg vil her beskrive hvordan man kan lave forskellige statistiske analyser ved hjælp af GeoGebra 4.2.60.0. De statistiske analyser svarer til pensum Matematik

Læs mere

Introduktion til Calc Open Office med øvelser

Introduktion til Calc Open Office med øvelser Side 1 af 8 Introduktion til Calc Open Office med øvelser Introduktion til Calc Open Office... 2 Indtastning i celler... 2 Formler... 3 Decimaler... 4 Skrifttype... 5 Skrifteffekter... 6 Justering... 6

Læs mere

LÆRINGSMÅL PÅ NIF MATEMATIK 2014-15

LÆRINGSMÅL PÅ NIF MATEMATIK 2014-15 LÆRINGSMÅL PÅ NIF MATEMATIK 2014-15 Mål for undervisningen i Matematik på NIF Følgende er baseret på de grønlandske læringsmål, tilføjelser fra de danske læringsmål står med rød skrift. Læringsmål Yngstetrin

Læs mere