Sistemas de ayuda al diseño para el análisis de calidad y complejidad de algoritmos
Estado del arte
- Resumen
- Complejidad en el desarrollo
de algoritmos - Lenguaje Unificado de
Modelado. UML - Métodos Avanzados de
Solución de Problemas - El RBC en la informática
educativa - El razonamiento basado en casos
para tareas de diseño - MALCON: Sistema automatizado de
ayuda al aprendizaje y el diagnóstico de malformaciones
congénitas - Algunas
experiencias - Conclusiones
- Bibliografía
Temática: Análisis de
complejidad de algoritmos y
selección eficiente de las Estructuras de
datos para
representar la información. Sistemas de
Enseñanza Asistida por Computadora.
Dada la importancia que para el desarrollo de
la sociedad
actual tiene la formación de profesionales capacitados en
la rama de la Informática y la Computación y más
específicamente en la ingeniería de software, se hace necesario
que los estudiantes adquieran de forma sólida las
habilidades para la creación de algoritmos, éste ha
sido el objetivo y la
base fundamental que sustenta a las carreras antes mencionadas y
en un futuro, quizás no muy lejano, se espera incluso que
en la enseñanza media superior se realicen estudios sobre
programación de sistemas. Sin embargo, en
las disciplinas encargadas de este contenido se han detectado
problemas en
el proceso de
enseñanza-aprendizaje, dada
la complejidad que presupone impartir y asimilar temas
relacionados con las estructuras de datos y su adecuada
selección para representar la información y las
operaciones
básicas que con ellas se realizan, lo que dificulta la
obtención de algoritmos eficientes.
Reconocida la necesidad expresada anteriormente,
proponemos el desarrollo de un sistema de
enseñanza asistida por computadoras
que ayude a suplir las deficiencias que el estudio muestre. Una
forma efectiva sería un medio que integre diferentes
técnicas computacionales, de manera que en
él se reflejen las mejores vías para ayudar al
proceso de enseñanza aprendizaje, todo esto basado en un
análisis profundo de la problemática detectada, de
forma que se puedan definir los puntos críticos y las
invariantes que resulten complejas, es por ello que se hace
necesario realizar un análisis del Estado del
Arte de las
temáticas que intervienen en nuestra investigación.
El impacto de la Enseñanza Asistida por
computadora. Perspectivas para el presente trabajo
Desde los albores de la historia humana, el aprender
ha sido una característica propia de cada individuo, que
ha contribuido a fundamentar las bases del desarrollo humano, ya
que cuando se aprende, se adquiere el
conocimiento por medio del estudio, el ejercicio o la
experiencia. A medida que hemos evolucionado como
civilización, han surgido personas que se han dedicado al
estudio del comportamiento
humano, esto ha conllevado a la definición de diversos
criterios con respecto al aprendizaje; conceptos, métodos,
herramientas y
técnicas. Así, con al pasar del tiempo, las
exigencias de la vida moderna, (dinámica, competitiva y llena de
información), han dirigido a la sociedad a buscar nuevos
modelos,
técnicas y sistemas que permitan adquirir esos
conocimientos de una manera eficaz y
eficiente.
En una sociedad impactada por la ciencia y
la tecnología, todo ciudadano necesita de una
cultura
científico-tecnológica para entender, integrarse y
actuar en el mundo que lo rodea. Dado el amplio espectro que
abarcan las ciencias en la
vida de un ser humano, los objetivos de
su enseñanza dentro del tramo obligatorio del sistema
educativo no deben apuntar a la formación de
científicos rutinarios, sino a impartir un concepto de
ciencia para
todos que desarrolle actitudes y
aptitudes científicas que tengan utilidad genuina
en la vida real.
La educación como
concepto no puede ser expresado por una terminología
global. Los sistemas de enseñanza parten de varios
métodos originados en diversas corrientes
ideológicas que pretenden formalizar una metodología adecuada a las necesidades de
nuevos estudiantes. El objetivo de un modelo
educativo, esta relacionado con una asimilación adecuada y
precisa de los conocimientos a partir de un razonamiento que
ayude al educando a comprender un fenómeno y de igual
forma, le permita proponer alternativas o propuestas conducidas a
resolver un problema en concreto. No
obstante el anterior planteamiento, existen otras corrientes que
definen a la educación como un
proceso de construcción y transformación del
ambiente en el
que se desarrolla el educando.
A pesar de lo que dictan todas estas filosofías,
consideramos que la escuela es una
institución que imparte una educación formal que
independientemente de seguir una corriente en especial, se ha
visto en la necesidad de incorporar a sus metodologías el
uso de herramientas que faciliten el
aprendizaje.
Sin llegar a considerarla como una corriente, la
tecnología
educativa comprende el uso de los instrumentos
tecnológicos como herramientas que auxilian a las instituciones
educativas a la formación y preparación de los
estudiantes, así como a la mejora de los procesos de
evaluación educativa, aumentando
también el rango de los estudios al ser posible la
educación remota sin menoscabo de la calidad de la
instrucción recibida.
En cuanto al alumnado, en nuestro país se busca
que sea más participativo e investigador. Para eso se
cuenta con distintas herramientas como los libros,
manuales,
antologías, discos compactos, páginas de Internet, talleres de
habilidades directivas entre otras. Para los grupos se
pretende que estos interactúen y discutan sus clases,
realicen tareas en equipos apoyados con las herramientas
tecnológicas.
Según "no existe informe, estudio,
investigación o prospectiva sobre el futuro que no
reconozca y señale el papel fundamental de la
educación en el desarrollo de los individuos, así
como los nuevos retos a los que ésta tendrá que dar
respuesta; pero a la vez, se acrecienta el discurso del
fracaso del sistema escolar, lo elevado de su costo, la falta
de preparación del profesorado, etc."
Los educadores cubanos son conscientes del papel
fundamental que les toca desempeñar y al mismo tiempo no
tienen que enfrentar precisamente una visión que puede
considerarse como fatalista, de acuerdo a las anteriores
afirmaciones. Queda claro que la situación referida
responde a otros sistemas educacionales que distan bastante del
nuestro; el reto de superar, mejorar y modernizar las
técnicas utilizadas en el proceso docente educativo para
ajustarlo más a la nueva explosión
tecnológica está planteado para todos los
educadores del mundo en general y para nuestro sistema de
enseñanza en particular, que aspira siempre a ser un
sistema de excelencia, lo que sólo se logrará en la
medida en que seamos capaces de incorporar los últimos
avances de la ciencia y la técnica al proceso de
enseñanza y aprendizaje.
La educación actual, requiere transformar los
mecanismos de transmisión del conocimiento,
por lo que el proceso de enseñanza-aprendizaje debe estar
homologado con los avances
tecnológicos. Una de las herramientas que está
posibilitando modificar este proceso es la
computadora, a través del desarrollo de
múltiples aplicaciones educativas.
La incorporación de metodologías de
enseñanza auxiliadas por computadora incrementa la
eficiencia en
la transmisión y adquisición del conocimiento,
permitiendo la manipulación de grandes volúmenes de
información, la homogenización del conocimiento, la
disponibilidad, masificación y la permanente
actualización del mismo. Es muy importante interpretar
adecuadamente tanto el rol de las computadoras como herramientas
para representar el conocimiento como su carácter de instrumento
pedagógico.
El impacto de las computadoras en la educación ha
sido ampliamente estudiado durante los últimos años
y no todos los resultados han sido satisfactorios, lo que indica
claramente la necesidad de continuar realizando investigaciones
que arrojen más luz sobre este
importante medio de enseñanza. Adams y colaboradores
señalan algunas contradicciones en relación con un
estudio sobre el uso de la EAC en la enseñanza de la
Matemática: en un extremo se presentan
algunos autores que reportan efectos negativos, otros muestran
que no hay mejoras con el uso de las computadoras, mientras un
tercer grupo sugiere
que la EAC ha constituido una valiosa ayuda en el proceso de
enseñanza y aprendizaje.
Hodson reconoce que la EAC no siempre ha disfrutado de
una buena reputación, pero en los últimos
años con el incremento de la potencia de las
computadoras y del software multimedios, además de las
técnicas de Inteligencia
Artificial (IA), los estudiantes tienen la posibilidad de
observar la simulación
del comportamiento
de los sistemas que están estudiando, a la vez que se le
presenta un gran cúmulo de información bien
dosificada de acuerdo a estrategias
pedagógicas cuidadosamente diseñadas.
Estudios más recientes muestran resultados
positivos, pero en todos los casos queda claro que hay que ser
cuidadoso al elegir el tema que se tratará y la forma en
que será abordado.
A juicio Duffy, un enfoque pedagógico a emplear
para la EAC aplicada a las Ciencias de la Computación es
el enfoque constructivista En un aula el conocimiento se da
muchas veces, como algo final en contraposición a lo
más importante, el conocimiento como un medio para
resolver problemas o comprender eventos. El
constructivismo
pone especial énfasis en la persona que
aprende y lo convierte en un agente activo de su aprendizaje; en
este caso el profesor juega
el papel de facilitador , en contraposición con la
enseñanza más tradicional u "objetivista" en la que
la información se transfiere más directamente, por
ejemplo, a través del profesor. Las técnicas de
enseñanza siguientes se enmarcan en el enfoque
constructivista asistido por computadoras:
- Ambientes hipermedios. Presentan la
información en una forma no lineal
permitiendo que los estudiantes pueden navegar por
ella a través de un dominio con
enlaces predefinidos entre pequeñas piezas de
información. El aspecto constructivista está en
el hecho de que el aprendiz determina la secuencia de
aprendizaje, pero los conocimientos del dominio en si se
presentan en forma expositiva.
- Ambientes de mapas
conceptuales. Permiten formar conceptos relacionados
entre si.
Simulación por computadoras. Son
programas que
contienen modelos del mundo real. La acción
básica del aprendiz es realizar cambios en las variables de
entrada y observar las consecuencias sobre las variables de
salida
- Ambientes de modelación.
Permiten que el aprendiz construya modelos por ejemplo LOGO y
los ambientes basados en él
Según Glasser el conocimiento engendra
conocimiento; en otras palabras la habilidad de construir nuevos
conocimientos es una función
del aumento de la calidad del conocimiento existente, del
razonamiento y otras habilidades intelectuales
En ese sentido, la educación a todos los niveles
se ha enfrentado a la disyuntiva de si la instrucción debe
concentrarse en enseñar contenidos o en desarrollar
habilidades intelectuales
La teoría
cognoscitiva de Newell y Simon plantea como principio fundamental
que la forma en que el conocimiento, las habilidades y las
actitudes se aprenden inicialmente, juega un papel determinante
sobre el grado en que dichas cualidades pueden ser usadas en otro
contexto.
Un elemento crítico para el fomento del
aprendizaje es dejar que los estudiantes resuelvan problemas en
un medio que refleje los múltiples usos de su
conocimiento, lo que sirve a diferentes propósitos.
Según Reeves, con esta perspectiva se logra que los
estudiantes puedan comprender el propósito o uso del
conocimiento, el aprendizaje deja de ser pasivo y se convierte en
activo, los estudiantes conocen diferentes condiciones bajo las
que su conocimiento puede usarse.
Desde la década del 70 se han desarrollado
Teorías, Estrategias y Conceptualizaciones
para fundamentar que las herramientas computacionales constituyen
un método
para descubrir, describir y cuantificar la
información.
La Psicología cognitiva
considera el aprendizaje como la sucesión de las
modificaciones de las estructuras cognitivas que son causa de la
conducta del
hombre. Se han
elaborado diversas teorías acerca de la forma en que se
crean y desarrollan las estructuras del conocimiento en las
personas. En el aprendizaje por descubrimiento, los
aprendices son inducidos a descubrir las reglas del objeto de
estudio por sí mismos.
La Informática Educativa no es una disciplina
puramente técnica; sicólogos, educadores y
sociólogos discuten con relación a su valor
pedagógico real. Hoy en día los avances en la
sicología, combinados con la explosión
tecnológica, han dado lugar a una serie de sistemas
educativos que permiten resolver algunas limitaciones de la
educación tradicional.
En el proceso de enseñanza-aprendizaje de la
asignatura de Estructura de
Datos, impartida en todas las carreras de perfil
informático, se han enfrentado históricamente
problemas en la asimilación, análisis y
creación de habilidades en el alumno que le permitan una
selección adecuada de las estructuras para representar la
información y las operaciones básicas que con ellas
se realizan, lo que dificulta la obtención de algoritmos
eficientes.
En el mundo esta problemática aun está
vigente, a pesar de los esfuerzos que se realizan por utilizar
diferentes vías y herramientas para facilitar el
aprendizaje y desarrollo de algoritmos, no sólo en
países desarrollados.
Podemos citar ejemplos de algunas herramientas
informáticas para la creación de animaciones de
algoritmos, Balsa, Zeus, StarLite y
Xtango, esta última ofrece una plataforma que
soporta una serie de conceptos primitivos útiles para la
creación de animaciones, es fácilmente
transportable, no exige mucho del sistema donde debe ser
instalado, puede utilizarse en la World Wide Web
(WWW) y, finalmente, el modelo conceptual que utiliza es bastante
sencillo.
Todas estas aplicaciones muestran de forma
gráfica las operaciones básicas con algunas
estructuras de datos, simulando el proceso que se ejecuta. En la
animación que se muestra en la
Figura 1 se diseñaron varias vistas, una de ellas
comprende el código
del algoritmo a
animar, que a su vez se divide en otras pequeñas vistas
que contienen pedazos de código correspondientes a los
diferentes casos que pueden ocurrir durante la ejecución
del algoritmo. Así mismo, por cada caso se originan otras
subvistas que despliegan el esquema general del caso y una
descripción textual del mismo.
Para ver el gráfico seleccione la
opción "Descargar" del menú superior
Figura 1. Inserción en árboles
Rojo/Negro
Estas aplicaciones resultan de mucha utilidad en la
enseñanza de los temas de estructuras de datos,
permitiendo que los estudiantes comprueben de forma
gráfica el efecto (representación gráfica)
que provoca la causa (algoritmo).
Sin embargo la lucha por lograr algoritmos eficientes va
mucho más allá, se requiere en primer lugar
seleccionar la estructura de
datos adecuada para representar la información,
diseñar el algoritmo y realizar el
análisis de complejidad del mismo
Hasta el momento se han hechos grandes esfuerzos en el
mundo por utilizar las técnicas de Enseñanza
Asistida por Computadoras para una mejor comprensión de
este tema, pero, a nuestro modo de ver, el problema que se
plantea no sólo debe analizarse en el momento en que se
aprende sino también cuando se desarrolla una
aplicación que utiliza algoritmos que por su complejidad
pueden dar por resultado que el producto
obtenido no sea lo suficientemente eficiente.
El aprendizaje en múltiples contextos facilita la
abstracción del conocimiento. Tomando estos criterios en
cuenta consideramos que debemos considerar la experiencia
acumulada sobre la EAC para el desarrollo de nuestro sistema. La
idea fundamental consiste en facilitar la ejecución real,
de manera que los estudiantes:
- Lleguen a sus propias conclusiones y construyan
nuevos conocimientos a partir del sistema didáctico
desarrollado. - Modifiquen los programas que se ofrecen, a partir del
hecho de haber detectado limitaciones para resolver nuevas
tareas. - Sugieran y usen estructuras de datos que consideren
más apropiadas. - Sugieran y hagan modificaciones a los diferentes
algoritmos o, en casos extremos, recomienden nuevos algoritmos
para resolver los problemas presentados. - Puedan valorar los cambios, en el caso de ser
necesarios, o puedan justificar la permanencia del
código y las estructuras de datos presentados, cuando
consideren que no es necesario hacer
modificaciones. - Sean capaces de evaluar la calidad del proceso, no
solo al final del proceso, sino en cada una de las etapas
previas, logrando así una mayor calidad en el producto
final.
Todo lo anterior implica que subscribimos el enfoque
constructivista, por considerarlo una forma apropiada para
enseñar a diseñar algoritmos y evaluar su
complejidad.
Complejidad en
el desarrollo de algoritmos.
A lo largo de los años el software se ha vuelto
cada vez más complicado. El incremento en la potencia de
los ordenadores y la aparición de modernos dispositivos y
tecnologías ha generado la necesidad de nuevos sistemas
operativos y aplicaciones de mayor complejidad.
Simultáneamente, esta complejidad ha traído consigo
la demanda de
nuevos métodos y herramientas que nos ayuden en la
construcción de este software.
A nadie que trabaje o haya trabajado en el desarrollo de
software le extraña que un proyecto sufra
retrasos, o incluso deba cancelarse. La situación es
caótica y actualmente, lo que nos sorprende es
encontrarnos con un proyecto que marcha tal y como estaba
previsto. Los culpables de esta situación, podemos
buscarlos a todos los niveles de la cadena, desde el comercial
que vende el proyecto en el tiempo que quiere el cliente sin
conocer siquiera las características del sistema a
realizar hasta el propio cliente que no sabe lo que quiere hasta
que finaliza el proyecto.
Particularizando, uno de los problemas más
comunes en el desarrollo de software es que la mayoría de
programadores y analistas es reacia a documentar las decisiones
tomadas, bien por falta de tiempo o bien por dejadez y cuando se
hace, suele ser algo incompleto, no actualizado y poco
consistente, ya que cada miembro del equipo utiliza una serie de
símbolos familiares para él pero no
para los demás.
Otro problema muy
habitual, relacionado con el anterior, es la absoluta escasez de
procedimientos
establecidos dentro de una empresa para
desarrollar software. Como mucho, las empresas suelen
seguir el método de desarrollo en cascada (requisitos,
análisis, diseño, implementación y pruebas).
Lenguaje
Unificado de Modelado. UML
En este contexto, UML surge como
respuesta al primer problema reseñado para contar con un
lenguaje
estándar para escribir planos de software. Muchos han
creído ver UML como solución para todos sus
problemas sin saber en muchos casos de lo que se trataba en
realidad.
El Lenguaje Unificado de Modelado, UML es una
notación estándar para el modelado de sistemas,
software o no, resultado de una propuesta de
estandarización promovida por el consorcio OMG (Object
Management Group), del cual forman parte las empresas más
importantes que se dedican al desarrollo de software, en
1996.
UML representa la unificación de las notaciones
de los métodos Booch, Objectory (Ivar Jacobson) y OMT
(James Rumbaugh) siendo su sucesor directo y compatible.
Igualmente, UML incorpora ideas de otros metodólogos entre
los que podemos incluir a Peter Coad, Derek Coleman, Ward
Cunningham, David Harel, Richard Helm, Ralph Johnson, Stephen
Mellor, Bertrand Meyer, Jim Odell, Kenny Rubin, Sally Shlaer,
John Vlissides, Paul Ward, Rebecca Wirfs-Brock y Ed Yourdon.
En Septiembre de 2001 se ha publicada la
especificación de la versión 1.4. UML no es un
proceso de desarrollo, es decir, no describe los pasos
sistemáticos (que tienen que ver con el segundo problema
descrito con anterioridad) a seguir para desarrollar software.
UML sólo permite documentar y especificar los elementos
creados mediante un lenguaje común describiendo modelos,
paso de avance fundamental en la temática que
investigamos.
Modelado
En todos los
ámbitos de la ingeniería se construyen modelos, en
realidad, simplificaciones de la realidad, para comprender mejor
el sistema que vamos a desarrollar: los arquitectos utilizan y
construyen planos (modelos) de los edificios, los grandes
diseñadores de coches preparan modelos en sistemas CAD/CAM
con todos los detalles y los ingenieros de software
deberían igualmente construir modelos de los
sistemas software.
Un enfoque
sistemático permite construir estos modelos de una forma
consistente demostrando su utilidad en sistemas de cierto
tamaño. Cuando se trata de un programa de
cincuenta, cien líneas, la utilidad del modelado parece
discutible pero cuando involucramos a cientos de desarrolladores
trabajando y compartiendo información, el uso de modelos y
el proporcionar información sobre las decisiones tomadas,
es vital no sólo durante el desarrollo del proyecto, sino
una vez finalizado éste, cuando se requiere algún
cambio en el
sistema. En realidad, incluso en el proyecto más simple
los desarrolladores hacen algo de modelado, si bien
informalmente.
Para la
construcción de modelos, hay que centrarse en los detalles
relevantes mientras se ignoran los demás, por lo cual con
un único modelo no tenemos bastante. Varios modelos
aportan diferentes vistas de un sistema los cuales nos ayudan a
comprenderlo desde varios frentes. Así, UML recomienda la
utilización de nueve diagramas que,
para representar las distintas vistas de un sistema. Estos
diagramas de UML son los siguientes:
- Diagrama de Casos de Uso: modela la
funcionalidad del sistema agrupándola en descripciones
de acciones
ejecutadas por un sistema para obtener un
resultado. - Diagrama de Clases: muestra las clases
(descripciones de objetos que comparten características
comunes) que componen el sistema y cómo se relacionan
entre sí. - Diagrama de Objetos: muestra una serie de
objetos (instancias de las clases) y sus
relaciones. - Diagrama de Secuencia: enfatiza la interacción entre los objetos y los
mensajes que intercambian entre sí junto con el orden
temporal de los mismos. - Diagrama de Colaboración: igualmente,
muestra la interacción entre los objetos resaltando
la
organización estructural de los objetos en lugar del
orden de los mensajes intercambiados. - Diagrama de Estados: modela el comportamiento
de acuerdo con eventos. - Diagrama de Actividades: simplifica el
Diagrama de
Estados modelando el comportamiento mediante flujos de
actividades. - Diagrama de Componentes: muestra la organización y las dependencias entre un
conjunto de componentes.
Diagrama de Despliegue: muestra los dispositivos
que se encuentran en un sistema y su distribución en el mismo.
Analizando la mayor parte de las aplicaciones software
nos podemos encontrar con elementos tan dispares como páginas
Web, acceso a bases de datos,
código C++, código Java, interfaz
CORBA de acceso a un servidor C++,
etc. Esta disparidad es el reto básico que tienen que
afrontar los vendedores de herramientas
CASE que quieran proporcionar un entorno de diseño
integrado.
Con los años va siendo mayor la capacidad de
trabajar más con menos herramientas, lo que supone una
mayor integración y una menor complejidad en las
herramientas CASE, que lleva a una mayor productividad.
A la hora de alcanzar una mayor integración, UML
se presenta como una buena alternativa, ya que se basa en un
metamodelo extensible. El metamodelo UML es un modelo que
describe modelos. Una visión de este modelo nos muestra
elementos orientados a objetos como clases, atributos y
métodos, todos ellos y sus interrelaciones representados
como metaclases. Al modelo UML se le pueden añadir
más metaclases, por ejemplo para describir modelos
entidad-relación, así como realizar extensiones
para tratar con interfaces como las definidas usando CORBA. El
estándar UML define notaciones para representar la
información y su interrelación desde una
perspectiva gráfica, además soporta el uso de un
formato de intercambio. El CASE Data Interchange Format (CDIF) es
un anexo importante al UML, ya que, aunque UML especifica el tipo
y la relación que existe entre la información que
ha de ser almacenada en una biblioteca
(repository), no especifica cómo se debe guardar esta
información, dejando la elección a los distintos
vendedores. El CDIF permite una representación ASCII para una
biblioteca de diseños, dicha representación puede
ser utilizada para transferir los datos del diseño de una
herramienta CASE a otra, pudiendo ser utilizada por generadores
de informes y
otras herramientas de este estilo. Cuando decimos que una
herramienta OOCASE "genera código", nos estamos refiriendo
a cabeceras y prototipos en el caso de C++ o Java y a
información de esquema en el caso de bases de datos
relacionales. O sea, se proporciona la base para clases,
métodos, y atributos en aplicaciones orientadas a objetos,
así como tablas, columnas y relaciones en DBMS relacional.
El tener una herramienta CASE que proporcione código de
aplicación y de base de datos
ayuda a garantizar que el modelo y su implementación
estén sincronizados. Esta sincronización hace que
la herramienta de modelado sea más útil para los
desarrolladores. Sin un mecanismo integrado para guardar la
implementación y el modelo sincronizados, se produce con
frecuencia una desconexión entre ambos. Dicho de otra
forma, es frecuente que las mejores soluciones se
hagan evidentes en el proceso de implementación, si estas
soluciones, que llevan con frecuencia a modificaciones en el
diseño, no son realimentadas hacia atrás en el
modelo de una forma conveniente, el modelo puede pasar a estar
"out of date". El valor intrínseco del modelo se pierde
desde el momento en que no podemos confiar en él y por lo
tanto deja de usarse. Para soportar la generación de
ficheros de cabecera y prototipos de métodos, debe haber
una forma de asegurar que la herramienta no sobreescribe el
cuerpo de los métodos y otro código y comentarios
introducidos por el desarrollador. La forma más
fácil y frecuente de hacer esto es introducir
información del modelo dentro del código generado.
Esto suele llevar a las protestas de los desarrolladores cuando
utilizan por primera vez una herramienta de este tipo. Estas
protestas son entendibles, ya que la legibilidad del
código fuente se reduce de una forma significativa debido
a la información introducida por la herramienta CASE en
bloques de comentarios. Dos razones reducen la importancia del
problema de "polución" del código:
- Los desarrolladores están acostumbrados a ver
los comentarios extra y filtrarlos mentalmente. - La utilización cada vez más frecuente
de entornos de desarrollo integrado cada vez mas sofisticados
(ej.: Visual Basic de
Microsoft).
Estos entonos ofrecen browsers para clases y métodos que
hacen la navegación hacia declaraciones y definiciones
específicas más sencillas, con lo cual los
desarrolladores pueden evitar el "ruido"
introducido en los ficheros de código
nativos.
Las herramientas OOCASE necesitan colaborar con otras
aplicaciones a lo largo del ciclo de vida
del proyecto. Esto es particularmente cierto en el caso del
software de control de
versiones. Debido a que los modelos están expuestos a
frecuentes cambios durante el análisis y el diseño,
muchos vendedores integran ya este tipo de software.
Además, las herramientas CASE deben trabajar en un entorno
multiusuario ya que los proyectos grandes
los modelan y construyen equipos de desarrolladores. Las
herramientas CASE que almacenan los modelos en ficheros del
sistema operativo
en vez de utilizar una biblioteca almacén,
deben definir unidades de modelo que puedan ser utilizadas de
forma concurrente por diferentes diseñadores y analistas.
Estas unidades además deben estar bajo el control de
algún software de versiones. La granularidad de las
unidades de este tipo es un factor importante ya que con
frecuencia diferentes partes del modelo están
entrelazadas. Cuando un desarrollador coge una parte del modelo,
esa parte debería ser lo suficientemente pequeña
como para que otros desarrolladores puedan coger otros elementos
del modelo y trabajar de una forma independiente. Hay que tener
en cuenta que cualquier parte del modelo que es común a
más de una unidad y a la que se acceda con frecuencia,
puede convertirse en un cuello de botella para los procesos de
modelado. Las herramientas OOCASE seguirán en el futuro
soportando diferentes metodologías. Incluso cuando UML
alcance su esperada penetración en el mercado,
aparecerán otras metodologías con gran
número de seguidores, existiendo siempre varias notaciones
y metodologías activas. Es por eso, que será
importante que las herramientas CASE que ahora almacenan la
información del modelo en ficheros evolucionen hacia
almacenes a
los que puedan acceder diferentes herramientas. Esto hará
más fácil el intercambio de información
entre herramientas que realizan clases específicas de
modelado. De todas formas es también deseable que se
reduzca el número de herramientas CASE necesarias para
modelar una aplicación.
El número de herramientas CASE que soporta UML ha
crecido muy considerablemente estos últimos
años.
UML sirve para hacer modelos que permitan:
- Visualizar como es un sistema o como queremos que
sea. - Especificar la estructura y/o comportamiento de un
sistema. - Hacer una plantilla que guíe la
construcción de los sistemas - Documentar las decisiones que hemos
tomado
El modelado sirve no solamente para los grandes
sistemas; aún en aplicaciones de pequeño
tamaño se obtienen beneficios de modelar, sin embargo, es
un hecho que entre mas grande y más complejo es el
sistema, el modelado juega un papel más importante. Esto
se debe a una razón simple: "Hacemos modelos de
sistemas complejos porque no podemos entenderlos en su
totalidad"
Hay límites
para el entendimiento de la complejidad. A través del
modelado reducimos el ámbito del problema de estudio al
enfocar solo un aspecto a la vez.
UML puede ser usado extensivamente en:
Recopilación de requerimientos, Análisis de
aplicaciones, Diseño de
sistemas, en pruebas, en implementación, en reingeniería y prácticamente en
cualquier actividad de desarrollo que sea susceptible de ser
modelada.
Cabe aclarar que aunque UML es orientado a objetos
preferentemente, es útil en cualquier modelo
tecnológico ya que es independiente de lenguajes de
programación o tecnología
determinada.
Beneficios de esta
tecnología.
Los beneficios son claros al ocupar este lenguaje de
modelamiento:
Mejores tiempos totales de desarrollo (de 50% o
más). En la mayoría de organizaciones
hoy en día el tiempo que pasa desde que un proyecto
arranca hasta que se estabiliza es más del doble de lo
planeado originalmente. Con el uso de UML las fases de
análisis y diseño consumirán mayor tiempo,
pero el tiempo de construcción, implantación y
estabilización se reducen drásticamente debido a
que no hay correcciones mayores en las fases de mayor impacto de
un proyecto.
Mejor calidad. El uso de UML hace indispensable
la participación del usuario en la definición de
requerimientos y por lo tanto mejora considerablemente el apego
del sistema a las necesidades de sus usuarios. El mantenimiento
correctivo se reduce drásticamente (hasta un 80% con
respecto a un sistema hecho sin metodología). Algo similar
ocurre en los proyectos de reingeniería.
Mejor soporte a la planeación
y al control de proyectos. Al existir entregables definidos y
estandarizados en las distintas fases de un proyecto y al ser
éstos revisables y certificables por gente distinta del
autor, tenemos que los planes de trabajo pueden ser
fácilmente creados y corroborados en avance. Lo que
permite tomar decisiones a tiempo.
Mayor independencia
del personal de
desarrollo. Al tener documentadas las aplicaciones en un
lenguaje estándar, podemos mover al personal de una
aplicación a otra sin correr altos riesgos y sin
depender del conocimiento personal de las
aplicaciones.
Mayor soporte al cambio
organizacional, comercial y tecnológico. Un modelo
permite cuantificar el impacto de un cambio antes de hacerlo y
permite ensayar distintos enfoques de solución. Con UML un
cambio se puede hacer primero en papel.
Alto reuso. Los productos de
un desarrollo pueden ser usados en otro. Se pueden crear
componentes reusables que con la difusión y administración adecuadas minimizarán
costos y
errores.
Minimización de costos. Los puntos antes
mencionados tienen un impacto económico que generalmente
tiende a ser proporcional al tamaño de la
organización. {, 2000 #14}
Al evaluar las ventajas que nos reporta el UML, y los
numerosos sistemas que se han implementado basándose en
resultados emitidos por el, nos proponemos usar como entrada a
nuestro sistema, una salida del UML para suministrar el modelo
inicial del algoritmo a desarrollar.
Para ver el gráfico seleccione la
opción "Descargar" del menú
superior
Métodos Avanzados de Solución de
Problemas.
En nuestro estudio sobre las técnicas de EAC nos
encontramos con la aplicación de los Métodos
Avanzados de Solución de Problemas (MSP) en la
construcción de Sistemas de Enseñanza.
Desde principios de la
década del 60, las computadoras sirvieron como base de los
sistemas de enseñanza automatizados. A fines de los
años 60 las investigaciones en esta esfera habían
languidecido bastante, aunque existía la convicción
de que la Enseñanza Asistida por Computadora debía
proporcionar nuevos e importantes cambios a la
enseñanza.
En 1971 la NSF (National Science
Foundation) de los Estados Unidos de América
decide invertir 10 millones de dólares durante cinco
años en los proyectos TICCIT (Time Sharing
Interactive Computer Controlled
Information) y PLATO (Programmed Logic
for Automatic Teaching Operation). La
finalidad de estos proyectos era demostrar que la
Enseñanza Asistida por Computadora (EAC) podía
proporcionar mejor enseñanza a menor costo. En esa
época las computadoras eran bastante costosas y nada
"amistosas", por ese motivo las premisas que rigieron aquellos
proyectos no son exactamente las reglas que se emplean hoy en
día para la producción de ambientes educativos
asistidos por computadora.
Durante parte de los años 70 y hasta comienzos de
los 80 se produce un estancamiento, principalmente debido a la
falta de madurez del desarrollo tecnológico: los reducidos
rendimientos y prestaciones
de las computadoras en comparación con sus costos y
también debido al escaso desarrollo conceptual y
metodológico.
Un importante momento para los sistemas de EAC en
particular y para el mundo en general fue, sin lugar a dudas, el
surgimiento del micro procesador, que
rompió con las grandes limitaciones inherentes a grandes
centros de cálculo
asociados a costos muy elevados e inalcanzables para los sistemas
de educación de cualquier país. En los
últimos años se han diseñado e implementado
ambientes de aprendizaje poderosos, que se compenetran con las
características de los procesos de aprendizaje en forma
efectiva y que involucran una nueva concepción del
aprendizaje.
Las técnicas de la Inteligencia
Artificial se han incorporado a los sistemas de EAC,
acuñándose el nuevo término
Intelligent CAI (ICAI) lo que ha permitido
dotar a los sistemas de EAC de un comportamiento que no se limita
a mostrar textos o imágenes.
Con estas técnicas, los nuevos sistemas disponen de un
verdadero conocimiento sobre la materia que se
enseña y permiten mostrar a los alumnos los pasos del
razonamiento.
Los términos «Inteligencia
Artificial» y «Educación» definen el
carácter distintivo de una actividad de
investigación preocupada por el desarrollo de sistemas
educativos basados en tecnologías avanzadas ver en la
web para poner
algo en la base de datos que toman en consideración
diversos aspectos del conocimiento. Hoy en día el uso
conjunto de las nuevas
Tecnologías de la Información y las Telecomunicaciones, y las tendencias
pedagógicas, impulsan una constante evolución; desde los primeros programas de
enseñanza asistidos por ordenador en los años 50,
sistemas Computer Assisted Instruction (CAI), pasando por
los Sistemas Tutores Inteligentes (STI) hasta el momento presente
en el que las posibilidades de los actuales sistemas hipermedia y
multimedia, la
World Wide Web y las tendencias de trabajo en grupo
(sistemas colaborativos) acrecientan el imparable desarrollo de
la instrucción a distancia y no presencial.
El aprendizaje es una actividad consustancial al ser
humano. Se aprende a lo largo de toda la vida, aunque no siempre
en forma sistemática: a veces es fruto de las
circunstancias del momento; otras de actividades planeadas por
alguien (la persona misma o un agente externo) y que el aprendiz
lleva a cabo en aras de dominar aquello que le interesa
aprender.
El ambiente de aprendizaje está determinado por
el entorno físico, psicológico y las estrategias
utilizadas para la enseñanza y aunque resulta importante,
no es lo que determina, en última instancia, qué se
aprende; es la actividad del aprendiz el punto focal del
problema, ya que ni aún en un entorno "ideal" se
logrará un aprendizaje efectivo sin que el estudiante
desarrolle las actividades asociadas con éste.
Existen diversas teorías sobre el aprendizaje y
en nuestra opinión ninguna de ellas debe ser
menospreciada, ya que todas aportan en mayor o menor medida
elementos sobre la adquisición del conocimiento. Estas
teorías con diferentes matices oscilan entre dos
polos:
- Conductismo.
- Cognoscitivismo.
En el primer caso no se toma en cuenta el sujeto que
aprende, se consideran sólo las condiciones externas que
ayudan al aprendizaje. Se describe como el modelo de la "caja
negra" que presenta la enseñanza como pequeños
eventos programados, que conducen a lograr un objetivo dado y
utiliza reforzamientos de acuerdo a las respuestas obtenidas,
teniendo siempre en mente la consecución del objetivo en
cuestión.
Por otra parte, el punto de vista cognoscitivo considera
a la persona como lo fundamental y en contraposición al
caso previo se dice que es un modelo de "caja transparente", ya
que lo que cuenta es el aprendiz dentro de su entorno
psicológico y social. Esta corriente centra sus esfuerzos
en explicar los procesos mentales y las estructuras de la memoria
humana con el fin de comprender la conducta.
El RBC en la
informática educativa.
En los diferentes tipos de sistemas que se pueden
desarrollar en el campo de la informática educativa las
herramientas basadas en casos se pueden usar para construir,
acceder y usar casos como parte de un marco computacional
más amplio. Por ejemplo, en el sistema SHERLOCK, el
RBC se emplea para identificar las situaciones y explicaciones
previas que podrían potencialmente afectar la
explicación que se construye.
Una componente importante de cualquier proceso de
aprendizaje es satisfacer las necesidades de información,
acceder a la información que permite responder una
pregunta, tomar una decisión, resolver un problema o
ayudar a comprenderlo. El acceso a información es una
actividad fundamental en el aprendizaje. La ventaja distintiva
del empleo de una
biblioteca basada en casos para acceder a la información
es la posibilidad de integrar gran cantidad de información
en representaciones alternativas y de buscarla
asociativamente.
Seguidamente se describen dos aplicaciones del RBC en el
área de la instrucción asistida por
computadoras.
El sistema SHERLOCK antes mencionado es un
sistema inteligente para entrenar técnicos de
aviación en el análisis de problemas en equipos
electrónicos complejos, su uso minimiza la
interacción con el tutor (humano) y además permite
revisar el desempeño del técnico en una
sesión posterior, esto último es muy importante
pues numerosos experimentos han
indicado que como el aprendizaje en el contexto de la
solución de tareas es un esfuerzo cognitivo significativo
en las sesiones posteriores de trabajo es donde los estudiantes
pueden revisar sus propias acciones y compararlas con el trabajo de
los expertos y es allí donde se materializa gran parte de
la instrucción.
Cada paso ejecutado por los estudiantes el sistema lo
evalúa como "bueno" o "podría ser mejorado". Esta
evaluación se realiza determinando cuales rasgos
caracterizan la acción y calificándolos en buenos
(b), malos (m) o regulares (r), luego SHERLOCK
evalúa cada acción con respecto a un conjunto de
rasgos a los que se han asociado un juicio sobre si los rasgos
indican un resultado bueno o que podría ser mejorado. Para
esto se utiliza el razonamiento basado en casos.
Para ello el algoritmo del sistema construye una
estructura de datos denominada Grafo Aciclico Dirigido (GAD) el
cual indica las acciones previas que son similares a una dada. La
raíz del GAD representa la acción actual y los
rasgos de interés
(los evaluados de mal). Cada nodo en el GAD representa un
conjunto de las acciones que comparten el mismo conjunto de
rasgos de interés, mientras más rasgos un nodo
tenga en común con la acción actual más
semejante será al nodo raíz.
Una vez encontrada una situación adecuada el
sistema decide como usar esta al generar la explicación
necesaria en ese momento.
- RBC y el Diseño Asistido por Computadoras
(CAD) en las asignaturas de las carreras de Ingeniería
Mecánica.
1.2 El
razonamiento basado en casos para tareas de
diseño.
Anteriormente presentamos un ejemplo de sistema basado
en casos para resolver problemas de diseño y la
técnica en la que se basa. En este se analizará
cómo el razonamiento por analogía y particularmente
el RBC se ha utilizado en el desarrollo de sistemas para el
diseño asistido por computadoras (CAD systems).
Kolodner describe la problemática del
diseño de la forma siguiente. En el diseño los
problemas se definen como un conjunto de restricciones, y el que
resuelve problemas se invoca para construir un artefacto concreto
que satisfaga las restricciones del problema. Las restricciones
ofrecen una guía pero no señalan al que resuelve
problemas una dirección de búsqueda particular. El
espacio de búsqueda es enorme, pudiendo existir muchas
respuestas posibles pero lo suficientemente dispersas dentro del
espacio, de modo que los métodos de búsqueda
estándares requieren demasiado tiempo para hallarlas.
Además, el problema puede ser demasiado grande para
resolverlo como un todo pero como sus partes interactúan
fuertemente, resolver cada parte aisladamente y luego integrarlas
casi siempre lleva a que se violen las interacciones entre las
partes (lo que se denomina duramente descomponible).
A la vez, el dominio del diseño se caracteriza
por la relevancia que tienen las experiencias (casos) previas
para sugerir ideas que frecuentemente ayudan a enfrentar nuevos
problemas de diseño, proponer y refinar las soluciones,
criticar y modificar los diseños propuestos y justificar
su selección. Sin embargo, a pesar de la aparente
abundancia y uso extensivo de los diseños anteriores los
diseñadores no tienen siempre acceso a los casos
apropiados. Ellos no están organizados en bibliotecas sino
que frecuentemente están esparcidos en archivos,
publicaciones, libros y en las memorias de
otros diseñadores. Algunas firmas tienen pequeñas
colecciones con los diseños de su propiedad pero
organizadas de forma que resulta difícil determinar su
relevancia para con el nuevo problema.
Es por todo lo anterior que el razonamiento basado en
casos puede ofrecer el camino hacia la elaboración del
nuevo diseño. En lugar de resolver los problemas
descomponiéndolo en sus partes, resolviendo cada parte y
recomponiéndolas, un caso sugiere una solución
completa, y las partes que no se adecuen a la nueva
situación se adaptan. Resolver un problema adaptando una
solución vieja evita que el que resuelve problemas tenga
que tratar con muchas restricciones que se cumplen en la nueva
situación. Aunque sea necesario hacer un trabajo de
adaptación considerable esta tecnología es casi
siempre preferible a generar una solución desde estadios
muy tempranos del diseño cuando hay muchas restricciones y
las partes del problema no son fácilmente recompuestas. En
la ingeniería y en la arquitectura el
proceso de diseño es casi enteramente un proceso de
adaptar o mezclar varias soluciones viejas para resolver el nuevo
problema.
La otra contribución importante del RBC es que
permite señalar los problemas de las soluciones
propuestas.
Resumiendo, el RBC es útil para tareas de
diseño pues este dominio se caracteriza por:
- Ejecutar un diseño requiere de experiencia
previa. - Frecuentemente es difícil representar la
heurística del experto en diseño a través
de reglas. - El diseño de un producto se puede realizar a
partir de diseños realizados antes. - Usualmente están disponibles muchos casos de
diseño. - Este dominio se caracteriza por la existencia de
casos excepcionales con cierta regularidad, lo que dificulta el
empleo de reglas u otros medios para
realizar generalizaciones.
Además, el RBC es una tecnología adecuada
pues mediante la memoria
permanente y los métodos de búsqueda se puede poner
a disposición del diseñador un gran volumen de
experiencia previa a través de casos resueltos y a partir
de esta información el mismo puede construir la
solución deseada; lo que esta totalmente de acuerdo con el
termino Diseño Asistido por Computadora. Este
método es muy usado en las carreras de Mecánica.
- MALCON: Sistema
automatizado de ayuda al aprendizaje y el diagnóstico de malformaciones
congénitas
En Cuba existen
experiencias de la aplicación de sistemas sustentados en
RBC en la docencia
médica, ejemplo de ello, es la propuesta por el sistema
automatizado de ayuda al aprendizaje y diagnóstico de
malformaciones congénitas.
Calidad de software
Un aspecto importante a considerar en el contexto del
análisis y diseño de algoritmos es la calidad final
y por etapas del software elaborado.
Debido a la cantidad creciente de aplicaciones de
software educativo que están disponibles para crear y
administrar contenidos de cursos basados en tecnología, se
plantea la necesidad de contar con técnicas que permitan
medir y evaluar los productos desarrollados.
La evaluación es una de las actividades
más comunes entre los seres humanos y de las de mayor
impacto en el ámbito educativo: consume una gran cantidad
de tiempo y energía de los profesores, afecta a millones
de alumnos, repercute en la vida de las familias y, de sus
resultados, se siguen consecuencias -impacto- para la
sociedad.
Los criterios ofrecen orientaciones para una
descripción del uso posible y pedagógicamente
viable. Algunos de los aspectos involucrados en el proceso de
enseñanza / aprendizaje que interesan analizar
cuidadosamente son los siguientes:
- la modalidad elegida, el rol que desempeña el
evaluador en el proceso, el comportamiento del producto, el uso
del producto para lograr los objetivos, el enfoque
pedagógico empleado, las actividades cognitivas que
persigue, los recursos
empleados y el avance de los conocimientos por parte del
alumno.
Existen numerosos trabajos que hacen referencia a la
utilidad y calidad en una herramienta para educación. Uno
de los trabajos que se ha tenido en cuenta como referencia
importante es "Calidad en Educación a Distancia", de Dr.
Richard Bothel y Suzanne Store publicado en 1998 y cuyas ideas se
consideran a continuación.
Los educadores que actualmente desarrollan software
educativo que cumplan con las necesidades de los alumnos de
hoy en día, continúan enfrentando las disputas de
la comunidad de
educadores tradicionales y de los organismos de
acreditación. Las tecnologías
educativas y metodologías de aprendizaje que se
emplean para generar programas de educación flexible a los
alumnos son considerados como que no cumplen estándares de
calidad apropiados. Este supuesto es realizado en función
de que "el aula es el mejor lugar para que ocurra el
aprendizaje". Las metodologías de Educación basada
en Tecnología son principalmente juzgadas en base a su
habilidad para duplicar las experiencias del aula. Son necesarios
nuevos métodos para asegurar y validar la calidad de los
programas de Educación basada en
Tecnología.
Se debe destacar que las experiencias que se mencionan a
continuación provienen por un lado de resultados de
trabajos efectuados en diferentes ámbitos de
investigación empresariales y por otro lado del
ámbito estrictamente académico.
Algunas de las investigaciones realizadas en los
últimos años concluyen en que se han obtenido
resultados positivos al emplear métodos de
educación basados en tecnología. Se ha demostrado
que la educación proporcionada utilizando
tecnología es equivalente o mejor que la proporcionada en
un aula tradicional.
Otro estudio realizado en 1992, en la Universidad del
Estado de Pennsylvania, sugirió que el empleo de entrenamiento
basado en tecnología retuvo a los participantes en una
proporción igual o superior al de una clase
tradicional.
Por otro lado, otro estudio reveló que la
instrucción basada en tecnología que emplea
video
alcanzó un nivel de retención superior entre un 25%
a 50% al de una clase tradicional (Multimedia and Videodisc
Monitor,
1992).
Existen numerosas evidencias que
muestran que la calidad del aprendizaje es superior al utilizar
entrenamiento basado en tecnología, que la
instrucción tradicional (Wall Street Journal,
1996).
Asimismo, se demuestra que el entrenamiento basado en
tecnología puede reducir el tiempo planeado para el curso
entre un 20% a 80% comparado con un curso tradicional , debido en
alguna medida a que el participante puede "saltar" aquellos
conocimientos que tiene incorporado previamente (Training and
Development, 1996).
Asimismo, numerosas empresas han concluido que el
entrenamiento basado en tecnología puede reducir hasta un
50% el tiempo empleado comparado con el entrenamiento en una
clase tradicional.
En cuanto al ámbito académico se pueden
destacar numerosos estudios y experiencias que demuestran la
conveniencia del uso de software educativo basado en
tecnología para favorecer la interacción y la
motivación en el proceso de enseñanza –
aprendizaje/entrenamiento.
En particular abundaremos en la experiencia realizada
con los alumnos de la carrera de Licenciatura en
Informática de la Universidad Nacional de La Plata. La
misma consistió en que los alumnos asistían al
curso de ingreso tradicional y disponían además de
una herramienta multimedial que les permitía ejecutar y
verificar sus soluciones a los problemas planteados en las
prácticas del curso. Se pudo comprobar que esta
experiencia ha sido positiva para los integrantes debido a que
creció el grado de interés, atención y participación.
Además, la utilización de la herramienta
sirvió para un mejor análisis y comprensión
de los contenidos del curso observados a partir de los resultados
del seguimiento efectuado a los alumnos durante el 1er
cuatrimestre en la asignatura Programación de Computadoras
de la carrera.
Todas las experiencias referidas anteriormente han
tenido en cuenta de alguna manera la evaluación de la
calidad tanto del software educativo usado como del proceso de
enseñanza aprendizaje.
En el ámbito de la reflexión
científica y de su desarrollo práctico las
propuestas para evaluar software educativo han sido casi tan
variadas y numerosas como la diversidad y número de
quienes se han ocupado de estudiar el tema. Una de estas formas
es la de evaluación de software educativo mediante
planillas, con experiencias concretas con diferentes productos,
con docentes de
distinto nivel y también con un número importante
de alumnos/usuarios.
Naturalmente no se trata de un resultado "definitivo",
sino la exposición
de los aspectos positivos y negativos de los trabajos
experimentales realizados en el ámbito académico de
la UNLP, trabajo en el que se destaca una metodología que
rescata los aspectos multidisciplinarios del producto "software
educativo" y trata de obtener una valoración orientativa
de la calidad de un determinado producto educativo,
valoración que depende del contexto educativo, el perfil
de los alumnos, el grado de adaptación del docente y las
características mismas del evaluador.
Con la investigación realizada hemos podido
comprobar:
- La importancia de las técnicas de
Enseñanza Asistida por Computadoras para el desarrollo
eficiente del proceso de enseñanza-aprendizaje en el
contexto educacional actual. - La aplicabilidad de los Métodos Avanzados de
Solución de Problemas y las técnicas de
Inteligencia Artificial en la construcción de sistemas
de enseñanza. - Los esfuerzos realizados en el mundo por ayudar a
estudiantes y programadores a mejorar la calidad del software
que se diseña. - Aún existen deficiencias en el proceso de
enseñanza-aprendizaje, dada la complejidad que presupone
impartir y asimilar temas relacionados con las estructuras de
datos y su adecuada selección para representar la
información y las operaciones que con ellas se realizan,
lo que dificulta la obtención de algoritmos
eficientes. - El problema que se plantea no sólo debe
analizarse en el momento en que se aprende sino también
cuando se desarrolla una aplicación que utiliza
algoritmos que por su complejidad pueden dar por resultado que
el producto obtenido no sea lo suficientemente
eficiente. - Es posible elaborar, como uno de los resultados de
nuestra investigación, diseñar una herramienta
que ayude al análisis de la complejidad de algoritmos y
sus Estructuras de Datos, contribuyendo al desarrollo de
productos de software de la más alta calidad, en el
tiempo oportuno y con un mínimo costo.
Adams, J. (1991). "A comparison of computer assisted
instructional methods." International Journal of
Mathematical Education in Science and Technology
22-6: 889 – 893.
- Almeida Campos, S. (1997). MALCON: Sistema
automatizado de ayuda al aprendizaje y el diagnóstico
de malformaciones congénitas. Relatoría del
Taller de Informática en la Educación, La
Habana, Cuba. - Anderson, J. R. (1983). The architecture of
cognition. Cambridge, MA: Harvard University
Press. - Barrios, A. M. (1997). REFLEXIONES EPISTEMOLOGICAS
Y METODOLOGICAS EN LA ENSEÑANZA DE LAS CIENCIAS PARA
TODOS BOLETIN 44, diciembre 1997 / Proyecto Principal de
Educación - Bello, R. (2001). Razonamiento Basado en
Casos. Las Villas. Cuba. - BERTONE, D. G., GORGA, MADOZ (1995). Una
propuesta de curso interactivo multimedial para el ingreso a
Informática en la UNLP. 1er. CACIC., Bahía
Blanca. - Blackwell, A. F. (1998). Metaphor or Analogy: How
Should We See Programming Abstractions? Proceedings of the
8th Annual Workshop of the Psychology of Programming Interest
Group.: 105-113. - Booch, G. (1999). El lenguaje unificado de
modelado, Addison-Wesley. - Brandes, A. (1991). Treasureworld: A computer
enviroment for the study and exploration of feedback.
Constructionism: 391-417. - Bravo, J., Ed. (1999). Aprendizaje por
descubrimiento en la enseñanza a distancia: Conceptos
y un caso de estudio. Universidad de Castilla-La Mancha.,
Grupo de Informática Educativa.Departamento de
Informática. - Brown, J. S. (1985). "Process versus product: A
perspective on tools for communal and informal electronic
learning." Journal of Educational Computing Research
2. - Brusilovsky, P. (2000). "Course sequencing for
Static Courses? Applying ITS Techniques in Large-Scale
Web_Based Education." Proceedings of Intelligent Tutoring
Systems Gilles G., Frasson C and VanLehn K. Springer
Verlag: 625-634. - Cabrera, A. (1995). "Informática educativa:
La revolución construccionista."
Informática y Automática 28-1:
24-31. - CHAMPREDONDE, D. G. (1997). Design and
Implementation of The Visual Da Vinci Language. . Facultad
de Informática, UNLP. Perú. - CHAMPREDONDE, R., DE GIUSTI (1998). Visual Da
Vinci Extension for Real Robot Control. LIDI. I Conferencia
de robotica,
UNLP, Perú. - COHEN, D. K. (1988). Educational technology and
School Organitation. - CUBAN, L. (2000). Computers meet classroom:
Classroom wins. - Duffy, T. (1991). "Constructivism: New implications
for instructional technology." Educational Technology
Research & Development. - Gall, J. E. (1994). "A framework for the study of
hypertext." Instructional Science
22. - Glaser, R. (1991). Scientific reasoning across
different domains. Computer-Based learning environments and
problem solving. Berlin, Germany,
Spring-Verlag,. - Gómez, D. d. M. M. (2000). TENDENCIA DE
FUTURO DE LAS HERRAMIENTAS UML.Consuegra. Estudio de diversas
herramientas UML para el desarrollo de software. - GORGA, G. y. M., C (2000). Experiencia en el
desarrollo y utilización de un Curso Interactivo
Multimedial para el Ingreso a Informática en la
UNLP. - Group, O. M. (2000). UML.
- Group, O. M. (2001). UML version 1.4.
- Hennessy, S. (1993). "Learner perceptions of
realism and magic in computer simulations." British
Journal of Educational Technology 24. - HODAS, S. (1993). Technology refusal and the
organitation nature of schools. - Hodson, D. (1996). "Laboratory works as scientific
method: three decades of confusion and distortion." JCS
Journal of curriculum
studies 28-2. - Jonassen D., M. T. a. M. R. (2001). Sistemas
Inteligentes en el ámbito de la educación.
2003. - Jonnan, T. (1996). Discovery learning with
computer simulations of conceptual domains.
Simpósio Investigação e Desenvolvimento
de Software Educativo. Conferências, Universidad Nova
de Lisboa, Portugal. - Khasawneh, A. A. (1994). "An intelligent CAI
project for teaching mathematical concepts. I."
International Journal of Mathematical Education in Science
and Technology. 25-4: 325 – 332. - Kolodner, J. L. (1992). "An introduction to CBR."
Artificial Intelligence Review 6,
3-34. - Lezcano, M. (1998). "Ambientes de aprendizaje por
descubrimiento para la disciplina Inteligencia
Artificial". - LOVELESS, T. (1996). Why aren't computers used more
in school? - MADOZ, B. (1994). Multimedia y aplicaciones en
educación. - MOLINARI, D. G., MADOZ, PESADO. LUBO-1 (1992).
Un modelo de máquina abstracta para un primer curso
universitario de programación. XIV Conferencia
Latinoamericana de Informática. Multimedia and
Videodisc Monitor., Perú. - Newell, A. (1972). Human problem solving.
Englewood Cliffs, NJ: Prentice Hall. - Ohlsson, S. (1986). "Some principles of intelligent
tutoring." Instructional Science 14:
293-326. - PALACIOS, A. C., R. y AINCHIL, V (2000).
Teaching Experiences in Programming Using the Visual Da
Vinci Language. First International Congreso on Tools for
Teaching Logic, , Universidad de Salamanca. - Reeves, T. (1991). Designing CAL to support
learning: The case of multimedia in Higher Education.
Nordic Conference on Computer-Aided Higher Education,
Helsinki University of Technology, Finland, August
1991. - Ruíz, A. J. S. and A. F. P. Ribeiro (1998).
Algunos Criterios para la Construcción de Animaciones
de Algoritmos con Propósitos Pedagógicos.
Venezuela,
Laboratorio de Construcción de
Herramientas Automáticas (AuTooLab) Centro de Ingeniería
de Software Y Sistemas (ISYS) Escuela de
Computación, Facultad de Ciencias Universidad Central
de Venezuela. - Ruiz, F. (1996). "Nuevas herramientas
tecnológicas para la realización de cursos por
computador." Revista de Enseñanza y
Tecnología, 5: 21 – 31. - RUSSELL, T. (1995). The "No significant
difference". Phenomenon. - Sanz, A. (2000). Introducción a UML.
- Self, J. A. (1999). "The defining characteristics
of intelligent tutoring systems research: ITS care,
precisely." Journal of Artificial Intelligence in
Education 10-3-4: 350 – 364. - Vazirani, M. J. K. a. U. V., Ed. (2001). An
Introduction to Computational Learning Theory, The Bactra
Review. Occasional and eclectic book reviews by Cosma Shalizi
How to Build a Better Guesser.
Autor:
Lic. Yolanda Soler Pellicer
Dr. Mateo Lezcano Brito