Genetisk programmering i Othello

Storlek: px
Starta visningen från sidan:

Download "Genetisk programmering i Othello"

Transkript

1 LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se

2

3 Innehållsförteckning 1. Inledning Bakgrund Regler för Othello Maskininlärning inom Othello-spel Implementation Genetisk programmering Heuristik Träd Fitness Elitselektion & Urval Mutationer Crossover Resultat Diskussion Källor... 7

4 1. Inledning 1.1 Bakgrund Regler för Othello Othello, även kallat Reversi, är ett brädspel för två spelare som spelas på en spelplan med 8x8 rutor. Från början ligger fyra brickor utlagda i mitten av spelplanen, två svarta och två vita. Brickorna är tvåfärgade så att undersidan av brickorna har motsatt färg och spelet går ut på att få vända på motspelarens brickor så att det vid spelets slut finns flest brickor av ens egen färg. Svart börjar spelet med att lägga ut en bricka av sin egen färg. Brickor måste läggas så att det på en rak linje från den nya brickan finns en eller flera brickor av motsatt färg, följt av en bricka av sin egen färg. Man får då vända på motståndarens brickor i linjen. Linjerna kan gå horisontellt, vertikalt eller diagonalt. Spelarna turas om att lägga ut brickor av sin egen färg och om en spelare inte kan lägga går turen över till motståndaren. När ingen kan lägga eller då spelplanen är full är spelet slut Maskininlärning inom Othello-spel I den här rapporten kommer jag att beskriva mitt försök till att få en dator till att lära sig spela Othello med hjälp av genetisk programmering. Som inspiration har jag använt instruktioner och studentrapporter från ett 3 veckors labbprojekt vid Columbia University kallat GPOthello (Eskin & Siegel, 1999). I detta labbprojekt var större delen av koden redan given i uppgiften och studenterna fick experimentera med att modifiera koden i syfte att förbättra programmet. Jag har inte överhuvudtaget studerat koden till detta program, men jag har fått ledtrådar till hur programmet fungerade genom uppgiftsinstruktionerna och studenternas rapporter. Den initiala koden till GPOthello använde sig av 9 parametrar (terminals) för att utvärdera hur bra ett drag var. Dessa var: 1) Black antalet svarta brickor på spelplanen 2) Black_corners antalet svarta brickor i hörnen 3) Black_near_corners antalet svarta brickor nära ett hörn 4) Black_edges antalet svarta brickor vid kanten av spelplanen 5) White antalet vita brickor på spelplanen 6) White_corners antalet vita brickor i hörnen 7) White_near_corners antalet vita brickor nära ett hörn 8) White_edges antalet vita brickor vid kanten av spelplanen 9) 10 en konstant. Fitness-värdet beräknades genom att spela 5 matcher mot en slumpmässig spelare och räkna ihop antalet av motståndarens pjäser vid spelets slut. De bästa spelarna skulle då ha låga värden. Den enda siffra jag har hittat på hur väl det ursprungliga programmet fungerade var att det i den sista generationen hade utvecklats spelare som kunde slå de slumpmässiga spelarna i 47 fall av 50 (Eskin & Siegel, 1999). Det står dock inte hur stor population som använts eller antalet generationer, vilket gör siffran ganska värdelös för jämförelse med andra program. 1

5 2. Implementation 2.1 Genetisk programmering Genetisk programmering är en specialisering av genetiska algoritmer, med skillnaden att lösningen är representerad som ett program. Tekniken är inspirerad av den biologiska evolutionen och använder sig av liknande terminologi. För att finna lösningen till ett problem använder sig genetisk programmering av fyra steg: 1. Skapa en population av slumpmässigt sammansatta datorprogram. 2. Kör alla program och beräkna ett fitnessvärde för hur väl de löser problemet. 3. Skapa en ny population med hjälp av: a) Kopiering av de bästa programmen b) Crossover: Parning av existerande program 4. Det bästa programmet som framkommit i någon generation är resultatet av den genetiska programmeringen. Förutom kopiering och parning kan man även använda sig av mutationer, dvs slumpmässiga förändringar hos existerande individer, i syfte att utöka den genetiska mångfalden i populationen. (Koza, 1992) 2.2 Heuristik De program som skapas med hjälp av den genetiska programmeringen kommer att vara sammansatta av fördefinierade funktioner och parametrar. Dessa sätts slumpmässigt samman när nya individer skapas. De funktioner som jag har valt att använda är de fyra räknesätten (+, -, *, /). Jag har dock gjort en egen funktion för division som fungerar på samma sätt som vanlig division förutom att den returnerar 1 vid division med noll. Parametrarna jag har valt är följande: own_bricks: Antalet egna brickor på spelplanen. Detta mått säger egentligen inte så mycket om hur bra positionen är eftersom man kan vända många brickor i ett drag. opp_bricks: Antalet av motståndarens brickor på spelplanen. ståndarens brickor. empty: Antalet tomma rutor på spelplanen. Kan ge en hint om hur långt in i spelet man har kommit 10 : konstanten 10 Tänkt att kunna användas för att t.ex. öka genomslagskraften hos en variabel opp_allowed_moves: Antalet möjliga drag för motståndaren. Om variabeln är lika med noll, går turen tillbaka. Own_in_pos_X: A Här finns 10 olika typer av positioner representerade. De är valda efter symmetri i spelplanen och är markerade i Figur

6 Figur 2.1 Symmetriska positioner 2.3 Träd De genetiska programmen är representerade som träd med noder. Funktionen består av roten som har två barn. Jag har begränsat antalet barn för varje nod till antingen noll (för en parameter) eller två (för en funktion). Jag har också satt en djupbegränsning på trädet för att undvika att programmet blir alltför stort. Eftersom värdet av trädet beräknas med en rekursiv loop varje gång man gör ett drag, finns det en tids- och minne däremot en nackdel att begränsa trädet, eftersom man kan missa lösningar som ligger utanför begränsningarna. 2.4 F itness Fitness-värdet beräknas genom att låta varje individ spela Othello ett antal gånger mot en annan motståndare (exempelvis en slumpspelare som slumpar fram ett drag ur alla tillåtna handlingar). Hälften av matcherna spelar individen som Vit, den andra hälften som Svart. Från matcherna sparas dels antalet gånger som individen vunnit och dels hur stor differensen var mellan antalet av de egna och motståndarens brickor. Antalet vunna matcher är den viktigaste aspekten, men för att ytterligare kunna skilja individerna åt har jag valt att även ha med differensen i fitness-värdet. Fitnessen beräknas som: F = Vinster*100 + Differens. (konstanten 100 finns bara med för att öka genomslagskraften av antalet vinster). Det finns dock ett problem med min definition av fitness som jag inte insåg från början. Om en match avslutas innan alla rutor är fyllda (t.ex. för att alla brickor av en färg redan har vänts) så kan detta ge en lägre differens än om alla rutor är fyllda. Så trots att det egentligen 3

7 borde ses som positivt att man har kunnat avgöra matchen i förtid är det inte något som belönas i beräkningen av fitness. Snarare tvärtom. Därför hade det varit bättre att istället för differens använda samma mått som GPOthello använde, dvs antalet av motståndarens brickor. Ett annat problem är att om man spelar mot en slumpspelare är det inte säkert att en högre fitness automatiskt innebär att man är en bättre spelare. Man kan bara ha haft tur, ifall ens motståndaren slumpade fram dåliga drag. Detta gör att man måste spela väldigt många matcher för att få ett tillförlitligt fitness-värde. Ett alternativ hade varit att låta individerna i populationen spela mot en annan datorspelare, helst en bättre spelare. Tyvärr har jag inte hunnit med att fixa någon sådan träningsspelare. 2.5 Elitselektion & Urval De n bästa individerna i generationen enligt fitness-värdet tillhör elitselektionen. Dessa kopieras direkt till nästa generation. Övriga platser i den nya populationen fylls genom att individer ur den gamla populationen väljs ut för mutation eller crossover. Först sorteras alla individer i den gamla populationen efter fitness så att de bästa individerna hamnar först i listan över individer i populationen. När sedan en individ ska väljas ut slumpas ett tal inom längden av listan fram som slutindex och individen väljs slumpmässigt bland de individer som ligger före slutindex i listan. På så sätt ökar sannolikheten för att bli vald ju högre fitness man har. Ett ännu bättre sätt att välja ut individer hade varit att välja dem med en sannolikhet som är direkt proportionell emot fitness-värdet, men detta har jag inte hunnit med att implementera. 2.6 Mutationer En individ som väljs ut kommer med en viss sannolikhet att antingen muteras eller paras med en annan individ. Mutation sker genom att värdet på en slumpmässigt utvald nod i trädet byts ut mot ett nytt värde. Det nya värdet väljs slumpmässigt bland de tillgängliga funktionerna eller parametrarna. 2.7 Crossover De individer som inte muteras kommer istället att paras. När två individer paras väljs en slumpmässig nod ur varje träd och dessa noder byter förälder i träden. För att undvika att maxdjupet i trädet överträds finns också en funktion som kontrollerar om det är tillåtet att para två noder. Ifall maxdjupet överträds vid parning kommer programmet istället att välja ett av barnen till den nod som har det största trädet. 4

8 3. Resultat När programmet kördes använde jag en extremt liten population på endast 25 individer. Detta beror på att jag valde att använda en relativt tidskrävande fitness-beräkning. Varje individ spelade 20 matcher per generation (10 som svart och 10 som vit) mot en slumpspelare. Eftersom det i första hand är antalet matcher som avgör hur lång tid den genetiska programmeringen tar, gjorde detta att jag istället var tvungen att minska ner på antalet individer. Jag lät populationen föröka sig och mutera i 50 generationer, med en mutation_rate på 0,05 (5 % mutationer och 95 % crossover) och en elitselektion på 5 individer. Funktionsträdens maxdjup sattes till 5. Jag körde programmet 3 gånger, dvs. med 3 olika slumpmässigt skapade startpopulationer och fick liknande utveckling av fitness vid varje körning. Diagram 3.1 nedan visar medelvärden från dessa 3 körningar. Diagram 3.1 Den blå linjen visar medelvärdet av det högsta fitness som någon individ fått i varje generation. Den gröna linjen visar medelvärdet av det lägsta fitness någon individ fått. Den röda linjen visar medelvärdet för alla individer i generationen. I diagrammet ser vi att utvecklingen går fortast i början och att kurvan sedan planar ut något. I startgenerationerna finns en väldigt stor variation mellan individernas sammansättning, medan det i senare generationer blir mer likriktat. I slutpopulationerna var de flesta individer av liknande uppbyggnad och det fanns mycket liten mångfald. Det förekom också identiska individer eftersom programmet saknar en funktion för att ta bort likadana kopior. De bästa individerna från varje körning, dvs den individ i någon generation som fick högst fitness, var följande: 5

9 T räd: (+ (* own_in_pos_a own_bricks') (+ (+ own_in_pos_h (/ own_in_pos_a own_in_pos_a)) (+ (* (/ own_in_pos_a own_in_pos_a) own_in_pos_a)) (* own_in_pos_h own_in_pos_a))) Högsta Fitness: 2577, i generation: 47 T räd: (*(* own_in_pos_a own_in_pos_c) (* (* own_in_pos_a (- own_in_pos_a opp_allowed_moves)) own_in_pos_c')) Högsta fitness: 2674, i generation 19 T räd: (+ own_in_pos_d (- (+ ( + (/ empty empty) own_in_pos_a) own_in_pos_a) own_in_pos_e)) Högsta fitness: 2569, i generation 38 Träden är här omskrivna till LISP-liknande funktioner. Egentligen består varje träd av noder som är representerade som objekt. Jag lät den sista av dessa 3 individer spela matcher mot slumpspelaren och den vann då av dessa, dvs ca 91 % av matcherna. Det kan jämföras med GPOthello-spelaren som vann 47 av 50 matcher mot deras slumpmässiga spelare (94 % av matcherna). Jag vet dock inte hur många generationer de körde eller hur stor population de använde, därför är det svårt att göra några exakta jämförelser. Jag vet inte heller om 47 matcher av 50 innebär att de bara lät den spela 50 matcher, vilket i så fall knappast kan ses som en statistiskt tillförlitlig siffra. I vilket fall som helst kan programmet knappast ses som en bra Othello-spelare om det förlorar eller spelar oavgort i 9 % av matcherna mot slumpen (som ju är en väldigt dålig Othello-spelare). 6

10 4. Diskussion Eftersom jag har bara har kört den genetiska programmeringen 3 gånger och inte testat att variera exempelvis populationsstorleken så är det svårt att utvärdera hur bra programmet fungerar. Från de körningar jag har gjort kan man dock se att populationerna förbättrar sig och att de program som den genetiska programmeringen resulterar i spelar betydligt bättre än slumpen. Jag har fått många idéer till förbättringar av programmet som jag skulle ha velat implementera om jag hade haft mer tid. Det skulle t.ex. ha varit intressant att utvidga urvalsfunktionen genom att göra det möjlighet att låta individerna i en population spela Othello mot varandra i en turnering, där de bästa går vidare och de sämsta slås ut. Andra förändringar skulle t.ex. vara en funktion som ser till att inga identiska kopior får förekomma i populationen, samt en bättre metod för att beräkna fitness-värde. För tillfället sparas inte heller individerna som skapas, så när man stänger ner Python är det genetiska programmet borta. Detta är också något som borde åtgärdas. 5. K ällor Eskin & Siegel (1999), Department of Computer Science, Columbia University. K oza, John R. (1992) Genetic Programming: On the Programming of Computers by Means of Natural Selection The MIT Press 7

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer

Grundläggande Idéer Algoritmens komponenter Numerisk optimering Genetisk Programmering. Genetiska Algoritmer Genetiska Algoritmer 1 Grundläggande Idéer 2 3 4 Exempel Parallell optimering inspirerad av biologisk evolution Parallell optimering inspirerad av biologisk evolution Population av hypoteser Urvalprocess

Läs mer

Projektdokumentation för Othello

Projektdokumentation för Othello Projektdokumentation för Gustav Fransson Nyvell gusfr229@student.liu.se Tomas Franzén tomfr819@student.liu.se 1. Inledning Vi har gjort ett -spel som går ut på att man turas om att lägga brickor på en

Läs mer

Lathund för spel med karta

Lathund för spel med karta Lathund för spel med karta Från lärardagarna 2018, Scratch fördjupning med Linda Folkesson, Lotta Korslid och Linn Bergqvist Steg 1: Skapa prickar som säger en världsdel Moment: Kopior/kloner Lägg in en

Läs mer

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelets grunder.......................................

Läs mer

Regression med Genetiska Algoritmer

Regression med Genetiska Algoritmer Regression med Genetiska Algoritmer Projektarbete, Artificiell intelligens, 729G43 Jimmy Eriksson, jimer336 770529-5991 2014 Inledning Hur många kramar finns det i världen givet? Att kunna estimera givet

Läs mer

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategi och tips 7 3.1 Spelets grunder.......................................

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

JavaScript del 5 Funktioner

JavaScript del 5 Funktioner JavaScript del 5 Funktioner När man skriver JavaScriptkod eller program i andra programmeringsspråk för den delen så kan det finnas anledningar till att man vill dela upp sitt stora program i flera mindre

Läs mer

Utförliga regler för TRAX

Utförliga regler för TRAX Utförliga regler för TRAX Innehållsförteckning Vad är TRAX? Sid 2 Grundregler för TRAX Sid 3 Vad är en tvingad yta? Sid 4 Vad är en vinnande ögla? Sid 6 Vad är en vinnande linje? Sid 7 Grundläggande strategiska

Läs mer

HexaFlip. Kravspecifikation

HexaFlip. Kravspecifikation HexaFlip Kravspecifikation Dokumentversion 1.0 Martin Larsson marla316@student.liu.se Carl Lindwall carli914@student.liu.se Senast modifierad 2009 02 17 Sammanfattning Detta dokument skall ligga som grund

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO SCHACK Schack matt När en av motståndarens pjäser hotar kungen säger man att den står i schack. Schack matt - I schack vinner den som först

Läs mer

Programmeringsuppgift Game of Life

Programmeringsuppgift Game of Life CTH/GU STUDIO TMV06a - 0/0 Matematiska vetenskaper Programmeringsuppgift Game of Life Analys och Linär Algebra, del A, K/Kf/Bt Inledning En cellulär automat är en dynamisk metod som beskriver hur komplicerade

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2014-10-27 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Fördjupningsuppgift 729G43 Linköpings Universitet alelo408. Genetisk börshandel. Att hitta mönster i börsmarknaden med genetiska algoritmer

Fördjupningsuppgift 729G43 Linköpings Universitet alelo408. Genetisk börshandel. Att hitta mönster i börsmarknaden med genetiska algoritmer Genetisk börshandel Att hitta mönster i börsmarknaden med genetiska algoritmer Alexander Löfstrand HT 2017 1. Inledning 1.1. Bakgrund Börsmarknaden är full av möjligheter att tjäna pengar, men även på

Läs mer

genetiska algoritmer

genetiska algoritmer Introduktion till genetiska algoritmer CT3620 Vetenskapsmetodik 2005-10-21 Ylva egerfeldt ydt01001@student.mdh.se SAMMANFATTNING enna rapport är tänkt som en introduktion till genetiska algoritmer. Först

Läs mer

Anteckningar propp SMT2

Anteckningar propp SMT2 Anteckningar propp SMT2 Lars Åström 11 december 2015 Under proppen ska följande gås igenom: Induktion - dominoeffekten Falluppdelning Extremprincipen Invarians Andra knep som används Induktion Vi använder

Läs mer

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,

Läs mer

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK. Moment 2: Klonspel Instruktioner för deltagare Idag ska du få lära dig om: Kloner - kopior av samma figur (sprajt) Variabler - ett värde, exempelvis antal poäng Slumptal - slå en tärning för att välja

Läs mer

Medelvärde, median och standardavvikelse

Medelvärde, median och standardavvikelse Medelvärde, median och standardavvikelse Detta är en enkel aktivitet där vi på ett dynamiskt sätt ska titta på hur de statistiska måtten, t.ex. median och medelvärde ändras när man ändar ett värde i en

Läs mer

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I

LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I LABORATION 4 OBJEKTORIENTERAD PROGRAMMERING I C++ I Vt 2002 Mål: Lära sig: Filhantering Stränghantering Vektorer Funktioner Programstruktur Tid: Läroboken: 6 timmars handledd laborationstid. Beräknad klar

Läs mer

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer Kravspecifikation Fyra i rad Javaprojekt inom TDDC32 Version 2.0 Datum 2008-05-19 Dokumentnummer 20080215 Sammanfattning Detta är en kravspecifikation över det klassiska spelet Fyra-i-rad programmerat

Läs mer

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI NG STRESS LUNDS TEKNISKA HÖGSKOLA - 2013-05-22 Projektmedlemmar: Emil Apelgren adi10eap@student.lu.se Fredrik Helander gda10fhe@student.lu.se Jonathan Klingberg

Läs mer

allt.cl Page 1 of 17 Date: torsdag 7 december 2006

allt.cl Page 1 of 17 Date: torsdag 7 december 2006 allt.cl Page 1 of 17 Slumpspelaren Väljer slumpvis en flytt ur möjliga flyttar. (defun skapa-slump-spelare (namn bricktyp) "lisp-sträng x bricka -> spelare" (skapa-spelare #'slump-gör-flytt namn bricktyp))

Läs mer

Fyra i rad Javaprojekt inom TDDC32

Fyra i rad Javaprojekt inom TDDC32 Fyra i rad Javaprojekt inom TDDC32 Analys och design-dokument Version 2.0 Datum 2008-05-19 Dokumentnummer 20080303 Sammanfattning Detta är analys och design-dokumentet för programmet Fyra i rad. Fyra i

Läs mer

EVOLUTIONENS DRIVKRAFTER ARTBILDNING

EVOLUTIONENS DRIVKRAFTER ARTBILDNING EVOLUTIONENS DRIVKRAFTER ARTBILDNING Evolutionen på 60 sek https://www.youtube.com/watch?v=oiwde6opvz U Vad är evolutionen (8 min)? https://www.youtube.com/watch?v=ghhojc4oxh8 Hur fungerar evolutionen

Läs mer

Datastrukturer och Algoritmer D0041D

Datastrukturer och Algoritmer D0041D Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004 MinMax Algoritmen Implementation och optimering Joakim Östlund 15 juni 2004 1 Samanfattning MinMax är en algoritm som kan användas i turbaserade spel för att skapa en virituell motståndare. Algoritmen

Läs mer

Programmering. Den första datorn hette ENIAC.

Programmering. Den första datorn hette ENIAC. Programmering Datorn är bara en burk. Den kan inget själv. Hur får man den att göra saker? Man programmerar den. Människor som funderar ut program som fungerar. Datorn förstår bara ettor och nollor och

Läs mer

Kort Sammanfattning av Schack MAS

Kort Sammanfattning av Schack MAS Kort Sammanfattning av Schack MAS Krister Ljung kljung@kth.se 6th April 2003 1 Bamse 1.1 Agenter 1.1.1 Bamse Bestämmer vilket drag som skall skickas till spelplanen. Har även nio öppningar att spela dom

Läs mer

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET UMEÅ UNIVERSITET Datavetenskap 010824 TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET Datum : 010824 Tid : 9-15 Hjälpmedel : Inga Antal uppgifter : 7 Totalpoäng : 40 (halva poängtalet krävs normalt

Läs mer

Statistik över heltal

Statistik över heltal Övningsuppgift Statistik över heltal Steg 2 Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402 Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande

Läs mer

Genetiska Algoritmer. 10 mars 2014

Genetiska Algoritmer. 10 mars 2014 Genetiska Algoritmer Johan Sandberg Jsg11008@student.mdh.se 10 mars 2014 Niklas Strömberg Nsg11001@student.mdh.se 1 SAMMANFATTNING Genetiska algoritmer är en sorts sökalgoritm som är till för att söka

Läs mer

Ett häfte om förbundet och Othellots regler, taktik och strategi.

Ett häfte om förbundet och Othellots regler, taktik och strategi. Ett häfte om förbundet och Othellots regler, taktik och strategi. Othello är lätt att spela svårt att bemästra! Veronica koncentrerar sig under VM 2012 där hon även vinner damfinalen och Sveriges första

Läs mer

Tillämpad Programmering (ID1218) :00-13:00

Tillämpad Programmering (ID1218) :00-13:00 ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Excel-guide. Introduktion

Excel-guide. Introduktion Excel-guide Introduktion I denna laboration kommer ni få använda några grundfunktioner i Microsoft Excel. Laborationen utgår ifrån Excel 2010, men om ni vill använda ett annat program för att lösa uppgifterna

Läs mer

TDP002 2015-08-26 14-19. Regler

TDP002 2015-08-26 14-19. Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

16. VOLLEY Volley är tillåtet dock inte på serven.

16. VOLLEY Volley är tillåtet dock inte på serven. Spelregler 1. PLACERING AV SPELARNA Spelet spelas i par Spelarna står i områden som är belägna på varsin sida av nätet. Servaren sätter bollen i spel och mottagaren returnerar bollen. Mottagaren kan stå

Läs mer

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text. Presentation av uppgiften Vi har fått i att skapa en webbapplikation med ett spelbart spel inbyt i sig. Eller som läraren formulerar sig: uppgiften är att skapa en webbapplikation där en eller flera spelare

Läs mer

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd!

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd! Pekare (till objekt) Objektvariabler är pekare vad är det? (Viktiga begrepp inte bara inom objektorientering!) Hur används pekare för att sätta samman objekt (composition)? TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel 732G11 Linköpings universitet 2011-02-15 1 2 3 4 Extrapass Extrapass håller på att bokas. Blir 3-4 st. och öppet för alla. Mer info på kursmailen när bokningen är klar. i Java En funktion i Java... public

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

Läs mer

Beskrivning av Gesällprov. Fia Med Knuff. Mikael Rydmark.

Beskrivning av Gesällprov. Fia Med Knuff. Mikael Rydmark. Beskrivning av Gesällprov Fia Med Knuff Mikael Rydmark rydmark@kth.se Mikael Rydmark 1(11) 10-05-05 Innehållsförteckning Inledning...3 Nytt spel...4 Regler... 6 Om Spelet... 7 Brädet... 7 Tärningen...8

Läs mer

Lektionsanteckningar 11-12: Normalfördelningen

Lektionsanteckningar 11-12: Normalfördelningen Lektionsanteckningar 11-12: Normalfördelningen När utfallsrummet för en slumpvariabel kan anta vilket värde som helst i ett givet intervall är variabeln kontinuerlig. Det är väsentligt att utfallsrummet

Läs mer

Exempelprov. Matematik Del A, muntlig del. 1abc

Exempelprov. Matematik Del A, muntlig del. 1abc Exempelprov Matematik Del A, muntlig del 1abc 2 DEL A, EXEMPELPROV MATEMATIK 1ABC Innehållsförteckning 1. Instruktioner för att genomföra del A... 5 2. Uppgifter för del A... 6 Version 1 Sten, sax och

Läs mer

Programmering. Scratch - grundövningar

Programmering. Scratch - grundövningar Programmering Scratch - grundövningar Lär känna programmet: Menyer för att växla mellan att arbeta med script, utseende/bakgrund och ljud. Scenen där allting utspelar sig. Här klickar du på bakgrunden

Läs mer

TDIU01 / 725G

TDIU01 / 725G TDIU01 / 725G67 2011-12-16 08-13 Inloggning Börja med att logga in i tentasystemet genom att logga in med användare examx som har lösenordet kluring1. Verifiera att dina uppgifter stämmer och förbered

Läs mer

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: ADAEK12h ASYST12h NGIMI12h 7,5 högskolepoäng Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum:

Läs mer

π = proportionen plustecken i populationen. Det numeriska värdet på π är okänt.

π = proportionen plustecken i populationen. Det numeriska värdet på π är okänt. Stat. teori gk, vt 006, JW F0 ICKE-PARAMETRISKA TEST (NCT 13.1, 13.3-13.4) Or dlista till NCT Nonparametric Sign test Rank Teckentest Icke-parametrisk Teckentest Rang Teckentestet är formellt ingenting

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2015-03-17 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

[][] Arrayer med två index

[][] Arrayer med två index [][] Arrayer med två index Exempel på saker med två index: En digital bild: bilden har rader (y) och kolumner (x) Mätdata i en tabell med rader och kolumner Spel: o Schack o Sudoku o Luffarschack Arrayer

Läs mer

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16

MESI-Protokollet. Richard Elvhammar. Lund Universitet 4/12-16 MESI-Protokollet Richard Elvhammar Lund Universitet 4/12-16 Abstract För att ett system snabbt ska kunna hantera information så används, å sidan åt primärminnet och sekundärminnet, ett cacheminne. I modern

Läs mer

2. Test av hypotes rörande medianen i en population.

2. Test av hypotes rörande medianen i en population. Stat. teori gk, ht 006, JW F0 ICKE-PARAMETRISKA TEST (NCT 15.1, 15.3-15.4) Ordlista till NCT Nonparametric Sign test Rank Icke-parametrisk Teckentest Rang Teckentest Teckentestet är formellt ingenting

Läs mer

Mitt hus och jag steg för steg instruktioner

Mitt hus och jag steg för steg instruktioner Mitt hus och jag steg för steg instruktioner Till den här uppgiften behöver du ett foto på dig själv, ditt hus, en karta och en huvudlös figur. Se till att alla bilder ligger på samma ställe på din dator

Läs mer

Spel. 1 mot 1 på en spelplan som omfattar ca 2 m². Endast fingerslag (eller bagger) är tillåtet. Alternativt kan man tillåta tre beröringar "per lag".

Spel. 1 mot 1 på en spelplan som omfattar ca 2 m². Endast fingerslag (eller bagger) är tillåtet. Alternativt kan man tillåta tre beröringar per lag. Spel (! = även lämplig för nybörjare) 1. Spel som tvingar till val av snabba utvägar (minst 8 spelare). Med extra antenner två meter in från sidantennerna d v s man använder 4 antenner. 5 mot 5 (eller

Läs mer

Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande!

Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande! HUR MAN SPELAR ONLINE Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande! 0. SKAPA DITT EGET PERSONLIGA EMBLEM OCH DINA

Läs mer

Koda ett mattetest 3 av 5. Lektionen handlar om att göra en variabel i programmet för ett multiplikationstest. Koda ett mattetest 3 av 5

Koda ett mattetest 3 av 5. Lektionen handlar om att göra en variabel i programmet för ett multiplikationstest. Koda ett mattetest 3 av 5 Lektionen handlar om att göra en variabel i programmet för ett multiplikationstest. Lektionsförfattare: Christer Sjöberg Till läraren 1. Skapa en variabel för poäng 2. Nollställ räknaren En digital lektion

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

ENKEL Programmering 3

ENKEL Programmering 3 ENKEL Programmering 3 Figurer i långa rader Titta på de olika figurerna i de olika raderna. Kan du se att de olika figurerna i varje rad är placerade enligt ett visst mönster? Kan du lista ut vilken figur

Läs mer

AGA-regler. goforbundet.se/ Referens: AGA 1991

AGA-regler. goforbundet.se/ Referens: AGA 1991 AGA-regler Referens: AGA 1991 Varje formulering av dessa regler vars innehåll är identiskt, är godtagbar som ett uttryck för AGAs goregler, så länge de hänvisar till de mer kompletta regler som ges i AGAs

Läs mer

RIKSSEMIFINAL 2017 Lagen

RIKSSEMIFINAL 2017 Lagen RIKSSEMIFINAL 2017 Lagen 1. Festlig teknik Tuppkammen Bordsfjädern Rosen En viktig del av teknikarbetet är att kunna använda och tolka ritningar och beskrivningar av olika slag. Till exempel får plåtslagare

Läs mer

Detta är en lektion utvecklad under Kleindagarna 2011, vidareutvecklad och testad i klassrum av

Detta är en lektion utvecklad under Kleindagarna 2011, vidareutvecklad och testad i klassrum av Ramsey tal etta är en lektion utvecklad under Kleindagarna 2011, vidareutvecklad och testad i klassrum av Samuel engmark, Matematiska vetenskaper, halmers och Göteborgs universitet lisabeth Samuelsson,

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

En typisk medianmorot

En typisk medianmorot Karin Landtblom En typisk medianmorot I artikeln Läget? Tja det beror på variablerna! i Nämnaren 1:1 beskrivs en del av problematiken kring lägesmått och variabler med några vanliga missförstånd som lätt

Läs mer

Genetiska Algoritmer

Genetiska Algoritmer Linköpings Universitet Intutionen för datavetenskap Artificiell Intelligens HKGBB0 HT-2003, oktober Genetiska Algoritmer Som problemlösning Anna Skoglund annsk334@student.liu.se 0 Abstract Genetiska algoritmer

Läs mer

Känguru 2011 Cadet (Åk 8 och 9)

Känguru 2011 Cadet (Åk 8 och 9) sida 1 / 7 NAMN KLASS/GRUPP Poängsumma: Känguruskutt: Lösgör svarsblanketten. Skriv ditt svarsalternativ under uppgiftsnumret. Lämna rutan tom om du inte vill besvara den frågan. Gissa inte, felaktigt

Läs mer

Tentamen i Introduktion till programmering

Tentamen i Introduktion till programmering Tentamen i Introduktion till programmering Kurskod: Skrivtid: D0009E 09:00-13:00 (4 timmar) Totalt antal uppgifter: 7 Totalt antal poäng: 38 Tentamensdatum: 2014-05-17 Jourhavande lärare: Tillåtna hjälpmedel:

Läs mer

Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola

Genetiska algoritmer. Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola Genetiska algoritmer Henrik Hansson (hhn00001@student.mdh.se) Rapport, CDT212 Mälardalens Högskola 1 Sammanfattning Genetiska algoritmer har rötter i 60-talet och efterliknar evolutionsteorin på så sätt

Läs mer

Programmering II (ID1019) :00-17:00

Programmering II (ID1019) :00-17:00 ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Brädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999.

Brädspelet Mulan. Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker. Göteborg 1999. Brädspelet Mulan Håkan Berggren, Magnus Ellisson, Lars Kristiansson, Cheng-Huei Kuo, Eva Ljunggren, Joakim Viker Göteborg 1999 June 8, 2001 1 Innehåll: 1. Inledning 2. Projektbeskrivning 3. Programflöde

Läs mer

SPELREGLER. Delar i spelet. Antal spelare. Spelet i korthet

SPELREGLER. Delar i spelet. Antal spelare. Spelet i korthet SPELREGLER Delar i spelet 1 spelplan 6 spelpjäser 6 x 8 magikerkort 6 spelbrickor 6 x 40 markörer 6 fat att lägga markörerna på 50 frågekort 25 rosa Gissa magiker -polletter 1 tärning Spelbricka Antal

Läs mer

LÄRARHANDLEDNING. Eleverna kan två och två eller i större grupper på ett lekfullt sätt träna följande: Talinnehåll Addition Subtraktion Multiplikation

LÄRARHANDLEDNING. Eleverna kan två och två eller i större grupper på ett lekfullt sätt träna följande: Talinnehåll Addition Subtraktion Multiplikation LÄRARHANDLEDNING LH Tärningsövningar innehåller blandade matematikövningar inriktade på skolår F - 5 och kan med stor fördel användas som extra resursmaterial och idébank. Med korten som bas går det lätt

Läs mer

Lektion 2: Sökagenter. Robin Keskisärkkä

Lektion 2: Sökagenter. Robin Keskisärkkä Lektion 2: Sökagenter Robin Keskisärkkä Lektionens innehåll Introduktion till laboration 2 Implementation av en sökalgoritm Livekodning Konfrontera ett liknande problem själva Extra: Heuristisk sökning

Läs mer

GenJam En musikalisk genetisk algoritm?

GenJam En musikalisk genetisk algoritm? GenJam En musikalisk genetisk algoritm? Kognitionsvetenskapliga programmet Abstract GenJam är en modell av en jazzmusiker som lär sig att improvisera. Det är en interaktiv genetisk algoritm som interagerar

Läs mer

HI1024 Programmering, grundkurs TEN2 2014-03-13

HI1024 Programmering, grundkurs TEN2 2014-03-13 HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Introduktion till programmering SMD180. Föreläsning 9: Tupler Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]

Läs mer

Föreläsning 5: Grafer Del 1

Föreläsning 5: Grafer Del 1 2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första

Läs mer

Studietyper, inferens och konfidensintervall

Studietyper, inferens och konfidensintervall Studietyper, inferens och konfidensintervall Andrew Hooker Division of Pharmacokinetics and Drug Therapy Department of Pharmaceutical Biosciences Uppsala University Studietyper Experimentella studier Innebär

Läs mer

Digital Choice 12 + MER, MER, MER!

Digital Choice 12 + MER, MER, MER! MER, MER, MER! Digital Choice Du hämtar de minikategorier du vill ha på mytpchoice.se Det finns över 100 minikategorier, t.ex. Hjältar & hjältinnor, Sci-Fi & fantasy, Resor & äventyr, Mode & trender, Myter

Läs mer

Precis som var fallet med förra artikeln, Geogebra för de yngre i Nämnaren

Precis som var fallet med förra artikeln, Geogebra för de yngre i Nämnaren Publicerad med tillstånd av Nämnaren Thomas Lingefjärd Geogebra i gymnasieskolan En tilltalande egenskap med Geogebra är att programmet kan användas tvärs över stora delar av utbildningssystemets matematikkurser.

Läs mer

Allmänt om Pidro. Spelets uppbyggnad

Allmänt om Pidro. Spelets uppbyggnad Allmänt om Pidro Pidro är ett kortspel för fyra personer där ett par spelar mot ett annat par. Lagmedlemmarna sitter mittemot varandra. Pidro liknar t.ex. Bridge i det avseendet att spelet är uppdelat

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början

Läs mer

Föreläsning G60 Statistiska metoder

Föreläsning G60 Statistiska metoder Föreläsning 7 Statistiska metoder 1 Dagens föreläsning o Hypotesprövning för två populationer Populationsandelar Populationsmedelvärden Parvisa observationer Relation mellan hypotesprövning och konfidensintervall

Läs mer

Tentamen på. Statistik och kvantitativa undersökningar STA100, 15 HP. Ten1 9 HP. 19 e augusti 2015

Tentamen på. Statistik och kvantitativa undersökningar STA100, 15 HP. Ten1 9 HP. 19 e augusti 2015 MÄLARDALENS HÖGSKOLA Akademin för ekonomi, samhälle och teknik Statistik Tentamen på Statistik och kvantitativa undersökningar STA100, 15 HP Ten1 9 HP 19 e augusti 2015 Tillåtna hjälpmedel: Miniräknare

Läs mer

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det). LULEÅ TEKNISKA UNIVERSITET Tentamen i Objektorienterad programmering och design Totala antalet uppgifter: 5 Lärare: Håkan Jonsson, Tomas Johansson, 491000 Resultatet anslås senast 08-05-16 i A-huset. Tillåtna

Läs mer

Bridge. på 10 minuter

Bridge. på 10 minuter Bridge på 10 minuter STEG FÖR STEG Det bästa sättet att lära sig spela bridge på är att börja med en förenklad form av spelet. Varje giv består av två moment, efter det att man delat ut korten: budgivning

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

Tynker gratisapp på AppStore

Tynker gratisapp på AppStore Tynker gratisapp på AppStore Innehåll Använda appen 2 Koordinatsystemet 6 Rita rektanglar i koordinatsystemet 7 Rita ellipser i koordinatsystemet 9 Rita trianglar i koordinatsystemet 11 Skapa mönster med

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 - Block, räckvidd Dagens föreläsning Programmering i Lisp - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning - Felhantering (kap 17) icke-normala återhopp catch

Läs mer

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010) Tid: Onsdagen 15 december 2004, 8:30 till 13:30 Plats: M Ansvarig lärare: Katarina Blom, tel 772 10 60. Läraren besöker tentamen kl

Läs mer

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt

Läs mer

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 1: Om programmering Aktiviteter Del 1 Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Ni

Läs mer

Detaljbeskrivning av Player

Detaljbeskrivning av Player Detaljbeskrivning av Player Syftet med Playerklassen är att representera det skepp som spelaren styr. Spelarens skepp styrs till skillnad från övriga skepp av spelaren både när det kommer till vilken riktning

Läs mer

Arbeta med normalfördelningar

Arbeta med normalfördelningar Arbeta med normalfördelningar I en större undersökning om hur kvinnors längd gjorde man undersökning hos kvinnor i ett viss åldersintervall. Man drog sedan ett slumpmässigt urval på 2000 kvinnor och resultatet

Läs mer

Slump och statistik med Scratch. Se video

Slump och statistik med Scratch. Se video Se video I lektionen simuleras hundratals tärningskast på kort tid. Eleverna får skapa en statistikapplikation och lära sig att skapa och modifiera algoritmer. Måns Jonasson, Internetstiftelsen, har arbetat

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Algebra ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få bekanta dig med i den här uppgiften.

Läs mer

Ekvivalensrelationer

Ekvivalensrelationer Abstrakt datatyp för disjunkta mängder Vi skall presentera en abstrakt datatyp för att representera disjunkta mängder Kan bl.a. användas för att lösa ekvivalensproblemet avgör om två godtyckliga element

Läs mer