scieee Science in your language
[es] (orig)

Juez automático para la evaluación de problemas de programación en los primeros cursos de estudios de informática

Abstract

Muchos de los participantes en concursos de programación, entrenan resolviendo problemas típicos de libros de texto, sin embargo, cada vez más, se impone la necesidad de acceso a problemas y evaluaciones de los mismos, a través de la red de redes. En este proyecto, tratamos de resolver esa necesidad, así como de conseguir un mayor calado académico al usarlo como herramienta en un entorno docente real, con usuarios reales, que puedan realizar esos entrenamientos a los que nos referíamos de manera fácil y cómoda, interactuando simplemente con un interfaz web.

Read accessible full text

Juez automático para la evaluación de problemas de programación en los primeros cursos de estudios de informática

Author: Martín Jabón, Jéssica; Martín Moreno-Manzanaro, Javier; Suárez Díaz, Pablo
Year: 2013
Source: https://docta.ucm.es/bitstreams/df064fb7-df12-423e-a7b4-791565263a4b/download
Juez Au omá ico pa a la
E aluación de P oblemas de
P og amación en los P ime os
Cu sos de Es udios de In o má ica
T abajo de Fin de G ado, Facul ad de In o má ica, Uni e sidad Complu ense
de Mad id
Cu so 2012-2013
Realizado po
Jéssica Ma ín Jabón, Ja ie Ma ín Mo eno-Manzana o y Pablo Suá ez Díaz
P oyec o di igido po
Ma co An onio Gómez Ma ín y Ped o Pablo Gómez Ma ín
Au o ización
Los abajo i man es Jéssica Ma ín Jabón, Ja ie Ma ín Mo eno-Manzana o y Pablo Suá ez
Díaz, ma iculados en el TRABAJO DE FIN DE GRADO de la Facul ad de In o má ica,
au o izamos a la Uni e sidad Complu ense de Mad id (UCM) a di undi y u iliza con ines
académicos, no come ciales y mencionando exp esamen e a sus au o es, an o la p esen e
memo ia: “Juez E aluado de P oblemas de P og amación”, como el código, los con enidos
audio isuales, la documen ación y el p o o ipo desa ollado du an e el cu so académico
2012-2013 bajo la di ección de los p o eso es Ma co An onio Gómez Ma ín y Ped o Pablo
Gómez Ma ín en el Depa amen o de Ingenie ía del So wa e e In eligencia A i icial, y a la
Biblio eca de la UCM a deposi a lo en el A chi o Ins i ucional E-P in s Complu ense con el
obje o de inc emen a la di usión, uso e impac o del abajo en In e ne y ga an iza su
p ese ación y acceso a la go plazo.
Jéssica Ma ín Jabón Ja ie Ma ín Mo eno-Manzana o Pablo Suá ez Díaz
46928476-N 50231006-H X3612644B
En Mad id a 21 de junio de 2013
Ag adecimien os
Pa a noso os, la ealización de es e p oyec o ha supues o un e o así como el inicio de
un camino de au oap endizaje e in es igación. Sin emba go, la sa is acción de habe
alcanzado nues os obje i os (o al menos algunos de ellos), compensa el es ue zo
empleado. La consecución de esa sa is acción, y la madu ez adqui ida en es e y o os
p oyec os, se la debemos en pa e a los p o eso es (casi odos) que hemos enido a lo
la go de nues o pe iplo uni e si a io, y muy especialmen e a nues os di ec o es de
es e T abajo de Fin de G ado, Ma co An onio Gómez Ma ín y Ped o Pablo Gómez
Ma ín, cuya guía ha sido imp escindible.
También enemos que ag adece a a ios compañe os, sus opiniones y c í icas
(cons uc i as en la mayo ía de casos), que nos echa on una mano pa a iden i ica
algunos allos y co egi los en pos de una mejo a de nues o p oyec o.
Po úl imo, y aunque si a pa a e mina el ópico que o man es as líneas, que emos
da las g acias a nues as amilias. A nues os pad es, he manos y o os allegados, que
han ocupado los oles de mecenas, cuidado es, animado es y muchos o os con al de
b inda nos apoyo en nues o camino has a el inal de mane a incondicional.
Muchas g acias a odos.
Pablo, Jéssica y Ja ie .
Resumen
Muchos de los pa icipan es en concu sos de p og amación, en enan esol iendo
p oblemas ípicos de lib os de ex o, sin emba go, cada ez más, se impone la
necesidad de acceso a p oblemas y e aluaciones de los mismos, a a és de la ed de
edes. En es e p oyec o, a amos de esol e esa necesidad, así como de consegui un
mayo calado académico al usa lo como he amien a en un en o no docen e eal, con
usua ios eales, que puedan ealiza esos en enamien os a los que nos e e íamos de
mane a ácil y cómoda, in e ac uando simplemen e con un in e az web.
Palab as Cla e
AJAX
cURL
Desa íos de P og amación
Juez Au omá ico
Juez E aluado
Juez On-line
JSON
PHP
Se icios web
Web
Abs ac
Many con es an s in p og amming compe i ions a e ained by sol ing ypical
algo i hm p oblems om hei books, due o his, i is needed a pla o m h ough he
wo ld wide web ha allows use s o each o hese exe cises and check hei skills on
hem by keeping s a is ics o he cu en ly sol ed p oblems. This p ojec is abou o
change a eali y, o accomplish mo e s uden implica ion by using i as a signi ican
ool. One o ou goals is o p o ide o Uni e sidad Complu ense de Mad id wi h an
implemen in a lea ning en i onmen , ising his ins i u ion o he same le el o o he
impo an Uni e si ies ha ha e hei own online-judges.
Keywo ds
AJAX
cURL
P og amming challenges
Au oma ic Judge
E alua o Judge
On-line Judge
JSON
PHP
Web Se ices
Web

-"No hay p egun as sin espues as, sólo p egun as mal o muladas"-
Mo eo en TheMa ix
ÍNDICE
Con enido
1.- In oducción ............................................................................................................................. 9
1.1.- Jus i icación ....................................................................................................................... 9
1.2.- Obje i os ........................................................................................................................... 9
1.2.1. - Expec a i as de uso docen e en la UCM ................................................................. 10
1.2.2. - Expec a i as de uso ex e no ................................................................................... 10
1.3. - Resumen ......................................................................................................................... 11
2-Es ado del a e ......................................................................................................................... 12
2.1. - UVa OnlineJudge [uHun ] (h p://u a.onlinejudge.o g) ................................................ 12
2.1.1. - Necesidad de egis a ............................................................................................ 12
2.1.2. - Dis ibución in e az ................................................................................................ 13
2.1.3. - Ve en íos en iempo eal ....................................................................................... 14
2.1.4. - Clasi icación de los p oblemas ................................................................................ 15
2.2. - Ligh OJ (www.ligh oj.com) ............................................................................................ 16
2.2.1. - Necesidad de egis a ............................................................................................ 16
2.2.2. - Dis ibución in e az ................................................................................................ 16
2.2.3. - Ve en íos en iempo eal ....................................................................................... 18
2.2.4. - Clasi icación de los p oblemas ................................................................................ 18
2.3. - Sphe e online judge (h p://www.spoj.pl.) .................................................................... 19
2.3.1. - Necesidad de egis a ............................................................................................ 19
2.3.2. - Dis ibución in e az ................................................................................................ 20
2.3.3. - Ve en íos en iempo eal ....................................................................................... 21
2.3.4. - Clasi icación de los p oblemas ................................................................................ 21
2.4. - Olimpiada In o má ica Española (h p://olimpiada-in o ma ica.o g/) .......................... 22
2.4.1. - Necesidad de egis a ............................................................................................ 22
2.4.2. - Dis ibución in e az ................................................................................................ 23
2.4.3. - Ve en íos en iempo eal ....................................................................................... 23
2.4.4. - Clasi icación de los p oblemas ................................................................................ 23
2.5 Ju ge.o g (www.ju ge.o g) ................................................................................................ 25
2.5.1 Dis ibución de la página ............................................................................................ 25
2.5.2 En íos en iempo eal ................................................................................................. 26
2.6 FLOP (F ee Labo a o y O P og amming) .......................................................................... 27
3. - A qui ec u a del Sis ema ....................................................................................................... 29
3.1. Se icios Web ................................................................................................................... 29
3.2. PHP + Ja aSc ip ............................................................................................................... 29
3.3 TOMCAT ............................................................................................................................ 31
4.- Es udio de Na egación ........................................................................................................... 32
4.1. - Dis ibución gene al ....................................................................................................... 32
4.2. - Es adís icas (Úl imos En íos) .......................................................................................... 34
4.2.1. - Código en iado ........................................................................................................ 35
4.3. - P oblemas ...................................................................................................................... 36
4.3.1. - Lis a de Volúmenes ................................................................................................. 36
4.3.2. - Lis a de P oblemas .................................................................................................. 37
4.3.3. - “Mini-si e” de un p oblema .................................................................................... 37
5. - Implemen ación .................................................................................................................... 41
5.1. - jQue y ............................................................................................................................. 41
5.1.2. Ca ac e ís icas (solo des aca emos las u ilizadas en es e p oyec o) ........................ 42
5.1.3. Uso............................................................................................................................. 42
5.1.4. Función $() ................................................................................................................. 42
5.1.5. Función $.ge JSON (). ................................................................................................ 44
5.2. AJAX .................................................................................................................................. 45
5.2.1. Tecnologías incluidas en Ajax .................................................................................... 46
5.3. GeSHi – Gene ic Syn ax Highligh e (Ma cado de sin axis gené ico) ............................. 47
5.4. CodeMi o ....................................................................................................................... 49
5.5. VanadiumJS ...................................................................................................................... 50
5.6. Diag amas de google ........................................................................................................ 52
5.7. C oss-si e sc ip ing ........................................................................................................... 54
5.8. cURL .................................................................................................................................. 57
5.9. Ma hJax ............................................................................................................................ 58
5.10. RECAPTCHA .................................................................................................................... 59
6. – Conclusiones ......................................................................................................................... 62
6.1. – Opiniones y alo aciones .............................................................................................. 62
6.2. – Valo ación pe sonal ....................................................................................................... 66
7. – Bibliog a ía ............................................................................................................................ 68
In oducción
9
1.- In oducción
En p ime luga nos gus a ía explica los mo i os po los cuales nos sen imos a aídos po es e
p oyec o. La azón p incipal ue la necesidad de cu sa los c édi os obliga o ios del T abajo de
Fin de G ado (en u u as alusiones TFG); de en e los p oyec os que se o e aban, lo p ime o
que nos llamó la a ención ue on los di ec o es de p oyec o Ma co An onio Gómez Ma ín y
Ped o Pablo Gómez Ma ín. Nos en usiasmó la idea de abaja con an cuali icados p o eso es
con los que ya habíamos enido a o en el pasado. En segundo luga cuando compa ie on con
noso os su idea del p oyec o, la idea nos mo i ó aún más, ya que no sólo end íamos la
opo unidad de abaja mano a mano con ellos sino que además pod íamos con ibui con la
acul ad. Po úl imo, la posibilidad de aden a nos en las ecnologías web, nos llamó
especialmen e la a ención, dado el uso y la p oyección de u u o que ienen es as ecnologías.
1.1.- Jus i icación
Nues o p oyec o p e ende se una uen e de conocimien o pa a aquellas pe sonas que se
inician en el mundo de la algo i mia. Pese a que es e ipo de sis ema no es no edoso en su
uncionamien o, sí lo es al ipo de pe sona al que a di igido. No malmen e los jueces de
p oblemas, como el que hemos desa ollado, es án des inados al en enamien o pa a
concu sos; sin emba go nues a aplicación si e pa a ap ende , con unos p oblemas cuyo ni el
es más asequible y adecuado. De es e modo ambién se p e ende consegui un e ec o posi i o
que man end á a la gen e mo i ada, eniendo en cuen a que se án pe sonas que se es án
iniciando en es e ipo de conocimien o.
1.2.- Obje i os
El obje i o undamen al de es e p oyec o es consegui un juez de esolución de p oblemas que
se pueda aplica al ámbi o docen e, y no sólo a concu sos de p og amación; es deci consegui
una he amien a de apoyo en el p oceso de ap endizaje necesa io pa a o ma se en el campo
de la esolución de p oblemas de p og amación. Así pues, a la e aluación de p oblemas, se
añaden cie as unciones como la desc ipción de los e o es o la apo ación de pis as que
ayuden a alcanza la solución co ec a. Además, debido p ecisamen e al ca ác e docen e con
el que se imp egna la aplicación es especialmen e ú il, pa a se usada en asigna u as de
p og amación en el en o no uni e si a io, como de hecho se p e ende hace con algunos
cu sos de la Facul ad de In o má ica en la asigna u a de EDA (Es uc u as de Da os y
Algo i mos).
Es ado del a e
16
2.2. - Ligh OJ (www.ligh oj.com)
Es e juez e aluado de p oblemas ue c eado po Jane AlamJam. El lenguaje que se usa en es a
página es el inglés, y no dispone de ninguna opción pa a cambia lo.
2.2.1. - Necesidad de egis a
Pa a ene acceso al con enido de la paginas, es necesa io es a egis ado y logueado, ya que
de o o modo no se puede e ningún ipo de in o mación, ni si quie a se da la opción de e la
lis a de p oblemas. Tan sólo apa ecen dos cuad os de ex o (Nick/mail y con aseña) y un
enlace pa a i a un o mula io de egis o.
Como usua io es poco amigable el hecho de que no e deje na ega po la página, pues o que
si es ás buscando un juez e aluado de p oblemas, an es de cede us da os es p e e ible e el
ipo de p oblemas que iene, se icios que pueden usa se, e c.
2.2.1.1. – Fo mula io de egis o
Pa a egis a nos en la página web es necesa io in oduci el nomb e (no más de 100
ca ac e es), el nomb e de una uni e sidad (no más de 100 ca ac e es), selecciona un país
(es án en inglés o denados al abé icamen e), el email y pa a comp oba que no e es un bo e
hacen una p egun a que es una ope ación numé ica del es ilo “¿Cuál debe ía se el esul ado
de suma 72 y 68?” pa a esponde a la p egun a hay un campo de ex o en el que se esc ibe la
espues a.
2.2.2. - Dis ibución in e az
La página cons a de dos menús uno en la pa e supe io y o o la e al cuyas opciones cambian
según la opción que hayas seleccionado en el menú supe io .

Es ado del a e
17
Opciones del menú supe io :
Home: mues a la página de inicio, con un mensaje de bien enida, ambién puedes e u
pe il.
Volume: pe mi e e los p oblemas (o ganizados po olúmenes), ca ego ías, en ia un
p oblema o e us en íos
Con es : pe mi e e los concu sos que es án abie os en ese momen o además de los
concu sos pa a coge p ác ica.
T aining: pa a en ena .
Communi y: pe mi e e los o os.
C edi s: mues a quién lo ha desa ollado y unos ag adecimien os.
Pa a e el eco ido po el menú la e al habla é de las opciones que haya dependiendo de la
opción del menú supe io que se haya ma cado.
- Home
El menú la e al se di ide en dos submenús. De la p ime a mi ad las opciones más ele an es
son:
MyIn o: mues a un o mula io en el que se pe mi en cambia los da os que in odujis e en el
egis o, además de añadi más in o mación como el lenguaje de p og amación, la zona
ho a ia, la ins i ución, el país, e c.
Logou : Un enlace que pe mi e deja de es a au en i icado.
La segunda mi ad con iene las opciones e e en es al manejo de los mensajes que se pueden
in e cambia los usua ios en e sí, y no amos a p o undiza en ellas.
- Volume
En es e submenú las opciones más des acables son:
P oblem se : mues a una abla con los p oblemas, ag upados po olúmenes.
Submi p oblem: mues a el o mula io pa a en ia un p oblema, en el que hay que ellena
un campo pa a iden i ica el p oblema y el lenguaje de p og amación, que se ellena
au omá icamen e con la opción que seleccionas e en u pe il. Pa a en ia el código sólo es
posible a a és de un cuad o de ex o, des inado a al e ec o.
My submission: mues a una abla con los úl imos 20 en íos del usua io. Las columnas de
dicha abla son: id del en ío, echa del en ío, í ulo del p oblema, lenguaje de p og amación,
uso de la CPU, uso de la memo ia y e edic o.
Judge s a us: mues a los úl imos 50 en íos de odo el juez.
Es ado del a e
18
Ranklis : da la opción de e di e en es ankings o denados po usua ios. Hay a ios ankings,
como el de usua ios que más p oblemas han esuel o (en la abla se mues a la posición del
anking, el nomb e del usua io, el núme o de p oblemas esuel os y el núme o de p oblemas
in en ados), el de núme o de p oblemas esuel os po países, el de núme o de p oblemas
esuel os po us amigos (es igual que la abla de los usua ios con más p oblemas esuel os
pe o sólo con los usua ios que engas ma cados como amigos).
Use s a is ics: mues a las es adís icas de u usua io. En ellas apa ecen los da os de u pe il y
dos ablas; una con el núme o de p oblemas esuel os, p oblemas en iados, o al de en íos, el
núme o de mensajes en el o o y la posición del anking que ocupas; además de mos a una
g á ica de ba as con los e edic os de us p oblemas. La o a abla mues a una lis a con los id
de los p oblemas esuel os.
2.2.3. - Ve en íos en iempo eal
Puedes e los en íos que los usua ios es án ealizando en iempo eal, pa a ello se mues a
una abla con los campos de id del en ío, echa del en ío, nomb e del usua io, í ulo del
p oblema, lenguaje de p og amación, uso de la CPU, uso de la memo ia y e edic o.
2.2.4. - Clasi icación de los p oblemas
Los p oblemas es án ag upados, po de ec o, en olúmenes de 100 p oblemas cada uno
pudiendo e los además ag upados po ca ego ía o po au o . Lo más des acable de es a
úl ima ag upación es que si seleccionamos un au o nos mues a una lis a con odos los
p oblemas que ha c eado.
Es ado del a e
19
2.3. - Sphe e online judge (h p://www.spoj.pl.)
Es e juez es bas an e amigable, el idioma que usa es el inglés y no dispone de ninguna opción
pa a cambia lo po o o. Es des acable la can idad de publicidad que hay, en odas sus páginas,
y además no es á elacionada con el ema de los algo i mos
2.3.1. - Necesidad de egis a
Es necesa io au en i ica se si se quie e en ia un p oblema, pe o pa a odo lo demás la web e
deja que na egues po ella, de hecho incluso la opción de submi la puedes pulsa y es el
o mula io de en ío en el que hay un cuad o de ex o pa a esc ibi el código, ambién se puede
selecciona un a chi o que engas en el o denado , selecciona el lenguaje y esc ibi el código
del p oblema. Pe o si no es ás egis ado y le das a en ia e edi ige a una página en la que se
e ecomienda c ea e una cuen a y en la columna de la izquie da apa ece un cuad o de login.
Además ambién apa ece en el menú la opción de e u pe il, la cual nos lle a a las
es adís icas de nues o usua io ales como la posición en el anking que ocupa, los pun os
conseguidos, el nick, el país, y una abla con el núme o de p oblemas esuel os, en iados,
acep ados, el núme o de p oblemas w ong answe , con e o de compilación, con e o en
iempo de ejecución y con iempo lími e excedido. En es a misma página ambién dispones de
a ios enlaces, uno pa a modi ica us da os de usua io, además ambién puedes pedi les
abajo y e el his o ial de us en íos.
2.3.1.1. – Fo mula io de egis o
El o mula io de egis o es di e en e a como habi ualmen e son los o mula ios de egis o. Al
pulsa en la opción de egis o no edi ige a una página en la que sólo se nos pide un nomb e
de usua io. Una ez has esc i o un usua io álido le das a “Con inue” y e edi ige a o a
página en la que hay más campos que ellena , menos el de elegi un nick que ya se eligió en la
página an e io y e lo mues an, el es o de campos son: u nomb e, el email, la con aseña, el
país, el lenguaje de p og amación, la ins i ución y la u l, aunque es os dos campos son
opcionales. Además hay una se ie de opciones que puedes ma ca como pedi que e en íen
los esul ados po co eo, que e manden no i icaciones de e en os elacionados con spoj, e c.
Es ado del a e
20
2.3.2. - Dis ibución in e az
La página web iene una dis ibución simple pe o bas an e amigable, cons a de un menú
la e al izquie do ijo en el que se mues an odas las opciones de las que dispone la web, según
la opción seleccionada cambia el con enido de la página.
Regis e : enlaza al o mula io de egis o del que ya he hablado.
Tu o ials: es a página mues a enlaces a cua o u o iales sob e nue os usua ios, p oblemas,
p oblemas in e ac i os, p oblemas de concu so. También hay in o mación de que es spoj y una
pequeña guía de cómo empeza .
S a us: mues a una abla con los úl imos en íos, en el pun o 2.3.3 habla é de ello con
p o undidad
Submi : enlace a la página de en ia un p oblema de la que ya he hablado.
P oblems: mues a la lis a de p oblemas, de la o ganización de ellos habla é en el pun o 2.3.4.
Sea ch: es un cuad o de búsqueda de google.
news: es la página p incipal, mues a in o mación de concu sos, núme o de o al de en íos,
núme o de usua ios egis ados, núme o de p oblemas publicados, o al de p oblemas,
núme o de ins i uciones a iliadas, núme o de concu sos a iliados, núme o de lenguajes de
p og amación.
Es ado del a e
21
Con es : es e enlace e edi ige a una página que cons a de dos ablas una con los concu sos
que es án ac ualmen e ac i os, y la o a con concu sos ya e minados, en ambos los campos
son código del concu so, nomb e, echa de inicio y echa de in. Si pulsas en el nomb e de un
concu so que es é abie o e edi ige a o a página simila a spoj pe o con la in o mación del
concu so, sino simplemen e e edi ige a una página con el nomb e del concu so pe o sin
in o mación.
Ranks: Hay di e en es ankings, se mues an en o ma de abla según, usua ios, en es e se
alo a los pun os ob enidos, además ambién se mues an la posición del anking, las siglas del
país, el nomb e del usua io, can idad de p oblemas esuel os y los pun os conseguidos, y el
núme o de e os y los pun os conseguidos. Po países, simila al de los usua ios, e c.
Fo o: iene acceso a un o o, pe o es independien e de la página
2.3.3. - Ve en íos en iempo eal
La página ambién dispone de una abla que pe mi e e los en íos en iempo eal , dicha aba
cons a del id del en ío, la echa del mismo, el nomb e del usua io que lo ha en iado, el í ulo
del p oblema, el esul ado, el iempo de CPU, el iempo en memo ia y el lenguaje de
p og amación.
Pa a que sea más in ui i a las ilas de la abla son de dos colo es, e des si el p oblema ha sido
acep ado y na anja en cualquie o o caso.
La longi ud de la abla es de ein e ilas, además hay cua o páginas más po lo que pod ías e
los úl imos 100 p oblemas en iados.
2.3.4. - Clasi icación de los p oblemas
La clasi icación de los p oblemas se puede hace de cinco o mas, po el id del p oblema, po
e o, po p oblemas pa a a icionados, p oblemas sencillos, lis a de p oblemas de enigma.
Las ablas que mues an los p oblemas con ienen las mismas columnas, id del p oblema, í ulo
del mismo, código (es el que hay que in oduci pa a hace el en ío), núme o de usua ios que
lo han esuel o y po cen aje de acie o.

Es ado del a e
22
2.4. - Olimpiada In o má ica Española (h p://olimpiada-
in o ma ica.o g/)
La Uni e sidad Poli écnica de Ca aluña es la enca gada, ac ualmen e de o ganiza la. El idioma
que se usa en la página po de ec o es el cas ellano, aunque es posible modi ica lo al ca alán.
2.4.1. - Necesidad de egis a
Es necesa io egis a se y au en i ica se pa a hace uso del o al de las opciones disponibles,
no obs an e sin au en i ica se podemos na ega po la página ya que la mayo ía de las
opciones las pueden e an o los usua ios egis ados como los que no. Además, pa a acili a
las cosas, en el menú la e al izquie do, en el cual apa ecen las opciones, ienen un as e isco
aquellas opciones en las que pa a accede a ellas es necesa io es a egis ado.
Dichas opciones son:
- Ma e ial: se despliega un submenú pa a pode accede a las secciones de manuales de
p og amación, soluciones de p oblemas de p uebas an e io es (OIE 2008, 2009 y 2010, aunque
no es án odos los p oblemas), ideo u o iales en C++, pa a ayuda a inicia e en es e lenguaje
y un juego en el que los usua ios pueden c ea p og amas pa a que compi an con o os
jugado es.
- P oblemas: En es e enlace se puede accede a la lis a de los p oblemas, dispone de a ias
páginas, de es a o ma se en mejo los p oblemas disponibles.
- Da os pe sonales: enlace que e pe mi e no sólo e us da os, sino que ambién ienes de
modi ica los, como po ejemplo la con aseña, ya que cuando e c eas una cuen a e mandan
ellos una alea o ia.
2.4.1.1. – Fo mula io de egis o
Pa a accede al o mula io de egis o pulsa emos en el enlace que hay encima del login “Da e
de al a en la web”, és e nos mos a á un o mula io con campos de ex o pa a in oduci los
da os solici ados, los cuales son: nomb e, p ime apellido, segundo apellido, DNI, echa de
nacimien o, di ección, población, p o incia, código pos al, elé ono, email, el idioma (puedes
selecciona lo a a és de un desplegable), ambién e piden in o mación académica ela i a a
u cen o de es udio, deci si e es alumno o p o eso (ambas opciones apa ecen en un
desplegable), si quie es o no pa icipa en la OIE, cu so, cen o docen e, di ección, población,
p o incia, código pos al, elé ono, e-mail, po úl imo, se mues an las bases del concu so y un
desplegable pa a decidi si las acep as o no.
No disponen de ningún mecanismo pa a sabe si e es un bo o no, como cap chas, p egun as
de ope aciones numé icas, e c.
Es ado del a e
23
2.4.2. - Dis ibución in e az
La página cons a de una columna la e al izquie da que se di ide a su ez en cua o apa ados,
el p ime o es el menú del si io con las opciones
 P incipal: que edi ige a la página de bien enida en la que se in o ma de los nue os
concu sos, además de un enlace al o o y o o enlace al co eo de la web y en el cen o
de la página se mencionan a los pa ocinado es, así como in o mación gene al de la
Olimpiada In o má ica Española.
 Más in o mación: mues a in o mación sob e la Olimpiada In o má ica, así como
in o mación especí ica pa a alumnos y pa a los p o eso es.
 Concu sos: se mues an in o mación de los concu sos ac i os así como de los ya
inalizados, de es os úl imos se mues a un anking con los esul ados de los iempos y
pun uación que ob u ie on los pa icipan es.
 OIE 2012- OIE 2007: cada enlace mues a la no ma i a del concu so, así como
in o mación de cómo se o ganiza, ases del concu so, esul ados de la ase on-line y de
la ase inal.
 El segundo apa ado pe mi e selecciona el idioma (cas ellano o ca alán), el e ce o es
el de login en el que se deben in oduci el usua io y la con aseña, po úl imo, en el
cua o apa ado se encuen a la in o mación de con ac o, es deci el email de la
pe sona a la que debes esc ibi en caso de e o .
2.4.3. - Ve en íos en iempo eal
Es á página web, no pe mi e e los en íos que se es án p oduciendo en iempo eal, no
obs an e sí puedes e los en íos que has ealizado. De hecho, cuando en ías un p oblema,
es, a los pocos segundos el e edic o.
2.4.4. - Clasi icación de los p oblemas
Los p oblemas se clasi ican po 10 ca ego ías y po concu so 32 concu sos.
El enlace que se encuen a en el menú p incipal, cuya opción es “P oblemas (con juez)” sólo
mues a el í ulo de p oblema, el cual es un enlace al enunciado.
Es ado del a e
24
Es ado del a e
25
2.5 Ju ge.o g (www.ju ge.o g)
Pa a conclui con el es udio del pano ama en el ámbi o que nos ocupa, esca amos o o juez
c eado po Ome Giménez (c eado ambién de OIE), en el que ambién han colabo ado
Sal ado Rou a y Jo di Pe i . En es e caso ealizamos un epaso más lige o, ya que
conside amos que es e juez, no apo a de alles especialmen e no edosos con espec o a los ya
expues os.
2.5.1 Dis ibución de la página
Lo p ime o que ap eciamos en di e encia con el OIE, es el idioma, es á en inglés y no se
obse a la opción de cambia lo, como sucedía en la o a web.
La página dispone de una columna la e al izquie da, en ella es á el cuad o pa a hace login y
los enlaces disponibles sin es a au en i icado.
Tiene pocas opciones isible si no es ás egis ado, es más las únicas opciones disponibles son,
enlace pa a accede al o mula io de egis o, el cual e pide que ellenes cie os campos como
el nomb e, el email, echa de nacimien o, país, lenguaje(aquí sí que no da la opción de elegi
en e a ios idiomas, español, ca alán, ancés e inglés), un desplegable pa a elegi si es amos
de acue do con la polí ica de la web, y esc ibi el código de segu idad pa a comp oba que es
una pe sona el que se es á egis ando.
O o de los enlaces, es po si has ol idado u con aseña, ambién hay o o enlace pa a usa
una cuen a de p ueba po si no e quie es c ea una, pa a ello sólo pulsas el enlace y se
ellenan au omá icamen e los campos de usua io y con aseñas
El enlace pa a e los exámenes, pese a que es isible sin es a logueado, e mues a un
mensaje pidiendo que e iden i iques.
Po úl imo habla é del enlace de los concu sos, que sí es isible aunque no es és logueado, el
enlace e mues a dos lis as, uno con los concu sos ac i os y o a con los que ya han
Es udio de Na egación
32
4.- Es udio de Na egación
A con inuación de allamos las ca ac e ís icas del si io web y sus opciones en cuan o a
na egación se e ie e.
Lo p ime o es en ende qué que emos deci cuando nos e e imos a la na egabilidad web,
es o es, la acilidad con la que un usua io puede desplaza se po las dis in as páginas web que
componen el si io. Pa a alcanza un g ado sa is ac o io en la expe iencia de na egación se
deben adop a cie as es a egias diseñadas especialmen e pa a al in, mejo ando a la ez la
usabilidad global de la aplicación.
Seguidamen e analizamos y explicamos las decisiones omadas a es e espec o:
4.1. - Dis ibución gene al
Se ha ealizado una di isión en pa es del si io con el obje i o de auna el con enido bajo un
mismo es ilo que es ablezca la “seña de iden idad” de la aplicación y consiga hace sen i al
usua io que en en a en un espacio aco ado.
Así pues, disponemos de una cabece a y un pie de página no cambian es y un la e al adap able
al usua io y su es ado en la web.
En la cabece a, man enemos un menú global con el que o ecemos acceso desde cualquie
página del si io a la in o mación más ele an e de la aplicación. En conc e o pe mi imos ol e
al índice, accede a la lis a de p oblemas (o ganizada po olúmenes), e una abla con los
úl imos en íos ealizados (ac ualizada en iempo eal) y consul a documen ación ace ca del
si io o eciendo algunas guías y consejos pa a ayuda a aquellos usua ios más deso ien ados.

Es udio de Na egación
33
Po o a pa e, en el pie, además de los c édi os sob e el es ilo u ilizado, incluimos un enlace
“¿Quiénes somos?” que di ige a una página con algo de in o mación sob e los “pad es” de la
aplicación, y un eloj que mues a la ho a del se ido como e e encia pa a isi an es
o áneos.
Po úl imo, pe o no menos impo an e, incluimos un panel la e al en el que se ecogen
dis in as uncionalidades:
 Búsqueda: Un usua io puede busca un p oblema conc e o desde cualquie página de
la web, simplemen e in oduciendo su núme o de p oblema.
 Login/in o mación del usua io: En el caso de un isi an e no logueado, se mos a á un
pequeño o mula io pa a ing esa nomb e de usua io y con aseña y au en i ica se así,
en el si io, y un enlace al o mula io de egis o, pa a aquellos usua ios que aún no se
hayan dado de al a en el sis ema. Una ez logueado, sin emba go, es e cuad o
cambia á su con enido y pasa á a mos a un mensaje de au en i icación, así como
sendos links pa a e sus úl imos en íos, hace logou , y e su pe il. Pa a acili a la
na egación es impo an e hace no a que la acción de loguea se e man iene en la
misma página pa a mayo comodidad.
 Menús: Dependiendo de la página que se isi e, se mos a á un menú de na egación
en la pa e supe io del la e al con enlaces a dis in os con enidos elacionados con la
página que se es á iendo.
Con es a o ganización, dejamos un sec o de la pan alla despejado pa a mos a los
con enidos en sí.
Es udio de Na egación
34
4.2. - Es adís icas (Úl imos En íos)
En es a página se mues a una abla que se ac ualiza en iempo eal, con la in o mación de los
úl imos 20 en íos de p oblemas que se han ecibido. Es a abla o ece da os de la e aluación
del p oblema, es ado y demás, pe o las columnas más ele an es en cuan o a na egación se
e ie e son las es p ime as:
 Num: Mues a el núme o del en ío. Si el usua io es á logueado y iene además los
pe misos eque idos, se mos a á en o ma de enlace a o a página que mues a el
código uen e del p oblema esuel o en ese en ío, acili ando así el acceso al mismo.
 Use : Mues a el nick del usua io que ha hecho el en ío. Dicho nomb e se á siemp e
un link al pe il del usua io, que mos a á su in o mación.
 P oblem: Mues a el í ulo del p oblema esuel o en ese en ío. De nue o, es e nomb e
se á siemp e un link a la página del p oblema.
Con es os enlaces, se mejo a no ablemen e la usabilidad del si io, además de esul a más
p ác ico y cómodo, pa a labo es de adminis ación.
Es udio de Na egación
35
4.2.1. - Código en iado
Es a página sólo es accesible po adminis ado es (pa a odos los en íos), o po los usua ios
au o es del en ío que se es á iendo. Es a uncionalidad es especialmen e ú il de ca a a la
adición de u u as uncionalidades elacionadas con la o mación de clases, pa a que los
p o eso es engan ácil acceso al código de los alumnos.
Es udio de Na egación
36
4.3. - P oblemas
En es a sección de alla emos la na egación po la web en e páginas con con enidos
e e en es a los p oblemas.
4.3.1. - Lis a de Volúmenes
En es a página, mos amos una lis a de los olúmenes que hay en el momen o de la isi a en
o ma de abla. Los olúmenes se iden i ican po su núme o de olumen, que se mos a á
den o de un enlace, que di ige a la lis a de p oblemas del olumen. Asimismo, se mos a án
unas es adís icas pa a que el usua io pueda hace se una idea de lo ácil o di ícil, que son los
p oblemas incluidos en el olumen.
Es udio de Na egación
37
4.3.2. - Lis a de P oblemas
En es a página se mues a la lis a de p oblemas, de nue o en o ma de abla. Las columnas que
se incluyen en es a ocasión son:
 ID del p oblema: Es un núme o iden i icado del p oblema. Cada olumen cons a de
100 p oblemas, así que pa a ubica el p oblema ápidamen e se adop a una
nomencla u a en la que a cada núme o de p oblema (0-99) se an epone el núme o de
olumen (1-N). Así pues, el olumen 3 con iene los p oblemas 300-399, el olumen 7
los p oblemas 700-799, e c.
 Tí ulo: Es el í ulo del p oblema. Tan o es e campo, como el ID an e io son links al
“mini-si e” del p oblema. Se pod ía habe dejado un sólo enlace, pe o de es a mane a
esul a más ácil llega a la in o mación del p oblema.
 Es adís icas de en íos: En es a columna se mues a una pequeña ba a de p og eso
que mues a el es ado del p oblema en e e encia a la elación “en íos con esul ado
AC (Accep ed) / en íos o ales”.
 Es adís icas de usua ios: En es a columna se mues a una pequeña ba a de p og eso
que mues a el es ado del p oblema en e e encia a la elación “usua ios que ienen al
menos un en ío con es ado AC (Accep ed) / o al de usua ios que ha in en ado el
p oblema”.
4.3.3. - “Mini-si e” de un p oblema
Al selecciona un p oblema, “descendemos un ni el” en la p o undidad de la na egación, y la
is a mues a un encabezado con el nomb e del p oblema ijo pa a odas las páginas del
mismo

Es udio de Na egación
38
4.3.3.1 - Enunciado
En es a página mos amos el enunciado del p oblema. Los enunciados con ienen un o ma o
conc e o con las en adas y las salidas espe adas del p oblema. Po es e mo i o, lo
o ma eamos con es ilos dis in os pa a esal a el con enido y mejo a la comp ensión de los
enunciados.
4.3.3.2 - PDF
En es a página, simplemen e mos amos en una pes aña nue a el mismo enunciado en
o ma o pd , u ilizando el iso del na egado .
Es udio de Na egación
39
4.3.3.3 - En ia
En es a página se ealiza á el en ío del p oblema. Pa a ello se debe á elegi el lenguaje a usa
en la implemen ación y pos e io men e escoge en e in oduci el código di ec amen e en el
edi o incluido, o subi un iche o con la solución a en ega . El en ío sólo se á posible si el
usua io es á logueado. Además el en ío de una solución a pa i de un iche o, siemp e end á
p io idad, sob e una solución in oducida en el edi o , en caso de habe ellenado ambas
cosas, y así se ha á no a median e un a iso al elegi subi un iche o.
4.3.3.4 - Es adís icas
La página de es adís icas de un p oblema ecoge in o mación ele an e del p oblema. En
p ime a ins ancia se pod án e un g á ico de a a en es dimensiones con los po cen ajes de
en íos hechos en los dis in os lenguajes de p og amación; y un g á ico de ba as (ho izon al)
con la can idad de en íos de ese p oblema de las dis in as e aluaciones posibles (AC, WA, CE,
e c...). A con inuación se mues a, en caso de habe se logueado, el mejo en ío ealizado pa a
ese p oblema po el usua io que ha iniciado sesión. Po úl imo, se dispone de una abla con los
ein e mejo es en íos hechos pa a ese p oblema. La in o mación que se mues a es: posición
del en ío, núme o de en ío, usua io que e ec uó mandó el p oblema con enlace al pe il del
usua io, lenguaje usado en la implemen ación, iempo de ejecución, memo ia usada, y echa
de en ío.
Es udio de Na egación
40
Implemen ación
41
5. - Implemen ación
En es a sección se explica án aquellos aspec os de implemen ación más ele an es, como
lib e ías usadas, unciones impo an es u o os de alles.
5.1. - jQue y
jQue y
jQue y 1.9 Released
Desa ollado
Equipo de desa ollo
h p://jque y.com/
In o mación gene al
Diseñado
John Resig
Lanzamien o inicial
26 de agos o de 2006(in o)
Úl ima e sión es able
1.9 (in o)
15 de ene o de 2013; hace 2 meses
Géne o
Biblio eca
P og amado en
Ja aSc ip
Sis ema ope a i o
Mul ipla a o ma
Licencia
GPL y MIT
Idiomas
Inglés (documen ación)
En español
*
JQue yes una biblio eca de Ja aSc ip que acili a la o ma de in e ac ua con los documen os
HTML, manipula el á bol DOM, maneja e en os, desa olla animaciones y u iliza écnicas
AJAX en páginas web.
JQue yes so wa e lib e y de código abie o, iene un doble licenciamien o bajo la licencia MIT
y la Licencia Publica Gene al de GNU 2. jQue y, al igual que o as biblio ecas, o ece una se ie
de uncionalidades basadas en Ja aSc ip que de o a mane a eque i ían de mucho más
código, es deci , con las unciones p opias de es a biblio eca se log an g andes esul ados en
menos iempo y espacio.
Implemen ación
48
Incluimos la clase php desde donde se hace uso de la unciones de la lib e ía.
U ilizamos las unciones de la clase pasándole los pa áme os adecuados.
Es e es el esul ado inal.
Código c++
Código ja a

Implemen ación
49
5.4. CodeMi o
CodeMi o es una lib e ía ex e na que nos pe mi e ans o ma cualquie elemen o de
nues a página web en un edi o de código in eg ado que sopo a muchos de los lenguajes
más u ilizados en la ac ualidad.
Compa ible con los na egado es Fi e ox, Ch ome, Sa a i, Ope a e In e ne Explo e y con
sopo e de HTML, CSS, PHP, C, C++, C#, Ja a, Pe l, PHP, Ja aSc ip , Py hon, Lua, Go, G oo y o
Ruby, con la ayuda de su API, el edi o puede se o almen e con igu ado.
CodeMi o incluye en su edi o de código con licencia MIT el colo eado de sin axis
dependiendo del lenguaje en el que es emos esc ibiendo, au ocomple ado, is a p e ia de
HTML,...
La o ma de u iliza lo es bas an e sencilla, p ime o necesi amos el código que lo podemos
desca ga de la página o icial, en nues o caso lo hemos colocado den o de la ca pe a JS.
Una ez enemos la lib e ía den o de nues o p oyec o enlazamos los dis in os JS y CSS.
El ul imo paso es ma ca un ex a ea como elemen o pa a aplica el codemi o y llama a la
uncion.
Es e es el esul ado inal de la ans o mación del ex a ea en nues o edi o codemi o .
Implemen ación
50
5.5. VanadiumJS
Valida el con enido de las en adas de ex o (inpu ex y check) de los o mula ios HTML. Po
eso decimos que abaja de la lado-clien e, pues e i ica los da os según una
condición especí ica y luego se en ía los da os al se ido . Es una he amien a que abaja con
llamadas AJAX no-obs uc i as haciendo uso de jQue y. Es una u ilidad pode osa e in ui i a
ácil de ins ala y usa al.
Respec o a la lib e ía que hemos u ilizado llamada VanadiumJS cabe des aca la sencillez de su
con igu ación además de que es ácilmen e pe sonalizable pa a adap a la a nues as
necesidades. Vamos a e cómo unciona.
Pa a empeza , lo p ime o que ha emos es explica cómo hemos de con igu a la lib e ía e
ins ala la.
En la ca pe a JS gua damos en p ime luga la lib e ía de JQue y que podemos encon a en
su web es impo an e que ambién engamos la lib e ía se JQue y, en nues o caso es a
enlazada en la cabece a, como e a de espe a hace uso de JQue y.
En la ca pe a de CSS ponemos las hojas de es ilo. Es una hoja de es ilos sencilla de pe sonaliza
pues o que los nomb es que lle an cada uno de los es ilos son bas an e in ui i os.
css js
Finalmen e en la cabece a enlazamos es os a chi os.
Implemen ación
51
Vanadium usa el a ibu o class de los elemen os de los o mula ios pa a que en él se esc iban
los ajus es que sean necesa ios. Veamos un ejemplo con el que se alida ía un campo de ex o
en el que se espe a un e-mail.
<inpu id="email" name="email" ype=" ex " class=":email"/>
Se puede obse a que hay un símbolo de dos pun os (:) al p incipio de cada ajus e. En es e
caso es a íamos indicando que se ealiza a una alidación según la exp esión egula de un
email. Si hacemos la p ueba de es e código e emos que ealiza la alidación po cada e en o
que ocu e en la caja de ex o, si no que emos es e compo amien o se puede cambia pa a
que lo ealice pasado un iempo después de un e en o o pa a que lo ealice sólo cuando el
campo se abandone ( e mina de esc ibi y pasa al siguien e campo). O o aspec o impo an e
es que en el ejemplo an e io se pod ía no esc ibi nada en la caja de ex o y pasa la alidación
sin p oblemas, si se quie e que es o sea un campo eque ido hab ía que usa o o ajus e.
<inpu id="email" name="email" ype=" ex " class=":email : equi ed : only_on_blu "/>
También es posible la alidación de o o ipo de campos a pa e del email que a ienen
implemen ados po de ec o con la lib e ía. Podemos encon a en la página web del p oyec o
una lis a de las posibilidades admi idas.
Veamos po ejemplo como alida un campo ípico en el que se pide que epi as la con aseña,
pa a comp oba que has esc i o lo mismo en los dos luga es.
Implemen ación
52
Con aseña
<inpu id="pass" name="pass" ype="passwo d" class=":passwo d : equi ed : only_on_blu "/>
Reesc iba la con aseña po segu idad<b />
<inpu name=" epea Pass" ype="passwo d" class=":same_as;pass : equi ed : only_on_blu "/>
5.6. Diag amas de google
Pa a una mejo in e p e ación de las es adís icas hemos inco po ado dos ipos de g a icas: de
a as y de ba as. Pa a la implemen ación de es os diag amas hemos u ilizado la una api de
google llamada Google cha s.
La api pe mi e muchas opciones de con igu ación sob e las que no en a emos en de alles,
bas a con menciona las.
Visualización: G á ico de a as
1. Visión de conjun o
2. Ejemplo
3. Ca ga
4. Fo ma o de da os
5. Opciones de con igu ación
6. Mé odos
Implemen ación
53
7. E en os
8. Polí ica de da os
Es as imágenes mues an una o ma simple de u iliza es a api
pa a hace los dos ipos de g a icos de a as y de ba as.
Lo p ime o es enlaza la api a nues a web.
Una ez enlazado podemos u iliza las unciones de la api

Implemen ación
54
En la siguien e imagen emos como se inc us an en el h ml los g á icos, p e iamen e en da a1
y da a2 enemos los da os que se quie en mos a .
El esul ado inal es el siguien e:
5.7. C oss-si e sc ip ing
XSS, del inglés C oss-si e sc ip ing es un ipo de insegu idad in o má ica o aguje o de
segu idad ípico de las aplicaciones Web, que pe mi e a una e ce a pa e inyec a en páginas
web is as po el usua io código Ja aSc ip o en o o lenguaje sc ip simila , e i ando medidas
de con ol como la Polí ica del mismo o igen. Es posible encon a una ulne abilidad XSS en
aplicaciones que enga en e sus unciones p esen a la in o mación en un na egado web u
o o con enedo de páginas web. Sin emba go, no se limi a a si ios web disponibles
en In e ne , ya que puede habe aplicaciones locales ulne ables a XSS, o incluso el na egado
en sí.
XSS es un ec o de a aque que puede se u ilizado pa a oba in o mación delicada,
secues a sesiones de usua io, y comp ome e el na egado , subyugando la in eg idad del
sis ema. Las ulne abilidades XSS han exis ido desde los p ime os días de la Web.
Es a si uación es usualmen e causada al no alida co ec amen e los da os de en ada que
son usados en cie a aplicación, o no sanea la salida adecuadamen e pa a su p esen ación
como página web.
Implemen ación
55
Es a ulne abilidad puede es a p esen e de las siguien es o mas:
• Di ec a ( ambién llamada Pe sis en e): es e ipo de XSS comúnmen e il ado, y
consis e en embebe código HTML pelig oso en si ios que lo pe mi an; incluyendo así
e ique as como <sc ip > o <i ame>.
• Indi ec a ( ambién llamada Re lejada): es e ipo de XSS consis e en modi ica alo es
que la aplicación web u iliza pa a pasa a iables en e dos páginas, sin usa sesiones y
sucede cuando hay un mensaje o una u a en la URL del na egado , en una cookie, o
cualquie o a cabece a HTTP (en algunos na egado es y aplicaciones web, es o pod ía
ex ende se al DOM del na egado ).
Pa a soluciona es e p oblema hemos u ilizado la unción de php H mlspecialcha s()
h mlspecialcha s — Con ie e ca ac e es especiales en en idades HTML
Desc ipción:
s ing h mlspecialcha s ( s ing $s ing [, in $ lags = ENT_COMPAT |
ENT_HTML401 [, s ing $encoding = 'UTF-8' [, bool $double_encode = ue ]]] )
Cie os ca ac e es ienen un signi icado especial en HTML y deben se ep esen ados po
en idades HTML si se desea p ese a su signi icado. Es a unción de uel e un s ing con es as
con e siones ealizadas.
Si el s ing de en ada pasado a es a unción y el documen o inal compa en el mismo
conjun o de ca ac e es, es a unción es su icien e pa a p epa a en adas pa a su inclusión en
la mayo ía de los con ex os de un documen o HTML.
Las aducciones ealizadas son:
• '&' (e ) se con ie e en '&'
• '"' (comillas dobles) se con ie e en '"' cuando ENT_NOQUOTES no es á
es ablecido.
• "'" (comilla simple) se con ie e en ''' (o ') sólo cuando ENT_QUOTES es á
es ablecido.
• '<' (meno que) se con ie e en '<'
• '>' (mayo que) se con ie e en '>'
Implemen ación
56
A con inuación mos amos un ejemplo de un a aque de es e ipo
En es e o o caso hemos u ilizado la unción h mlspecialcha s
Implemen ación
57
5.8. cURL
Es una he amien a pa a usa en un in é p e e de comandos pa a ans e i a chi os
con sin axis URL, sopo a FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telne , DICT, FILE y
LDAP. cURL sopo a ce i icados HTTPS, HTTP POST, HTTP PUT, subidas FTP, Ke be os,
subidas median e o mula io HTTP, p oxies, cookies, au en icación median e
usua io+con aseña (Basic, DIges , NTLM y Nego ia e pa a HTTP y ke be os4 pa a FTP),
con inuación de ans e encia de a chi os, unneling de p oxy h p y muchas o as
p es aciones. cURL es open sou ce/so wa e lib e dis ibuido bajo la Licencia MIT.
Algunas de las unciones del cu l que u ilizamos en es a aplicación son las siguien es
• cu l_close — Cie a una sesión cURL
• cu l_exec — Es ablece una sesión cURL
• cu l_ge in o — Ob iene in o mación ela i a a una ans e encia especí ica
• cu l_ini — Inicia sesión cURL
• cu l_se op — Con igu a una opción pa a una ans e encia cURL
cu l_se op ($handle,CURLOPT_CUSTOMREQUEST,[PUT|DELETE|OPTIONS]);
Es a unción la empleamos pa a in oca a los dis in os se icios web que nos p opo cionan
in o mación de la base de da os. La in ocamos desde php pa a mon a las páginas que
equie en in o mación de es os WS.
Ejemplos de uso:
En es e o o ejemplo solici amos el HTML que con iene el enunciado de un p oblema
Conclusiones
64
C edenciales (nomb e, apellido, asigna u a, ca go…)
P o eso de Es uc u a de Da os y Algo i mos, en 2º de los g ados
Opinión del p oyec o
Me pa ece muy ú il pa a que los alumnos se animen a p og ama , y la u ilidad aumen a en la
medida en que la base de p oblemas u ilizados sea lo su icien emen e amplia. Aunque lo he
u ilizado poco, a p ime a is a lo único que “mejo a ía” es que no sé a qué esponden los
olúmenes de p oblemas, po lo que a p io i no sé dónde me in e esa en a pa a comenza a
esol e p oblemas.
Aplicación docen e
Pa a una asigna u a como EDA puede esul a una he amien a muy ú il, pe o pa a que los
es udian es no pie dan el iempo debe ía se posible di igi los hacia los olúmenes de
p oblemas que in e esen pa a un ema conc e o.
O a cues ión es que no se analiza la calidad del código, lo cual es impo an e en una
asigna u a como EDA.
Ven ajas
Dispone de una amplia colección de p oblemas a esol e con un conjun o comple o de casos
de p ueba que pongan a p ueba la obus ez (y la e iciencia) de su código.
Incon enien es
Se pasan po al o odas las chapuzas que se suelen me e en el código pa a consegui que
uncione, aunque sea de mane a e icien e. Y aunque no es un incon enien e ealmen e, se
omen a la idea de que el diseño de los algo i mos y la o malización no son especialmen e
impo an es, lo cual es un poco con a io a lo que se in en a enseña en una asigna u a como
EDA.
P edisposición a la implan ación en sus clases
MUY al a.

Conclusiones
65
C edenciales (nomb e, apellido, asigna u a, ca go…)
P o eso de asigna u a Me odología de la P og amación en los í ulos de Ingenie ía (la
equi alen e a Mé odos Algo í micos en la Resolución de P oblemas en los g ados) y de
P og amación II en el G ado en Es adís ica Aplicada.
Opinión del p oyec o
El p oyec o iene bas an e in e és an o desde el pun o de is a docen e como del abajo de
los alumnos que lo es án desa ollando.
Aunque la e sión del sis ema que he p obado oda ía no es á e minada, c eo que es un
sis ema muy comple o y que pe mi e a los alumnos que lo han desa ollado aplica écnicas
muy di e sas.
Aplicación docen e
En las asigna u as de p og amación su u ilidad es di ec a, po que pe mi e a los alumnos
ap ende de o ma au ónoma. En elación con es e aspec o, es impo an e que el alumno
enga una espues a ele an e del sis ema pa a que pueda ap ende de los e o es come idos.
He añadido algunos comen a ios espec o a es o en el apa ado de Incon enien es.
Ven ajas
Aunque mi expe iencia en el uso de jueces au omá icos es limi ada, c eo que es e sis ema
iene ca ac e ís icas que lo hacen especialmen e in e esan e. Po un lado, ene un se ido
de co ección de p og amas basado en una cola de espe a es in e esan e po que no bloquea el
sis ema si se quie en ealiza múl iples en íos. En es e caso, se ía in e esan e ene más
in o mación del es ado del se ido (en alguna de las p uebas que he ealizado la única o ma
de sabe que el se ido es aba pa ado ha sido espe a su icien e iempo).
Po o a pa e, es muy in e esan e dispone de in o mación sob e el iempo de ejecución y la
memo ia consumida po o as soluciones del mismo p oblema. En es e caso, se ía in e esan e
pode il a la in o mación de usua ios (po ejemplo, solamen e del usua io con el que se ha
ealizado el en ío, o un g upo educido de usua ios). En las p uebas ealizadas no e a ácil e
el ejemplo en iado en el anking debido al g an núme o de da os almacenados en el sis ema.
Incon enien es
El incon enien e p incipal pa a su uso como aplicación docen e es que no dispone de un modo
en el que se indique la salida del compilado en el caso de e o es de compilación, o los casos
en los que no unciona co ec amen e el p og ama en el caso de espues a inco ec a. He
mos ado ecien emen e un sis ema simila a mis alumnos en un cu so de p og amación.
Aunque no he p egun ado di ec amen e a los alumnos su expe iencia con el sis ema, mi
imp esión es que su uso ha sido bas an e educido. La al a de in o mación sob e los
Conclusiones
66
p oblemas que ha encon ado el juez con los p og amas en iados c eo que es de e minan e en
su adopción como he amien a habi ual po pa e de los alumnos (y los p o eso es).
El uso de una cola de a eas pendien es es muy in e esan e, pe o disminuye la in e ac i idad
con el usua io. Es o puede se ele an e en un en o no docen e si hay muchas pe iciones de
co ección (po ejemplo el úl imo día de en ega de p ác icas).
Aunque supongo que es á ue a del ámbi o de es e abajo de in de g ado, se ía muy
in e esan e que u ie a un modo de uso pa a el p o eso en el que se puedan añadi
p oblemas de o ma sencilla.
Po úl imo, es muy impo an e dispone de in o mación o documen ación del sis ema: los
dis in os es ados que iene un p og ama en iado, los posibles mo i os po los que la espues a
puede se inco ec a, e c.
Supongo que en la e sión inal del sis ema es a documen ación es a á disponible.
P edisposición a la implan ación en sus clases
Desde mi pun o de is a, pa a su uso en cu sos de p og amación es undamen al que el
sis ema enga un modo en el que se pueda p opo ciona in o mación adicional al alumno
sob e qué es lo que es á allando (qué caso no unciona, el mensaje del e o de compilación,
e c). Sin es a in o mación, su u ilidad se educe a cu sos de p og amación a anzados.
6.2. – Valo ación pe sonal
El p oyec o ha log ado cumpli odos los obje i os básicos que se habían p opues o,
espe ando los equisi os.
En los p ime os momen os he edamos un p o o ipo implemen ado en su 80% en ja a sc ip
que desechamos as un mes de e aluación. Es o supuso un g an e o ya que eníamos unos
plazos muy ajus ados de en ega debido a e asos en el inicio de la asigna u a. Vol iendo la
is a a ás y obse ando los esul ados nos sen imos muy sa is echos con nues o abajo.
Hemos p o is o al juez online de una in e az ag adable, in ui i a, amigable y sin exceso de
lo i u as, u ilizando las úl imas ecnologías disponibles que dan a la aplicación una apa iencia
ac ual y dinámica. Nos hemos asegu ado de do a a la página de segu idad con a los a aques
maliciosos conocidos.
Si analizamos las encues as hechas a p o eso es de la acul ad de in o má ica de la UCM
e emos que odos es án muy dispues os a u iliza la aplicación en sus clases. Es o co obo a
lo expues o en el p ime pá a o de es as conclusiones, los equisi os se han cumplido.
Po o a pa e si emos la opinión de los es udian es no odos es án dispues os a u iliza la
aplicación, pa a algunos supond ía un exceso de abajo y una he amien a de con ol po
pa e de los p o eso es. En lo que odos coinciden es en que es una buena he amien a pa a
au oe alua se, sin ene que espe a a las co ecciones del p o eso .
Conclusiones
67
Un pun o en con a que en los docen es es el hecho de no pode e alua la calidad del
código, desa o unadamen e eso no se encon aba den o de los equisi os iniciales del
p oyec o pe o es una in e esan e línea de desa ollo u u o.
Aunque cuen a con algunos de ac o es den o del alumnado podemos a i ma que “….” Se á
una he amien a emendamen e ú il en la docencia, y p e emos un uso gene alizado po
pa e de alumnos y p o eso es.
Bibliog a ía
68
7. –Bibliog a ía
 MOLLY E. HOLZSCHLAG. (2000). LA BIBLIA HTML 4. EDICIONES ANAYA MULTIMEDIA
 GERMÁN GALEANO GIL, JOSÉ CARLOS SÁNCHEZ ALONSO, PABLO DÍAZ MÁRQUEZ. (2009).
HTML EDICIÓN REVISADA Y ACTUALIZADA 2009. EDICIONES ANAYA MULTIMEDIA
 TOMMY OLSSON & PAUL O’BRIEN. (2008). THE ULTIMATE CSS REFERENCE. SITEPOINT
 LUC VAN LANCKER. (2012). JQUERY EL FRAMEWORK JAVASCRIPT DE LA WEB 2.0.
EDICIONES ENI.
 CLIFF WOOTTON. (2001). JAVASCRIPT PROGRAMMER’S REFERENCE. WROX PRESS
 DAVID FLANAGAN. (1998). JAVASCRIPT THE DEFINITIVE GUIDE. O’REILLY
 NICHOLAS C. ZAKAS, JEREMY MCPEAK, JOE FAWCETT. (2006). PROFESSIONAL AJAX. WILEY
PUBLISHING
 ESTEBAN TRIGOS GARCÍA. (2000). PHP 4. EDICIONES ANAYA MULTIMEDIA
 DAVID SKLAR. (2005). INTRODUCCIÓN A PHP 5. EDICIONES ANAYA MULTIMEDIA
 LUIS MIGUEL CABEZAS GRANADO. (2004). PHP 5 EL LENGUAJE PARA LOS PROFESIONALES DE
LA WEB. EDICIONES ANAYA MULTIMEDIA.