[Introduktion till programmering ]

Relevanta dokument
Simon Boström Introduktionskurs i Datateknik

Laboration i datateknik

Lego Mindstormprogrammering

Kevin Lane Kungliga Tekniska Högskolan Introduktionskurs i Datateknik (II1310) TIEDB0. [NXT Legorobot] [Programmering och felsökning]

LEGO Mindstorm-robot

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Programmering av LEGO NXT Robot

Labbrapport - LEGO NXT Robot

Robotprogrammering felsökning & analys.

Laboration - Programmering av LEGO Mindstorm robot

LEGO NXT Robotprogrammering

Introduktion i programmering med språket NXC

Programmera Lego Mindstormsrobotar

Peter Ottosson 31/ Introduktionskurs i datateknik II1310

KUNG. TEKNISKA HÖGSKOLAN. Laboration. Programmering av LEGO-robot

KUNGLIGA TEKNISKA HÖGSKOLAN KISTA. Lego Linefollower. Få en robot att följa linjen på golvet!

Programmering av LEGO NXT Robot

Programmering med NXC Lego Mindstorm

PROGRAMMERING AV LEGO-ROBOT VIA NXC

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Programmering av en Lego robot

Laborationsrapport av robotprogrammering

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC

Laboration i datateknik

Programmeringslaboration med LEGOrobot

Robotar i NXc. En laboration med Mindstormrobotar. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

KUNGLIGA TEKNISKA HÖGSKOLAN. Linefollower. Med LEGO Mindstorms och NXC. Paul Coada Introduktion i datateknik II1310

Simon Johansson Introduktionskurs Datateknik 1310

Programmera LEGO NXT

Introduktion till programmering med hjälp av Lego Mindstorm

Labrapport: Programmering i NXC Programmera LEGO Maindstorm med NXC

Programmering av LEGO NXT robot Laborationsrapport för programering av robot för att följa svartmarkerad linje på maken

Labbrapport LEGO-robot linefollower

[Introduktionskurs i Datateknik]

Labbrapport. Introduktionskurs i datateknik (II1310) Stefan Dalarsson,

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

Felsökande av en Lego Mindstorm robot

Praktisk programmering

Programmera en NXT Robot

Felsökning av mjukvara

Objektorienterad Programmering (TDDC77)

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Laborationer i SME094 Informationsteknologi I för

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Programmering eller Datalogiskt tänkande

Välkomna till DIT012 IPGO

Enchipsdatorer med tillämpningar LABORATION 7, ROBOT

Om NXTprogrammering. Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT? Vad är MINDSTORMS NXT?

Strukturerad problemlösning. Metoder och verktyg för datavetare Ht09

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Objektorienterad Programmering (TDDC77)

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Extramaterial till Matematik X

Objektorienterad programmering D2

Föreläsning 1: Introduktion till kursen

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

Föreläsning 1: Introduktion till kursen

UTBILDNINGSPLAN. Högskoleingenjörsutbildning i datateknik, 180 högskolepoäng. Computer Engineering Programme, 180 ECTS Credits

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Roboten. Sida 1 av 11

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Föreläsning 1: Introduktion till kursen

EV3 Roboten. Sida 1 av 13

Programmering, grundkurs

Introduktion till Programmering. Dåtid, nutid och framtid

MATLAB-modulen Programmering i MATLAB. Höstterminen hp. Vad är MATLAB

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Digitalt lärande och programmering i klassrummet

Planering Programmering grundkurs HI1024 HT TIDAA

Datateknik GR (A), Introduktion till programmering i C++, 7,5 hp

Planering Programmering grundkurs HI1024 HT data

HF0010. Introduktionskurs i datateknik 1,5 hp

Programmering för språkteknologer II, HT2011. Rum

Programmering, dans och loopar

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Programmeringsappar. Av Alex

Maskinorienterad programmering

Inledande programmering med C# (1DV402) Introduktion till C#

Malmö högskola 2007/2008 Teknik och samhälle

Grundkurs i programmering - intro

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Förnyelse och förbättring av II1310, Introduktionskurs i datateknik

Editering, Kompilering och Exekvering av Javaprogram

Teori och praktik. Vilket bör komma först?

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Programmeringspalett. Pr o gr a mvar a

TMA226 datorlaboration

Digitalt lärande och programmering i klassrummet

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

Föreläsning 3. Programmering, C och programmeringsmiljö

Transkript:

KUNGLIGA TEKNISKA HÖGSKOLAN [Introduktion till programmering ] [Laboration med NXC] Tobias Johansson 05/09/13 tobiaj@kth.se Introduktionskurs i datateknik, II1310

Sammanfattning Vad som gör en ingenjör till en ingenjör är att kunna lösa problem och uppgifter på ett smart och systematiskt sätt. Den här rapporten handlar om hur de nya studenterna vid ICT-skolan fick sin första programmeringsuppgift med inriktning på arbetsgången vid ingenjörs arbete. Alla fick som uppgift att utföra en laboration med användning av lego-robotar. Uppgiften var att felsöka ett program och modifiera om det så att lego-roboten kunde utföra rätt uppgifter. Metoden som användes för att lösa uppgiften var att försöka lösa ett problem i taget, och sen fortsätta på det sättet till dess att hela uppgiften var löst. Det som visades var att det gav mycket att lägga lite extra tid på att tänka efter var exakt problemet i programmet fanns. Innehållsförteckning 1. Inledning... 3 1.1 Bakgrund... 3 1.2 Syfte och målsättning... 3 2. Genomförande... 3 3. Resultat... 4 4. Analys... 4 5. Diskussion... 5 Referenser... 5 Bilagor... 6 Datateknik Kungliga tekniska högskolan Sida 2 av 6

1. Inledning Rapporten handlar om den första programmeringslaborationen som de nya studenterna vid ICTskolan fick som uppgift. Det var en introduktion till programmering och till IT-systemen som används vid ICT-skolan. Det var också till för att få de nya studenterna att börja tänka och lösa problem som en ingenjör. 1.1 Bakgrund Syftet med laborationen var att introducera studenterna för hur arbetsgången vid ingenjörsarbete går till. Att träna på hur man systematiskt går till väga för att lösa olika problem. Syftet var också att ge studenterna en grund till effektivt programmeringsarbete. Att träna på felsökning, redigering och testning och på så sätt visa hur viktigt det kan vara med ett noggrannhetstänk. Det var också ett sätt att introducera och lära studenterna om IT-systemen vid ICT-skolan som det kommer ha användning för under studietiden. 1.2 Syfte och målsättning Laborationen gick ut på att få en lego robot, med hjälp av en sensor, att följa en svart linje tills att den fick kontakt med en vägg. En annan sensor skulle då aktiveras och skicka en signal att skriva ut namnen på gruppmedlemmarna. Målet var att få fram ett färdigt program i NXC så att lego-roboten kunde utföra sina uppgifter på ett korrekt sätt. Det gjordes genom att i ett redan färdigt program felsöka och modifiera programmet till dess att roboten utförde sina uppgifter korrekt. Syftet var att låta studenterna börja träna på hur man systematiskt går till väga för att lösa problem, och i det här fallet handlade det specifikt om ett programmering problem. På det här sättet visa hur pass mycket ett litet fel i koden kan påverka slutresultatet och på så sätt försöka få fram ett mer noggrannhetstänkt. Då jag själv är väldigt ny inom programmering var målet med laborationen att försöka lära mig så mycket som möjligt. Att försöka hitta saker som är viktiga att tänka på vid framtida programmerings uppgifter. 2. Genomförande Inför laborationstillfället hölls tre föreläsningar. Föreläsningarna innefattade allt för att kunna klara av laborationen, rapporten och kursen. Till laborationstillfället var det att på eget ansvar förbereda sig så att man skulle kunna klara av att genomföra laborationen. I Lab-PM fanns all viktig information. Uppgiften och målet med laborationen, samt allt material man behövde för att kunna utföra laborationen. I programmet Bricx Command Center öppnades en icke komplett kod. Uppgiften var att felsöka, redigera samt kompilera koden och därefter flasha roboten och se om ändringarna löst problemet. Datateknik Kungliga tekniska högskolan Sida 3 av 6

Om problemet inte var löst fortsatte man att felsöka och repetera utförandet. Programeringen gjordes parvis med ett byte var 20:e minut. 3. Resultat Radnummer Ny kod Kommentar 2 Speedslow 30 Ändrade hastigheten 3 Speedfast 60 Ändrade hastigheten 34 String names Ändrade Int till string. gruppmedlemmar ändrades till names för att matcha resterande kod, 35 Mattias, Tog bort siffrorna (1 och 2) 36 Tobias eftersom att det inte gick att använda tillsammans med string 46 LCD_LINE4 50 /*void dance */ Kommenterade bort hela dance stycket. Behövdes inte finnas med. 76 IN_3 Ändrade till rätt sensor. 94 Speedfast Ändrade kriterierna för hur 98 Speedslow hastigheterna skulle anpassa sig. 115 /*dance();*/ Kommenterade bort det sista som tillhörde void dance. När felsökningen av koden var klar och allt modifierats kunde det färdiga programmet laddas över till roboten. Med hjälp av det nya programmet kunde roboten läsa av den svarta linjen med hjälp av rätt sensor. Vid kontakt med väggen aktiverades nästa sensor som fick roboten att stanna och därefter skriva ut namnen Mattias och Tobias på skärmen. 4. Analys Första problemet som dök upp var att programmet inte accepterade funktionerna som samarbetade för att skriva ut namnen. Beteckningarna matchade inte med varandra och programmet använde sig av en Integer istället för en string. Då koden ändrats och allt matchade kunde man ladda ner programmet till roboten och testa hur roboten betedde sig. Problemet som dök upp då var att det första kommandot roboten hade var att cirkulera (dance), Genom att kommentera bort den delen av koden så körde roboten framåt istället. Efter att hastigheterna hade ändrats kunde man märka att robotens sensor, som skulle användas för att läsa av den svarta linjen, inte fungerade. I koden hittade man att den använde fel sensor. Sista steget blev att få roboten att skriva ut namnen på rätt sätt. Datateknik Kungliga tekniska högskolan Sida 4 av 6

Problemet där var att inte alla namn hamnade på rätt rad och det fixades genom att ändra i koden så att rätt rad på displayen användes. 5. Diskussion Syftet med laborationen var att få börja träna på hur man som ingenjör går till väga för att lösa olika problem samt en introduktion till programmering. Programmering är för mig ett nytt område vilket gör att det finns mycket att lära sig. Sättet jag och min laborationspartner gick till väga för att lösa uppgiften kanske inte var det bästa sättet men det var ändå ett sätt att systematiskt försöka tyda var problemen fanns. Där det systematiska sättet brast som mest var nog vid noggrannheten. Att man inte riktigt tänkte efter om ändringen verkligen löst problemet innan man testade roboten igen. Som jag tidigare nämnt så är programmering väldigt nytt för mig och att tycka till om NXC ur ett brett perspektiv är svårt. Att påpeka är dock att det var väldigt användarvänligt. Det var mycket smidigt och man lärde sig succesivt hur det fungerade. Det jag tar med mig till kommande laborationer/uppgifter är att försöka ha en bättre noggrannhet och verkligen tänka efter om man är på rätt spår. Att lösningen man försöker använda sig av i slut ändan kommer ha någon effekt på att lösa problemet. Referenser Labb-PM: https://bilda.kth.se/courseid/10164/content.do?id=21060042 Föreläsningsanteckning 1: Föreläsning 2.pdf Föreläsningsanteckning 2: Föreläsning 2.pdf Programmeringsguide till lego-robot: Programming LEGO NXT Robots using NXC.pdf Datateknik Kungliga tekniska högskolan Sida 5 av 6

Bilagor Bilaga1: Bild av min journal på KTH-social. Datateknik Kungliga tekniska högskolan Sida 6 av 6