-
Teknik och samhälleDatavetenskap
Examensarbete15 högskolepoäng, grundnivå
Stödverktyg för ett effektivare lärande
avpathfinding-algoritmer.
Educational application for a more effective approach to learn
pathfindingalgorithms.
Sivervik EmilSvensson Staffan
Examen: (Kandidatexamen 180 hp)Huvudområde:
(Datavetenskap)Program: (Spelutveckling)
Handledare: Steve Dahlskog
-
Sammanfattning
Effektiva lärosätt för algoritmer är inte alltid det enklaste
att hitta. Algoritmer somanvänds inom området för artificiell
intelligens kan ofta vara svåra att förstå och ta långtid att lära
sig.
Uppsatsen handlar om hur det kan vara möjligt att effektivisera
lärandet av pathfinding-algoritmer genom att använda ett visuellt
stödverktyg. Lärometoden som uppsatsen an-vänder sig av är att
genom en kombinationen av självimplementation och visualisering
avpathfinding-algoritmer kunna öka effekten av dessa algoritmer.
Användaren ges möjlig-heten att implementera fyra grundläggande
pathfinding-algoritmer men även möjlighetatt konstruera och
implementera sina egna algoritmer.
Studien som utförts i uppsatsen syftar åt att visa att det kan
bli lättare att förståpathfinding-algoritmer visuellt jämfört med
till exempel med penna och papper, där dessaalgoritmer ritas ut
steg för steg. Studiens resultat visar att ett effektivare lärande
kanuppnås om det finns en applikation tillgänglig som ger
användaren ett visuellt stöd påhur en pathfinding-algoritm
arbetar.
-
Abstract
Effective ways of learning algorithms is not always easy to come
by, especially withincomputer science. Algorithms used in the field
of artificial intelligence can often be verydifficult to understand
and may require a lot of effort to learn.
This thesis tries to cover the possibility of streamlining the
learning process of pathfin-ding algorithms by supporting the
learning process with visual aid. The learning methodthat this
thesis uses is a practical approach of learning pathfinding
algorithms followedby visualization of said algorithms. The user is
given the opportunity to implement fourbasic pathfinding algorithms
including the possibility to construct and test their own.
An application has been developed to facilitate the possibility
of visualizing thesealgorithms. The study carried out in this
thesis shows that it may be easier to understandpathfinding
algorithms visually than with pen and paper where the user has to
write thealgorithms searchpattern step by step.
The research performed in this thesis demonstrate that it would
provide a moreeffective learning process if the user has access to
an application that visually shows howa pathfinding algorithm
works.
-
Lovord
Vi skulle vilja tacka vår handlerare Steve Dahlskog för all
hjälp vi fått under den tid somuppsatsen skrevs. Tack vare Steve
har vi lärt oss hur strukturen av en uppsats bordevara och vad man
ska tänka på när man skriver akademiskt.
-
Innehåll
1 Inledning 11.1 Bakgrund . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 1
1.1.1 Dijkstras algoritm . . . . . . . . . . . . . . . . . . . .
. . . . . . . 21.1.2 A* (A-stjärna) . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . 31.1.3 Bredden-först . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 31.1.4 Djupet-först . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Problemdiskussion . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . 41.3 Syfte . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . 51.4 Avgränsningar . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5
Frågeställning . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . 51.6 Tidigare forskning . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . 6
2 Metod 82.1 Litteraturstudie . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . 82.2 Design research . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . 102.3
Användartest och muntlig dialog . . . . . . . . . . . . . . . . . .
. . . . . 102.4 Enkätundersökning . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . 112.5 Metoddiskussion . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . 13
3 Implementation 143.1 Applikation . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 14
3.1.1 .NET Framework . . . . . . . . . . . . . . . . . . . . . .
. . . . . . 143.1.2 Programmeringsspråk . . . . . . . . . . . . . .
. . . . . . . . . . . 14
3.2 Design . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . 14
4 Resultat 174.1 Resultaten från enkätsvaren av första och
tredjeårs studenter . . . . . . . 18
4.1.1 Algoritmkunskap . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 184.1.2 Visualisering av algoritmer . . . . . . . . .
. . . . . . . . . . . . . 184.1.3 Tankar om användargränssnittet .
. . . . . . . . . . . . . . . . . . 194.1.4 Källkoden i
Applikationen . . . . . . . . . . . . . . . . . . . . . . . 194.1.5
Implementation av kod . . . . . . . . . . . . . . . . . . . . . . .
. . 204.1.6 Visuellt kontra traditionellt . . . . . . . . . . . . .
. . . . . . . . . 20
5 Analys 215.1 Utvärdering 1, Testresultat från
tredjeårsstudenter . . . . . . . . . . . . . 21
5.1.1 Algoritmkunskap . . . . . . . . . . . . . . . . . . . . .
. . . . . . . 215.1.2 Visualisering av algoritmer . . . . . . . . .
. . . . . . . . . . . . . 215.1.3 Tankar om användargränssnittet .
. . . . . . . . . . . . . . . . . . 215.1.4 Källkoden i
Applikationen . . . . . . . . . . . . . . . . . . . . . . . 215.1.5
Implementation av kod . . . . . . . . . . . . . . . . . . . . . . .
. . 225.1.6 Visuellt kontra traditionellt . . . . . . . . . . . . .
. . . . . . . . . 22
-
5.2 Utvärdering 2, Testresultat av förstaårsstudenter . . . . .
. . . . . . . . . 235.2.1 Algoritmkunskap . . . . . . . . . . . . .
. . . . . . . . . . . . . . . 235.2.2 Visualisering av algoritmer .
. . . . . . . . . . . . . . . . . . . . . 235.2.3 Tankar om
användargränssnittet . . . . . . . . . . . . . . . . . . . 235.2.4
Källkoden i Applikationen . . . . . . . . . . . . . . . . . . . . .
. . 235.2.5 Implementation av kod . . . . . . . . . . . . . . . . .
. . . . . . . . 245.2.6 Visuellt kontra traditionellt . . . . . . .
. . . . . . . . . . . . . . . 24
5.3 Jämförelse av utvärderingarna . . . . . . . . . . . . . . .
. . . . . . . . . . 245.4 Muntlig dialog . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . 25
6 Diskussion 26
7 Slutsats och vidare forskning 27
Referenser 28
A Ordlista 31
B Enkät 33
-
1.0 Inledning
1 Inledning
1.1 Bakgrund
Algoritmer är ett välkänt begrepp inom ämnena matematik och
datavetenskap. Algo-ritmer används till att lösa problem på
effektivast tid. Cormen et al. [7] definierar enalgoritm i boken
Introduction to Algorithms på följande sätt:
“Informally, an algorithm is any well-defined computational
procedure thattakes some value, or set of values, as input and
produces some value, or setof values, as output. An algorithm is
thus a sequence of computational stepsthat transforms the input
into the output.”
Ett av de stora användningsområdena som algoritmer används inom
är AI (ArtificiellIntelligens). Russel och Norvig beskriver att
begreppet AI är programvaror som simulerarett system som tänker och
agerar som en människan samt tänker och agerar rationellt.
Inom AI finns det ett begrepp som heter agent, detta beskriver
Russel och Nor-vig [26] som följande:
“Acting rationally means acting so as to achieve one’s goals,
give one’s beliefs.An agent is just something that perceives and
acts.”
Genom en kombination av algoritmer och AI så blir det en
AI-agent. Begreppet AI-agent är något som används inom
spelindustrin för att kunna beskriva en simulation avnågot med
människolikt beteende som styrs av datorn. För att AI-agenten skall
kunnaorientera sig omkring i spelvärlden så används en
navigationsteknik som generellt kallaspathfindingöch kan
implementeras på olika sätt beroende på själva spelet . För en
be-skrivning av pathfinding så citeras Graham [13] från artikeln
Pathfinding in ComputerGames:
“Pathfinding strategies are usually employed as the core of any
AI movementsystem. Pathfinding strategies have the responsibility
of finding a path fromany coordinate in the game world to another.
Systems such as this take in astarting point and a destination;
they then find a series of points that togethercomprise a path to
the destination.”
Ett scenario är att en AI-agent skall hitta från punkt A till B,
då behöver den användasig av en pathfinding-algoritm för att kunna
navigera sig fram igenom spelvärlden utanatt fastna i eventuella
objekt som finns ivägen.
1
-
1.1 Bakgrund
De fyra vanligaste pathfinding-algoritmerna som används inom
spelindustrin i nulägetär Dijkstras algoritm, A* (A stjärna),
Bredden-först och Djupet-först. Dessa algoritmeranvänder sig av
grafer för att hitta den kortaste vägen. En graf kan beskrivas som
ettantal noder som sitter ihop med bågar.
Om nod A och nod B sitter ihop med hjälp av båge F så är A en
närliggande nodtill B. Bågar kan också ha närliggande bågar, till
exempel då båge J och K utgår frånsamma nod C [14].
Figur 1: Överblick av en graf.
1.1.1 Dijkstras algoritm
En av de vanligare pathfinding-algoritmerna är Dijkstars
algoritm, som används för atthitta den kortaste vägen med den
billigaste nodkostnaden från en given startnod till allaandra noder
i grafen. Algoritmen fungerar bäst då den används på en viktad
graf, därkostnaden att gå från en nod till en annan är olika
beroende på vilken nod som sökningenbefinner sig i.
Algoritmen börjar sökningen genom att utgå från startnoden för
att söka igenom allabågar från denna (höger om, vänster om, upp,
ner och de olika diagonala grenarna) föratt sedan förflytta sig
till den nod som har lägst kostnad. Därefter utförs samma
sökningutifrån den nya noden och den föregående noden markeras som
besökt, detta görs föratt lättare kunna följa vilken nod som
sökningen använder sig av för att beräkna nästasökning.
När sökningen till slut når en vald slutnod så är den kortaste
vägen de noder som ärmarkerade som besökta. Under sökningen så
adderas vikterna på de besökta noderna tillen separat variabel som
gör det möjligt att få reda på den totala kostnaden att gå
frånstartnod till slutnod [9].
2
-
1.1 Bakgrund
1.1.2 A* (A-stjärna)
Algoritmen A* är en algoritm som oftast används för pathfinding
på grund av att den ärväldigt flexibel och kan användas till flera
olika saker, till exempel att vägleda AI-agenteri spel.
A* är lik de flesta sökalgoritmerna då den kan söka stora
områden snabbt. A* ärväldigt lik Dijkstras algoritm för att hitta
den kortaste vägen. A* använder sig, tillskillnad från Dijkstras
algoritm, även av en heuristisk formel som hjälper algoritmen
attuppfatta avståndet från en punkt A till en punkt B genom att
varje nod får ett värdebaserat på denna heuristiska formel. För att
beräkna detta värde används formeln:
F = G+H
F är värdet som beräknas under sökningen och den nod med lägst
värde på F är denkortaste vägen från en nod till en annan. G är
kostnaden för att förflytta sig till en specifiknod från en annan
och H är vår heuristiska formel som uppfattar avståndet mellan Aoch
B.
När algoritmen har sökt färdigt och stannat vid slutnoden så har
den hittat denkortaste möjliga vägen. Då går algoritmen baklänges
från stopp- till startnoden för attvisa den kortaste vägen beroende
på värdena på F för varje nod som beräknades undersökningen [17,
6].
1.1.3 Bredden-först
Bedden-först är en algoritm som är minimalistisk och används
främst för att undersökaantalet noder som befinner sig i ett binärt
sökträd. Anledningen till att algoritmen ärminimalistisk beror på
att den enbart utgår från två olika operationer:
• Få information om en nod i en graf.
• Få tillgång till nodens grannar (barn).
Algoritmen utgår ifrån en startnod som kallas roten. Rot-noden
inspekteras och gerinformation om grannarna har varit besökta förut
eller inte. Om grannarna inte varitbesökta så placeras de i en kö
för användning under nästa iteration.
När nästa iteration körs så blir grannen som är först i kön
algoritmens nästa utgångs-punkt och på samma sätt som för rot-noden
så kontrolleras det om denna nods grannarhar varit besökta eller
inte. Denna metod repeteras tills sökalgoritmen har besökt
allanoder i grafen minst en gång [20].
3
-
1.2 Problemdiskussion
1.1.4 Djupet-först
Djupet-först är en algoritm som vanligtvis används för att lösa
lättare problem som barahar en lösning, såsom labyrinter, men kan
även användas för att generera labyrinterautomatiskt.
Djupet-först-sökning är lik bredden-först i att den är
minimalistisk menistället för att kolla noderna efterhand som de
kommer går algoritmen istället ner tillden sista grenen i det
binära sökträdet och går sedan tillbaka ett steg och kollar
denföregående grenen. Efter detta repeteras detta till sökningen är
klar, denna metod brukarkallas backtracking. Beroende på
implementation så kommer sökningen att gå till högerbåge först
eller vänster båge först [28, 23].
1.2 Problemdiskussion
På senare tid har utvecklingen av spel-AI eskalerat då hårdvaran
till datorer har kom-mit såpass långt fram i utvecklingen att GPUn
(Graphics Processing Unit) kan hanteraalla grafiska beräkningar och
att CPUn (Central Processing Unit) inte längre behöveranvändas till
detta [22]. Det medför att CPUn kan användas till annat, såsom att
skötaberäkningarna av AI och då främst AI-agenter. Detta i sin tur
har lett till att utveck-lingen och förståelsen inom AI har fått
mera fokus. För att effektivare kunna lära ut hurAI fungerar så
måste även lärandet av algoritmer effektiviseras.
Lärometoden för att lära sig algoritmer är uppdelad i två delar.
Den teoretiska delenoch den praktiska delen (där teorin
implementeras). Den teoretiska delen går till på olikasätt beroende
på hur användaren lättast lär sig. Det vanligaste och mest
traditionellaär att läsa sig till kunskapen, till detta finns en
hel uppsjö med böcker som går igenomalgoritmer och vanligtvis under
en AI-kurs brukar det rekommenderas en bok. Sökalgo-ritmerna som
beskrivs tidigare i uppsatsen är ett exempel på hur det teoretiska
lärandetkan gå till. Lärandet kan även ske visuellt genom att
stegvis se på bilder eller se påvideoklipp. En bra kombination är
att använda sig utav båda sätten, genom att först attläsa sig till
kunskapen sedan se videoklipp för att komplettera kunskapen.
Den praktiska delen går ut på att använda de teoretiska
kunskaperna i någon praktiskform, så som att rita upp på papper för
att stegvis kunna förstå, eller att skapa etttestprogram och sedan
stegvis gå igenom alla iterationer som görs när programmet
körs.
En applikation med ny infallsvinkel bör utvecklas, en
applikation som har för av-sikt att göra användaren delaktig i
implementationen av algoritmerna. Det visuella haren viktig roll
för att kunna se resultat lättare, men det är inte lika viktigt som
att fåstudenten aktiv i utvecklandet. Applikationen bör därmed ha
ett färdigt grafiskt använ-dargränssnitt som har de mest
grundläggande funktionerna och endast saknar koden föratt
algoritmerna skall fungera. Användaren får då implementera koden
för algoritmernasjälv, vilket bör leda till en djupare förståelse
och till ett effektivare lärande.
4
-
1.3 Syfte
1.3 Syfte
Syftet med undersökningen var att försöka förbättra och
effektivisera inlärningsproces-sen av pathfinding-algoritmer genom
att ge användaren en visuell bild på hur algoritmenarbetar. Till
detta skapades en applikation främst riktat mot studenter med
inriktningspelutveckling. För att få algoritmen att fungera
visuellt så måste användaren själv imple-mentera algoritmen, detta
medför att användaren även är tvungen att förstå
algoritmenteoretiskt vilket medför ett djupare lärande.
1.4 Avgränsningar
Studien har för avsikt att effektivisera lärandet av
pathfinding-algoritmer. För att inteanvända alla algoritmer som
finns inom AI så var det vissa begränsningar som var tvungnaatt
göras. Uppsatsen har inte för avseende att granska alla de olika
typerna av AI somfinns, utan endast algoritmer som är relevanta för
pathfinding. Det finns inte heller någonjämförelse mellan
algoritmerna, exempelvis vilken som lämpar sig bäst för att kunna
sökakortaste vägen.
1.5 Frågeställning
Frågan som skall besvaras i denna uppsats:
• Går det att effektivisera lärandet av Pathfinding-algoritmer
med hjälp av ett stöd-verktyg?
Hypotesen för att kunna besvara frågan lyder: En applikation för
att kunna visualliserapathfinding-algoritmer skulle öka förståelsen
för hur dessa algoritmer fungerar och skullegenom
självimplementation bidra till ett mer effektivt lärande.
5
-
1.6 Tidigare forskning
Visuellt lärande är ett begrepp som finns inom flera olika
forskningsområden, ur en artikelsom Norberg [24] publicerat skriver
han:
“Visual education rests upon the assumption that people learn
from what theysee, that visual experience influences behavior, and
that instruction can beimproved by enabling people to look at
objects and pictures under appropriatecircumstances, and in
connection with other varieties of experience.”
Begreppet visuellt lärande utvecklas ständigt och kommer in mer
och mer i flera utbild-ningsområden, i artikeln som McGranth och
Brown [21] publicerat så skriver de:
“Visual thinking, with particular connections to collaborative
learning met-hodologies and distance learning or virtual learning
environments, is crucialto the future of learning.”
Utvecklingen av applikationer för att kunna visuallisera
algoritmer har funnits sedan deförsta datorerna började projecera
bilder, detta är något som fortsatt att utvecklats ochatt det finns
än idag inte något generellt verktyg som används till det. Genom
åren så hardet utvecklats flera produkter såsom Balsa, Balsa-II,
TANGO och Aladin [4, 5, 27, 15]
Ett verktyg som har kommit på senare tid är AlgoTutor [29].
Verktyget är tänkt atthjälpa nya studenter inom datavetenskap att
förstå hur algoritmdesign fungerar och medhjälp av applikationen
ges även möjlighet för studenten att skapa sina egna
algoritmer.AlgoTutor är ett verktyg som hjälper användaren att
skapa algoritmer utan att behövanågra programmeringskunskaper.
Användaren bygger algoritmerna genom ett grafisktanvändargränssnitt
som ser ut som pseudo-kod. Responsen från studenterna som använ-de
AlgoTutor var positiv. Studenterna uppskattade möjligheten att
utveckla algoritmerutan att nödvändigtvis kunna programmering
själva.
I en studie som publicerats av Hundhausen et al. [16] så jämförs
24 stycken experi-mentella studier angående visualisering av
algoritmer. Syftet med studien är att försökaförmedla fördelarna
med att använda sig av AV (Algorithm Visualization) och på så
sättuppmuntra till att använda det. I studien togs frågeställningen
“Is AV technology effecti-ve?” upp för att se om AV verkligen var
värt att använda sig av. Ett av svaren på fråganvar att det
visuella inte överför en expertuppfattning på hur algoritmerna går
tillväga,utan räknas mera som ett redskap på vägen till förståelse.
AV är utmärkt att användasig av vid programmerings-laborationer för
att kunna se programmen visuellt och bildasin egen uppfattning,
vilket bidrar till ett aktiv lärande. Slutligen så ville
skribenternatill studien poängtera att det inte är det visuella som
spelar roll, utan det är ett aktivtdeltagande som spelar roll.
6
-
AIspace (som förut hette CIspace) är en websida där det finns
tidigare utvecklade verktygför lärande av AI [1]. Det finns en rad
av olika verktyg, varje anpassat för sin speciali-tet. Några av
dessa är deduktion, neurala nätverk och graf-sökning. De som
utvecklatverktygen gjorde en studie om hur användarna tyckte
verktygen fungerade. I studien sompublicerades så gick utvecklarna
igenom varför utvecklingen av sådan programvara skulleske, sedan
skapades flera mål som produkten skulle uppnå. Genom att sedan
användasig av andra frivilliga studenter inom
datavetenskap-programmet så framgick det vad iprodukten som var bra
och dåligt.
Ett negativt svar vid testningen var att det ibland fattades
grundläggande informationgällande begreppen som finns angående
algoritmerna. Detta var inget problem så längeprogramvaran användes
med tillhörande litteratur. Resultatet för den pedagogiska bitenvar
att penna och papper var lika effektivt som att använda produkten,
men studenternatyckte det var roligare att använda produkten och
föredrog då helt att använda den [2].
7
-
2 Metod
För att kunna bedöma om ett stödverktyg för visualisering av
pathfinding-algoritmerskulle bidra till ett effektivare lärande så
granskades följande metoder:
• Litteraturstudie.
• Design research.
• Användartest och muntlig dialog.
• Enkätundersökning.
• Interaktionsanalys.
• Intervju.
• Experiment.
Utav dessa metoder så gjordes valet att använda
litteraturstudie, design research, an-vändartest, muntlig dialog
och en enkätundersökning.
Litteraturstudie användes som metod för att kunna samla
information om tidigareforskning inom det aktuella ämnet samt
eventuellt utvecklade likvärdiga applikationer.
Metoden interaktionsanalys var irrelevant eftersom
undersökningen endast hade föravsikt att studera om det är möjligt
att effektivisera lärandet av algoritmer, detta
dåinteraktionsanalys fokuserar mer på interaktionen mellan
människor och föremål [18].
Utförandet av en intervju valdes bort eftersom de förhållande
som eventuellt skulleförekomma under intervjuerna skulle påverka
resultatet på ett negativt sätt. Ett exempelär att personen som
blir intervjuad inte lyssnar på frågan som ställs och då ger ett
vagtsvar [8]. Det valdes istället att ha en muntlig dialog med
testpersonen i samband medanvändartestet. Användartest valdes för
att kunna se vad olika användare tyckte om ettvisuellt
stödverktyg.
Ett experiment skulle kunna ha utförts genom att göra två
användartest, ett test medpersoner som använde stödverktyget och
ett test med personer som enbart har en terore-tisk bakgrund, för
att sedan jämföra dessa resultat. Beslutet som togs var att inte
användaett experiment som metod då det skulle kunna vara svårt att
hitta rätt kompetens föratt göra testerna konsekventa. Det valdes
istället att använda en enkätundersökning somgjordes efter
användartesterna av stödverktyget för att kunna dra en generell
slutsats,oberoende av en användares tidigare bakgrund av
pathfinding-algoritmer.
2.1 Litteraturstudie
En litteraturstudie är en granskning av tidigare publicerat
material inom ett ämne. Valetatt använda en litteraturstudie var
för att kunna samla in information om ämnet, tillexempel AI,
visuellt lärande och design research. Utförandet av en
litteraturstudie ökar
8
-
trovärdigheten då de teorier som beskrivs kommer från tidigare
accepterade forsknings-resultat. Detta bidrar till att det blir
enklare att besvara frågeställningen då den tidigareforskning som
gjorts ger den information som behövs för att dra korrekta
slutsatser.
Litteraturstudien skedde genom att först söka information
relaterat till ämnet AI ochsedan utifrån informationen som hittades
välja ut det som var relevant till uppsatsenssyfte. Detta gav en
bra grund och förståelse för AI som helhet, vilket gav den
fördjupningsom behövdes för att kunna utveckla en applikation som
skulle kunna göra lärandet avpathfinding-algoritmer effektivare.
Litteraturen som användes i uppsatsen hämtades fråndatabaserna;
Google Scholar, ACM Digital Library och IEEE Xplore. Dessa
databaservaldes för att de innehåller högkvalitativa tekniska
rapporter och journaler som var re-levanta för att kunna behandla
syftet med uppsatsen. Uppsatsen använde sig även avböckerna
Intervjumetodik [19] och Enkäten i praktiken [11] för att få
metodkunskap tillden muntliga dialogen och för att kunna skapa en
relevant och strukturerad enkät.
Några av de söktermer som användes i litteraturstudien var:
Pathfinding for AI ingames, Articial Intelligence, A* algorithm,
Dijkstras algorithm, visual learning, problem-based-learning,
better learning methods of pathfinding algoritms, problems with
visuallearning.
Litteraturstudien som använts i uppsatsen skedde genom att läsa
olika vetenskapli-ga texters abstract och diskussions- sektioner,
för att sedan besluta om artiklarna varrelevanta för
frågeställningen. Om en artikeln var relevant gjordes fortsatt
sökning omämnet via artikelns egna referenser för att få
ytterligare information.
Böckerna som användes gav en bra struktur vid upplägget av en
dialog och en enkät.Varför en litteraturstudie lämpade sig till
denna uppsats var för att få kunskap kringtidigare forskning och
tidigare utvecklade produkter.
9
-
2.2 Design research
Design research är en metod som används för att beskriva olika
tekniker som bidrar till enbättre överblick över en designprocess.
Denna process är ofta både iterativ och periodiskför att kunna få
en så bra produkt som möjligt. När utseendet av produkten var
bestämdså började utvecklingen av en prototyp och när prototypen
sedan var färdig så testadesdenna för eventuella brister och
problem. Tekniken som uppsatsen använde sig av är
enanvändar-baserad designprocess [30] enligt bilden nedan.
Figur 2: Designprocessen
För att kunna utveckla en så användarvänlig applikation som
möjligt planerades det hurapplikationen skulle se ut för att vara
både estetiskt tilltalande och lätt att hantera. Enutvärdering av
vilka funktioner som behövdes och vad som skulle uteslutas gjordes
föratt applikationens användargränssnitt inte skulle vilseleda
användaren. För att kunnaeffektivisera lärandet av algoritmerna
valdes det att fokusera på lärosättet problem-based-learning [25],
vilket innebär att användaren själv kommer att bedriva lärandetav
algoritmerna genom att implementera dem själv.
Syftet med applikationen är att visuellt visa för användaren hur
de olika pathfinding-algoritmernas sökningar går till. Detta görs
genom att visualisera sökningarna i ett rutnätoch efter en färdig
sökning visa den kortaste vägen. Genom att användaren får
tillgångtill applikationens källkod kommer det vara i
algoritmklasserna som implementationenav algoritmerna kommer att
ske. Anledningen till att användaren själv får
implementeraalgoritmerna är för att ge den praktiska
tillämpningsmöjligheten som skall öka förståelsenför hur
algoritmerna fungerar, vilket på så vis kan bidra till ett djupare
lärande.
Valet att använda metoden design research bidrog till att en
lättanvändlig applika-tion kunde utvecklas. Det gav även en bra
struktur på upplägget av användartesterna dådet var lättare att
inse när applikationen var redo för testning. Forskningfrågan
kundebesvaras lättare med användning av design research då det
visade sig att en applikationvar nödvändig för att lösa uppsatsens
syfte, detta berodde på att det kan vara lättare attvisualisera
pathfinding-algoritmer om en applikation används. När
applikationsutveck-lingen gått igenom de steg som nämnts ovan
inledes testningsfasen.
2.3 Användartest och muntlig dialog
Användartestet av applikationen som utvecklats var till för att
kunna få en bättre för-ståelse för hur testpersonen upplevde
applikationen samt att kunna få eventuell responspå vad som var bra
och dåligt med applikationen. En viktig aspekt var att försöka
testaprodukten med hjälp av användare som har olika erfarenheter av
programmering. Tes-terna var viktiga för att kunna balansera
produkten så att alla kan använda den, menfrämst för att se att den
inte är för avancerad för studenter som skall lära sig AI.
10
-
Applikationen var främst riktad till spelutvecklingsstudenter,
därav lämpade det sig bästatt ha dessa som urvalsgrupp.
Vid användartestet fick testpersonen sitta med applikationen för
att kunna testa olikasökvägar och för att testa de olika
algoritmerna. Tiden som testpersonen satt med appli-kationen
varierade från tio till tjugo minuter. Testningen skedde i en
datorsal tillägnadendast spelutvecklare, testpersonerna fick sitta
vid en och samma dator för att ha sammaförutsättningar.
En muntlig dialog med testpersonerna utfördes samtidigt som
användartestet, dettaför att kunna samla in ytterligare information
om hur testpersonen upplevde applikatio-nen och för att hjälpa
testpersonen om denne hade några funderingar runt applikationen.En
dialog förklarar Bakhtin [3] på följande sätt:
“Life by its very nature is dialogic. To live means to
participate in dialogue:to ask questions, to heed, to respond, to
agree, and so forth. In this dialoguea person participates wholly
and throughout his whole life: with his eyes, lips,hands, soul,
spirit, with his whole body and deeds. He invests his entire selfin
discourse, and this discourse enters into the dialogic fabric of
human life,into the world symposium.”
Dialogen påbörjades från och med att testpersonen började
använda applikationen ochhöll på fram till att testpersonen gick
ifrån datorn. Under testningen så observeradestestpersonen och det
var endast denne som tog upp sakerna som diskuterades.
Olikanackdelar med att ha en muntlig dialog är att testpersonerna
kan bli distraherade vidanvändartestet och på sätt inte kan ge
optimal data. Ett annat problem är att denmuntliga dialogen kan
vara svår att replikera, anledning till detta är att inga
direktfrågor fanns.
Exempel på olika saker som diskuterades var vad användaren
tyckte var bra medapplikationen och vad som kunde förbättras. Flera
av testpersonerna tyckte att lärandetbör bli bättre med hjälp av
applikationen och att någon med förkunskaper bör kunnaimplementera
algoritmer i applikationen.
Flera förslag på hur applikationen kunde förbättras nämndes
även, såsom att kunnavisa hur lång tid en sökning tog, att
implementera en funktion för att kunna ta bortväggar (som
implementerades till den andra testomgången) och att eventuellt
skapafärdiga rutnät som användaren kan välja mellan. Inom den
tidsram som uppsatsen hadevaldes flera av de föreslagna
förbättringarna bort, då det inte var relevant för att kunnabesvara
frågeställningen.
2.4 Enkätundersökning
En kvantitativ enkätundersökning genomfördes efter
användartestet för att skapa engrund för att kunna besvara
frågeställningen och gav även testpersonen en
ytterligaremöjligheter att ge förslag till förbättringar på
applikationen.
11
-
Frågorna i enkätundersökningen skapades utifrån två aspekter.
Den första aspekten varutifrån ett utvecklingsperspektiv, vad
testpersonen tyckte om applikationen, till exempelhur lätt
algoritmerna var att implementera. Den andra aspekten var utifrån
ett pedago-gisk perspektiv, huruvida testpersonen tyckte att
applikationen bidrog till ett effektivarelärande.
Enkäten bestod av sex frågor (Se Appendix B) där fyra av
frågorna hade färdigasvarsalternativ. Genom att använda sig av ett
jämnt antal svarsalternativ så undviks detatt testpersonen ger ett
neutralt svar, vilket kan leda till att frågeställningen inte
kanbesvaras. Resterande två frågor var öppna frågor som
testpersonen fick fylla i själv, dettaför att dessa frågor inte
gick att besvara med fasta svarsalternativ. Testpersonerna
fickenkäten direkt efter de hade använt applikationen för att få en
direkt uppfattning omvad testpersonen tyckte om applikationen.
Varje enkät gjordes helt individuellt och detfanns ingen anknytning
mellan de olika enkäterna.
Fördelen med en kvantitativ enkätundersökning är att kunna
begränsa frågorna tillvad som är relevant för att kunna besvara
frågeställningen. Nackdelen med att användaen enkätundersökning med
fasta svar är att informationen som samlas in genom under-sökningen
är begränsad, anledninging är att testpersonen själv inte kan
skriva in egnasvar.
12
-
2.5 Metoddiskussion
Litteraturstudien valde vi som metod för att kunna skapa oss en
uppfattning om vilkentidigare forskning som fanns och utifrån det
kunna gå vidare med undersökningen. Lit-teraturstudien var väldigt
viktig för att kunna se vad för delar som våran applikationskulle
innehålla för att kunna få ut så mycket som möjligt av den. Med
hjälp av litte-raturstudien så märkte vi att det inte fanns några
tidigare studier om ett stödverktyglikt det vi tänkt oss. Det
gjorde att vi endast fick information om liknande applikationeroch
kunde på så sätt inte göra en fortsatt forskning av tidigare
resultat. Vi valde attanvända design research som en metod för att
lättare få en överblick över designproces-sen av applikationen,
vilket ledde till att vi kunde besvara vår frågeställning med
hjälpav att praktiskt kunna visuallisera algoritmsökningen på ett
lättförståeligt sätt för etteffektivare lärande.
Metodvalet tyckte vi var nödvändigt för att inte falla tillbaka
på den traditionellainlärningsmetoden att enbart läsa om
algoritmerna och dess funktion. Anledningen tillatt vi valde en
muntlig dialog med testpersonerna är för att kunna få den sortens
responssom det inte går att få på papper, som är testpersonernas
spontana reaktioner och tankargällande applikationen. För att kunna
besvara vår frågeställning så använde vi oss avanvändartest och
enkätundersökning.
Nu i efterhand inser vi att en testperiod med mer tid eventuellt
hade gett oss ettbättre resultat, då det hade varit lättare att
kunna jämföra om testpersonerna fått läsapå om algoritmerna innan
testningen.
13
-
3 Implementation
3.1 Applikation
Applikationen är utvecklad i programmet Microsoft Visual Studio
2012. Programmetvaldes för att det är en av de vanligaste
utvecklingsmiljöerna som används inom spel-utveckling idag samt att
programmet har support för .NET Framework, vilket är opti-malt för
applikationen då det kommer använda .NET Framework. Den stora
svårighetenmed applikationen var att göra den lättanvänd, därför
valdes det att använda program-meringsspråket C#. Anledningen till
detta är att om de andra programmeringsspråkenskulle användas så
krävs det vanligtvis att användaren installerar tilläggspaket
utöverstandardversionen av Visual Studio.
3.1.1 .NET Framework
.NET Framework är en komponent som är en del av Windows
operativsystem. Ramverkethanterar exekveringen av program som är
speciellt utvecklade för det egna ramverket ochdet finns ett stort
klassbibliotek för att underlätta utvecklingen. Numera är
ramverketinkluderat direkt i Windows när användaren installerar
operativsystemet, vilket gör attdet är väldigt smidigt att använda
sig av vid utveckling av applikationer som användersig av Windows
egna komponenter så som programfönster, knappar och funktioner
menäven möjligheten att manipulera XML-dokument och
databasinteraktioner.
3.1.2 Programmeringsspråk
Programmeringsspråket som applikationen är skriven i är C#. C#
valdes för att det ärett lätt språk att implementera på olika
datorer då språket är direkt relaterat till .NETFramework [10]. Då
applikationen främst är riktad mot studenter inom spelutvecklingvar
det bättre att skriva applikationen i C# för att underlätta för
studenterna då språketC++ som var planerat från början skapar vissa
svårigheter som till exempel länkningar,vilket försvårar för
studenten att göra applikationen körbar. En annan fördel med C#
äratt språket har en egen garbagecollector vilket gör det lättare
för studenter att imple-mentera kod utan att det blir minnesläckor.
C# är även ett relativt enkelt språk, vilketgör att användarna får
en bättre förståelse hur applikationen fungerar i allmänhet.
3.2 Design
Applikationen är byggd med hjälp av .NET Windows Forms vilket är
ett API (Appli-cation Programming Interface) som underlättar
utvecklingen av ett användargränssnitt.Applikationens källkod är
även utformad på ett objektorienterat sätt för att kunna
under-lätta för användaren som skall implementera algoritmerna, då
detta programeringssättkan göra koden lite lättare att förstå
[12].
Undersökningen och således applikationen har stort fokus på
självimplementation,vilket betyder att i de klasser som användaren
skall implementera sina egna algoritmermåste vara oberoende av de
andra klasserna i applikationen.
14
-
För att åstadkomma detta används statiska metoder i
algoritmklasserna som gör attprogrammet kan köras utan att någon
kod är skriven i metoderna. Applikationen äruppbyggd med hjälp av
en Windows Forms UserControl som är speciellt utformad förjust
denna applikationen, vilket har funktioner som inte ingår i Windows
Forms normalt.Det används ävenWindows Forms egna knappar.
UserControl-klassen ritar upp ett rutnätvilket är den del som gör
det möjligt att visuellt visa de olika sökmetoderna för de
olikaalgoritmerna. Anledningen till att Windows Forms egna rutnät
med hjälp av PictureBoxinte användes var för att de skapade stora
prestandaproblem.
För att visa rutnätet användes realtidsuppdatering under körning
av applikationenbaserat på hur användaren placerar ut start, stop
och eventuella väggar. Realtidsuppdate-ring gjordes genom att
använda klassen Thread som gav möjligheten att få
användarinputunder körning. Denna input används sedan via delegater
och events för att uppdaterarutnätet med sökningsförlopp och
kortaste vägen från start till stop. Sökningen visas pånoderna
(fyrkanterna i rutnätet) i form av en blå rektangel där även
kostnaden för attförflytta sig till närliggande noder skrivs
ut.
När sökningen är klar visas den kortaste vägen via orangea noder
som markerats imotsatt riktning, det vill säga från stop till
start. Applikationen ger även användarenmöjligheten att själv kunna
styra uppdateringshastigheten av sökalgoritmen, vilket geren bättre
överblick av flödet då det kan saktas ner så att varje nod som
sökts igenomlättare går att följa. Användaren får då möjligheten
att stegvis följa och se sökningen irealtid.
Figur 3: Överblick av en färdig sökning med hjälp av Dijkstras
algoritm.
Figur 3 visar en färdig sökväg med hjälp av Dijkstras algoritm,
där svarta rutor är väggaroch oranga rutor är den kortaste vägen
från start (grön) till stop (röd) rutorna.
15
-
Det implementerades endast två stycken pathfinding-algoritmer
(A* och Dijkstras) i ap-plikationen då dessa ansågs vara mest
relevant för att kunna besvara vår frågeställning.Valet att endast
använda dessa algoritmer var för att de är svårast att
implementera, samtkräver mer förståelse om hur de fungerar
teoretiskt kontra bredden-först och djupet-först.Då applikationen
stödjer självimplementation av pathfinding-algoritmer kan
användarensjälv implementera de andra algoritmerna om det
behövs.
16
-
4 Resultat
Vid testningen så deltog totalt 25 personer från
spelutvecklingsprogrammet. Testningengjordes i tre iterationer med
sex stycken vid första tillfället, sju stycken vid det andra och12
stycken vid det tredje. Vid de två första testiterationerna var det
endast testpersonerfrån årskurs tre och vid sista iterationen var
det endast testpersoner från årskurs ett. Vidden andra iterationen
hade det skett lite förändringar från den föregående
iterationenbaserat på förslag av funktioner som skulle göra
applikationen bättre. En funktion somändrades var att kunna ta bort
väggar. Ändringarna som gjordes i applikationen
mellantestiterationerna gav ingen påverkan på testresultaten, då
det var funktioner som interelaterade till de frågor som
undersöktes. Ett exempel är som nämnts att kunna ta bortväggar
vilket gjorde att användaren inte behöver rita om sin labyrint så
fort det råkarrita fel.
Enkäten och den muntliga dialogen bidrog väldigt mycket till att
kunna få responspå förbättringar men även funktioner som kan läggas
till i efterhand för att få en meranvändarvänlig applikation.
Resultaten av enkätundersökningen presenteras i form
avstapeldiagram. Valet att visa resultaten i form av stapeldiagram
gjordes för att det geren bättre överblick av vilka svarsresultat
som har störst andel av testpersonerna.
17
-
4.1 Resultaten från enkätsvaren av första och tredjeårs
studenter
Varje resultat presenteras med hjälp av två stapeldiagram, det
vänstra diagrammet kom-mer att visa resultat för tredjeårsstudenter
och den högra för förstaårsstudenter.
4.1.1 Algoritmkunskap
(a) tredjeårsstudenter (b) förstaårsstudenter
Figur 4: Stapeldiagrammen visar resultaten av den första
enkätfrågan. Angett i antalpersoner.
Figur 4 visar resultaten på hur väl testpersonernas
algoritmkunskap var. Frågan är tillför att kunna se vilken grad av
kunskap testpersonerna har gällande algoritmerna.
4.1.2 Visualisering av algoritmer
(a) tredjeårsstudenter (b) förstaårsstudenter
Figur 5: Stapeldiagrammen visar resultaten av den andra
enkätfrågan. Angett i antalpersoner.
Figur 5 visar enkätresultaten på hur väl testpersonerna tyckte
att applikationen hjälptedem att förstå visualiseringen av
algoritmsökningarna. Denna fråga är viktig för attkunna stödja
syftet med applikationen, för att sedan kunna analysera om det blir
etteffektivare lärande eller inte.
18
-
4.1.3 Tankar om användargränssnittet
För att kunna se vad testpersonerna tyckte om det grafiska
gränssnittet så var fannsfrågan “Tyckte Du att användargränssnittet
var lätt att använda sig av? Om inte motiveragärna” med i enkäten.
Nedan visas några av de kommentarer som testpersonerna
gav,anledningen till att inte alla kommentarer presenteras beror på
att de var snarlika svareller svar som inte berörde frågan.
Tredjeårsstudenters kommentarer:
• Lätt att förstå.
• Strukturerat och ordnat.
• Bra visuell feedback.
Förstaårsstudenters kommentarer:
• Lätt att förstå.
• Väldigt bra och pedagogiskt.
• Bra användargränssnitt.
• Svårt att förstå i början.
• Tyckte startknappen var dåligt placerad.
4.1.4 Källkoden i Applikationen
(a) tredjeårsstudenter (b) förstaårsstudenter
Figur 6: Stapeldiagrammen visar resultaten av den tredje
enkätfrågan. Angett i antal personer.
Figur 6 visar enkätresultaten på huruvida testpersonerna tyckte
att den kommenteradekoden i applikationen var lättförståelig. För
att kunna förstå hur mycket och hur välkommenterad koden skulle
vara för att mindre erfarna programmerare skulle kunna förståkoden
så behövdes denna fråga. Detta är för att kunna anpassa
applikationen så attpersoner med mindre erfarenhet inte skall känna
sig allt för vilse i koden, samtidigt såbör det inte vara för
mycket kommentering då det förstör syftet med
problem-based-learning.
19
-
4.1.5 Implementation av kod
För att se hur lätt respektive svårt testpersonerna tyckte det
gick att implementera kodför algoritmerna så fanns frågan “Tyckte
Du det var lätt att implementera koden föralgoritmerna? Motivera
gärna” med i enkäten. Frågan är viktig att ha med då
imple-menteringen av kod för algoritmerna skall få användaren mer
aktiv och på så sätt kunnadriva sitt eget lärande, detta skall i
sin tur medföra en effektivare och djupare förståelseav
algoritmerna. Vid testtillfället så fanns det endast två algoritmer
som nämnts tidigarei uppsatsen.
4.1.6 Visuellt kontra traditionellt
(a) tredjeårsstudenter (b) förstaårsstudenter
Figur 7: Stapeldiagrammen visar resultaten av den sjätte
enkätfrågan. Angett i antalpersoner.
Figur 7 visar enkätresultat på i vilken grad testpersonerna
tyckte att applikationen vareffektivare än att rita upp
algoritmerna på papper. Frågan bidrar till att kunna få responspå
vad användaren tycker om att använda sig av applikationen gentemot
att sitta medpenna och papper.
20
-
5 Analys
5.1 Utvärdering 1, Testresultat från tredjeårsstudenter
Testresultaten från tredgeårsstudenterna analyseras per fråga
enligt resultatkapitletsrubriker.
5.1.1 Algoritmkunskap
En förklaring till att resultatet fick mera positiv respons än
negativ kan vara att deflesta studenterna som varit testpersoner
redan har läst kurser inom AI och på så sättredan kan algoritmerna.
En annan förklaring kan vara att testpersonen kan två till tre
avalgoritmerna bra och den sista sämre, detta kan leda till att
testpersonen väger resultatenoch då väljer det positivare
svarsresultatet.
5.1.2 Visualisering av algoritmer
Resultatet visar att tredjeårsstudenterna tyckte att
applikationen hjälpte dem att för-stå hur algoritmerna fungerade.
Detta tyder på att en applikation som visualiserar huralgoritmerna
fungerar kan bidra till ett snabbare och mer effektiv lärande. Det
som skul-le kunna påverkat resultatet är som tidigare nämnt att
testpersonerna från årskurs treredan har läst kurser inom ämnet
AI.
5.1.3 Tankar om användargränssnittet
Responsen gällande användargränssnittet var mycket positiv och
gav möjligheten attgöra flera förbättringar. En av förbättringarna
som nämnts tidigare i resultatkapitlet ärförslaget om att kunna ta
bort väggar, detta bidrog till att applikationen blev lättare
attanvända och att användaren slipper rensa rutnätet varje gång det
blir fel. Anledningen tillatt det blev mycket positiv respons kan
bero på att de flesta grundläggande funktionernaredan fanns
implementerade för att applikationen skulle gå att använda. Detta
behöverinte betyda att applikationen inte kan förbättras, utan att
den fungerar som den är föratt kunna besvara frågeställningen.
5.1.4 Källkoden i Applikationen
Anledningen till att majoriteten av responsen hamnade på
svarsalternativ “Lätt” kan varaför att testpersonerna har bred
erfarenhet inom programmering och kan på så sätt sättasig in i
koden lättare. Anledningen till att det inte är någon som har
svarat “Mycket lätt”tyder på att applikationens kommentering är
inom en rimlig nivå.
21
-
5.1.5 Implementation av kod
Anledningen till att testpersonerna tyckte det var svårt att
implementera algoritmernakan bero på att det var första gången som
applikationen testades och på så sätt behövdeförbättras för att få
optimalt resultat. Det kan även vara så som en av
testpersonernauppmärksammat att de skulle behöva mera tid för att
kunna sätta sig in i applikationen.
5.1.6 Visuellt kontra traditionellt
Resultatet på frågan är mycket positivt och gör det möjligt att
kunna verifiera att appli-kationen effektiviserar lärandet av
pathfinding-algoritmer. Anledningen till att testper-sonerna har
svarat positivt kan ha att göra med att de sparar mycket tid genom
att sättasig med applikationen, jämfört med att sätta sig och rita
upp algoritmerna för hand.Frågan hade två stycken bortfall, vilket
berodde på att testpersonerna inte hade suttitmed penna och papper
och testat att visualisera algoritmer på detta vis.
22
-
5.2 Utvärdering 2, Testresultat av förstaårsstudenter
Testresultaten från förstaårsstudenterna analyseras per fråga
enligt resultatkapitletsrubriker.
5.2.1 Algoritmkunskap
Anledningen till att resultatet visar på dålig kunskap beror på
att förstaårsstudenternahar ännu inte studerat AI, samt inte använt
sig av pathfinding algoritmer tidigare. Test-personer med denna
erfarenhet bör vara idealt för att testa vår applikation, vilket
bidrartill att frågeställningen får ett mer trovärdigt
resultat.
5.2.2 Visualisering av algoritmer
Resultatet visar att applikationen hjälpte testpersonerna att få
en bättre överblick avhur de olika algoritmerna fungerar. Detta
tyder på att personer som inte studerat någonAI-kurs kan använda
applikationen.
5.2.3 Tankar om användargränssnittet
Responsen var både negativ och positiv, en testperson tyckte att
applikationen var svåratt förstå i början vilket kan leda till att
det kan implementeras en hjälpfunktion somförklarar hur
applikationen fungerar. En av förbättringarna som föreslogs var att
om-placera start- och stop knapparna då placeringen var
missledande, en omplacering avknapparna kan göra att applikationen
blir lite mer användarvänlig. Anledningen till attdet blev mera
positiv respons än negativ kan vara för att applikationen är simpel
och detbehövs inte mycket kunskap om hur den fungerar för att kunna
använda den effektivt.
5.2.4 Källkoden i Applikationen
Anledningen till att många testpersoner tyckte att koden var
svårt att förstå beror nogpå att de är nya inom ämnet programmering
vilket kan leda till att det kan vara svårtatt förstå inom den
tidsram som testningen utfördes på. Stapeldiagrammet visar ocksåatt
förstaårsstudenterna har väldigt spridd kunskap gällande
programmering som helhet.Resutaten är svåra att bedöma då det är så
stor spridning, vilket gör det svårt att avgöraom koden är för lätt
eller för svårt kommenterad. Det skulle behövas mera testning
föratt kunna göra en slutgiltligt bedömning.
23
-
5.2.5 Implementation av kod
Förstaårsstudenterna svarade inget på frågan “Tyckte Du det var
lätt att implementerakoden för algoritmerna? Motivera gärna”.
Anledningen till detta kan vara att deras be-gränsade kunskap
gjorde det svårt för studenterna att själva implementera
algoritmernapå den tid som testningen pågick, utan hade behövt
betydligt mer tid för att studera hurpathfinding-algoritmer
fungerar. Kravet att själv implementera algoritmerna kan inte visom
utvecklare ställa på studenterna, utan de fick testa de algoritmer
som redan varimplementerade och på så sätt ändå kunna se hur dem
fungerade.
5.2.6 Visuellt kontra traditionellt
Anledningen till att resultatet var så positivt kan vara att
testpersonerna får en bättreöverblick hur det ser ut när en
pathfinding-algoritm söker och därgenom lär sig bättre. Detfanns en
testperson som svarade svårt och anledningen till detta kan vara
att testpersonenhar lättare för att rita själv när det bara är en
liten sökväg, men på stora ytor hadeeventuellt en applikationen
hjälpt testpersonen bättre.
5.3 Jämförelse av utvärderingarna
Undersökningen av 25 testpersoner gav en bredare grund och detta
gör resultatet mertrovädigt. Genom att studera informationen från
de två utvärderingarna så syns det attkunskapsnivån skiljer sig
mellan de två testgrupperna. Det ger möjligheten att kunna draen
generell slutsats då resultaten har en bra spridning av användare.
Resultaten visaratt oavsett kunskapsnivå så har användarna nytta av
en applikation som kan visualiserapathfinding-algoritmer och på så
vis leda till en bättre förståelse om hur en sökningfungerar.
Testpersonerna upplevde applikationen som lättanvänd och tyckte
att den gav bravisuell feedback men de gav även förslag till flera
förbättringar. Självimplementationenför förstaårsstudenterna visade
sig vara för svår att göra inom tidsramen som fanns
förtestperioden. Utifrån testpersonernas kommentarer bör det inte
vara några problem attimplementera algoritmerna i applikationen
själv om det finns tid för att studera teorin,till exempel via en
kurs eller självstudier. Resultaten tyder på att ett effektivare
lärandeuppnås genom användande av applikationen.
24
-
5.4 Muntlig dialog
De muntliga dialogerna var väldigt bra för att kunna få respons
om vad användarentyckte och tänkte om applikationen vid körning.
Det var även bra för att kunna hjälpatestpersonen om det uppstod
fel eller förvirring, eller för att förklara varför vi gjort somvi
gjort med applikationen. Det var även i dialogerna som flera
användare påpekade vadför funktioner som skulle kunna finnas i
applikationen för att kunna förbättra den. Enav diskussionerna som
ofta kom upp var huruvida det hade underlättat om testpersonenhade
haft applikationen till sitt förfogande när personen läste en AI
eller algoritm-kurs.Det var mycket positiv respons runt detta då
fokus kunde ha legat på att implementeraalgoritmerna istället för
att hålla på med alla funktioner för det visuella.
Testpersonernaställde sig även mycket positivt till att ha
applikationen till sitt förfogande under enlaboration vid uppstart
av en AI eller algoritmkurs.
Testpersonerna tyckte att det behövdes vissa förkunskaper för
att själva kunna imple-mentera algoritmer i applikationen, såsom
tidigare erfarenhet av programmering. Någotsom diskuterades var hur
mycket vägledning användaren skulle få genom den dokumen-terade
programkoden. Ett alternativ som också diskuterades var om det
skulle finnasen fungerande applikation i form av ett exekverbart
program i samband med källkodenför applikationen, och då ge en
visuell bild hur det ska se ut när algoritmerna fungerarkorrekt.
Detta för att användaren ska kunna ha någon slags visuell mall att
gå efter,men inte ska ha möjlighet att kunna se koden för att
förhindra att användaren skriverav koden för algoritmerna.
Något som de mera nyfikna testpersonerna gärna skulle se i
applikationen var attkunna implementera sina egna algoritmer. Detta
är redan möjligt genom att användarensjälv implementerar sina
algoritmer i de klasser som är avsedda för de redan implemente-rade
algoritmerna i applikationen. För att lösa detta vore ett
alternativ att skapa en klassför användaren att implementera sin
egen kod i. Ett annat förslag som kom upp var attha en funktion som
tar tid på sökningen, detta var för att kunna jämföra flera
algoritmerför att se vilken som söker sig fram snabbast för det
utsatta problemet. Det skulle dågör det möjligt för användaren att
välja den bästa algoritmen till ett specifikt scenario.För att
kunna hjälpa användaren att testa olika scenarier så föreslog en
testperson attdet kanske skulle finnas färdiga mallar av rutnät,
detta hjälper användare som har svårtatt komma på egna rutnät själv
och kan på så sätt testa algoritmerna snabbare.
25
-
6 Diskussion
Resultaten tyder på att det är möjligt att effektivisera
lärandet av pathfinding-algoritmergenom att kombinera visuellt
lärande med implementation av algoritmer. Resultatenvisar att en
applikation som är riktat specifikt mot pathfinding-algoritmer
bidrar till endjupare förståelse av hur algoritmerna fungerar och
skulle fungera bra i utbildningssyfte.Vi har under undersökningen
observerat att visuellt lärande kan vara mer effektivt,
dettabehöver inte betyda att det är så till alla läroformer men det
lämpar sig väldigt bra tillvisualisering av algoritmer. Under
litteraturstudien så fick vi en bredare uppfattning omhur svårt det
kan vara att lära sig algoritmer och att det är väldigt få verktyg
somanvänder sig av problem-based-learning.
Antalet applikationstestare var 25 stycken vilken gjorde att de
resultat vi fick varrimliga för att göra en empirisk studie på, då
vi hade en variation av testpersoner frånolika årskurser. Vi tyckte
att testningen gav bra resultat då vi samtidigt som användar-testet
pågick observerade hur testpersonerna hanterade applikationen, och
kunde på såsätt uppfatta vad de tyckte om applikationen.
En av delarna som vi skulle velat undersöka mera är
implementationen av algorit-merna, detta är en stor del av syftet
för att kunna effektivisera lärandet av algoritmer,genom att
använda denna applikation. En av anledningarna till att
testresultaten blevlite vaga gällande denna del är att
testpersonerna inte lyckades implementera algoritmer-na inom den
tidsram som vi gav dem. För att lösa detta så skulle det behövas
göra enny testningen där testpersonen har mera tid till sitt
förfogande. Möjligheten att kunnavisualisera algoritmerna gör att
användarna kan se hur de fungerar med sina egna ögonistället för
att förlita sig på bilder som finns i litteraturen.
Applikationen skulle kunna användas av andra studenter förutsatt
att de har kun-skap om programmering, men då behöver de komplettera
med att läsa om pathfinding-algoritmer. Det bidrar till att
applikationen skulle kunna användas inom andra utbild-ningar än
bara spelutveckling.
26
-
7 Slutsats och vidare forskning
Undersökningen som gjorts under arbetet visar att det finns stor
potential att använda sigav ett visuellt lärande för att lära ut
algoritmer. Det bör finnas i åtanke att det teoretiskafortfarande
spelar en viktig roll i förståelsen hur algoritmer fungerar, därför
bör både detpraktiska och teoretiska användas parallellt för att
uppnå ett optimalt resultat.
Undersökningen bekräftar att ett effektivare lärande av
pathfinding-algoritmer kanuppnås genom ett visuellt stödverktyg men
det krävs en viss förkunskap om de algoritmersom verktyget
innefattar. Algoritmerna som används i verktyget kan skräddarsys
tillanvändarens egna önskemål, användaren ska även ges möjligheten
att själv lägga tillsina egna algoritmer. Verktyget kan då även
användas inom andra områden än enbartför att visualisera
pathfinding-algoritmer, som till exempel för att visualisera
grafer.Undersökningen tyder även på att lärosätten som används idag
inte är optimala, utan attutbildningar inom AI och spelutveckling
borde använda en mer visuell inlärningsmetod.Vår hypotes
bekräftades genom att studera resultatet av testerna, då det visade
sigatt som O’Grady [25] tog upp i sin artikel om ett praktisk
problem-based-learning, attpersoner som själv fått implementera
lösningar och fått titta på resultaten visuellt harhaft lättare att
lära sig.
Vidare forskning bör nog sätta fokus på att göra mer testning
gällande implemen-tation av algoritmerna för att kunna få mer data,
genom att eventuellt skapa någotobligatoriskt moment där testaren
själv måste implementera pathfinding-algoritmerna.Detta bidrar till
att en bredare analys kan göras huruvida lärandet är mer effektiv
vidvisualisering eller inte. Då visualiserat lärandet av
pathfinding-algoritmer inte är specielltdokumenterat bör det
utforskas mer för att kunna påvisa att vår undersökning gav
rättresultat. Det skulle även vara intressant om det var möjligt
att jämföra ett teoretiskt ochvisuellt lärandesätt för att se
vilken skillnad det gjort för de olika studenterna.
27
-
Referenser
[1] Amershi. S, Arksey. N, Carenini. G, Cline. M, Coelho. W,
Conati. C, Gagné. A,Gorniak. P, Hoos. H, Kisyński. J, Knoll. B, Li.
J, Mackworth. A, O’Neill. K,Pavlin. M, Poole. D, Porter. K, Santos.
J, Sueda. S, Tung. L, Yap. A and Yu-en. R, AIspace: Tools for
Learning Artificial Intelligence [Online]. Available
At:http://www.aispace.org/, 1999.
[2] Amershi. S, Arksey. N, Carenini. G, Conati. C, Mackworth. A,
Maclaren. H,Poole. D, Designing CIspace: Pedagogy and Usability in
a Learning Environmentfor AI, Proceedings of the 10th annual SIGCSE
conference on Innovation and te-chnology in computer science
education, pp 178-182, 2005.
[3] Bakhtin. M. M, Speech genres and other late essays, Austin.
TX, University ofTexas Press pp 60-106, 1986.
[4] Brown. M. H and Sedgewick. R, Techniques for Algorithm
Animation, Software(Vol:2, Issue:1), IEEE, pp. 28-39, Jan 1985.
[5] Brown. M. H, Exploring algorithms using Balsa-II,
Computer(Vol:21, Issue:5),IEEE, pp. 14-36, May 1988.
[6] Chabini. I and Lan. S, IV. A* Algorithm”, in Adaptations of
the A* Algorithmfor the Computation of Fastest Paths in
Deterministic Discrete-Time DynamicNetworks, Intelligent
Transportation Systems, pp 63-65, 2002.
[7] Cormen. T. H, Leiserson. C. E, Rivest. R. L, Stein. C,
Introduction to algo-ritms third edition, MIT Press, July 2009.
[8] DiCicco-Bloom. B and Crabtre. B. F, The qualitative research
interview, MedicalEducation Vol.40, pp. 268-271, 28 March,
2006.
[9] Dijkstra. E. W A Note on Two Problems in Connexion with
Graphs, inNumerische Mathematik, Vol. 1, pp 269-271, 1959.
[10] ECMA, C# Language Specification, Standard-ECMA-334, 6 Juni,
pp 20, 2006.
[11] Ejlertsson. G, Enkäten i praktiken, Sweden:
Studentlitteratur AB, 1996.
[12] Gamma. E, Helm. R, Johnson. R, Vlissides. J, Design
Patterns: Elements ofReusable Object-Oriented Software,
Addison-Wesley Professional, First Edition,Nov 1994.
[13] Graham. R, McCabe. H, Sheridan. S, Pathfinding in Computer
Games,ITB Journal, Issue Number 8, pp. 57-81, Dec 2003.
[14] Harary. F, Graphs, in Graph Theory, Reading, MA,
Addison-Wesley, pp. 9, 1969.
-
[15] Helttula. E, Hyrskykari. A, Raiha. K. J, Graphical
specification of algorithmanimations with ALADDIN, System Sciences,
Proceedings of the Twenty-SecondAnnual Hawaii International
Conference, pp 892-901, 1989.
[16] Hundhausen. C. D, Dougles. S. A, Stasko. J. T, A Meta-Study
of AlgorithmVisualization Effectiveness, Journal of Visual
Languages and Computing, Vol. 13,pp 259-290, 2002.
[17] Ikeda. T, Min-Yao. H, Imai. H, Nishimura. S, Shimoura. H,
Hashimoto. T,Tenmoku. K, Mitoh. K, A Fast Algorithm for Finding
Routes by AI SearchTechnique, Proceedings of the 1994 VNIS, pp.
291-196, 1994.
[18] Jordan B and Henderson A, Interaction Analysis: Foundations
and Practice,Taylor and Francis online, Volume 4, Issue 1, pp
39-103, 1995
[19] Lantz. A, Intervjumetodik, Sweden: Studentlitteratur AB,
2003.
[20] Luo. L, Wong. M, Hwu. W, “Previous Appraches”, An Effective
GPUImplementation of Breadth-First Search, Proceedings of the 47th
DesignAutomation Conference, pp 52-55, 2010.
[21] McGarth. M. B and Brown. J. R, Visual Learning for Science
and Engineering,Computer Graphics and Applications, Vol. 25, Issue
5, IEEE, Volume 25, Issue 5,pp. 56-63, 2005.
[22] Nareyek. A, AI in Computer Games, Queue - Game Development,
ACM ,Volume1, Issue 10, pp. 58-65, Feb 2004.
[23] Nishihara. T and Minamide. Y, “Depth-First Search”, in The
Archive of FormalProofs, 2004.
[24] Nordberg. K, Perception research and audio-visual
education, Audiovisualcommunication review, volume 1, issue 1, pp
18-29 1953.
[25] O’Grady. M. J, “Review of Problem-Based-Learning”, in
Practical Problem-BasedLearning in Computing Education, ACM
Transactions on Computing Education,pp 10:2 - 10:3, 2012.
[26] Russel. S. J and Norvig. P, Artificial Intelligence: A
Modern Approach, PrenticeHall, second edition, Dec 2002.
[27] Stasko. J. T, Simplifying algorithm animation with Tango,
Visual Languages,Proceeding of the 1990 IEEE Workshop, pp 1-6,
1990.
[28] Tarjan. R, Depth-First Search and Linear Graph Algorithms,
Switching andAutomata Theory 1971. 12;th Annual Symposium on, pp
114-121, 1971.
[29] Yoo. J. P, Yoo. S. K, Seo. S, Pettey. C, Can AlgoTutor
change attitudes towardAlgorithms?, SIGCSE ‘11 Proceedings of the
42nd ACM technical symposium onComputer Science Education, pp
311-316, 2011.
29
-
[30] Yu. Y, Liu. Z, Research on a user-centered design method
for interactive onlineteaching system, Communication Technology,
2006. ICCT ’06. InternationalConference on 27-30 Nov, pp 2-3,
2006.
30
-
Appendix A Ordlista
AI - Artificiell intelligens används huvudsakligen inom
datavetenskapen för att för-söka rekonstruera en människobeteende
eller realistiska tillvägagångssätt.
Algoritm - En algoritm kan definieras som ett förutsatt
händelseförlopp med väldefinierade funktioner för att kalkylera en
händelse.
Användargränssnitt - Detta fungerar som en länk mellan
programvaran och an-vändaren.
API - Application Programming Interface, API specifierar hur
olika komponenterinteragerar med varandra.
CPU - Huvudprocessorn i datorn. Denna processor ansvarar för
exekveringen avalla program och utför beräkningar och
datahantering.
Deduktion - Härledning av slutsatser med givna premisser.
Garbagecollector - Detta är en automatisk dynamisk
minneshanterings metodvilket har i uppgift att hitta dataobjekt som
aldrig kommer användas igen och ta bortdessa. Detta för att frigöra
minnesresurser och motverka att minnesläckor uppstår.
GPU - Grafikprocessor som sitter på grafikkortet i datorn. Denna
processor an-svarar för kommunikationen mellan bildskärm och dator
och de bilder som ska visar påskärmen.
Källkod - Programkoden som används i en applikation som oftast
har kommenteraroch är lättarbetad för en människa samtidigt som en
dator ska kunna tolka den.
Länkningar - Länkningar inom C++ är för att få ett körbart
program som kräverett speciellt ramverk som inte ingår i C++
standardbibliotet. Detta görs genom attincludera dll-filer och
ramverks specifika filer för att kunna använda sig av ramverker
idet program som ska utvecklas, detta kallas för länkning.
Neurala nätverk - Neurala nätverk är beräkningsmodeller
inspirerade av djurenscentrala nervsystem. Neurala nätverk används
ofta för maskininlärning och mönsterigen-känning.
NPC - Non player character syftar åt karaktärer i spel som inte
är spelar styrdautan med hjälp av AI ger uppfattningen av en
spelare.
-
Objektorienterad kod - Kod som är baserat på
programmeringsmetoden objekt-orienterad programmering i vilken ett
program kan innehålla en varierande uppsättningobjekt som
interagerar med varandra. Anledningen att skriva objektorienterat
är för attdet bidrar till ett stabilt och kraftfullt program samt
gör det lättare för programmerareatt sätta sig in i programmet.
Pathfinding - I en datorapplikation syftar detta på sättet att
hitta den kortastevägen mellan två punkter.
Prestanda - Begrepp på hur väl en applikation presterar.
-
Appendix B Enkät
1. Hur väl är Din kunskap gällande de 4 algoritmerna (A*,
Dijktra’s,Bredden-först eller Djupet-först)?2 Mycket bra.
2 Bra.
2 Dålig.
2 Mycket dålig.
2. I vilken grad hjälpte applikationen Dig att förstå visuellt
hur algorit-mernas sökningar går till?2 Mycket bra.
2 Bra.
2 Dålig.
2 Mycket dålig.
3. Tyckte Du att användargränssnittet var lätt att använda sig
av? Ominte motivera gärna
4. Hur lätt tyckte Du det var att förstå den kommenterade koden
i appli-kationen?2 Mycket lätt.
2 Lätt.
2 Svårt.
2 Mycket svårt.
5. Tyckte Du det var lätt att implementera koden för
algoritmerna? Mo-tivera gärna per algoritm
6. I vilken grad gick algoritmerna att förstå genom att visuellt
få se hursökningen går till kontra traditionellt med penna och
papper?2 Mycket lättare.
2 Lättare.
2 Svårare.
2 Mycket svårare.