Documente Academic
Documente Profesional
Documente Cultură
net/publication/228542511
CITATIONS READS
0 871
4 authors, including:
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Baltasar Fernández-Manjón on 01 June 2014.
Juan A. Recio García, Baltasar Fernández Manjón, Marco Antonio Gómez Martín
Dpto. Sistemas Informáticos y Programación
Universidad Complutense de Madrid
jareciog@fdi.ucm.es, balta@sip.ucm.es, marcoa@fdi.ucm.es
estrategia. Obviamente, esto se debe a que una la eficiencia es determinante. Al optimizar las
búsqueda en un espacio de estados con 981 posibi- estrategias implementadas observan las mejoras
lidades plantea una complejidad inalcanzable de rendimiento producidas por la modificación de
actualmente. Esta observación se complementa los distintos elementos estudiados en teoría:
cuando los alumnos implementan los algoritmos estructuras de datos inapropiadas, estructuras de
de búsqueda con podas. Al realizarlos, observan control mal definidas, etc.
que estas estrategias sí que terminan en un tiempo
apropiado. 4. Patrones de diseño
Aunque queda fuera del alcance de los alum-
nos que cursan esta asignatura, la práctica de Los Patrones de diseño [4] son un conjunto de
Sudoku puede ser utilizada para probar otros técnicas o diseños software que permiten escribir
algoritmos estudiados en asignaturas de cursos aplicaciones extensibles y reutilizables. La popu-
posteriores. Es el caso de técnicas de búsquedas laridad de los patrones se ha incrementado noto-
informadas o heurísticas explicadas en asignaturas riamente en los últimos años al utilizarse para la
de Inteligencia Artificial del ciclo superior de la creación de grandes aplicaciones, armazones o
Ingeniería. Siguiendo las ideas descritas en [7], se incluso el propio Java. Según ha aumentado su
podría implementar el resolutor de Sudokus utili- importancia, ha crecido la demanda de profesiona-
zando un sistema de reglas. les con conocimientos sobre patrones en el mundo
En relación con las posibles implementaciones laboral. Sin embargo, los patrones no tienen un
de los algoritmos tenemos que adelantar aquí una lugar específico dentro de ninguna asignatura de
de las características del entorno de desarrollo la carrera de Informática, ofreciéndose en algunos
J2ME. Este entorno cuenta con un sistema emula- casos como asignatura optativa, seminario o de-
dor de dispositivos móviles que tiene la caracterís- ntro del temario de Ingeniería del Software.
tica de poder simular la velocidad real de los Debido a la importancia actual de estas técni-
dispositivos emulados. De esta forma podemos cas hemos querido diseñar nuestro Sudoku apli-
establecer una velocidad de ejecución fija inde- cando algunas de ellas (la más importantes) y de
pendiente de la potencia del PC donde se ejecuta esta forma brindar a los alumnos la posibilidad de
el emulador. Esta característica permite medir la utilizarlas en un ejemplo claro, práctico e intuitivo
eficiencia de los algoritmos independientemente [8].
de la máquina donde se ejecuten. Para motivar a Entre los patrones de diseño destaca la arqui-
los alumnos, les ofrecemos en la última parte que tectura Modelo-Vista-Controlador (MVC). Esta
intenten mejorar los tiempos de respuesta de la arquitectura permite intercambiar fácilmente las
implementación de ejemplo realizada por noso- interfaces de usuario de los programas. Esta carac-
tros. terística es muy importante en los desarrollos
Esta característica también tiene otra ventaja software actuales. Por ejemplo, cualquier aplica-
de cara a la experiencia docente: permite ejempli- ción que se realice con ventanas tiene que estar
ficar a los alumnos que en determinados escena- preparada para su integración en la Web. Aunque
rios no es posible programar suponiendo una gran la lógica no varía, el modo de presentar los datos
disponibilidad de recursos. Los alumnos tienden a al usuario cambiará sustancialmente de una tecno-
adoptar la opinión de que no es necesario optimi- logía a otra.
zar los algoritmos ni intentar minimizar los recur- Los diseños MVC consisten en tres tipos de
sos, al dar por hecho que la máquina será siempre objetos: El Modelo implementa la lógica del
tan potente como para ejecutar su código sin programa, la Vista implementa la interfaz que
ningún problema de eficiencia. Hemos notado esta muestra los datos al usuario, mientras que el
suposición al revisar las distintas implementacio- Controlador define cómo se reacciona ante la
nes de los alumnos en las estrategias de búsqueda. entrada del usuario (se encarga de orquestar el
Cuando después se les pide que ejecuten su códi- flujo de datos entre el Modelo y la Vista). Si no se
go con limitaciones de velocidad y memoria (en el utiliza MVC las aplicaciones suelen mezclar la
emulador de dispositivos móviles) se dan cuenta lógica y presentación de la aplicación, acoplando
de que la disponibilidad ilimitada de recursos no el código y dificultando su reutilización. MVC
siempre es cierta y que en determinados entornos desacopla la presentación y la lógica establecien-
XII Jornadas de Enseñanza Universitaria de la Informática 5