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