NeuralChess - projektrapport 2 Innehåll 1 Mål 3 2 Projektbeskrivning 3 3 Tillvägagångssätt Representation
|
|
- Jörgen Ek
- för 7 år sedan
- Visningar:
Transkript
1 NeuralChess - projektrapport 1 NeuralChess en projektbeskrivning av Nicklas Nilsson ( ) d95-nni@d.kth.se Micke Wibom ( ) d95-mwi@d.kth.se c
2 NeuralChess - projektrapport 2 Innehåll 1 Mål 3 2 Projektbeskrivning 3 3 Tillvägagångssätt Representation Brädesrepresentation Slump-indata Utdatarepresentation Stored values Promotion Indata-moveno Feedforward `Hopfield' Reinforcement Träning Implementation Schackspel Spelaruppbyggnad Datorspelare Människospelare Speltyper (m-d d-d) Datasändningar Upptäckt av matt- och remiposition Startbräden Problem Bara dumma tillåtna drag Statistik Konvergens Representation Pjäsen ej med i utdatat Ej avsiktliga drag kan göras Svag koppling mellan indata och utdata Komplex implementering Resultat Hur duktig neuralchess är Saker att förbättra Maximalt uppnåbar duktighet (begränsningar) Slutsatser 11
3 NeuralChess - projektrapport 3 1 Mål Vårt mål var att: få inblick och förståelse för tillämpningar medelst ANN. ge oss en yrkesförberedande insikt i projektlösning medelst ANN. 2 Projektbeskrivning Projektet gick ut på att lära datorn spela schack. Datorn skulle använda ett neuralt nätverk för att bestämma lämpliga drag. Vår målsättning var att vi skulle se en systematik i dragen, samt en förmåga till inlärning baserat på erfarenheter. Vi hade dessutom förhoppningen att datorn skulle ge ett motstånd motsvarande en nybörjare ischack. 3 Tillvägagångssätt Systemet går i huvudsak ut på att trasformera indata till utdata genom ett feedforward-nätverk. För att få systemet att lära sig används reinforcement-inlärning. 3.1 Representation Brädesrepresentation Schackbrädet 'visas upp' för feedforward-nätverket som ett bitmönster i indatalagret. Varje ruta på schackbrädet representeras som fyra bitar och schackrutorna på brädet ligger i en följd i indata-lagret. De fyra bitarna, som utgör varje ruta på brädet, representerar en pjäs (eller sorts pjäs). Se figur Slump-indata Vi ansåg att en av de fördelar man har som människa när man spelar schack är att man är oförutsägbar. Datorn, som får ett givet inbräde och gör en fix transformation till utdata, kommer att vara helt förutsägbar. Därför försåg vi datorn (via 8 bitar indata) med slump Utdatarepresentation Vi valde en enkel utdatarepresentation, som går ut på att man har två 64-bitarsbräden; ett som representerar vilken ruta som en pjäs skall flyttas ifrån och ett bräde som representerar vilken ruta som skall flyttas till. Se figur Stored values Vi lade 50 bitar i utdatalagret, som återkopplas till ingången för nästa drag. Detta är för att datorn skall ha någon form av minne, exempelvis för att komma ihåg om motspelaren är av offensiv eller av defensiv karraktär Promotion I utdatalagret finns det två bitar som kontrollerar till vilken pjäs en bonde som nått sista raden skall promotas till. Det kommer antagligen att ta mycket lång tid innan den lär sig detta, men vi ansåg att funktionen skall finnas inbyggd.
4 NeuralChess - projektrapport 4 Figur 1: Brädets representation. Figur 2: Utdatat representation.
5 NeuralChess - projektrapport 5 Figur 3: Hela feedforwardnätverket Indata-moveno I indata lade vi även 8 bitar, som representerar hur många drag som är gjorda. Detta för att datorn skall kunna inse om en defensiv strategi leder till för långa partier. 3.2 Feedforward Feedforward-nätverket är variabelt; det är uppbyggt av 321 bitar indata, W antal gömda lager med Wi antal neuroner per lager, samt 180 bitar utdata. Nätverket är fullt kopplat mellan lagren. Neuronerna summerar indata och transformerar det med en sigmoidfunktion. Detta garanterar utdata från neuronen i intervallet [-1 1]. Se figur `Hopfield' Vår intention var att utdraget skulle bestämmas från utbrädena (se 3.1.3) genom ett hopfieldnätverk. Vår slutgiltiga lösning blev nu något enklare, men vi har ändå valt att kalla den "hopfield". Det funkar så att det är som ett hopfieldnätverk, med full kopplig mellan de båda brädena, men utan kopplingar inom de båda brädena. Dessa vikter är antingen -1 eller 1, -1 om draget är omöjligt och 1 om draget är möjligt. Vi gör ingen särskiljning på huruvida ett drag är ett bra drag eller ett dåligt, utan vi avgör bara om det är tillåtet. Därefter letar vi upp det största värdet för en multiplikation av en neurons värde på det ena brädet, en neurons värde på det andra brädet, samt vikten däremellan. Eftersom alla neuronvärden är positiva såkommer ogiltiga drag att resultera i ett negativt värde och giltiga drag i ett positivt. Det största värdet kommer att vara ett av de drag som datorn helst vill göra. 3.4 Reinforcement När datorn antingen nått slutet av ett parti eller belönas/straffas under spelets gång körs en procedur som förstärker respektive försvagar vikterna i viktmatrisen. Varje vikt
6 NeuralChess - projektrapport 6 förändras i proportion med hur mycket den bidragit till det aktuella resultatet. När ett parti är slutspelat gås varje drag igenom och viktmatrisen uppdateras för varje drag beroende på hur partiet gått. Storleken på förändringen är, förutom typ av spelavslut (vinst, förlust eller remi), relaterad till antalet drag partiet pågick. 3.5 Träning För att kunna träna snabbt och mycket lät vi datorn träna mot sig själv. Till att börja med försökte vi använda normala speluppställningar. Datorn spelade en serie partier mot sig själv och sparade ner resultatet med jämna mellanrum. För att datorn skulle ha större möjlighet att spela schack matt lät vi den få enkla uppställningar att utgå från. En normalgod spelare skulle kunnat göra matt i ett eller ett par drag. För att datorn skulle få större statistisk variation i motståndet spelades partier mellan fyra olika spelare. Senare började vi även med att variera startuppsättning för dem. 3.6 Implementation Vi skrev hela programmet i C. Det är uppdelat i 10 olika filer/moduler som handhar olika delar av systemet. Det är 142 kb kod, som är skrivet under framförallt augusti '98 - oktober '98. Därefter har vi mest gjort små buggfixar och andra förbättringar. 4 Schackspel 4.1 Spelaruppbyggnad För att spela med programmet krävs att man i förhand har skapat spelarprofiler. Detta görs av programmet och görs för både människa- och datorspelare Datorspelare När man skapar en ny datorspelare sparas dels en hel del inställningar om datorspelaren, dels datorspelarens neurala viktmatris, d.v.s. datorspelarens kunskaper. De inställningar som sparas är bland annat datorspelarens 'Namn', hur snabbt den ska lära sig saker, hur många lager det är i datorspelarens neurala nätverk samthur många neuroner det är i varje lager. Därutöver finns det en hel del parametrar som vi i dagsläget inte använder, men programmet är förberett för mer avancerade inställningar. Viktmatrisen som skapas är bara en nedsparning av de värden som utgör vikterna i det neurala nätverket. Dessa vikter slumpas fram i ett litet intervall när spelaren skapas, och sparas i dagsläget bara som en lång rad okomprimerade flyttal. Detta gör att datafilerna kan bli ganska stora, i storleksordningen 5-10 Mb Människospelare När man skapar en människospelare skapas ju ingen viktmatris, men däremot skapas vissa av de inställningar som gällde för datorspelare. 4.2 Speltyper (m-d d-d) Man kan antingen spela människa mot dator eller låta två dataspelare spela mot varandra. Vi har inte implementerat programmet så att två människor kan spela mot varandra, eftersom man då inte utnyttjar ett neuralt nätverk, vilket ju detta projekt gick ut på. Tanken med att låta två datorspelare spela mot varandra är att de ska kunna lära sig genom att spela mot någon jämnbördig motståndare samt att kunna spela många partier mot en outtröttlig spelare.
7 NeuralChess - projektrapport Datasändningar Om man spelar själv mot datorn kommer datorn att presentera ett textbaserat bräde efter varje drag, för att underlätta för människospelaren. Om datorn spelar mot en annan datorspelare kommer den att skicka dragen som spelarna gör. När man spelar mot datorn förstår den drag som är givet på algebraisk notation samt att ge vilka rutor som draget går emellan (t.ex. a5-c7) Upptäckt av matt- och remiposition Datorn upptäcker att den själv är matt genom att den försöker göra ett 'tillåtet' drag. Om den efter att ha försökt draget upptäcker att den står i schack, så sätter den att den förflyttningen inte är tillåten, återställer brädet och försöker flytta igen. Detta itereras tills ett giltigt drag, som inte försätter datorn i schack, har gjorts. Om datorn inte kan göra något drag är det remi om datorn inte stod i schack innan den ville göra ett drag, och schack matt om den stod i schack innan draget. 4.3 Startbräden När man startar ett parti kan man ange en annan speluppställning än det traditionella. Man anger ett filnamn till en fil som innehåller uppställningen på formen: rnb.kbnr pp.ppppp.qp b.....p... PPP.PPPP RN.QKBNR 5 Problem Schack är ett komplext spel. Förutom de rent implementationstekniska problemen har vi haft lite mer designmässiga problem. Ett problem var hur datorn skulle representera de drag den ville göra. Vår lösning kräver en utdatamängd på 128 bitar, medan en representation med varje pjäs från varje ruta till varje möjlig annan skulle kräva ca bitar utdata. Vår representation ger dock problem med läge i figur 5. Ett annat problem var att vi inte visste hur stora matriser (antal gömda lager och deras storlek) som behövdes, och vi har egentligen bara testat vad som verkar vara rimligt. 5.1 Bara dumma tillåtna drag När programmet började spela hade vi problem med att den gjorde korrekta, men totalt meningslösa drag. Ofta flyttade den samma pjäs fram och tillbaka (mellan två rutor). Detta berodde på att den ansåg att dessa rutor var mycket viktiga att flytta från och till oavsett hur indatat såg ut. För att komma ifrån detta beteende gav vi datorn en liten belöning varje gång den slog en av motståndarens pjäser. Detta löste till viss del problemet, speciellt i början av partierna.
8 NeuralChess - projektrapport 8 Figur 4: Exempel på felsituation. 5.2 Statistik Vårt största problem var troligen den inbyggda statistiken i schack. Programmet insåg snabbt att om den flyttade sina pjäser till vissa rutor, där motståndarens pjäser ofta brukar stå, tycker datorn att den gör ett bra drag, oavsett om motståndaren har en pjäs där för tillfället. Problemet uppkom efter försök att lösa problem 5.1. Vi försökte lösa statistikproblemet genom att istället för att spela varje parti från den traditionella startpositionen så slumpade vi istället fram bräden, som den fick utgå från. Därmed har vi skapat problem 5.3. Problemet att den spelade efter statistiska positioner på brädet försvann. 5.3 Konvergens När programmet inte kunde se något tydligt förhållande mellan indata och utdata (efter lösning av problem 5.2), började den att producera utdata där den antingen påstod att den inte ville flytta från och till någon av rutorna eller att den ville flytta från och till alla rutorna. Därigenom försvann differentieringen av utdatat. Detta medför att den inte använder sin kunskap vid val av drag, utan att implementationen gör att första hittade möjliga drag utförs. Vår lösning bestod i att försöka justera vikterna vid inlärning, så att summan av utdatat inte divergerar mot noll eller oändligheten, utan konvergerar mot ett av oss fixt värde. Detta löste problemet, men försämrade inlärningshastigheten. Detta stör inlärningen med upp till 50%. Problemet är så komplicerat att vi efter denna försämring av inlärningshastigheten, inte har hunnit verifiera att datorn får en tydlig strategi i sitt spel. 5.4 Representation När vi började klura på hur man skulle representera utdata, insåg vi att det fanns triviala, men ej fullt så smarta lösningar, t.ex. att representera alla möjliga drag med
9 NeuralChess - projektrapport 9 en bit i utdatat skulle innebära ca bitars utdata. En annan möjlighet skulle vara att representera alla just nu möjliga drag (som skulle kräva ca 50 bitars utdata) men där det är svårt att få programmet att förstå hur vi mappar de tillånta dragen till de olika bitarna i utdatat Pjäsen ej med i utdatat Vår lösning (beskriven i pkt 3.1.3) saknade koppling till vilken pjäs som flyttades, det var feedforwardnätverket tvunget att ta hänsyn till direkt från indatat. Nu fick den välja hur (varifrån, och vart) den skulle flytta och inte vilken pjäs som var viktig att flytta. Detta kan ses som en brist, men vi ansåg att detta inte var något problem, förutom att inlärningshastigheten skulle kunna bli lidande Ej avsiktliga drag kan göras Ett annat problem var att den kan göra oönskade drag. Om det finns två lika bra drag kan den i värsta fall flytta från frånrutan i ett av dragen, till tillrutan i det andra draget, förutsatt att även detta drag är tillåtet, se figur 5. I figuren så finns två rutor för vit att flytta till och två rutor att flytta från. Kombineras dessa fel, uppstår en ödesdiger situation. Svart kan göra matt i ett drag f1=q (F2 F1). Det enda sättet för vår representation att komma ifrån detta är dels att feedforwardnätverket blir så duktigt att det bara föreslår korrekta drag, dels att den blir så säker att den bara föreslår ett drag i utdatat. Vi är osäkra på om programmet kan komma så långt, men det är ändå inte ett så stort problem eftersom det inte är så ofta som denna situation uppkommer. 5.5 Svag koppling mellan indata och utdata Eftersom detta feedforwardnätverk hade relativt många indata, indata som dessutom var ganska kryptiska (fyra bitar representerade en pjäs, bitarna sade inte något i sig om egenskaperna för den aktuella pjäsen), så var det svårt att få feedforwardnätverket att använda sig av indatat för att konstruera ett utdata. Vi upptäckte att feedforwardnätverket till stor del producerade ett fixt utdata oavsett vilket indata vi gav det. Vår lösning på detta var att ta bort de bitarna i indata som var slump (se pkt 3.1.2), och detta avhjälpte problemet till viss del, men är ändå ett allvarligt kvarstående problem. 5.6 Komplex implementering När vi började med detta projekt visste vi inte hur komplext det skulle bli. I dagsläget är det 142 kb kod och det är inte riktigt överblickbart. Vi saknade kunskaper i processkommunikation, vilket gjorde att programmet kommunicerar med andra processer med hjälp av pipes; om vi har tid kommer vi att göra om så att den använder sig av sockets. Detta har omöjliggjort att koppla på ett grafiskt gränssnitt, eftersom det skulle kräva radikala ändringar i programmet. Komplexiteten gör också att felsökning blir ett mycket tungt arbete.
10 NeuralChess - projektrapport 10 6 Resultat 6.1 Hur duktig neuralchess är Hur duktig är då vårt program? Jo, i dagsläget så spelar den schack dåligt. Den spelar dock helt korrekt schackoch programmet är stabilt. Den har spelat mycket bättre. När programmet lärde sig statistik över var motståndarens pjäser brukade stå, så hände vid ett flertal tillfällen att två program, som spelade mot varandra, lyckades komma till schack matt. Det ser vi som ett bevis för att idén och programmet fungerar, den kan lära sig saker, även om det kanske inte är de bästa kunskaperna. 6.2 Saker att förbättra Saker att förbättra finns det ju alltid i ett program, men vi skulle vilja påstå att hela den delen som handlar om att implementera ett feedforwardnätverk med reinforcementinlärning är klar. Det som finns kvar att göra är saker som mer har att göra med inställningar av programmet, med optimeringar av programmet och med gränssnittet till programmet. I dagsläget använder datorn pipes för att kommunicera mellan två datorspelare, och stdio/stdout för att kommunicera mellan människa och dator. Detta borde göras om så att datorn alltid använder sockets för kommunikation. Detta skulle ge helt andra möjligheter att koppla ett på ett grafiskt gränssnitt till programmet. Vi har implementerat ett grafiskt gränssnitt, men detta skulle behöva anpassas mer till schackprogrammet, likväl som att schackprogrammet skulle behöva modifieras för att passa gränssnittet. Dessutom skulle vissa ändringar behöva göras i schackprogrammet för att det skall klara av att användas på webben. I början när man försöker lära upp en ny datorspelare måste man ge den lite belöning för att få den att göra framsteg. Vi har exprimenterat med att ge belöning när den slår någon av motståndarens pjäser. Detta gav resultat så till vida att den blev klart bättre på att gå framåt med sina pjäser och att slå motståndarens pjäser. Dock är inte detta önskvärt i längden, eftersom det viktiga är att den vinner spelet och inte att den slår många av motståndarens pjäser. Programmet saknar i dagsläget ett enkelt sätt att ställa in om den ska belöna för delmål eller bara belöna för schack matt. I dagsläget finns det inställningsfiler för alla spelarna, men inte för programmet i sig. Det skulle behövas någon central inställningsfil som reglerar belöningar, vilka kataloger som allt ligger i och grad av loggning. Detta skulle vara mycket lättare än att behöva göra dessa ändringar i källkoden och kompilera om programmet varje gång man har gjort en ändring... Att bestämma lämplig storlek på belöningar och bestraffningar är ingen lätt uppgift. Vi har bestämt dessa storlekar genom att helt enkelt resonera oss fram till vad som skulle vara lämpligt. Detta skulle dock behöva verifieras eller optimeras för att minska på inlärningstiden. 6.3 Maximalt uppnåbar duktighet (begränsningar) Hur duktigt kan programmet bli? Ja, vad finns det för begränsningar? Det finns bara 8 bitar slump in för feedforwardnätverket att använda, det tar lång tid att öva upp nätet när det är stort och att bara lära datan mot en annan dataspelare kan ge lite konstiga effekter i strategin misstänker vi. Vissa problem kan uppstå genom att datorn gör ej avsiktliga drag, som beskrivs i punkt
11 NeuralChess - projektrapport 11 7 Slutsatser Oj, vad detta blev stort och var svårt... Det har varit kul och lärorikt, men det har tagit alldeles för mycket tid. Vi känner att det är lite för mycket hokus-pokus för att vi ska ha full kontroll på de problem som har uppkommit. Programmeringstekniskt har vi inte haft så stora problem att klara av det, men vi har haft för dåligt insikt i praktisk implementation, representation, och felsökning av neurala nätverk. Vi hade även lite för svaga kunskaper i uppbyggnad av stora programsystem. Men, det positiva med detta är att vi har lärt oss oerhört mycket, och vikänner båda att detta är ett område som vi skulle vilja jobba med, om bara möjlighet finns.
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 merProjektdokumentation 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 merUPPGIFT 1 V75 FIGUR 1.
UPPGIFT 1 V75 FIGUR 1. Varje lördag året om spelar tusentals svenskar på travspelet V75. Spelet går ut på att finna sju vinnande hästar i lika många lopp. Lopp 1: 5 7 Lopp 2: 1 3 5 7 8 11 Lopp 3: 2 9 Lopp
Läs merLARS ULVELAND HOPFIELDNÄTVERK FÖR IGENKÄNNING AV DEGRADERADE BILDER OCH HANDSKRIVNA TECKEN
LARS ULVELAD HOPFIELDÄTVERK FÖR IGEKÄIG AV DEGRADERADE BILDER OCH HADSKRIVA TECKE E PROJEKTRAPPORT FÖR PROJEKTKURSE I BILDAALYS HT 02 Teori för Hopfieldnätverk Hopfieldmodellen är en typ av neuronnät,
Läs merSchackledarens blad Lektion 1
Schackledarens blad Lektion 1 Inledning Det är viktigt med en tydlig rutin för när schacklektionen börjar och slutar. Genom att samlas kring runda bordet när lektionen ska börja respektive avslutas uppnås
Läs merNätverksprogrammering, EDA095
Nätverksprogrammering, EDA095 Projekt: Chess game, 2013-05-21 Handledare: Roger Henriksson Axel Hildingsson, a.hildingson@gmail.com Hoang Huyuh Truong, artiq90@yahoo.se Lisa Lindberg, rys07lli@student.lu.se
Läs merHandbok Knights. Översättare: Stefan Asserhäll
Miha Čančula Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 6 2 Hur man spelar 7 2.1 Syfte............................................. 7 2.2 Starta spelet.........................................
Läs mer1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05
1(15) Bilaga 1 2(15) Neuronnätslaboration Räknare Denna laboration riktar sig till gymnasieelever som går en teknisk utbildning och som helst har läst digitalteknik samt någon form av styrteknik eller
Läs merMinMax 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 merFyra 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 merQ-learning för fyra i rad. OLLE HASSEL och PETTER JANSE
Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete Stockholm, Sverige 2011 Q-learning för fyra i rad OLLE HASSEL och PETTER JANSE Examensarbete i datalogi om 15 högskolepoäng vid Programmet
Läs merLässtrategier för att förstå och tolka texter samt för att anpassa läsningen efter textens form och innehåll. (SV åk 1 3)
SIDAN 1 Lärarmaterial VAD HANDLAR BOKEN OM? I boken får vi lära oss fakta om det gamla spelet schack. Schack spelas över hela världen, men man tror att det ursprungligen kommer från Indien. Eftersom man
Läs merIntroduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
Läs merSymmetrireducering av slutspelsdatabas i Schack
Kungl. Tekniska Högskolan NADA Symmetrireducering av slutspelsdatabas i Schack (Symmetrical reduced tablebases in chess) Vårterminen 2004 Författare: Jonas Forsslund E-post: jofo02@kth.se Kursledare: Dmitry
Läs merGenetisk programmering i Othello
LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1
Läs merLaboration i datateknik
KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med
Läs merHandbok 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 merInteraktionen mellan flickor och pojkar under schackpartiet
Lärande och samhälle Schack som pedagogiskt verktyg Interaktionen mellan flickor och pojkar under schackpartiet Författare: Karin Hahlin-Ohlström Examinatorer: Jesper Hall Lars Holmstrand Pesach Laksman
Läs merKravspecifikation. 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 merUPPGIFT 1 TVÅPOTENSER. UPPGIFT 2 HISSEN I LUSTIGA HUSET.
UPPGIFT 1 TVÅPOTENSER. 2 ½ ¾ = 5575186299632655785383929568162090376495104 n = 142 är det minsta värde på n för vilket 2 Ò inleds med siffrorna 55. Uppgiften består i att skriva ett program som tar emot
Läs merProblem: FIL File Paths
Problem: FIL File Paths swedish BOI 2015, dag 2. Tillgängligt minne: 256 MB. 1.05.2015 Byteasar tycker om att leva farligt. Han springer med saxar, skickar in lösningar på tävlingsproblem utan att testa
Läs merBeskrivning 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 merInternational Olympiad in Informatics 2011 22 29 July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor
Papegojor Yanee är fågelentusiast. Sedan hon läst om IP over Avian Carriers (IPoAC), har hon spenderat mycket tid med att träna en flock papegojor att leverera meddelanden över långa avstånd. Yanees dröm
Läs merInlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Läs mer729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann
729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann Förra gången: Perceptroninlärning Beslutsregel predicerat y-värde Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen
Läs merTDDC74 - Projektspecifikation
TDDC74 - Projektspecifikation Projektmedlemmar: Namn Efternamn abcde123@student.liu.se Namn Efternamn abcde123@student.liu.se Handledare: Handledare handledare@ida.liu.se eller handledare@student.liu.se
Läs merResurscentrums matematikleksaker
Resurscentrums matematikleksaker Aktiviteter för barn och vuxna Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den snåle grosshandlarens våg 6 4 Tornen
Läs merLutande torn och kluriga konster!
Lutande torn och kluriga konster! Aktiviteter för barn under Vetenskapsfestivalens skolprogram 2001 Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den
Läs merNonogram
Nonogram. Vad är nonogram? Nonogram är små enkla men fascinerande pyssel som ursprungligen kommer från Japan. De har också givits ut i söndagsbilagan i engelska dagstidningar under flera år. Idén bakom
Läs merTalsystem Teori. Vad är talsystem? Av Johan Johansson
Talsystem Teori Av Johan Johansson Vad är talsystem? Talsystem är det sätt som vi använder oss av när vi läser, räknar och skriver ner tal. Exempelvis hade romarna ett talsystem som var baserat på de romerska
Läs merUppgift 1 (vadå sortering?)
2011-06-08.kl.14-19 Uppgift 1 (vadå sortering?) Du skall skriva ett program som sorterar in en sekvens av tal i en vektor (en array ) enligt en speciell metod. Inledningsvis skall vektorn innehålla endast
Läs merInledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Läs merRegler för: getsmart Grön
-6 Regler för: getsmart Grön 8 Hele tall 3 4 Hele tall -6-6 3-6 3 Hele tall 8 Hele tall 3 4 Det rekommenderas att man börjar med att se på powerpoint-reglerna när man ska lära sig olika spel med kortleken!
Läs merTor Sterner-Johansson Thomas Johansson Daniel Henriksson
Lab 4: Anti Tower Defence Oskar Mothander Alan Mendez Larsson dit06omr dit06mln Lärare: Handledare: Johan Eliasson Johan Granberg Tor Sterner-Johansson Thomas Johansson Daniel Henriksson Innehåll 1. Problemspecifikation...
Läs merARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap
ARTIFICIELLA NEURALA NÄT MARCO KUHLMANN Institutionen för datavetenskap Example Alt Bar Fri Hun Pat Price Rain Res Type Est WillWait 1 Yes No No Yes Some $$$ No Yes French 0 10 Yes 2 Yes No No Yes Full
Läs merProgrammeringsolympiaden 2012 Kvalificering
Programmeringsolympiaden 2012 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom
Läs merProjekt Rapport. RaidPlanner. Jeanette Karlsson UD10
Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,
Läs merDen räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Läs merPROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN
KUNGLIGA TEKNISKA HÖGSKOLAN PROGRAMMERING I NXC Namn: Michel Bitar 2012-08- 25 E- post: mbitar@kth.se Introduktionskurs i datateknik, II1310 Sammanfattning Intressant och lärorik laboration om att programmera
Läs merSLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS
SLUTRAPPORT: TEXAS HOLDEM 4 FRIENDS Individuellt Mjukvaruutvecklingsprojekt (Utvecklare av digitala tjänster) Den 1 juni 2011 ABSTRAKT Rapporten tar upp positiva och negativa erfarenheter som jag erhållit
Läs merLabbrapport - LEGO NXT Robot
KUNGLIGA TEKNISKA HÖGSKOLAN Labbrapport - LEGO NXT Robot Programmering och felsökning Stefan Sarkis 2014-09-02 ssarkis@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Denna rapport handlar
Läs merTentamen 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 merVärmedistribution i plåt
Sid 1 (6) Värmedistribution i plåt Introduktion Om vi med konstant temperatur värmer kanterna på en jämntjock plåt så kommer värmen att sprida sig och temperaturen i plåten så småningom stabilisera sig.
Läs merIntroduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Läs merDen räta linjens ekvation
Den räta linjens ekvation Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter dem för första gången är
Läs mer729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap
729G43 Artificiell intelligens (2016) Maskininlärning 3 Marco Kuhlmann Institutionen för datavetenskap Modell med vektornotation parametervektor särdragsvektor Perceptron kombinerar linjär regression med
Läs merHandbok 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 merHandbok Fyra i rad. Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Översättare: Stefan Asserhäll
Martin Heni Eugene Trounev Benjamin Meyer Johann Ollivier Lapeyre Anton Brondz Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 5 2 Hur man spelar 6 3 Spelets regler, strategier och tips 7 3.1 Fjärranslutningar......................................
Läs merHI1024 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 merFöreläsning 11. Giriga algoritmer
Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Uppgifter Giriga algoritmer (Greedy algorithms)
Läs merUtfö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 merDD2458-224344 - 2014-12-19
KTH / KURSWEBB / PROBLEMLÖSNING OCH PROGRAMMERING UNDER PRESS DD2458-224344 - 2014-12-19 Antal respondenter: 26 Antal svar: 18 Svarsfrekvens: 69,23 % RESPONDENTERNAS PROFIL (Jag är: Man) Det var typ en
Läs merProgrammeringsolympiaden 2018
Programmeringsolympiaden 2018 TÄVLINGSREGLER FÖR SKOLKVALET Tävlingen äger rum på av skolan bestämt datum under fyra timmar. Ingen förlängning ges för lunch eller raster. Eleven ska i förväg komma överens
Läs merUppgift 1 (grundläggande konstruktioner)
Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en
Läs merHandbok Kigo. Sascha Peilicke Översättare: Stefan Asserhäll
Sascha Peilicke Översättare: Stefan Asserhäll 2 Innehåll 1 Inledning 6 2 Hur man spelar 7 2.1 Starta ett spel........................................ 7 2.1.1 Ställ in ett nytt spel.................................
Läs merSagaforms 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 merRemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk
RemoteBud Inlämnas: 2005-02-01 Patrik Johnsson, e01pjo Viktor Karlsson, e01vk Abstract Skulle du också vilja styra dina lampor och rulla ner dina persienner med hjälp av din TV-fjärrkontroll? Remotebud
Läs merSymboler och abstrakta system
Symboler och abstrakta system Warwick Tucker Matematiska institutionen Uppsala universitet warwick@math.uu.se Warwick Tucker, Matematiska institutionen, Uppsala universitet 1 Vad är ett komplext system?
Läs merConfiguration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar
Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault
Läs mer[][] 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 mer2D Potentialen i en nervcell definieras normalt som skillnaden i spänning mellan dess axon och dendrit.
2D1432 Artificiella Neuronnät och andra lärande system Lösningsförslag till Tentamen 2003-03-06 Inga hjälpmedel. Uppgift 1 Vilka av följande påståenden är sanna? Korrigera de som är fel. 1. Potentialen
Läs merSjälvlärande Othello-spelare
Självlärande Othello-spelare Kan en dator lära sig att spela Othello? KLAS BJÖRKQVIST och JOHAN WESTER Examensarbete Stockholm, Sverige 2010 Självlärande Othello-spelare Kan en dator lära sig att spela
Läs merSlutrapport Get it going contracts
Slutrapport Get it going contracts Författare: Anthony Dry Datum: 2011-06-02 Program: Utvecklare av digitala tjänster Kurs: Individuellt mjukvaruutvecklingsprojekt 7.5p Linnéuniversitetet (Kalmar) Abstrakt
Läs merSpelutveckling - Gameplay. Design och produktion
Spelutveckling - Gameplay Design och produktion Vad är ett spel? Finns olika åsikter Några exempel som räcker på egen hand Coola features Akta er för feature creep För mycket features kan dränka gameplay
Läs merInsamlingsverktyg - teknisk beskrivning av metadataformuläret
Digitala leveranser Insamlingsverktyg - teknisk beskrivning av metadataformuläret Innehåll: Allmänt Layout och uppbyggnad Hur man använder programmet Starta Fylla i metadata Skapa metadatafiler och leverera
Läs merHI1024 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 merKombinationer och banor i agilityträningen
Kombinationer och banor i agilityträningen av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2012 En av de saker som gör agility så fantastiskt roligt är den ständiga variationen. Ingen tävlingsbana
Läs merUppgift 1a (Aktiekurser utan poster)
Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har
Läs merPass 2: Datahantering och datahanteringsplaner
Pass 2: Datahantering och datahanteringsplaner Centrala områden inom datahantering I den här presentationen ska jag ta upp tre huvudsakliga områden inom datahantering och några centrala delar av dessa.
Läs merUPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm
UPPGIFT 1 KANINER Kaniner är bra på att föröka sig. I den här uppgiften tänker vi oss att det finns obegränsat med hannar och att inga kaniner dör. Vi ska försöka simulera hur många kaninhonor det finns
Läs merSLUTRAPPORT RUNE TENNESMED WEBBSHOP
SLUTRAPPORT RUNE TENNESMED WEBBSHOP -05-30 Abstrakt Under 10 veckor har jag och Oskar Norling arbetat med att ta fram en webbshop-applikation till företaget Rune Tennesmed i Kalmar. I denna rapport tänker
Läs merPROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.
Läs merÖvningsuppgifter till föreläsning 2 Variabler och uttryck
Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna
Läs merBakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige
Är varje påstående som kan formuleras matematiskt*) alltid antingen sant eller falskt? *) Inom Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige Exempel: 12 = 13 nej, falskt n! >
Läs merAnteckningar 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 merTräningsdagbok. Av Erik Stintzing. Inom ämnet Idrott och hälsa
Träningsdagbok Av Erik Stintzing Inom ämnet Idrott och hälsa Indroduktion Jag bestämde mig för att träna på handstående för att det alltid har varit en sport som jag inte riktigt har brytt mig så mycket
Läs merProgrammering Grundkurs (6H2950) Grundläggande Programmering (6A2001)
Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001) Skrivtid: 8:15-13:15 Datum: Måndagen 2005-03-07 Tentamen består av 7 sidor Hjälpmedel: Förutom dator med installerad Borland C++ 5.02,
Läs merRegression 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 merInstruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik MD, ANL, TB (rev. JM, OE) SANNOLIKHETSTEORI I Instruktion för laboration 1 De skriftliga laborationsrapporterna skall vara
Läs merGenom 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 merElevguide till studieteknik
Elevguide till studieteknik Pär Leijonhufvud 2018-05-22 I denna guide kan du lära dig ett antal tekniker som tillsammans ger dig mer nytta av den tid du lägger på dina studier. Den är ett sammanfattande
Läs merAtt spela schack med sexåringar i förskoleklass
Södertörn högskola Kurs i Schack som pedagogiskt verktyg 7,5 poäng Termin 2016-2017 Jamileh Sarkeshik Att spela schack med sexåringar i förskoleklass 1 Innehåll Bakgrund... 3 Syfte... 4 Metod... 4 Resultat
Läs merOlika sätt att lösa ekvationer
Modul: Algebra Del 5: Algebra som språk Olika sätt att lösa ekvationer Cecilia Kilhamn, Göteborgs Universitet och Lucian Olteanu, Linnéuniversitetet Att lösa ekvationer är en central del av algebran, det
Läs merElevguide till studieteknik
Elevguide till studieteknik Pär Leijonhufvud, CC-BY-SA 2018 Fler kopior kan laddas ned från https://leijonhufvud.org/filer/studieteknik-elevguide. pdf I denna guide kan du lära dig ett antal tekniker som
Läs merSnake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,
Snake Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, 2015-05-18 Oskar Petersen, I-12 Handledare: Bertil Lindvall Abstract Denna rapport beskriver ett projekt där ett klassiskt
Läs merF5 Introduktion till digitalteknik
Exklusiv eller XOR F5 Introduktion till digitalteknik EDAA05 Roger Henriksson Jonas Wisbrant På övning 2 stötte ni på uttrycket x = (a b) ( a b) som kan utläsas antingen a eller b, men inte både a och
Läs merAGA-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 merEn föräldramanual om läxläsning
En föräldramanual om läxläsning Martin Karlberg Carola Alm Anja Åhman Carola Åstrand Institutionen för didaktik, Uppsala universitet Denna manual riktar sig till föräldrar som vill ha hjälp med att få
Läs merPraktikrapport. Sofia Larsson MKVA12, HT12
Praktikrapport Facetime Media är en byrå belägen i Lund som hjälper företag att marknadsföra sig via sociala medier. I nuläget är det främst Facebook som är aktuellt men tanken är att företaget i framtiden
Läs merOBJEKTORIENTERAD PROGRAMVARUUTVECKLING
Institutionen för Data- och informationsteknik TENTAMEN OBJEKTORIENTERAD PROGRAMVARUUTVECKLING OBS! Det kan finnas kurser med samma eller liknande namn på olika utbildningslinjer. Denna tentamen gäller
Läs merTDDB96 Projekt: Object priming med visuell stimuli
TDDB96 Projekt: Object priming med visuell stimuli Daniel Johansson danjo133@student.liu.se Rickard Jonsson ricjo400@student.liu.se 1. Sammanfattning Vad vi ville komma fram till i denna studie var huruvida
Läs merJavaScript 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 merProblemlösning. Veckodagsproblemet Gissa talet Siffersumman
Problemlösning Veckodagsproblemet Gissa talet Siffersumman Veckodagsproblemet Vi vill skriva ett program som kan berätta för oss vad det är för veckodag om x dagar. Arbetsgång Förstå problemet Strukturera
Läs merFöreläsning 3.1: Datastrukturer, en översikt
Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,
Läs merAlla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.
Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis
Läs merInstruktion för laboration 1
STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Avd. för matematisk statistik ANL/TB SANNOLIKHETSTEORI I, HT07. Instruktion för laboration 1 De skrifliga laborationsrapporterna skall vara skrivna så att
Läs merFunktioner. Räta linjen
Sidor i boken 14-143, 145-147 Funktioner. Räta linjen Här följer en dialog mellan studenten Tor-Björn (hädanefter kallad TB) och hans lärare i matematik Karl-Ture Hansson (nedan kallad KTH). När vi möter
Läs merDUGGA 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 merProgrammering Grundkurs Laboration 1
Programmering Grundkurs Laboration 1 Till kursen Programmering Grundkurs hör fyra obligatoriska laborationer. Detta är Laboration 1 given i period 1, HT 2010 vid KTH STH. Mål: I början av en programmeringskurs
Läs mer