scieee Open visual document viewer

Juego para aprender estructuras de datos y algoritmos

Jiménez Sánchez, Alejandro

Abstract

Las asignaturas de algoritmos y estructuras de datos son una parte fundamental en los estudios de informática. En una primera aproximación a ellas, el alumno puede tener dificultades en su comprensión. Es por ello que puede ser buena idea disminuir el nivel de abstracción, elegir un caso concreto y mostrar la aplicación del algoritmo a dicho ejemplo. Además, numerosos estudios están a favor de que sea también el estudiante el que aprende por sí mismo mediante la interacción con un juego relacionado con el concepto a estudiar. Es por ello que se implementa una aplicación en Unity que muestra las ideas principales de algunos de los algoritmos básicos y estructuras de datos típicas, y que no se limita a mostrar su funcionamiento, sino que permite la interacción del usuario, guardando también estadísticas sobre su rendimiento. En esta memoria se explican inicialmente los objetivos y las aplicaciones similares existentes. En los capítulos siguientes, se describe el desarrollo de la aplicación. Primero, se centra en cada juego implementado y la interacción pedida al usuario en cada caso; después, en los aspectos del diseño y desarrollo de la aplicación. La memoria finaliza con los resultados de las pruebas con usuarios.

Full text

JUEGO PARA APRENDER ESTRUCTURAS DE DATOS Y ALGORITMOS GAME FOR LEARNING DATA STRUCTURES AND ALGORITHMS Alejand o Jim´enez S´anchez DOBLE GRADO EN INGENIER´ IA INFORM´ ATICA Y MATEM´ ATICAS FACULTAD DE INFORM´ ATICA UNIVERSIDAD COMPLUTENSE DE MADRID T abajo Fin de G ado en Ingenie ´ıa In o m´a ica Cu so 2020/2021 Feb e o de 2021 Di ec o : I ´an Ga c´ıa-Maga i˜no Ga c´ıa ´ Indice gene al 1. In oducci´on 4 1.1. In oduc ion..................................... 4 1.2. In oducci´on a los juegos se ios. Concep os p incipales . . . . . . . . . . . . . . 5 1.3. In oducci´on a la aplicaci´on desa ollada . . . . . . . . . . . . . . . . . . . . . 7 1.4. T abajo exis en e y aplicaciones simila es . . . . . . . . . . . . . . . . . . . . . 11 1.5. Plande abajo................................... 13 2. Algo i mos e In e acci´on 15 2.1. In oducci´on..................................... 15 2.2. O denaci´on po inse ci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.1. Tu o ialdeljuego.............................. 16 2.2.2. In e acci´on de allada con un ejemplo . . . . . . . . . . . . . . . . . . . 18 2.2.3. Algo i mos de con ol y comp obaci´on . . . . . . . . . . . . . . . . . . 21 2.3. O denaci´on po selecci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.3.1. Tu o ialdeljuego.............................. 24 2.3.2. In e acci´on de allada con un ejemplo . . . . . . . . . . . . . . . . . . . 25 2.3.3. Algo i mos de con ol y comp obaci´on . . . . . . . . . . . . . . . . . . 26 2.4. O denaci´on po el m´e odo de la bu buja . . . . . . . . . . . . . . . . . . . . . 27 2.4.1. Tu o ialdeljuego.............................. 28 2.4.2. In e acci´on de allada con un ejemplo . . . . . . . . . . . . . . . . . . . 29 2.4.3. Algo i mos de con ol y comp obaci´on . . . . . . . . . . . . . . . . . . 30 2.5. O denaci´on po mezclas (1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.5.1. Tu o ialdeljuego.............................. 33 2.5.2. In e acci´on de allada con un ejemplo . . . . . . . . . . . . . . . . . . . 35 2.5.3. Algo i mos de con ol y comp obaci´on . . . . . . . . . . . . . . . . . . 36 2.6. T´ecnica de en ana deslizan e . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.6.1. In oducci´on a la ´ecnica . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.6.2. Tu o ialdeljuego.............................. 40 2.6.3. In e acci´on de allada con un ejemplo . . . . . . . . . . . . . . . . . . . 42 2.6.4. Algo i mos de con ol y comp obaci´on . . . . . . . . . . . . . . . . . . 44 3. Dise˜no y aspec os de la aplicaci´on 45 3.1. Clases y p ocesos p incipales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.1.1. Clases .................................... 45 3.1.2. Diag amas de secuencia de dos p ocesos p incipales . . . . . . . . . . . 48 3.2. Feedback p opo cionado y o as uncionalidades . . . . . . . . . . . . . . . . . 50 3.2.1. Feedback................................... 50 3.2.2. Log con la in e acci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 1 4. E aluaci´on con Usua ios 54 4.1. P ime as p uebas con usua ios . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.1.1. In oducci´on................................. 54 4.1.2. P uebas ealizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.1.3. Resul ados y posibles mejo as . . . . . . . . . . . . . . . . . . . . . . . 55 4.2. Teo ´ıa sob e p uebas de usabilidad . . . . . . . . . . . . . . . . . . . . . . . . 57 4.3. P uebas inales con usua ios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.4. Resul ados de las p uebas y conclusiones . . . . . . . . . . . . . . . . . . . . . 59 4.4.1. Cues iona io p e io . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.4.2. Cues iona io inal.............................. 61 4.4.3. An´alisis de los logs ............................. 62 5. Conclusiones y abajo u u o 65 5.1. Conclusiones..................................... 65 5.2. T abajo u u o ................................... 65 5.3. Conclusions ..................................... 66 5.4. Fu u ewo k..................................... 66 Bibliog a ´ıa 67 2 Resumen Las asigna u as de algo i mos y es uc u as de da os son una pa e undamen al en los es udios de in o m´a ica. En una p ime a ap oximaci´on a ellas, el alumno puede ene di- icul ades en su comp ensi´on. Es po ello que puede se buena idea disminui el ni el de abs acci´on, elegi un caso conc e o y mos a la aplicaci´on del algo i mo a dicho ejemplo. Adem´as, nume osos es udios es ´an a a o de que sea ambi´en el es udian e el que ap ende po s´ı mismo median e la in e acci´on con un juego elacionado con el concep o a es udia . Es po ello que se implemen a una aplicaci´on en Uni y que mues a las ideas p incipales de algunos de los algo i mos b´asicos y es uc u as de da os ´ıpicas, y que no se limi a a mos a su uncionamien o, sino que pe mi e la in e acci´on del usua io, gua dando ambi´en es ad´ıs icas sob e su endimien o. En es a memo ia se explican inicialmen e los obje i os y las aplicaciones simila es exis en es. En los cap´ı ulos siguien es, se desc ibe el desa ollo de la aplicaci´on. P ime o, se cen a en cada juego implemen ado y la in e acci´on pedida al usua io en cada caso; despu´es, en los aspec os del dise˜no y desa ollo de la aplicaci´on. La memo ia inaliza con los esul ados de las p uebas con usua ios. Palab as cla e Algo i mos, ap endizaje basado en juegos, es uc u as de da os, p uebas de usabilidad, Uni y. Abs ac Algo i hms and da a s uc u es a e co e subjec s in compu e science cou ses. In a i s app oach, he s uden may ind hem di icul . In consequence, i could be a good idea o use a lowe le el o abs ac ion, choose a conc e e example and show he low o he algo i hm applied o ha case. In addi ion, he e a e a lo o a icles ha uphold he bene i s o he s uden s i hey in e ac wi h a game abou hese concep s. The e o e, a Uni y game has been de eloped in o de o show he main concep s o hese mos common algo i hms and da a s uc u es. I allows use s o in e ac wi h i o make lea ning mo e a ac i e, and sa es da a abou hei pe o mance. In his wo k, ini ially, he aims o he applica ion a e explained, and simila games a e analyzed. Then, he e a e wo chap e s abou he de elopmen o he applica ion. The i s one is ocused on he games ha a e implemen ed and he use in e ac ion. The second one explains he design and he de elopmen o he game. Finally, he ou comes o he usabili y es s a e shown. Keywo ds Algo i hms, game-based lea ning, da a s uc u es, usabili y es ing, Uni y. 3 Cap´ı ulo 1 In oducci´on Las asigna u as de algo i mos y es uc u as de da os son b´asicas en los cu sos de ciencias de la compu aci´on. Adem´as, son muchos los au o es que de ienden que inco po a ideojuegos en el p oceso educa i o es una buena idea. Es o ha se ido de mo i aci´on pa a desa olla una aplicaci´on educa i a en Uni y sob e ciencias de la compu aci´on. En es e abajo se explica dicho juego educa i o sob e algo i mos y es uc u as de da- os. El obje i o es que el usua io pueda simula el lujo de un algo i mo haciendo acciones simila es a las que ha ´ıa el o denado sob e su memo ia, ap endiendo as´ı c´omo unciona el algo i mo. Adem´as, la aplicaci´on gua da es ad´ıs icas sob e el endimien o de los jugado es y iene ca ac e ´ıs icas ´ıpicas de los juegos como pun uaciones. En es e cap´ı ulo in oduc o io se exponen concep os b´asicos sob e juegos se ios, se analizan las aplicaciones simila es y se expone el plan de abajo as una e apa de in es igaci´on. El segundo cap´ı ulo se cen a en los algo i mos implemen ados en el juego y la in e acci´on eque ida al usua io. El e ce o explica el dise˜no global as´ı como uncionalidades adicionales. Se adjun an ambi´en algunos diag amas UML. Po ´ul imo, el cua o cap´ı ulo explica los esul ados de las p uebas de usabilidad ealizadas al inaliza el desa ollo. 1.1. In oduc ion Algo i hms and da a s uc u es a e co e subjec s in compu e science cou ses. In addi ion, a lo o esea che s uphold ha inco po a ing ideogames in educa ion is a good idea. This has been a mo i a ion o de elop a Uni y educa ional applica ion abou compu e science. In his wo k, his educa ional game abou algo i hms and da a s uc u es is explained. The aim is ha he use can simula e he low o an algo i hm by execu ing ac ions ha a e simila o hose execu ed by he compu e on i s memo y. Thus, he s uden would lea n how he algo i hm wo ks. In addi ion, he applica ion sa es s a is ics abou he pe o mance o he playe s and includes some game ea u es like sco es. In his in oduc o y chap e , basic concep s abou se ious games a e explained a e some esea ch. The second chap e ocuses on hese algo i hms implemen ed in he game and he in e ac ion ha is equi ed o playe s. The hi d one is abou he o e all design o he applica ion and addi ional unc ionali ies. Some UML diag ams a e shown in his chap e oo. Finally, he ou comes o he usabili y es s ha we e pe o med a e he de elopmen was inished a e explained in he ou h chap e . 4 1.2. In oducci´on a los juegos se ios. Concep os p inci- pales Dado que el obje i o de es e abajo es desa olla un juego se io educa i o sob e ciencias de la compu aci´on, en p ime luga se exponen concep os sob e es e campo. Es a in es iga- ci´on ha ayudado al dise˜no y desa ollo de la aplicaci´on, p opo cionando ideas ya p obadas po o os au o es. Es a secci´on in oduc o ia se basa p incipalmen e en la e e encia [1]. Se sabe que los juegos han es ado p esen es en las di e en es sociedades desde hace mucho iempo. Con la apa ici´on de o denado es, consolas y o os ma e iales in o m´a icos se ab ie on nue as posibilidades y se comenza on a desa olla los llamados juegos digi ales. Es e campo de los ideojuegos se ha desa ollado eno memen e en los ´ul imos a˜nos, y una de las cla es de es e c ecimien o es el hecho de p o oca en sus usua ios una eno me a acci´on. Como se de ini´o en [2], el jugado puede llega al llamado es ado men al de lujo, donde queda o al- men e concen ado e inme so en el juego. O o concep o elacionado es el de lujo del juego [3], ca ac e izado po concen aci´on exclusi a, sen imien o de con ol sob e el juego, ene eedback inmedia o de las acciones ealizadas y a on a me as cla as. Po an o, consegui ese es ado se ´a uno de los obje i os del equipo de desa ollo de un juego digi al. Es as ca ac e ´ıs icas de los juegos se pueden ap o echa pa a p op´osi os que aba can no solo el en e enimien o, sino ambi´en o os campos. En [1] se comen a el ejemplo de la ele isi´on. Pasado un iempo as su apa ici´on, se empeza on a desa olla p og amas con p op´osi os educa i os, po ci a un campo dis in o al en e enimien o. De hecho, algunos jue- gos de mesa ya en´ıan p op´osi os adicionales a di e i se. Po ´ul imo, es cla o que los juegos depo i os ienen la en aja adicional de mejo a la salud. Se de ine juego se io como aquel juego digi al que pe sigue en e ene y consegui al menos un obje i o m´as. No obs an e, no hay un consenso o al en es a de inici´on, ya que algunos au o es se cen an en la in enci´on del desa ollado del juego, mien as que o os se cen an en la in enci´on del usua io. En cambio, s´ı es com´un la idea de ene al menos un obje i o adem´as del en e enimien o. Es as me as adicionales se denominan obje i os ca ac e ´ıs icos. Los juegos se ios pueden se de cualquie g´ene o, ya que se puede busca la consecuci´on de los obje i os ca ac e ´ıs icos po medio de di e sas em´a icas. Si un juego se io iene ´exi o, el jugado se ´a dis in o despu´es de habe jugado espec o a an es: end ´a m´as conocimien o, mejo salud o sus opiniones hab ´an cambiado. El ´e mino “juego se io” gan´o popula idad en 2002 con el a ´ıculo de Sawye y Reje ski [4] y con el juego Ame ica’s A my [5]. Relacionado con los concep os de lujo explicados m´as a iba, Sinclai [6] in oduce el lujo dual pa a juegos se ios: hay que busca an o el a ac i o del juego (buena expe ien- cia de usua io) como su e ec i idad (consecuci´on del obje i o ca ac e ´ıs ico). El a ac i o se consigue con un equilib io en e la di icul ad y el ni el de habilidad del usua io. Como es e ´ul imo es din´amico (es espe able que la habilidad mejo e con la p ´ac ica del juego), hab ´ıa que adap a la di icul ad din´amicamen e ambi´en pa a que el jugado no caiga en el edio. El o o ex emo (la di icul ad supe a ampliamen e a las habilidades) se ca ac e iza po us aci´on po pa e del usua io. En cuan o a la e ec i idad, en es e a ´ıculo [6] se p esen a un juego se io elacionado con el depo e (uno de los llamados exe games). Po an o, la e ec i idad consis i ´ıa en encon a un equilib io en e la capacidad ´ısica del usua io y la in ensidad del eje cicio, man eni´endose siemp e la exigencia del juego en un in e alo que no esul e i ial pa a el usua io (no gene a ´ıa bene icio en la salud del mismo) pe o que ampoco 5 exija demasiado (pod ´ıan ocu i lesiones). Es o se ex iende a muchos o os g´ene os de juegos. Habi ualmen e se elacionan los concep os de juegos educa i os, “edu ainmen ” ([7], don- de se jun an educa ion yen e ainmen ) y ap endizaje basado en juegos (game-based lea ning, [7]) con el concep o de juegos se ios, ya que se es ablece la iden i icaci´on del obje i o ca ac- e ´ıs ico con el ap endizaje. Es o no es cie o, ya que el obje i o ca ac e ´ıs ico puede se muy di e so (pone se en o ma, desa olla habilidades sociales o de esoluci´on de p oblemas, p omo e cie os alo es). Po an o, los juegos educa i os y es o de concep os elacionados se iden i ican m´as bien como un subconjun o es ic o de los juegos se ios. Pese a que la indus ia de los juegos se ios ha c ecido ecien emen e, es ´a muy lejos de lle- ga al campo de los ideojuegos de en e enimien o (nomencla u a usada pa a aquellos cuyo obje i o es solo en e ene ). Una az´on de es o es que el p´ublico obje i o suele se mucho m´as educido y espec´ı ico que en el caso de ideojuegos de en e enimien o. O o incon enien e es que los p esupues os pa a el desa ollo de la aplicaci´on suelen se meno es. Adem´as, es m´as complejo su desa ollo, ya que habi ualmen e hay que inclui en el p oceso a expe os del dominio del obje i o ca ac e ´ıs ico. Es a mul idisciplina idad puede complica el desa ollo de la aplicaci´on, al con i i pe sonas con di e en es o mas de esol e p oblemas y de pensa , o incluso las disciplinas pueden ene e minolog´ıa dis in a. Po ´ul imo, como es un campo menos amplio, los desa ollado es de juegos se ios ienen menos e e encias en las que basa se. Como ya se ha comen ado, es buena idea (y no solo en juegos se ios, sino en cualquie ipo de juego) adap a se a la habilidad del usua io. Adem´as, el hecho de que cada juego se io enga unos usua ios obje i o muy espec´ı icos, hace a´un m´as necesa io si cabe la adap aci´on de la di icul ad a las habilidades. Dado que una de las p incipales amas de los juegos se ios son los juegos educa i os y en es a memo ia se explica el dise˜no y desa ollo de una aplicaci´on cuyo obje i o ca ac e ´ıs i- co es el ap endizaje, es in e esan e cen a se ambi´en en algunos aspec os educa i os. En el a ´ıculo mencionado an e io men e [7], M. P ensky asegu a que la mo i aci´on que despie an los juegos en los ni˜nos se debe al ap endizaje que p opo cionan (y es a mo i aci´on es deseable al en en a se a un ap endizaje). Los ideojuegos ense˜nan, en un ni el subyacen e, a ecopila in o maci´on y oma decisiones ´apidamen e, desa olla es a egias pa a supe a p oblemas o a coope a con o os jugado es. En cuan o a las di e en es o mas de ap ende , el modelo de e e encia e´o ico 8LEM (Eigh Lea ning E en s Model) [8] desc ibe el ap endizaje a pa i de ocho e en os de ap endizaje b´asicos, siendo un e en o de ap endizaje la desc ipci´on de la ac i idad de un alumno y un maes o en un con ex o educa i o. Los ocho e en os b´asicos son los siguien es: Imi aci´on: Obse a y, pos e io men e, imi a . El p o eso si e como modelo, pe o es e modelo no iene po qu´e se suyo. Recepci´on: Recibi in o maci´on emi ida po el p o eso in encionadamen e pa a ense˜na . Eje cicio: En campos en los que hay que au oma iza habilidades, se ap ende p ac i- cando. El u o debe guia y p opo ciona eedback adecuado. Explo aci´on: Ap ende median e p opia in es igaci´on con cie a libe ad, buscando en- e da os. El p o eso p opo ciona ´ıa uen es de in o maci´on adecuadas. 6 Expe imen aci´on: P ueba y e o , es deci , manipula el en o no y obse a consecuen- cias. El alumno p oba ´ıa as´ı odas las combinaciones posibles o aquellas que conside e in e esan es. C eaci´on: C ea nue o con enido, donde el ´e mino “nue o” se e ie e al alumno, no necesa iamen e con enido que no es ´e ya c eado po ninguna o a pe sona. Au o e lexi´on: Re lexiona sob e los p opios p ocesos cogni i os. Deba e: Ap ende median e in e acciones sociales, como deba es en los que se de iende una posici´on an e un con lic o, y es ´an p omo idos y mode ados po un u o . La in e acci´on puede se as´ınc ona (como en un o o) o s´ınc ona. Como ya se ha dicho, el desa ollo de juegos se ios es mul idisciplina . Po an o, si se quie- e desa olla un so wa e educa i o (po ejemplo), con iene conoce alguna de es as eo ´ıas pa a pode aplica los p incipios al desa ollo. Tambi´en ela i o a es e campo, el a ´ıculo [9] y o os esul ados an´alogos p oponen m´as cla es pa a un juego educa i o de ´exi o: p o- po ciona eedback inmedia o, ene g an ni el de in e acci´on, desa ´ıo y compe i i idad; y consegui que el usua io enga mo i aci´on in ´ınseca pa a juga . Como se indica en [1], un juego se io ambi´en puede se u ilizado a pa i de mo i aci´on ex ´ınseca (usa la aplicaci´on como he amien a pa a consegui cie a me a). Po ejemplo, un es udian e que quie e supe a una p ueba: u iliza la aplicaci´on pa a es udia y ap oba el examen, y despu´es ya no iene la necesidad de usa la. En el dise˜no de ideojuegos y juegos se ios in e ienen muchos o os ac o es. Adem´as de los ob ios (como pod ´ıa se de ini el p´ublico obje i o) hay o os como pensa en el pe il de los posibles jugado es (Ba le [10] public´o un modelo pa a juegos MUDs basado en kille s, achie e s,socialize s yexplo e s) y la adap aci´on del juego a cada ipo. Tambi´en hay que conside a aspec os como la necesidad de supe isi´on po pa e de un ins uc o , el en o no donde se debe juga , la posibilidad de ol e a juga (algunos juegos es ´an dise˜nados pa a juga una sola ez; o os, pa a juga a ias eces) o el iempo necesa io pa a juga (el iempo necesa io pa a cada pa ida es un aspec o impo an e). Las ideas y a ´ıculos sob e juegos se ios son en la ac ualidad muy nume osos. La aplicaci´on que se explica en es a memo ia ha seguido algunos de los concep os expues os en es a secci´on in oduc o ia, con mecanismos muy simples pe o que (se p e ende) mejo an la expe iencia de usua io espec o a las p ime as e siones que se implemen a on, donde no se u ie on en cuen a es os concep os. 1.3. In oducci´on a la aplicaci´on desa ollada Hay di e en es a ´ıculos sob e el p oceso de es udio de cu sos elacionados con las ciencias de la compu aci´on. Po ejemplo, en [11] se p esen an los esul ados de una encues a en la que pa icipa on m´as de 500 es udian es y p o eso es, con el obje i o de encon a aquellos pun os que m´as cues an a los es udian es de los p ime os cu sos de in o m´a ica. Es e a ´ıculo llega a la conclusi´on de que muchos alumnos desa ollan concep os supe iciales sob e la p o- g amaci´on (dominan la sin axis de cie o lenguaje de p og amaci´on y dominan ins ucciones aisladas) pe o allan al in eg a es o en p og amas comple os que esuel an un p oblema. Adem´as, los esul ados de la encues a asegu aban que los concep os que m´as di ´ıciles esul- aban e an di idi un p og ama en subp og amas, pun e os, ecu si´on y ipos abs ac os de 7 da os (TADs). En cuan o a m´e odos de ap endizaje, el p e e ido es basa se en p og amas de ejemplo, y des acan los m´e odos p ´ac icos sob e los e´o icos, aunque la eo ´ıa sea ambi´en impo an e. En odo caso, en ende las es uc u as de da os y los algo i mos m´as b´asicos es imp es- cindible pa a cualquie es udian e de in o m´a ica. En p ime luga , conoce los pe mi e oma la mejo decisi´on de dise˜no en e a un p oblema en cuan o a e iciencia y simplicidad. Pe o, m´as all´a de es o, en ende su uncionamien o en p o undidad pe mi e pode implemen a modi icaciones de los mismos. Es o si e pa a adap a los a p oblemas conc e os en los que las es uc u as o algo i mos necesa ios di ie en en alg´un pun o de los que se es udian como base, pe o la idea subyacen e es simila y puede se usada pa a esol e dicho p oblema. I o mando es a capacidad pa a pensa en qu´e usa pa a esol e el p oblema, as´ı como hace que el ap endizaje sea g adual y comenza po c´odigos sencillos, es lo que puede expli- ca que se es udien algo i mos que no se usan al ene ya implemen aciones mejo es (aunque hay una discusi´on sob e si la sencillez de c´odigo jus i ica su ense˜nanza en e a ine iciencia e inu ilizaci´on del mismo en el a ´ıculo [12]). En muchos cen os se man iene la ense˜nanza de los algo i mos de o denaci´on de complejidad cuad ´a ica O(n2). An e una p ime a ap oxima- ci´on, es in e esan e comp ende es os algo i mos pa a despu´es pode pasa al es udio de los algo i mos ´op imos en cuan o a complejidad O(nlog n), pe o menos in ui i os. En cualquie caso, no hay duda de la impo ancia de las asigna u as elacionadas con es- os concep os. Pa a muchos es udian es, la mejo o ma de en ende el uncionamien o de un algo i mo es e la aplicaci´on del mismo a un caso conc e o, lo que hace mucho m´as in ui i o el c´odigo asociado y pe mi e, incluso, que no sea necesa io memo iza lo en absolu o. Es o se elaciona con el a ´ıculo [11], donde no des aca especialmen e el m´e odo de ap endizaje de isualizaciones in e ac i as, pe o iene una buena acep aci´on (3.3 sob e 5, en l´ınea con o os m´e odos a excepci´on del ya mencionado uso de p og amas de ejemplo). Su gen as´ı in e e- san es aplicaciones que mues an el lujo de cie os algo i mos o la isualizaci´on de algunas es uc u as de da os: en [13] se p esen a un isualizado de es uc u as de da os a ni el con- cep ual (po ejemplo, los ´a boles se p esen an de la o ma esquem´a ica habi ual en luga de mos a el con enido de la memo ia del o denado ). El usua io puede ealiza acciones sob e es as es uc u as de da os y ap ecia c´omo an cambiando de o ma concep ual. En de ini i a, su gen aplicaciones que apo an un eedback mucho m´as isual que he amien as ´ıpicas de depu aci´on de c´odigo (debugging). Todo es o ha se ido de mo i aci´on pa a implemen a un juego (con m´as ca ga educa i a que l´udica) que explique algunos de los algo i mos b´asicos y es uc u as de da os p incipales de las ciencias de la compu aci´on. La in enci´on es simula la aplicaci´on del algo i mo sob e un caso conc e o y alea o io de en ada, siendo el usua io el que hace acciones simila es a las que ha ´ıa un o denado en ese caso conc e o. Po ejemplo, pa a o denaci´on po inse ci´on pod ´ıamos pensa que la ase en la que se hace hueco al elemen o a inse a consis e en que el alo de una posici´on se desplaza a la posici´on siguien e, cuando ealmen e se ob iene el alo de la posici´on iy se copia en la posici´on i+ 1. Es o, de o ma in e ac i a, se puede modela haciendo click en dicha posici´on iy a as ando a la posici´on i+ 1, lo que copia ´ıa el alo . Es as me ´a o as cla amen e no in e ienen en la comp ensi´on del algo i mo (se ´ıa simplemen e una peque˜na abs acci´on), y podemos deci que el usua io es ´a haciendo acciones simila es a las que ha ´ıa el o denado sob e su memo ia. Con la desc ipci´on dada, el juego se engloba ´ıa en el g´ene o de juegos de l´ogica o puzzles. 8 Cap´ı ulo 2 Algo i mos e In e acci´on 2.1. In oducci´on En es e cap´ı ulo se explica ´a la in e acci´on pedida en cada uno de los juegos implemen- ados en la aplicaci´on, eco demos: o denaci´on po inse ci´on, o denaci´on po el m´e odo de la bu buja, o denaci´on po selecci´on, o denaci´on po mezclas (pa e de la mezcla de dos lis as o denadas) y ´ecnica de la en ana deslizan e. Pa a cada uno de ellos, se mues an las ideas que ansmi e el u o ial asociado en el juego y se explica la in e acci´on eque ida, ponien- do ambi´en un ejemplo. El dise˜no y es uc u a global de la aplicaci´on, jun o con diag amas UML, se explica en el siguien e cap´ı ulo; se deja es e pa a lo espec´ı ico de los algo i mos implemen ados. Adem´as de lo mencionado, se explica pa a cada juego c´omo se ha ealizado el con ol del lujo; es deci , el con ol del a ance de la simulaci´on del algo i mo po pa e del usua io, as´ı como el con ol de la consis encia del modelo in e no en odo momen o espec o a la is a, es o es, espec o al es ado de la es uc u a de da os mos ada en la pan alla. Se ha in en ado que odas es as im´agenes que se adjun an cub an lo mejo posible odas las opciones y di e en es in e acciones de la aplicaci´on. En pa icula , se in en a mos a en es a memo ia an o los di e en es ex os sin pis as ac i as como aquellos en los que se han ac i ado las pis as (es a ´ecnica de adap aci´on de la di icul ad se explica con de alle en el cap´ı ulo 3). Pa a e ambi´en la de ecci´on an o de in e acciones e ´oneas como de in e acciones co- ec as o las di e en es pun uaciones esul an es en unci´on de los acie os y allos du an e el juego y del iempo empleado, se adjun a aqu´ı un ´ıdeo conjun o de oda la expe iencia en la aplicaci´on sob e la pa e de los u o iales y de los algo i mos. A lo la go del ´ıdeo se incluyen acciones inco ec as pa a mos a la ac i aci´on de las pis as. El ´ıdeo es ´a disponible en h ps://you u.be/K PyXDBppLQ An es de pasa a analiza cada algo i mo, una obse aci´on que ald ´a pa a odos los juegos es que las posiciones de los a ays se inicializan con alo es alea o ios en e -99 y 99. En el caso de o denaciones, el usua io end ´a que o dena es os alo es de meno a mayo simulando el algo i mo que es ´e p ac icando; en el caso de la ´ecnica de la en ana deslizan e, se ope a con sumas y es as de los alo es, ya que se ilus a la ´ecnica median e el p oblema de ob ene la suma m´axima de kelemen os consecu i os del a ay. 15 2.2. O denaci´on po inse ci´on En o denaci´on po inse ci´on, uno de los p ime os algo i mos es udiados, se dis inguen es ases en el juego, as´ı como las es e apas asociadas en el algo i mo que comp ueba que el usua io in e acciona co ec amen e. Es e algo i mo pe enece a o denaci´on na u al: se ealizan menos ope aciones cuan o m´as o denado es ´e inicialmen e el a ay. La complejidad es O(n2). Figu a 2.1: Diag ama de lujo co espondien e a o denaci´on po inse ci´on, con ano aciones sob e la in e acci´on eque ida. 2.2.1. Tu o ial del juego Se in en an ense˜na las bases del algo i mo y de la in e acci´on pedida con las siguien es e apas del u o ial: An es de en a en las ases del algo i mo, se in oduce o denaci´on po inse ci´on. Se dis inguen dos pa es en el a ay, una p ime a que siemp e es ´a o denada (inicialmen e con el p ime elemen o, y es ´a indicada en el juego usando colo e de) y una segunda pa e sin es a necesa iamen e o denada (indicada en el juego en colo blanco). Se indica que la in enci´on es, en odo momen o, inse a den o de la pa e o denada el p ime elemen o de la segunda pa e, has a que el a ay quede comple amen e o denado. 16 Figu a 2.2: Ideas b´asicas iniciales en el u o ial de o denaci´on po inse ci´on. En la siguien e e apa del u o ial, comienzan las animaciones que explican las es ases que se epi en en el algo i mo y los es ipos de in e acci´on usados en el juego. 1. Elegi la siguien e posici´on a inse a y gua da la en una a iable auxilia . En la e apa 1 se pide al usua io busca la siguien e posici´on cuyo alo se inse a ´a en la pa e o denada del a ay, y a as a dicha posici´on a la a iable auxilia ( ep esen ada po una posici´on sin da os y colocada en el juego ue a del a ay). Se explica que es e paso es pa a e i a pe de el alo a inse a , ya que a a se sob esc i o. Figu a 2.3: Paso 1: gua da el alo de la posici´on a inse a den o de la a iable auxilia . La animaci´on mues a el p oceso de a as a la posici´on con el alo -9. 2. “Hace hueco” en la pa e o denada del a ay al elemen o a inse a . En es e segundo paso se pide a as a , mien as sea necesa io, la posici´on j−1 a la posici´on jpa a copia el alo del a ay en una cie a posici´on a la siguien e. Es e p oceso, aco de con el algo i mo, se ealiza comenzando po la posici´on i(siendo ila posici´on del elemen o a inse a ) y yendo hacia el comienzo del a ay ( isualmen e, hacia la izquie da). Se a indicando la posici´on ac ual en colo ama illo pa a hace m´as isual el p oceso. 17 Figu a 2.4: Animaci´on que a as a la posici´on 0 a la 1 pa a eplica el alo 75. Es necesa io es e desplazamien o po que −9<75. Se pie de el alo -9 del a ay, pe o se man iene isible en odo momen o en la a iable auxilia . 3. Inse a el elemen o en la pa e o denada. Cuando en el segundo paso se llegue a un elemen o que ya es meno que el elemen o a inse a o se alcance el inicio del a ay, la segunda ase e mina (n´o ese que puede ocu i que la e apa 2 sea ac´ıa). En ese momen o, pod emos inse a o denadamen e el alo co espondien e a la e apa 1 de o ma que la p ime a pa e del a ay (ya o denada) c ece una unidad. Pos e io men e, el p oceso uel e a la e apa 1. La in e acci´on pedida es a as a la a iable auxilia a la posici´on donde se debe inse a el alo (es deci , donde se ha ealizado hueco). Figu a 2.5: Animaci´on a as ando el alo de la a iable auxilia hacia la posici´on 0 de la pa e o denada (la co ec a en es e caso), copiando el alo o igen en la posici´on des ino y log ando po an o que la pa e o denada del a ay c ezca en una unidad. 2.2.2. In e acci´on de allada con un ejemplo El u o ial mues a las ideas b´asicas del algo i mo y de la in e acci´on pedida, pe o eamos la in e acci´on de o ma m´as de allada, ya con un ejemplo en el que se e a al usua io a simula el algo i mo a pa i de un inpu alea o io. Se in en an aba ca odos los posibles eedbacks de odas las e apas, po lo que en las im´agenes siguien es se ha p o ocado la ac i aci´on y desac i aci´on de las pis as pa a mos a los di e en es ex os. 18 Figu a 2.6: Paso 1: Lle a la siguien e posici´on a inse a a la a iable auxilia . Figu a 2.7: Paso 2: Desplaza copiando pa a hace hueco al 61 en la pa e o denada ( ex o sin pis as). 19 Figu a 2.8: Paso 2: Desplaza copiando pa a hace hueco al 61 en la pa e o denada ( ex o con pis as). Figu a 2.9: Paso 3: A as a la a iable auxilia a la posici´on co ec a pa a copia el alo , y log a un suba ay o denado de 2 posiciones. El p oceso ol e ´ıa a empeza , eniendo que inse a el alo -50 en la pa e o denada. 20 Un ´ul imo comen a io es que si la ase 2 es ac´ıa (no hacen al a desplazamien os), en onces no se pide ninguna in e acci´on en es a ase. Las pa es 1 y 3 pe manece ´ıan iguales, aunque en es e caso sean acciones innecesa ias al es a gua dando un alo en una a iable auxilia e inmedia amen e ecupe ando el alo . Se ha implemen ado as´ı po homogeneidad y pa a omen a la idea de ac ua de o ma me ´odica. 2.2.3. Algo i mos de con ol y comp obaci´on El modelo se co esponde con la clase Inse ionSo Manage , que se comunica p inci- palmen e con A ayPosInsSo y que iene los siguien es a ibu os y m´e odos. A ibu os. • alues:A ay con los alo es a o dena , que se a modi icando aco de a las ac- ciones del usua io. •s epNumbe : N´ume o de e apa en que se encuen a el p oceso. •nex Posi ionS ep1: En e o que indica la siguien e posici´on a inse a en la pa e o denada. •numbe ToInse : Valo a inse a en la pa e o denada. •mo esS ep2: N´ume o de acciones eque idas en el paso 2. Se conside a acci´on de la segunda e apa a cada uno de los desplazamien os de una posici´on a la siguien e pa a copia el alo . •comple edS ep2: Acciones ya comple adas en el paso 2. •posS ep3: Posici´on del a ay donde inse a el alo en la e apa 3. M´e odos. •M´e odos de inicializaci´on, ge yse . • es a (): Reinicia los alo es pa a empeza un nue o juego. La e apa pasa a se la 1, la siguien e posici´on a inse a pasa a se la segunda (posici´on 1) e indica ambi´en que no se ha comple ado ning´un paso en la e apa 2. •s ep1Comple ed(): Debe se llamado cuando el usua io comple a con ´exi o la e apa 1. Recalcula y ac ualiza sus a ibu os, cambiando s epNumbe al alo 2, gua dando el alo que hay que inse a en el a ibu o numbe ToInse , calcu- lando la posici´on donde hay que inse a ese alo (median e el m´e odo p i ado indPosToInse () que se explica m´as adelan e) y calculando po ´ul imo el n´ume- o de desplazamien os necesa ios, usando la di e encia en e la posici´on po la que se encuen a el p oceso de o denaci´on y la posici´on en la que hay que inse a el alo , es deci , nex Posi ionS ep1 - indPosToInse (nex Posi ionS ep1). Se usa una a iable auxilia pa a e i a los c´alculos edundan es que p o oca ´ıa llama a la unci´on indPosToInse () dos eces. •s ep2Posi ion(): Indica la siguien e posici´on con la que se debe ´ıa in e acciona en la e apa 2. •subS ep2Comple ed(): Debe se llamado as cada mo imien o co ec o del usua- io en la e apa 2. Ac ualiza sus a ibu os, como el a ay alues. Inc emen a el a ibu o del n´ume o de desplazamien os ya comple ados en la e apa 2 y, de o ma an´aloga, dec emen a el n´ume o de desplazamien os es an es. 21 •s ep2Comple ed(): Debe se llamado as comple a oda la e apa 2. Ac ualiza sus a ibu os indicando que la e apa es aho a la e ce a, e inicializando el n´ume o de desplazamien os comple ados en la e apa 2 a ce o, de ca a a la siguien e i e aci´on. •s ep3Comple ed(): Llamado as comple a la e apa 3. Recalcula los a ibu os, ac ualizando el a ay median e alues[posS ep3] = numbe ToInse ; y de ol- iendo el es ado a la e apa 1. • inished(): De uel e un alo bool que indica si el p oceso de o denaci´on ha e minado. Bas a compa a si se es ´a en la e apa 1 pe o la siguien e posici´on a inse a coincide ya con la longi ud del a ay (es e ama˜no iene dado como cons an e en la clase U ili ies). • indPosToInse (): M´e odo p i ado que ayuda a ecalcula los a ibu os as inaliza la e apa 1. Se ealiza una b´usqueda desde una cie a posici´on o igen del a ay hacia el comienzo del mismo, has a que se alcanza el inicio de la es uc u a o has a que se encuen a una posici´on al que su alo es meno o igual que el alo de la posici´on o igen. Es deci , es e m´e odo calcula la posici´on obje i o a la que iene que llega el siguien e elemen o a inse a . Figu a 2.10: C´odigo del m´e odo p i ado indPosToInse () . 2.3. O denaci´on po selecci´on O o de los algo i mos de complejidad cuad ´a ica es la o denaci´on po selecci´on. Tambi´en se dis ingue en e una pa e inicial o denada (inicialmen e ac´ıa e indicada en el juego en e de) y el es o del a ay (indicado en el juego en blanco); el algo i mo consis e en busca el m´ınimo de es a segunda pa e e inse a lo en la p ime a pa e, in e cambiando los alo es de las dos posiciones que in e ienen. Una p opiedad de es e algo i mo es que siemp e ealiza el mismo n´ume o de ope aciones (con la sal edad de posibles in e cambios “ i iales” (una posici´on con s´ı misma) que se pod ´ıan e i a ). La in e acci´on que se pide al usua io en es e juego es, p obablemen e, la m´as sencilla de odas, como se e ´a a con inuaci´on. Como ya se ha dicho, es a implemen aci´on de o denaci´on po selecci´on ealiza siemp e el mismo n´ume o de ope aciones. Es o se ep esen a cla amen e en el eedback que se da al comple a el juego, ya que siemp e se necesi an el mismo n´ume o de acciones. Sin emba go, es o no debe con undi al usua io: la in e acci´on en es e juego pe mi e que el usua io acceda al elemen o m´ınimo de la segunda pa e de un is azo, sin consumi acciones. Es as ope aciones en una compu ado a s´ı hay que ealiza las. 22 Figu a 2.11: Diag ama de lujo de o denaci´on po selecci´on, con ano aciones sob e la in e - acci´on del juego. Figu a 2.12: Diag ama de lujo de m´as bajo ni el de o denaci´on po selecci´on, de allando la ins ucci´on del diag ama an e io swap(a[i], a[posMin(a[i:])]). 23 2.3.1. Tu o ial del juego En p ime luga , se p esen a una in oducci´on a es a o denaci´on: Figu a 2.13: In oducci´on del u o ial de o denaci´on po selecci´on. Una ez comenzado el juego, se p esen an dos opciones de in e acci´on: 1. Si el m´ınimo de la segunda pa e no queda ya en la p ime a posici´on de es a pa e no necesa iamen e o denada, se busca dicho alo y se a as a a la siguien e posici´on a o dena : Figu a 2.14: El m´ınimo de la segunda pa e (al inicio, la segunda pa e coincide con odo el a ay) es a as ado a la siguien e posici´on a o dena . 2. Si el m´ınimo de la segunda pa e en alguna e apa coincide con su posici´on des ino (es deci , queda ya o denado), la in e acci´on que se equie e es simplemen e hace click en esa posici´on: 24 •posSo ed: Posici´on has a la cual se iene segu idad que el comienzo del a ay es ´a o denado. Es deci , el ango [0,posSo ed) es ´a o denado. •posBubble: Posici´on del elemen o que hay que in e cambia con su posici´on an e- io , es deci , con el que hay que in e ac ua en cada momen o. M´e odos. •M´e odos de inicializaci´on, ge yse . •ini ialize(): Inicializa el a ibu o posBubble con ayuda del m´e odo p i ado que se explica ´a pos e io men e calcula ePosBubble(), pasando como pa ´ame o el alo U ili ies.LENGTH-1pa a que la b´usqueda se ealice en oda la es uc u a. •subS epComple ed(): Ac ualiza los a ibu os as cada in e acci´on co ec a, in- e cambiando alues[posBubble] y alues[posBubble-1]y ecalculando la si- guien e posici´on con la que in e acciona median e calcula ePosBubble() con el pa ´ame o adecuado. •s epComple ed(): Ac ualiza los a ibu os cada ez que el usua io comple a un eco ido desde el inal del a ay has a el comienzo in e cambiando posiciones. Tend emos una posici´on adicional o denada, y pa a la siguien e posici´on con la que hay que in e acciona se lanza una b´usqueda en odo el a ay de nue o median e calcula ePosBubble(). • inished(): Indica si el p oceso de o denaci´on ha e minado. Se implemen a com- p obando que la b´usqueda del siguien e elemen o con el que in e acciona llega al inicio de la es uc u a, es deci , el a ay ya es ´a o denado. • es a (): Reinicia el modelo, inicializando los a ibu os. Se ac ualiza a 0 la posici´on has a la cual enemos un suba ay o denado con segu idad. •calcula ePosBubble(): M´e odo p i ado auxilia que busca desde la posici´on in- dicada en el pa ´ame o hacia el inicio del a ay el p ime pa de elemen os conse- cu i os (a, b) al que a > b. N´o ese que es e m´e odo auxilia se usa en muchos de los an e io men e explicados. Figu a 2.23: C´odigo del m´e odo p i ado auxilia que pe mi e implemen a muchos de los m´e odos es an es de es a clase. 2.5. O denaci´on po mezclas (1) La o denaci´on po mezclas (en ingl´es, me ge so ) es ya un algo i mo ´op imo en cuan o a complejidad en iempo (O(nlog n)). Es e algo i mo, pe enecien e al g upo de los algo i mos “Di ide y ence ´as”, ue in en ado po John on Neumann en 1945. Se basa en dos ideas: 31 ecu si´on y mezcla de dos lis as o denadas. En la escena Me geSo 1 del juego se p e ende que el usua io abaje sob e la mezcla de dos a ays o denados. En es a escena, al p incipio, se p esen an dos a ays de cua o elemen os ya o denados, sepa ados en e s´ı. Debajo, se coloca la lis a (inicialmen e en blanco) sob e la que se cons- ui ´a el a ay o denado esul ado de la mezcla de las dos lis as supe io es. La in e acci´on consis e en pensa el ´ındice que se lle a en cada lis a en un momen o de e - minado (aunque es o se indica cla amen e usando colo es). Aho a, se compa a an los elemen- os de cada lis a en sus espec i os ´ındices (es deci , lis a0[indice0] ylis a1[indice1]). T as elegi el meno de los dos, dicha posici´on se a as a a la siguien e posici´on a comple a del a ay in e io . 32 Figu a 2.24: Diag ama de lujo de la mezcla de dos lis as o denadas. 2.5.1. Tu o ial del juego El u o ial de es e juego explica median e animaciones lo que se ha indicado en la in o- ducci´on an e io . Inicialmen e se explica el p op´osi o. Despu´es, comienzan las animaciones que mues an el p oceso. 33 Figu a 2.25: En p ime luga , se in oduce la mezcla de dos lis as o denadas. 1. Ambos ´ındices comienzan en ce o, y se compa an po an o las posiciones iniciales de ambos a ays. El alo in e io es el que se inse a en el a ay esul ado, median e una in e acci´on d ag-and-d op como habi ualmen e. Figu a 2.26: lis a0[indice0] = lis a0[0]= 9 <17 = lis a1[0] = lis a1[indice1], po lo que se a as a la p ime a posici´on del a ay 0 a la es uc u a esul ado. Se inc emen a el ´ındice de la p ime a lis a (indice0), indic´andolo en el juego con posiciones en g is ( e siguien e pun o). 2. Se compa an de nue o los alo es apun ados po los ´ındices co espondien es (uno de los dos ´ındices iene que habe cambiado). En el u o ial, la animaci´on mues a el desplazamien o del segundo elemen o, de nue o omando como o igen la p ime a lis a. 34 Figu a 2.27: El u o ial pasa a mos a que indice0 == 1u ilizando una posici´on en g is en la p ime a lis a. Como 13 <17, la animaci´on mues a que se debe a as a el alo 13 al a ay esul ado. 3. Pa a ilus a un ejemplo en el que se oma como o igen la segunda lis a, el u o ial con in´ua un paso m´as. 4. Finalmen e, aunque es muy in ui i o cu´ando a a acaba el juego, el u o ial e mina con la animaci´on del mo imien o inal, m´as bien pa a pode explica en el ex o asociado que el p oceso acaba cuando los ´ındices de ambas lis as o igen son iguales a su longi ud: 2.5.2. In e acci´on de allada con un ejemplo En la subsecci´on an e io ya se han explicado con su icien e de alle las in e acciones pedidas, usando el ejemplo del u o ial (que es un ejemplo ijo (es deci , no alea o io) y seleccionado con cuidado pa a se ilus a i o). Sin emba go, pa a e el ex o que se mues a al usua io du an e el juego, an o en su e si´on sin pis as como en su e si´on con pis as si el usua io se bloquea en un paso, eamos las dos p ime as in e acciones de o o ejemplo, con inpu alea o io: 35 Figu a 2.28: P ime a in e acci´on, con el ex o sin pis as: se indica que hay que a as a cie a posici´on de cie o a ay a las posiciones in e io es. Figu a 2.29: Segunda in e acci´on, p o ocando que se ac i en las pis as al alla a ias eces: se indica la posici´on y la lis a con la que se debe in e acciona . 2.5.3. Algo i mos de con ol y comp obaci´on La inicializaci´on de los alo es en es e caso es lige amen e dis in a al es o: como los dos a ays a mezcla ienen que es a ya o denados, cada posici´on no se puede inicializa de o ma indi idual, ya que depende de o as. La clase co espondien e al modelo de es a pan alla es Me geSo 1Manage , que in e - acciona p incipalmen e con A ayPosMe geSo 1. Se ha c eado en el modelo la es uc u a in e ac ionMe geSo 1 pa a encapsula la in o maci´on de la siguien e in e acci´on que se le pedi ´a al usua io: n´ume o de lis a donde es ´a la siguien e posici´on a inse a , as´ı como el ´ındice de la posici´on. Los a ibu os y m´e odos de Me geSo 1Manage son los siguien es. A ibu os. • alues0, alues1: Lis as con los alo es a mezcla . •index0,index1:´ Indices de las espec i as lis as. M´e odos. •M´e odos de inicializaci´on y ge . •s epComple ed(): Llamado as una in e acci´on co ec a, inc emen a el ´ındice adecuado. 36 •ge Nex In e ac ion(): De uel e un obje o in e ac ionMe geSo 1 que encap- sula la siguien e in e acci´on que debe hace el usua io. Se comp ueba si alguna de las dos lis as ha sido ago ada. Si ninguna de las dos es ´a ago ada, se busca aquella al que su ´ındice apun a al alo meno . Se adjun a imagen de es e m´e odo. •ge Nex Index(): De uel e la siguien e posici´on a ellena del a ay esul ado (index0 + index1). • inished(): Indica si el p oceso ha e minado, comp obando si el ´ındice de ambas lis as es igual a su longi ud. • es a (): Reinicia el juego, inicializando de nue o los a ibu os. Los ´ındices uel en a 0, y las lis as se c ean con nue os alo es alea o ios. 2.6. T´ecnica de en ana deslizan e 2.6.1. In oducci´on a la ´ecnica In o malmen e, la en ana deslizan e se pod ´ıa explica como una ´ecnica en la que una subes uc u a se desplaza po una es uc u a mayo . Po ejemplo, un suba ay que se des- plaza po un a ay (es deci , en cada caso se ienen en cuen a solamen e cie as posiciones consecu i as del a ay mayo ); ambi´en pod ´ıa se una peque˜na ma iz que se desplaza po una ma iz mayo . En de ini i a, la cla e de es a ´ecnica es que en cada mo imien o la sub- es uc u a solamen e cambia algunas de sus ca ac e ´ıs icas, y no odas, po lo que no hace al a ecalcula la ope aci´on asociada a la subes uc u a en cada paso, sino hace un c´alculo inicial y pos e io men e ajus a el c´alculo solamen e eniendo en cuen a los cambios que se han ealizado. Expliquemos es o con m´as de alle, usando el ejemplo que se ha implemen ado en el juego: dado un a ay de longi ud ncuyos alo es son n´ume os en e os, que emos encon a la suma m´axima de kelemen os consecu i os (pa a k≤n). Una posible implemen aci´on que de uel e el esul ado co ec o consis e en coge los kp ime os elemen os (posiciones 0 a k−1, ambas incluidas), suma los e inicializa el m´aximo a es e alo . Pos e io men e, se oman los ele- men os co espondien es a las posiciones 1 has a la k, se suman y se compa a el esul ado con el m´aximo inicializado an e io men e, omando como m´aximo p o isional el mayo alo de en e es os dos. El p oceso con in´ua, calculando en cada caso la suma de kelemen os consecu i os del a ay subyacen e y compa ando el esul ado con el m´aximo p o isional. Al inal, ob enemos el esul ado co ec o median e es e algo i mo de complejidad O(n·k). Pe o es a complejidad se puede educi , ya que se es ´an ealizando muchos c´alculos edundan es: al pasa de suma las posiciones ihas a k+i−1 (supongamos un ejemplo y un alo de 37 i al que k+isiga en ango) a suma las posiciones i+ 1 has a k+i(ambas incluidas), solamen e es ´an cambiando en la suma los ´e minos co espondien es a las posiciones i(cuyo alo desapa ece en la suma) y k+i(cuyo alo no es aba en la suma, y aho a apa ece). Po an o, la o ma adecuada de implemen a el p oceso se ´ıa hace el c´alculo inicial, pe o despu´es bas a con es a a la suma ya calculada el alo de la posici´on que deja de se conside ada, y suma a la suma ya calculada el alo de la posici´on que en a a se conside ada. Podemos e es o como una en ana (subes uc u a, suba ay) de longi ud k, que aba ca inicialmen e las posiciones iak+i−1, y que se desplaza una unidad “hacia adelan e”: aho a aba ca las posiciones i+1 a k+i. Bas a ´ıa en onces es a el ex emo izquie do de la en ana o iginal, y suma el alo de la posici´on del ex emo de echo de la misma, que ha pasado a conside a se. La complejidad en es e caso pasa a O(n). El caso de una ma iz (a ay bidimensional) es simila : al mo e una subma iz una uni- dad (una ila m´as, una ila menos, una columna m´as o una columna menos), en gene al (sal o casos ex emos, como conside a una subma iz ila y mo e la po ilas) hay elemen os que siguen es ando den o de dicha subma iz, mien as que o os s´ı que cambian. Bas a ´ıa hace el ajus e conside ando los elemen os que deja de aba ca la subes uc u a y aquellos que pasan a es a aba cados po ella. Es a ´ecnica ambi´en se puede adap a a p oblemas que no p esen an una elaci´on an ob ia con la misma: encon a anag amas de cie a palab a den o de un ex o. Si buscamos anag amas de una palab a de longi ud ken un ex o de longi ud n, se desplaza po el ex o (que es un a ay de ca ac e es) un suba ay de longi ud k. En es e caso, la ope aci´on asociada a la en ana es la ecuencia con que apa ecen las le as: inicialmen e se calcula la ecuencia de apa ici´on de los kp ime os ca ac e es, pe o al desplaza la en ana bas a con es a una apa ici´on al ca ac e que sale de la subes uc u a, y suma una apa ici´on al ca ac e que en a. Si las ecuencias de apa ici´on de la en ana coinciden con las ecuencias de apa ici´on de la palab a de la que buscamos anag amas, hemos encon ado un anag ama, es deci , una pe mu aci´on de los mismos ca ac e es. Figu a 2.30: C´odigo Py hon pa a el p oblema de la suma m´axima de kelemen os consecu i os de un a ay. Se adjun an comen a ios con las e apas que se dis inguen en la in e acci´on. 38 Figu a 2.31: Diag ama de lujo del p oblema de la suma m´axima de kelemen os consecu i os. Las ano aciones indican las di e en es e apas conside adas y la in e acci´on eque ida. 39 2.6.2. Tu o ial del juego En p ime luga , se expone el p oblema que ya se ha comen ado, as´ı como los elemen os con los que se a a in e acciona : Figu a 2.32: In oducci´on del u o ial del juego. Al pulsa el bo ´on pa a pasa al siguien e paso del u o ial, se pasa al paso 1 del algo i mo (se dis inguen dos pasos, donde el segundo iene es sube apas posibles): 1. Hace la suma inicial: el u o ial mues a la animaci´on de suma los p ime os kelemen- os, a as ando las posiciones al bo ´on e de de “+”. Figu a 2.33: Hace la suma inicial: se mues a la animaci´on de la suma de las es p ime as posiciones. En la imagen, ya se han sumado las dos p ime as posiciones (colo e de) y se es ´a sumando la e ce a posici´on. 2. Desplaza la en ana y compa a las sumas con el m´aximo p o isional. Es a e apa iene es sube apas, con es in e acciones asociadas: a) Desplaza la en ana (1): Se mues a la animaci´on que a as a el ex emo izquie - do de la en ana al bo ´on de la es a, pa a deja de ene en cuen a ese elemen o en la suma o al. 40 acie o o el e o del usua io; po ´ul imo, el e ce o ac ualiza las ins ucciones seg´un la e apa del juego y seg´un si se han ac i ado las pis as. Figu a 3.3: Todas las clases A ayPos implemen an las in e aces que pe mi en hace d ag- and-d op. Adem´as, he edan de MonoBeha iou , es deci , son sc ip s. Game. Tipo enume ado con un posible alo pa a cada juego y men´u, con un alo adicional pa a de ec a e o es. A ayCon olle yMe geSo 1Con olle . Ges ionan odos los bo ones que compo- nen el a ay de o ma global. Tambi´en ealizan median e c´odigo las animaciones del comienzo de cada juego. Me geSo 1Con olle es necesa io po que la dis ibuci´on que se p esen a en es a pan alla es dis in a al es o. Su m´e odo m´as impo an e es loca e(), que ecoloca las posiciones a su luga adecuado en la escena as cada acci´on del usua io. GameOp ions. Se enca ga de los bo ones de einicio y ol e hacia a ´as de odos los juegos. Conoce la acci´on que debe ealiza seg´un el pa ´ame o game que ecibe en los m´e odos es a Selec ed() ybackSelec ed(). SceneCon olle . Ges iona el cambio de escena y el cie e de la aplicaci´on al hace click en el bo ´on de sali . O he Op ionsCon olle . Con ola la animaci´on del pop-up del panel de o as opcio- nes, despleg´andolo u ocul ´andolo seg´un el bo ´on pulsado. SlidWindowNewMax. Es simila a los sc ip s que ienen los bo ones que con o man el a ay, es deci , A ayPos(Juego), aunque es e caso es algo excepcional. La az´on es que en la ac i idad de desplazamien o de en ana hay un elemen o adicional que s´ı admi e in e acci´on. As´ı, el bo ´on de nue o m´aximo necesi a ene un sc ip con c´odigo que se ejecu e al se pulsado pa a comp oba si esa in e acci´on es co ec a o no. El c´odigo se co esponde con su m´e odo newMaxBu onClicked(). ShowS a is ics. Realiza el olcado del ex o de los da os de endimien o al ´a ea de ex o p esen e en la pan alla de es ad´ıs icas, pa a pode mos a las. Se ayuda del m´e o- do ge S a is icsTex () de Da aManage , que a su ez iene una ins ancia de Playe con esa in o maci´on eque ida. Da aManage . Clase que ges iona los da os de la aplicaci´on. Se implemen a usando el pa ´on de dise˜no Single on pa a ene una ´unica ins ancia en odo el juego (adem´as, 47 es segu o en e a concu encia). Sus a ibu os son la p opia ins ancia (como en cual- quie Single on), el lock de p o ecci´on, una a iable bool loaded que indica si ya se han ca gado los da os (pa a ca ga los una sola ez aunque se eciban m´as pe iciones), a ias u as pa a la ges i´on de a chi os, a ibu os pa a ges i´on de pun uaciones y de es ad´ıs icas, a ibu os pa a con ola el sis ema de log y un en e o con el es ado de las pis as (solamen e se mues an las pis as en el es ado 2). Adem´as iene una ins ancia de Playe , encapsulando la in o maci´on de un usua io. En la ca ga de da os (m´e odo loadDa a()) se usa la clase Bina yFo ma e , y es po es o po lo que se ha explicado unos p´a a os an es que cie as clases son se ializables. Da aManage ambi´en se en- ca ga de ges iona las es ad´ıs icas de un juego, como la pun uaci´on. Cuando un juego acaba, el m´e odo gameFinished() indica a la ins ancia de Playe que ac ualice sus es ad´ıs icas a˜nadiendo las de la pa ida que acaba de e mina . Tambi´en iene m´e odos des inados al sis ema de log, aunque es os se explica ´an m´as adelan e. Po ´ul imo, es el enca gado de gua da los da os pa a que la p ´oxima ez que se en e a la aplicaci´on las es ad´ıs icas sigan disponibles. Pa a es o, de nue o se usa Bina yFo ma e y se gua da la ins ancia de Playe median e el m´e odo Se ialize(). LoadDa a. Al ab i la aplicaci´on, ejecu a la ca ga de da os, indicando ambi´en al Da aManage la u a Applica ion.pe sis en Da aPa h. U ili ies. Clase con cons an es y con algunos m´e odos auxilia es, como comp oba si dos ec o es ep esen an posiciones ce canas (con cie o ma gen EPS_NEAR) o ans o - ma una a iable de ipo TimeSpan a segundos. 3.1.2. Diag amas de secuencia de dos p ocesos p incipales En p ime luga se mues a un diag ama de secuencia ilus a i o pa a el caso de uso de consul a es ad´ıs icas. Es o pe mi e en ende mejo y complemen a lo expues o en la secci´on an e io ela i o a las es ad´ıs icas. Po ´ul imo, se ep esen a median e o o diag ama de secuencia la anidaci´on de las llamadas en el p oceso de comp oba si una in e acci´on del usua io es co ec a. Se oma como ejemplo el juego de o denaci´on po selecci´on y se mues a uno de los posibles eco idos (no se conside an en el diag ama las dis in as opciones de e apas en el juego o in e acci´on co ec a o e ´onea debido a cues iones de espacio). Consul a es ad´ıs icas. Uno de los casos de uso de la aplicaci´on es consul a las es- ad´ıs icas del usua io. La cadena de llamadas que se gene a da luga al siguien e diag ama de secuencia. 48 Figu a 3.4: Diag ama de secuencia pa a el caso de uso de consul a es ad´ıs icas. Se conside an solo implemen ados dos juegos po cues iones de espacio, pe o las llamadas desde la ins ancia de Playe segui ´ıan al es o de ins ancias GameIn o(Juego). Comp oba in e acci´on. O a de las unciones esenciales que debe ealiza la aplicaci´on es e i ica que las acciones que ealiza el usua io son co ec as. Se adjun a un diag ama de secuencia co espondien e a una de es as comp obaciones. 49 Figu a 3.5: Diag ama de secuencia de la comp obaci´on de una in e acci´on del usua io en el juego de o denaci´on po selecci´on. Se conside a solo un eco ido de las dis in as opciones que se p esen an y se mues a la anidaci´on de las llamadas en el caso en que la siguien e posici´on no es ´a ya o denada, el usua io in e acciona co ec amen e, el juego no inaliza as esa in e acci´on y el a ay con el log no se llena al esc ibi una posici´on adicional. 3.2. Feedback p opo cionado y o as uncionalidades 3.2.1. Feedback Como se ha discu ido analizando a ´ıculos en el cap´ı ulo 1 de es a memo ia, muchos au o es coinciden en la necesidad de p opo ciona eedback adecuado, as´ı como adap a la di icul ad del juego a la habilidad del usua io. Po ejemplo, es os emas se discu en en [1], [6] o [3]. El juego que se p esen a en es a memo ia iene es ipos de eedback de di e en e na u aleza: Acie os/E o es: T as cada acci´on, el sis ema in o ma de si la in e acci´on es co ec a 50 o e ´onea median e ex o en la pan alla del juego. In e namen e, se ac ualiza la pun ua- ci´on que se mues a al inaliza dicho juego y se ac ualiza el modelo de adap aci´on de la di icul ad din´amicamen e. Es os dos concep os que se acaban de menciona cons i uyen el es o de o mas de eedback de la aplicaci´on, y se a a ´an a con inuaci´on. Pun uaciones y es ad´ıs icas: Pa a in oduci m´as componen e l´udico y ´ıpico de juegos, se inco po an pun uaciones y es ad´ıs icas. Al acaba cada pa ida se mues a el iempo que se ha a dado en comple a la y una pun uaci´on asociada que depende de dicho iempo y del n´ume o de acie os y de e o es. Finalmen e, ambi´en se mues a el n´ume o de acciones necesa ias pa a comple a el juego (es e ´ul imo da o es m´as bien solo in o ma i o). En cuan o a la pun uaci´on, se busca un equilib io en e con igu a- ciones iniciales. Si es sencilla, se eque i ´an menos acciones y po an o hab ´a menos opo unidades de suma pun os, pe o es as con igu aciones sencillas ambi´en debe ´ıan comple a se en menos iempo, penalizando menos la pun uaci´on. Con igu aciones a- les que son necesa ias muchas acciones pa a acaba lle a ´ıan a una mayo can idad de acie os ( ambi´en de allos, segu amen e) pe o ambi´en penaliza ´ıa m´as la pun uaci´on po el iempo a dado. Figu a 3.6: Imagen del eedback p opo cionado al e mina un juego, en es e caso o denaci´on po selecci´on. Adem´as del sis ema de pun uaciones, se gua dan es ad´ıs icas in e esan es pa a el usua- io desde el pun o de is a e´o ico. Po ejemplo, pa a cada pan alla se cuen an el n´ume o de pa idas inalizadas, el n´ume o de acciones eque idas o ales en dichas pa idas o el iempo o al empleado. Combinando es os da os, podemos mos a al usua io es ad´ıs i- cas como el n´ume o medio de acciones eque idas en una pa ida. Tambi´en podemos consegui da os sob e su endimien o, como el iempo medio empleado pa a cada acci´on. Se ha decidido mos a en la pan alla de “Es ad´ıs icas”, pa a cada juego implemen a- do, la mayo pun uaci´on conseguida, el n´ume o de pa idas e minadas, la media de acciones po juego, el iempo o al empleado en dicha pan alla y la media de iempo empleado en cada acci´on. Si un juego no iene pa idas e minadas, se indica que no hay da os. 51 Figu a 3.7: Cap u a de pan alla de las es ad´ıs icas mos adas. Adap aci´on din´amica de la di icul ad: Segu amen e el m´e odo m´as e icaz pa a es e ipo de aplicaciones. En es e caso, se basa en p opo ciona mayo o meno in o maci´on en el ex o que se mues a en cada e apa de cada juego. Se puede modela como un dia- g ama de es es ados, pe o donde solamen e se han implemen ado dos salidas (mos a pis as o no). El diag ama de es ados es el siguien e. Figu a 3.8: Diag ama de es ados co espondien e al sis ema de adap aci´on din´amica de la di icul ad. En dicho diag ama ap eciamos: •Es ado “Sin pis as ( ue e)”: Es el es ado inicial. P ime o se e a al usua io a esol e el p oblema sin pis as. Mien as se acie e, el sis ema pe manece en es e es ado; an e un e o , el sis ema cambia al siguien e es ado que se a a explica a con inuaci´on, donde segui ´a sin mos a las pis as a´un. •Es ado “Sin pis as (d´ebil)”: Se sigue sin mos a ayuda ex a, pe o el usua io ya ha come ido un allo. An e un acie o, se uel e al es ado an e io men e explicado; sin emba go, si alla, ya sabemos que ha enido dos allos seguidos. Pa a e i a la us aci´on del usua io y que se quede bloqueado en alg´un paso, el es ado cambia 52 a “Con pis as” y el ex o se ac ualiza dando m´as in o maci´on, como la posici´on con la que hay que in e acciona o el mo imien o que hay que ealiza . •Es ado “Con pis as”: Las ´ul imas dos in e acciones (al menos) han sido allidas. Las pis as se ac i an y se mues a m´as in o maci´on in en ando que el usua io encuen e la in e acci´on co ec a. Es o, a su ez, le puede da m´as pis as pa a en ende la in e acci´on pedida en gene al y con ello el algo i mo en es udio. Si se acie a, se desac i an las ayudas comple amen e (es o es, se uel e al es ado “Sin pis as ( ue e)”); mien as se alle, el sis ema se man iene en dicho es ado con pis as. Pa a implemen a es o, la clase Da aManage gua da un a ibu o en e o hin sS a e, donde 0 se co esponde con “Sin pis as ( ue e)”, 1 se co esponde con “Sin pis as (d´ebil)” y 2 se co esponde con el es ado “Con pis as”. En el cons uc o y an e nue os comienzos de juegos, como ya se ha comen ado, se inicializa a 0; po o o lado, an e cada in e acci´on, se ac ualiza el alo de la siguien e o ma. Si se ha ace ado, se pasa al es ado 0; si no, el es ado se inc emen a en una unidad, con la excepci´on de es a ya en el es ado 2 (pis as ac i as) en cuyo caso el a ibu o no cambia. Po ´ul imo, el m´e odo de Da aManage showHin s() indica si se deben mos a las pis as o no: bas a compa a el a ibu o hin sS a e con el alo 2. En los m´e odos upda eIns uc ions() que se comen a on an e io men e, el s ing asociado a las ins ucciones adquie e un alo u o o seg´un lo que de uel e es e m´e odo showHin s(). 3.2.2. Log con la in e acci´on Po ´ul imo, se almacena un a chi o de ex o con oda la in e acci´on del usua io. Es o en e siones pos e io es del juego pod ´ıa ene u ilidad pa a consegui es ad´ıs icas m´as elabo a- das. Sin emba go, el obje i o del log en es e abajo es se i de ayuda en las p uebas inales con usua ios. Se ecoge la secuencia de acciones ealizadas en cie a pan alla (momen o en que sucede medido en segundos desde que el usua io en a en la aplicaci´on, se indica si la in e acci´on es co ec a y ambi´en se egis an o as acciones como el inal o el einicio del juego). Pos e io - men e, los a chi os se analiza ´an pa a saca conclusiones de los usua ios que pa icipan en las p uebas. En cuan o a la implemen aci´on de dicho log, se gua da como a ibu o de Da aManage un a ay de ipo s ing de LOG_BUFFER_SIZE posiciones. Pa a no es a ac ualizando el a chi o de ex o as cada acci´on, la in o maci´on de la in e acci´on se a inse ando en dicho a ay; cuando es e se llena, se aslada al a chi o de ex o, y el ´ındice de esc i u a del a ay pasa de nue o al alo 0 (no hace al a bo a lo, se a sob esc ibiendo). Una peque˜na conside aci´on que hay que ene en cuen a al u iliza es e mecanismo es que al ce a la aplicaci´on, se encuen e donde se encuen e el ´ındice de esc i u a, hay que olca la in o maci´on del a ay al a chi o de ex o. Pa a pe mi i es o es ´a el m´e odo o ceLogFileUpda e() de la clase Da aManage . Pa a ca ga y gua da la in o maci´on se usa la clase File de Sys em.IO. 53 Cap´ı ulo 4 E aluaci´on con Usua ios En es e cap´ı ulo se explican las p uebas de usabilidad lle adas a cabo pa a la aplicaci´on. Una p ime a secci´on desa olla los p ime os ensayos que se eliza on, con una e si´on de la aplicaci´on a´un no de ini i a. An e la necesidad de m´e odos m´as iables y an e los malos esul ados de las p uebas, se dedic´o una ase in e media (mien as se segu´ıa desa ollando la aplicaci´on y mien as se co eg´ıan algunos e o es que salie on a la luz en dichas p uebas) pa a in es iga a ´ıculos sob e m´e odos pa a ealiza las p uebas de usabilidad, as´ı como el an´alisis de las mismas. La eo ´ıa que se encon ´o m´as aplicable al caso de es a aplicaci´on se expone esumida en la segunda secci´on. La e ce a explica las p uebas inales con usua ios. Finalmen e, el cap´ı ulo e mina con los esul ados y las conclusiones sob e odo es e p oceso ealizado ela i o a p uebas de usabilidad. 4.1. P ime as p uebas con usua ios 4.1.1. In oducci´on Una ez se consigui´o una e si´on es able con cie os algo i mos implemen ados, se pudo p oba dicha aplicaci´on con dos usua ios pa a de ec a posibles e o es en ases emp anas del desa ollo ( al aban po a˜nadi uncionalidades y algunos juegos m´as en e a la e si´on inal). Como se mencion´o al inal del cap´ı ulo 1, el cos e de a egla un e o se inc emen a conside ablemen e seg´un aumen a el desa ollo de la aplicaci´on y, e ec i amen e, es as p ue- bas si ie on pa a co egi lo que se es aba haciendo inco ec amen e y segui desa ollando de o ma adecuada. Las p uebas se u ie on que ealiza en emo o, lo que iene algunos incon enien es (aun- que ambi´en en ajas, como que el usua io es ´a en su en o no). Po an o, ue una e aluaci´on no mode ada pe o s´ı guiada (sc ip ed es ), ya que se le indic´o al usua io lo que en´ıa que ha- ce . En conc e o, p ime o se les p opo cion´o un guion con los pasos a ealiza y he amien as a usa . T as es o, los usua ios deb´ıan ellena un cues iona io p e io a la p ueba. Pos e io men- e, se pod´ıan ija en la lis a de a eas a ealiza en la aplicaci´on (g abando simul ´aneamen e la pan alla as habe comp obado que el a chi o de log se gua daba co ec amen e en su disposi i o). Finalmen e, en´ıan que ellena o o cues iona io con las imp esiones que les ge- ne ´o la aplicaci´on. Como se ealiza on dos p uebas, las espues as cuan i a i as al cues iona io apenas ienen ele ancia (la mues a es muy peque˜na). Sin emba go, la ase de in e acci´on con la aplicaci´on as´ı como las espues as cuali a i as y suge encias de mejo a s´ı esul a on muy ´u iles. 54 El a ´ıculo [27] explica que an o los es s de usabilidad como el game-based lea ning es ´an ganando impo ancia. Po an o, ambi´en se debe desa olla el dise˜no de dichos juegos y sus p uebas. Mien as que en el so wa e habi ual el hecho de no come e e o es es bueno, un ideojuego debe desa ia cons an emen e al usua io, y se uel e abu ido si no se come e ning´un e o . En de ini i a, aunque es ´a cla o que las p uebas de usabilidad habi uales hay que modi ica las pa a ideojuegos y, en conc e o, pa a juegos se ios educa i os, en es a p ime a ase de las p uebas no se in odujo ninguna dis inci´on. Es a ue o a az´on po la que se decidi´o hace un segundo conjun o de p uebas de usabilidad. 4.1.2. P uebas ealizadas Los dos usua ios que pa icipa on en las p uebas en´ıan ya conocimien os de p og ama- ci´on. En la e si´on que p oba on, e a el usua io el que eleg´ıa si que ´ıa ene pis as o no (es o se cambi´o m´as adelan e al sis ema de es es ados ya mencionado, as conoce la de ensa que ealizaban di e sos a ´ıculos cien ´ı icos del eedback pe sonalizado y de la adap aci´on din´amica y au om´a ica de la di icul ad). En es a e si´on an igua que se us´o en las p ime as p uebas, uno de los usua ios ealiz´o la p ueba sin ayuda de las pis as, mien as que el o o pod´ıa consul a las pis as en odo momen o. Las p uebas es aban pensadas pa a ealiza se en un iempo de en e 15 y 20 minu os. Las a eas del guion se p esen a on en o ma de a- eas di ec as (solamen e se in o ma de lo que iene que hace , en con aposici´on a las a eas escena io que a˜naden un con ex o). Los usua ios ealiza on la e aluaci´on con sus disposi i os m´o iles as p opo ciona les el a chi o .apk de la aplicaci´on. T as hace el cues iona io inicial, pone en ma cha las he amien as de g abaci´on y com- p oba que el log se gua da co ec amen e, el usua io pod´ıa comenza con las a eas, que consis ´ıan en juga 4 pa idas de cada uno de los siguien es juegos: o denaci´on po inse ci´on, m´e odo de la bu buja, o denaci´on po selecci´on y o denaci´on po mezclas (1). Adem´as, el usua io deb´ıa comp oba sus es ad´ıs icas en el juego. T as inaliza , en´ıa que comple a la encues a inal dando sus imp esiones y en ia los esul ados. 4.1.3. Resul ados y posibles mejo as Aunque no e a un n´ume o de usua ios signi ica i o pa a esul a i os cuan i a i os, s´ı se ob u ie on suge encias de mejo a, as´ı como posibles cambios en la aplicaci´on as analiza las g abaciones: Un e o obse ado en es as p uebas ue la p ecisi´on en el pa ´on d ag-and-d op. El usua io hac´ıa muchos mo imien os que e an co ec os pe o el sis ema los de ec aba como inco ec os. Es e p oblema se conside a como c ´ı ico. Hab´ıa apa ecido en ases iniciales del desa ollo, pe o as ajus a el alo de la a iable asociada a la p ecisi´on, qued´o sol en ado. M´as adelan e, se descub i´o un e o asociado en el c´odigo. T as soluciona lo, el p oblema despa eci´o en las segundas p uebas. En o denaci´on po inse ci´on, en la p ime a implemen aci´on ealizada, hab´ıa una ase en que desapa ec´ıa de la pan alla el elemen o a inse a , ya que en la ase de hace hueco a dicho elemen o e a solapado al hace la copia. Es o despis ´o a los usua ios. En la e si´on inal se incluye la a iable auxilia ya mencionada pa a ene disponible en odo momen o cualquie elemen o. Adem´as, es o es iel a c´omo ac ´ua ealmen e el algo i mo. 55 Los usua ios coinciden en que e a necesa ia una p ime a pa e de eo ´ıa (quiz´as incluso con pseudoc´odigo) pa a e i a el p oceso inicial de p ueba y e o . Po es o, pa a que la aplicaci´on sea au ocon enida, se implemen a un u o ial guiado que se despliega cuando el usua io en a a la pan alla de un juego. Un usua io epo a que en algunos casos el sis ema de in e acci´on pod ´ıa se di e en- e a d ag-and-d op. Po ejemplo, al in e cambia elemen os se ealiza a as ando un elemen o conc e o al o o. Es o hac´ıa pensa al usua io que un elemen o iene mayo je a qu´ıa que el o o, cuando es o no es as´ı. Tambi´en se encon ´o alg´un aspec o que esul ´o especialmen e ag adable a los usua ios: el uso de colo es en los bo ones pa a da cie os eedbacks ue bien enido, po lo que se gene aliz´o el uso de es a ca ac e ´ıs ica en el desa ollo pos e io . Aunque es o no lo epo ´o ning´un usua io, en el an´alisis de las g abaciones se ap ecia- ba que en ocasiones el usua io comienza una acci´on, pe o obse a que es una acci´on inco ec a an es de inaliza la, po lo que de uel e el bo ´on a su posici´on inicial. Sin emba go, el juego lo de ec a como in e acci´on e ´onea y penaliza la pun uaci´on. Quiz´as es o se pod ´ıa dis ingui de alguna o ma, de mane a que si el usua io uel e al es ado inicial, no se conside e un e o . Se dis ingui ´ıan as´ı es as acciones de las co ec as que se comple an o almen e y de las inco ec as que se comple an o almen e. El iempo que emplea on los usua ios en comple a las a eas ue de 20 y de 26 minu os (poco m´as de lo espe ado). El p oblema de la p ecisi´on con amin´o o almen e el a chi o de log, ya que en la g abaci´on se ap eciaba que el usua io iba en endiendo los concep os, pe o segu´ıa allando mucho debido a la p ecisi´on: mo imien os co ec os e an clasi icados como inco ec os. Es a es o a az´on pa a ol e a ealiza p uebas con una e si´on mejo ada. La siguien e imagen, co espondien e a los e o es acumulados en el iempo de los usua ios, mues a que las pendien es de las cu as no bajan, como e a p e isible. Adem´as, el p ocesa- mien o del log se debe hace ag upado seg´un el juego. Si no, al cambia a uno nue o, ol e ´an a apa ece e o es, di icul ando mucho la ob enci´on de conclusiones. Figu a 4.1: G ´a icas de e o es acumulados a lo la go del iempo as analiza los logs de los usua ios de las p uebas iniciales. Se ap ecia que la pendien e apenas desciende a lo la go del iempo. La g ´a ica es simila a la de [27], con la di e encia de ano a e o es en ez de e en os, como se hace en el modelo de es e a ´ıculo. Pos e io men e se encuen a el a ´ıculo [16], que expone la eo ´ıa de las cu as de ap endizaje. Cu iosamen e, si la m´e ica usada es el n´ume o de e o es y se oma de o ma acumulada, se pod ´ıa deci que es as g ´a icas co esponden a e siones de cu as de ap endizaje. 56 El uncionamien o de es e sc ip de an´alisis consis e en gua da en una a iable de ipo dicciona io el momen o de comienzo de un nue o juego. Se egis an los e o es y acie os en ese juego en in e alos empo ales a pa i de ese ins an e inicial. Es muy ilus a i a la e oluci´on de la asa de e o es a lo la go del iempo en el caso de o denaci´on po inse ci´on, que adem´as es el juego que m´as acciones egis a y el que los usua- ios han clasi icado como menos in ui i o. La g ´a ica se adjun a a con inuaci´on, donde se ha inco po ado la ec a que ap oxima los pun os, usando el m´odulo scipy.op imize. Se ap ecia una cla a pendien e nega i a, se˜nal de que el usua io es ´a ap endiendo el concep o a lo la go del iempo. Debajo de es a imagen se adjun a o a g ´a ica con los e o es acumulados. Se ap ecia una disminuci´on de la pendien e al a anza en el iempo. Figu a 4.6: Tasa de e o es a lo la go del iempo pa a o denaci´on po inse ci´on, en in e alos de 10 segundos (es amos po an o an e una cu a de ap endizaje). El eje x ep esen a el n´ume o de in e alo conside ado, y el eje yindica el an o po uno de e o es. La ec a de ajus e mues a pendien e nega i a. Figu a 4.7: E o es acumulados a lo la go de in e alos de iempo, pa a el juego de o denaci´on po inse ci´on. El eje x ep esen a el n´ume o de in e alo de iempo (igual que en la igu a an e io ). El eje y ep esen a el o al de e o es. Po ´ul imo, se adjun a una abla con es ad´ıs icas globales de odos los logs sob e los di- e en es juegos. 63 Acciones Acie os E o es Tasa de acie os Inse ci´on 3713 3017 696 81.26 % Selecci´on 740 617 123 83.38 % Bu buja 1643 1299 344 79.06 % Mezclas 729 624 105 85.60 % Ven ana 1465 1238 227 84.51 % Cuad o 4.1: Es ad´ıs icas sob e las acciones ealizadas. La asa de acie os inal es buena en odos los casos, en o no al 80 %. Como e a espe able, los juegos que han pa ecido m´as complicados son los que ienen meno asa de acie os. La di e encia no es g ande, pe o an e la g an can idad de acciones egis adas s´ı es ep esen a i a. 64 Cap´ı ulo 5 Conclusiones y abajo u u o 5.1. Conclusiones El obje i o de es e abajo es c ea una aplicaci´on educa i a que simula el uncionamien o de algo i mos o es uc u as de da os y que pe mi a la in e acci´on del usua io. Las p uebas ealizadas al inal del desa ollo demues an que es o ha sido conseguido, ya que an o el cues iona io inal sob e las imp esiones con la aplicaci´on como el an´alisis de los logs a ojan esul ados posi i os. La in e acci´on puede esul a di ´ıcil al p incipio, pe o el usua io aca- ba en endiendo las acciones que ealiza el algo i mo y, as alguna pa ida, puede eplica lo sin p oblema. Las p uebas ambi´en han demos ado que las uncionalidades adicionales im- plemen adas ag egan alo a la aplicaci´on, como el sis ema de adap aci´on din´amica de la di icul ad o el sis ema de pun uaciones. Po o o lado, en es e abajo se han u ilizado concep os es udiados a lo la go del g a- do en ingenie ´ıa in o m´a ica. Como es ob io, las asigna u as de algo i mia ienen un g an peso, aunque se hayan implemen ado algo i mos b´asicos. Po o o lado, el pa adigma de p o- g amaci´on o ien ada a obje os se ha u ilizado pa a desa olla un c´odigo eu ilizable, po lo que asigna u as como Tecnolog´ıa de la p og amaci´on o Ingenie ´ıa del so wa e ambi´en han ayudado al desa ollo de es a aplicaci´on. Pa a las p uebas con usua ios ha sido ´u il la asigna u a Desa ollo de sis emas in e ac i os, p opo cionando un m´e odo pa a es e ipo de e aluaciones. Po ´ul imo, es e abajo ambi´en ha se ido pa a ap ende nue os concep os que no hab´ıan sido a ados a lo la go del g ado. Po ejemplo, el mo o de ideojuegos Uni y, usando el lenguaje de p og amaci´on C#, que ha esul ado no edoso igualmen e. 5.2. T abajo u u o La aplicaci´on implemen ada se pod ´ıa mejo a de di e sas o mas. En p ime luga , la mane a m´as inmedia a es inclui nue os juegos asociados a o os algo i mos. Po o o lado, se pod ´ıa u iliza el sis ema de pun uaciones pa a c ea una base de da os que omen e la compe i i idad en el juego, con el ap endizaje asociado. El sis ema de adap aci´on din´amica de di icul ad ha esul ado e ec i o, pe o no deja de se muy sencillo, po lo que la aplicaci´on pod ´ıa pe sonaliza se m´as a´un. O a posible mejo a es amplia la in e acci´on d ag-and-d op, con o as o mas de ealiza las acciones en el juego. Po ejemplo, si se implemen an ´a boles, una in e acci´on in e esan e pod ´ıa se inclina el el´e ono hacia el lado co ec o pa a ep esen a que el ´a bol o a pa a queda equilib ado. 65 Conclusions and u u e wo k 5.3. Conclusions The aim o his wo k is o de elop an educa ional applica ion ha simula es he low o algo i hms and eaches he basics o da a s uc u es, allowing use s o in e ac wi h i . The usabili y es s pe o med a he end o he de elopmen show ha hese goals ha e been achie ed. Bo h he su ey abou he imp essions o he use s and he log ile analysis show posi i e ou comes. Ini ially, use s may ind in e ac ion di icul , bu hey unde s and how algo i hms wo k a e playing a ew games. Fu he mo e, usabili y es s ha e shown ha addi ional unc ionali ies in he game like he sco e sys em o dynamic adap abili y imp o e he applica ion. In addi ion, concep s s udied h oughou he deg ee in compu e science ha e been used. Ob iously, subjec s abou algo i hms and da a s uc u es a e e y impo an in his wo k, al hough algo i hms implemen ed in he game a e basic. Objec -o ien ed p og amming pa a- digm has been used in o de o de elop eusable code, so subjec s like Compu e P og amming Technology o So wa e Enginee ing ha e played an impo an ole in his wo k oo. In e ac- i e sys ems de elopmen subjec has been use ul o usabili y es ing, because i p o ides a me hod o make hese es s. Finally, I ha e lea ned new concep s oo, like Uni y game engine o C# p og amming language. 5.4. Fu u e wo k The applica ion ha has been de eloped could be imp o ed in se e al ways. Fi s , new games abou algo i hms and da a s uc u es could be included in he applica ion. Secondly, he sco e sys em may be used o c ea e a da abase ha os e s compe i i eness. The dynamic di icul y adjus men sys em has been e ec i e, al hough i is e y simple and he applica ion i sel could be e adjus o he needs o each use . Ano he possible imp o emen o he game is o ex end d ag-and-d op in e ac ion pa e n wi h o he ways o execu ing ac ions. Fo example, i ees we e implemen ed, i would be in e es ing o allow he use o il he de ice in o de o o a e and balance hem. 66 Bibliog a ´ıa [1] R. D¨o ne , S. G¨obel, W. E elsbe g, and J. Wiemeye , Se ious Games. Sp inge , 2016. [2] M. Csikszen mihalyi, Flow: The psychology o op imal expe ience. Ha pe & Row New Yo k, 1990. [3] P. Swee se and P. Wye h, “Game low: A model o e alua ing playe enjoymen in games,” ACM Compu e s in En e ainmen , ol. 3, 07 2005. [4] B. Sawye and D. Rejeski, “Se ious games: Imp o ing public policy h ough game-based lea ning and simula ion,” 01 2002. Wood ow Wilson In e na ional Cen e o Schola s, Washing on, DC. [5] P. Games and M. Knigh , “Ame ica’s a my,” 2002. C own Publishing G oup, New Yo k. [6] J. Sinclai , “Feedback con ol o exe games,” 2011. h ps:// o.ecu.edu.au/ heses/380/ (Accessed 13 Decembe 2020). [7] M. P ensky, “Digi al game-based lea ning,” ACM Compu e s in En e ainmen , ol. 1, 10 2003. [8] D. Lecle cq, “The 8 Lea ning E en s Model and i s p inciples,” 2005. h p://www.labse .ne /media/p od/8LEM.pd (Accessed 13 Decembe 2020). [9] M. D. Kickmeie -Rus and D. Albe , “Mic o-adap i i y: P o ec ing imme sion in di- dac ically adap i e digi al educa ional games,” Jou nal o Compu e Assis ed Lea ning, ol. 26, no. 2, pp. 95–105, 2010. [10] R. Ba le, “Hea s, clubs, diamonds, spades: Playe s who sui muds,” Jou nal o MUD esea ch, ol. 1, no. 1, 1996. [11] E. Lah inen, K. Ala-Mu ka, and H.-M. J¨a inen, “A s udy o he di icul ies o no ice p og amme s,” Acm sigcse bulle in, ol. 37, no. 3, pp. 14–18, 2005. [12] O. As achan, “Bubble so : an a chaeological algo i hmic analysis,” ACM Sigcse Bu- lle in, ol. 35, no. 1, pp. 1–5, 2003. [13] R. S. Bake , M. Boilen, M. T. Good ich, R. Tamassia, and B. A. S ibel, “Tes e s and isualize s o eaching da a s uc u es,” ACM SIGCSE Bulle in, ol. 31, no. 1, pp. 261– 265, 1999. [14] D. Diche a and A. Hodge, “Ac i e lea ning h ough game play in a da a s uc u es cou se,” in P oceedings o he 49 h ACM Technical Symposium on Compu e Science Educa ion, pp. 834–839, 2018. 67 [15] E. Ha ps ead, B. A. Mye s, and V. Ale en, “In sea ch o lea ning: Facili a ing da a analysis in educa ional games,” in P oceedings o he SIGCHI Con e ence on Human Fac o s in Compu ing Sys ems, CHI ’13, (New Yo k, NY, USA), p. 79–88, Associa ion o Compu ing Machine y, 2013. [16] B. Ma in, K. R. Koedinge , A. Mi o ic, and S. Ma han, “On using lea ning cu es o e alua e i s,” in P oceedings o he 2005 Con e ence on A i icial In elligence in Educa- ion: Suppo ing Lea ning h ough In elligen and Socially In o med Technology, (NLD), p. 419–426, IOS P ess, 2005. [17] J. K. Haas, “A his o y o he uni y game engine,” 2014. Wo ces e Poly echnic Ins i u e, h ps://digi alcommons.wpi.edu/iqp-all/3207/ (Accessed 13 Decembe 2020). [18] E. Balagu usamy, P og amming in C#: A P ime . McG aw-Hill Educa ion, o h ed., 2010. [19] C. Kazimoglu, M. Kie nan, L. Bacon, and L. Mackinnon, “A se ious game o de eloping compu a ional hinking and lea ning in oduc o y compu e p og amming,” P ocedia - Social and Beha io al Sciences, ol. 47, pp. 1991 – 1999, 2012. Cyp us In e na ional Con e ence on Educa ional Resea ch (CY-ICER-2012)No h Cyp us, US08-10 Feb ua y, 2012 h p://www.sciencedi ec .com/science/a icle/pii/S1877042812026742 (Accessed 13 Decembe 2020). [20] J. M. Wing, “Compu a ional hinking,” Communica ions o he ACM, ol. 49, no. 2, pp. 33–35, 2006. [21] J. A. Qualls and L. B. She ell, “Why compu a ional hinking should be in eg a ed in o he cu iculum,” Jou nal o Compu ing Sciences in Colleges, ol. 25, no. 5, pp. 66–71, 2010. [22] T. Ba nes, H. Rich e Lip o d, E. Powell, A. Cha in, and A. Godwin, “Game2lea n: building cs1 lea ning games o e en ion,” ol. 39, pp. 121–125, 01 2007. [23] A. Cha in, K. Do an, D. Hicks, and T. Ba nes, “Expe imen al e alua ion o eaching ecu sion in a ideo game,” in P oceedings o he 2009 ACM SIGGRAPH Symposium on Video Games, pp. 79–86, 2009. [24] E. B. Cos a, A. M. Toda, M. A. A. Mesqui a, and J. D. B anche , “Dslep (da a s uc- u e lea ning pla o m o aid in highe educa ion i cou ses),” In e na ional Jou nal o Compu e and Sys ems Enginee ing, ol. 8, no. 4, pp. 1143 – 1148, 2014. [25] N. Kau and G. Gee ha, “Play and lea n ds: In e ac i e and game ul lea ning o da a s uc u e,” In e na ional Jou nal o Technology Enhanced Lea ning, ol. 7, pp. 44–56, 09 2015. [26] M. Eagle and T. Ba nes, “Expe imen al e alua ion o an educa ional game o imp o- ed lea ning in in oduc o y compu ing,” SIGCSE’09 - P oceedings o he 40 h ACM Technical Symposium on Compu e Science Educa ion, ol. 41, pp. 321–325, 03 2009. [27] P. Mo eno-Ge , J. To en e, Y. G. Hsieh, and W. T. Les e , “Usabili y es ing o se ious games: Making in o med design decisions wi h use da- a,” Ad ances in Human-Compu e In e ac ion, ol. 2012, 2012. Hindawi, h ps://www.hindawi.com/jou nals/ahci/2012/369637/ (Accessed 13 Decembe 2020). 68