martes, 29 de noviembre de 2011

AMIVA: AMBIENTE PARA LA INSTRUCCIÓN VISUAL DE ALGORITMOS

                                   I N S T I T U T O T E C N O L Ó G I C O
                                        A U T Ó N O M O D E M É X I C O

                                                      R E S E N T A :
                                  J UAN PABLO CASARES CHARLES


OBJETIVO
El objetivo general de esta tesis es la creación de una herramienta, llamada AMIVA, con el fin de ayudar a los programadores principiantes a adquirir las habilidades de resolución de problemas fundamentales para programar en un lenguaje imperativo. Consiste en un ambiente visual de programación, que aprovecha las ventajas y disminuye las limitaciones de los diagramas de flujo tradicionales. Para lograr este fin, es necesario alcanzar los siguientes objetivos particulares:

Justificar las características que tiene el sistema, incorporando ideas de psicología educativa, interacción hombre computadora e inteligencia artificial.
Diseñar un sistema que apoye la enseñanza–aprendizaje de la solución algorítmica de problemas.
Implementar un sistema funcional. El resultado final es un producto usable.


MARCO TEÓRICO
Al hacer un sistema de EAC, es importante conocer principios de educación y los
usos de la computadora en la enseñanza. Para el desarrollo de un ambiente de
enseñanza-aprendizaje de algorítmica, se requiere investigar las características de
los sistemas que pueden apoyar esta función, como los sistemas tutoriales
inteligentes y los sistemas de programación visual. Esta investigación aporta ideas
para determinar las características funcionales de AMIVA y permite crear un
marco de comparación para evaluarla.

Psicología Educativa
Al estudiar los procesos cognoscitivos involucrados en el aprendizaje, la psicología
educativa puede ayudar a definir las características deseables de un sistema de
educación asistida por computadora.

Propuestas
A continuación se describen algunas propuestas pedagógicas de autores que han influido en el desarrollo de sistemas educativos. Aunque se encuentran agrupadas por autor, de ninguna manera se pretende describir la totalidad de su trabajo.

Computadoras y Educación

La tecnología puede tener un impacto gigantesco en la educación. Un ejemplo muy claro es la imprenta. A partir 1436, fecha de su invención por Gutemberg, se pudo generalizar el uso de los libros como herramientas educativas. La computadora puede tener un impacto aún más trascendente en la educación. James Lockard propone una clasificación según el papel que juega la computadora en el proceso de enseñanza-aprendizaje.

La Computadora como Herramienta

La computadora es una herramienta que ayuda a maestros y alumnos en tareas sencillas. El uso de aplicaciones típicas como procesadores de texto, hojas de cálculo y bases de datos para aprender (por ejemplo, a redactar) es una forma de usar a la computadora como herramienta. Otra forma sería que el maestro utilice programas especializados para la producción de material didáctico (por ejemplo, crucigramas) o para obtener información estadística del grupo [Lockard, 1987].
Con la difusión de Internet, se multiplican los usos de la computadora como herramienta; por ejemplo, para buscar de información en el World Wide Web y para comunicarse a través del correo electrónico.

DESARROLLO
La prioridad para la implementación del sistema fue la facilidad de programación.
No es necesario un ejecutable particularmente rápido, dado que los procesos no requieren cómputo intensivo y en general responden a las acciones del usuario.
Si corre en un número suficiente de máquinas, no se necesita independencia de plataforma. El sistema se desarrolló para Windows 32 (que incluye las versiones 95, 98 y NT). Es el estándar de facto para computadoras personales.
Prácticamente todas las computadoras en el ITAM operan bajo este sistema.
La implementación del sistema se realizó con Visual Basic. Dado el carácter gráfico e interactivo del programa, un lenguaje orientado a componentes visuales y eventos era apropiado. Visual Basic supuestamente permite la creación de componentes, soporta el desarrollo orientado a objetos, reduce considerablemente la complejidad de la programación en Windows, y puede generar ejecutables
ActiveX para internet. Además, su ambiente integrado de desarrollo es muy amigable. Como se verá a continuación, Visual Basic no alcanzó las expectativas que había generado.


Componentes
Un sistema en Visual Basic se compone de uno o más proyectos. Estos, a su vez, se construyen integrando una variedad de componentes. Cada uno se almacena como archivo.
En la implementación se usaron componentes de tipo Forma (una ventana, en donde se colocan controles), Módulo (subrutinas de código y declaraciones),
Clase (definición de una clase de objetos) y Control (un componente gráfico que se coloca en otros controles o en formas; Visual Basic incluye controles para botones, texto, menús, etc.). Las formas y controles funcionan como clases gráficas.

Mapeo a Visual Basic

En general, se considera que la fase de implementación es automática y sencilla una vez que se tiene un diseño correcto. Sin embargo, no siempre es trivial el mapeo de una especificación a construcciones de un lenguaje específico.
Varias de las características de Visual Basic tuvieron un efecto directo sobrela implementación del sistema. Y, por el carácter iterativo del desarrollo,  también sobre el diseño. A continuación se describen las que tuvieron un mayor impacto.
Paquetes
Originalmente, cada paquete del diseño (ver la Figura 5.67) se implementaba como un proyecto de Visual Basic. Sin embargo, su ambiente no manejaba bien el uso de proyectos múltiples, por lo que fue necesario transferir todos los componentes a un enorme proyecto único. El creciente número de archivos que conformaban este proyecto fue insoportable para Visual Basic. Afortunadamente, salió una nueva versión del producto (6.0) sin esa limitación y la migración no fue demasiado difícil.

Visual Basic no facilita la definición de una cantidad elevada de componentes, puesto que cada uno corresponde a un archivo. Esto volvía imposible usar muchas piezas en la versión anterior. En la versión 6.0, escalar el número de componentes se vuelve viscoso, puesto que única manera de clasificarlos es por proyecto (que no funciona) o por tipo (clase, control, etc.). Por el carácter iterativo del desarrollo, esto tuvo un efecto directo en el diseño del sistema: se prefirió usar menos clases más complejas.


 
 CONCLUSIÓN