• No results found

De muntliga dialogerna var väldigt bra för att kunna få respons om vad användaren tyckte och tänkte om applikationen vid körning. Det var även bra för att kunna hjälpa testpersonen om det uppstod fel eller förvirring, eller för att förklara varför vi gjort som vi gjort med applikationen. Det var även i dialogerna som flera användare påpekade vad för funktioner som skulle kunna finnas i applikationen för att kunna förbättra den. En av diskussionerna som ofta kom upp var huruvida det hade underlättat om testpersonen hade 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 implementera algoritmerna istället för att hålla på med alla funktioner för det visuella. Testpersonerna ställde sig även mycket positivt till att ha applikationen till sitt förfogande under en laboration 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ågot som diskuterades var hur mycket vägledning användaren skulle få genom den dokumen- terade programkoden. Ett alternativ som också diskuterades var om det skulle finnas en fungerande applikation i form av ett exekverbart program i samband med källkoden för applikationen, och då ge en visuell bild hur det ska se ut när algoritmerna fungerar korrekt. 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 skriver av koden för algoritmerna.

Något som de mera nyfikna testpersonerna gärna skulle se i applikationen var att kunna implementera sina egna algoritmer. Detta är redan möjligt genom att användaren sjä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 klass för användaren att implementera sin egen kod i. Ett annat förslag som kom upp var att ha en funktion som tar tid på sökningen, detta var för att kunna jämföra flera algoritmer fö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 att det kanske skulle finnas färdiga mallar av rutnät, detta hjälper användare som har svårt att komma på egna rutnät själv och kan på så sätt testa algoritmerna snabbare.

6

Diskussion

Resultaten tyder på att det är möjligt att effektivisera lärandet av pathfinding-algoritmer genom att kombinera visuellt lärande med implementation av algoritmer. Resultaten visar att en applikation som är riktat specifikt mot pathfinding-algoritmer bidrar till en djupare 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, detta behöver inte betyda att det är så till alla läroformer men det lämpar sig väldigt bra till visualisering av algoritmer. Under litteraturstudien så fick vi en bredare uppfattning om hur svårt det kan vara att lära sig algoritmer och att det är väldigt få verktyg som använder sig av problem-based-learning.

Antalet applikationstestare var 25 stycken vilken gjorde att de resultat vi fick var rimliga för att göra en empirisk studie på, då vi hade en variation av testpersoner från olika å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 blev lite 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 en ny testningen där testpersonen har mera tid till sitt förfogande. Möjligheten att kunna visualisera algoritmerna gör att användarna kan se hur de fungerar med sina egna ögon istä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.

7

Slutsats och vidare forskning

Undersökningen som gjorts under arbetet visar att det finns stor potential att använda sig av ett visuellt lärande för att lära ut algoritmer. Det bör finnas i åtanke att det teoretiska fortfarande spelar en viktig roll i förståelsen hur algoritmer fungerar, därför bör både det praktiska och teoretiska användas parallellt för att uppnå ett optimalt resultat.

Undersökningen bekräftar att ett effektivare lärande av pathfinding-algoritmer kan uppnås genom ett visuellt stödverktyg men det krävs en viss förkunskap om de algoritmer som verktyget innefattar. Algoritmerna som används i verktyget kan skräddarsys till användarens egna önskemål, användaren ska även ges möjligheten att själv lägga till sina egna algoritmer. Verktyget kan då även användas inom andra områden än enbart fö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 att utbildningar 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 sig att som O’Grady [25] tog upp i sin artikel om ett praktisk problem-based-learning, att personer som själv fått implementera lösningar och fått titta på resultaten visuellt har haft 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ågot obligatoriskt 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 vid visualisering eller inte. Då visualiserat lärandet av pathfinding-algoritmer inte är speciellt dokumenterat bör det utforskas mer för att kunna påvisa att vår undersökning gav rätt resultat. Det skulle även vara intressant om det var möjligt att jämföra ett teoretiskt och visuellt lärandesätt för att se vilken skillnad det gjort för de olika studenterna.

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 Environment for 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 of Texas 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* Algorithm for the Computation of Fastest Paths in Deterministic Discrete-Time Dynamic Networks, 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, Medical Education Vol.40, pp. 268-271, 28 March, 2006.

[9] Dijkstra. E. W A Note on Two Problems in Connexion with Graphs, in Numerische 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 of

Reusable 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.

[15] Helttula. E, Hyrskykari. A, Raiha. K. J, Graphical specification of algorithm animations with ALADDIN, System Sciences, Proceedings of the Twenty-Second Annual Hawaii International Conference, pp 892-901, 1989.

[16] Hundhausen. C. D, Dougles. S. A, Stasko. J. T, A Meta-Study of Algorithm Visualization 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 Search Technique, 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 GPU

Implementation of Breadth-First Search, Proceedings of the 47th Design Automation 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 ,Volume 1, Issue 10, pp. 58-65, Feb 2004.

[23] Nishihara. T and Minamide. Y, “Depth-First Search”, in The Archive of Formal Proofs, 2004.

[24] Nordberg. K, Perception research and audio-visual education, Audiovisual communication review, volume 1, issue 1, pp 18-29 1953.

[25] O’Grady. M. J, “Review of Problem-Based-Learning”, in Practical Problem-Based Learning 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, Prentice Hall, 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.

[30] Yu. Y, Liu. Z, Research on a user-centered design method for interactive online teaching system, Communication Technology, 2006. ICCT ’06. International Conference on 27-30 Nov, pp 2-3, 2006.

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äl definierade 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 komponenter interagerar med varandra.

CPU - Huvudprocessorn i datorn. Denna processor ansvarar för exekveringen av alla program och utför beräkningar och datahantering.

Deduktion - Härledning av slutsatser med givna premisser.

Garbagecollector - Detta är en automatisk dynamisk minneshanterings metod vilket har i uppgift att hitta dataobjekt som aldrig kommer användas igen och ta bort dessa. 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 kommenterar och ä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äver ett speciellt ramverk som inte ingår i C++ standardbibliotet. Detta görs genom att

Objektorienterad kod - Kod som är baserat på programmeringsmetoden objekt- orienterad programmering i vilken ett program kan innehålla en varierande uppsättning objekt som interagerar med varandra. Anledningen att skriva objektorienterat är för att det bidrar till ett stabilt och kraftfullt program samt gör det lättare för programmerare att sätta sig in i programmet.

Pathfinding - I en datorapplikation syftar detta på sättet att hitta den kortaste vägen mellan två punkter.

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? Om inte 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.

Related documents