Download Contenido Figuras Capitulo 1 1.1 Introducción 1.2 Prólogo 1.3

Document related concepts
Transcript
Contenido
Figuras ______________________________________________________________ 2
Capitulo 1 ___________________________________________________________ 3
1.1 Introducción_________________________________________________ 3
1.2 Prólogo ______________________________________________________ 5
1.3 Objetivos y Condicionantes __________________________________ 5
1.4 Justificación _________________________________________________ 7
1.5 Organización de la tesis ______________________________________ 8
Capitulo 2 ___________________________________________________________ 9
2.1 Metodología _________________________________________________ 9
2.1.1 Lenguajes Visuales ______________________________________ 9
2.1.2 Antecedentes de los lenguajes visuales _________________ 10
2.1.3 Historia de la investigación de los lenguajes visuales ____ 11
2.1.4 Comunicación efectiva __________________________________ 13
Bibliografía _________________________________________________________ 16
Figuras
Figura 1 Integración de un Lenguaje Visual _______________________________11
Capitulo 1
1.1 Introducción
A medida que el mundo moderno se adapta a las nuevas tecnologías, ya
sea mediante el contacto visual o textual, el cambio aporta la tendencia científica
que a veces es difícil de adaptar a nuestro entorno; en este caso específico el
problema es el estilo y los paradigmas de diseño al abordar la tarea de aprender
e iniciarse en la programación. Mientras que existen herramientas de diseño de
software que nos facilitan la creación de plantillas (esquemas de clases) bien
estructuradas, solo para añadir el código personalizado, los fundamentos y bases
de estudio aunado con la experiencia, hace que ésta sea una herramienta
sumamente valiosa y la eficiencia se ve mejorada notablemente, y éste es un
punto clave con la que no cuenta el nuevo estudiante de la programación
(experiencia); no existe bajo la plataforma Windows© un entorno de
programación visual didáctico que genere el código o una plantilla sencilla para
aprender el paradigma de los lenguajes informáticos.
Al querer incorporar en nuestro entorno una herramienta de ingeniería de
software (tal es el caso de las herramientas CASE), ya sea por presión
competitiva o por iniciativa propia, se corre el riesgo de que la información con la
que contamos no sea suficiente. En otras, palabras podemos dejar atrás (o tal
ves ignorar) la base estructural de un problema al querer generar cuanto código
sea posible. Con esto no se quiere decir que las herramientas CASE no
funcionen, sino más bien, el contar con los conocimientos suficientes para poder
aprovecharlas.
Tradicionalmente la comunidad informática ha enseñado a los nuevos
estudiantes de la programación la importancia que tienen los diagramas de flujo
para resolver problemas, y si no son para resolverlos funcionan como ingeniería
inversa y ver de manera organizada como es flujo de la información. Esta técnica
es sobre el pizarrón, papel o filminas y el estudiante no tiene la oportunidad de
ver si funcionan.
Algunos estudiantes al poner en práctica modelos de uso de pseudo
código se olvidan de la importancia que los esquemas de flujo aportan, y esto se
hace más evidente cuando tratan de aprender un lenguaje formal de
programación. Esto es, hasta cierto punto una forma natural de actuar. Al migrar
a un nuevo entorno de diseño, como lo es por ejemplo, dibujar en papel el
diagrama de flujo al pseudo código y después a los lenguajes de programación,
se adquieren nuevos valores, más conocimientos. A medida que avanzamos se
van olvidando las formas tradicionales de esquematizar un problema. Aun
cuando algunos prefieren primero aplicar formas tradicionales de trabajar o
estudiar, es difícil de hacerlo; es como estar viviendo en dos mundos diferentes.
En parte porque siempre que hacemos un esquema de cualquier flujo de
información, es en la mayoría de las veces, diferente al escribirlo en código
escrito. Es aquí donde la información se pierde, si no se tiene la suficiente
destreza o experiencia en el manejo de software.
El conocimiento del uso de los diagramas de flujo representa una instancia
importante de preservar. Tan importantes son que las herramientas CASE se
basan en estas metáforas de programación para construir sus plantillas. Y la
nueva generación de los lenguajes de programación (de 6ª Generación) es
totalmente visual y se basan en algún tipo de esquema de diagrama de flujo
como interfaz para construir sistemas.
1.2 Prólogo
Este trabajo de tesis se enmarca en la línea de investigación de software
visual didáctico. Su principal contribución será para los estudiantes del Instituto
Tecnológico de Hermosillo y como apoyo para los docentes al enseñar diagramas
de flujo, así como también para los cursos iniciales de programación. El
programa se le denominó Interfaz de Lenguaje Visual Didáctico (ILVD). El
sistema realiza la tarea de permitir al usuario construir un diagrama de flujo a
partir de figuras estándares, asignar valores, mandar escribir texto a pantalla y
decidir el flujo de información. Permite la compilación y genera dos archivos de
texto: uno con el nombre que el usuario designe y otro con pseudo código para
permitir al usuario usar otro programa que se desarrolló con el nombre de
proyecto Didáctica de Códigos Ejecutables para crear un ejecutable a partir del
pseudo código que generó el diagrama de flujo en ILVD. Este es el límite del
proyecto, funcionalmente.
1.3 Objetivos y Condicionantes
El objetivo que se persigue con la elaboración de un software educativo es
preparar al estudiante para aprender a programar por medio de una interfaz
basada en la metáfora de los diagramas de flujo. Los requisitos de las personas
que utilicen este sistema es haber cursado o tener conocimientos básicos de
algoritmos de flujo de la información.
El sistema ILVD presenta la forma de construir un programa por medio de
etapas. No se pretende con este software que la persona interesada aprenda a
declarar variables siguiendo la notación húngara, o que aprenda a programar de
acuerdo con los postulados de la ingeniería del software. El estudiante solo se
preocupará de cómo puede resolver problemas sencillos, sin tomar en cuenta la
sintaxis de algún lenguaje de programación.
Los dibujos y los colores que contiene la interfaz se escogieron de acuerdo
a estudios realizados por psicólogos cognoscitivos, ingenieros de software,
arquitectura, diseño gráfico e iconografía, entre otros más. Todo esto con el fin
principal de poder acceder la memoria de largo plazo.
El por qué se aborda el tema de tener acceso a la memoria de largo plazo
se debe en gran parte por que el producto es un entorno visual que evita que el
usuario se exponga, en lo posible, a usar el teclado y el texto. De acuerdo con
[Zamora, 1990] el escribir activa la memoria procedimental. Este fundamento
(de acuerdo con psicólogos expertos en el lenguaje) se basa en que activamos
varias partes del cerebro y la atención se centra en lo que queremos escribir
para entender o recordar; este caso se presenta cuando hacemos un ensayo, un
resumen o al hacer notas para recordar fechas importantes usando los famosos
Post-It©, sea esto por medio de la computadora o con letra manuscrita. Para
tratar de compensar esto, se implementará una teoría que pertenece a la rama
del cognoscitivismo: Aprendizaje por Asociación. Esta teoría se fundamenta en la
analogía mente-computadora donde se presentan esquemas de condición-acción.
Esto resulta bastante fácil de adaptar a nuestro entorno porque se basa en las
metáforas de diagramas. La eficacia que pueda tener esta teoría dentro de un
ambiente de software no forma parte de esta investigación.
Sin embargo, se llevan a cabo estudios de usabilidad de la interfaz en
general con usuarios reales para ver el resultado y el grado de aceptación con
posibles fallas. Este análisis podrá servir como base para futuras investigaciones
o posiblemente para mejoras en el mismo producto.
1.4 Justificación
La enseñanza como la conocemos actualmente empieza a sufrir cambios y
la comunidad científica pronostica que va a desaparecer, por lo menos en
algunas áreas de la educación, reemplazándola un nuevo sistema que en la
psicología de la educación se conoce por enseñanza asistida por ordenador
(EAO). Debido a los nuevos retos que se enfrenta la comunidad estudiantil, en
particular todo lo que se refiere a los lenguajes de programación, se debe a los
constantes cambios tecnológicos en la computación. Esto adquiere gran
importancia en los lenguajes VPL para las nuevas generaciones que quieren
iniciarse en la programación, debido a que un lenguaje de este tipo involucra
cambios metodológicos para aprender; esto es, un lenguaje de 6G (sexta
generación) posiblemente modificará la estructura de cómo se debe presentar el
texto (o la ausencia de él) y posiblemente la forma de los menús que se usan en
los programas llamados de “escritorio”. Con esta investigación se quiere lograr
descubrir o adaptar nuevos entornos para crear programas de forma visual y
reducir la curva de aprendizaje de un algún lenguaje de programación, al mismo
tiempo disminuir la tasa de reprobación en clases.
El contar con un compilador visual que se basa en la metáfora de los
algoritmos de flujo, tiene la ventaja de que un programa por medio de esquemas
dibujados que forman conceptos de datos genéricos, aunado a el conocimiento
procedimental declarativo de las relaciones entre los conceptos, la resolución de
problemas (de acuerdo con las teorías de aprendizaje propuestas por Rosario
María Garza y Susana Leventhal) las figuras o dibujos que parcialmente
representan a la realidad, es lo que permite lograr el aprendizaje para que
después el alumno que percibe un dato, hace que la memoria se encargue de
guardar la información que percibe y de inmediato la ubica dentro de una red de
información [RGarza, pp50, 2002].
1.5 Organización de la tesis
En el primer capitulo se trata de dar un panorama general de lo que es en
sí el contenido de la tesis y cuales son los límites del proyecto.
En el segundo capitulo se mencionan las teorías existentes sobre la
adquisición de conocimiento, las investigaciones realizadas en el entorno de la
programación visual y cuales son las deficiencias de los lenguajes visuales de
programación (VPL por sus siglas en Ingles)…
Capitulo 2
2.1 Metodología
2.1.1
Lenguajes Visuales
La aproximación hacia los lenguajes visuales ha hecho que diversas áreas
de la ciencia adopten los diagramas de flujo para resolver problemas, y en este
caso particular la industria del software recurre a él con mucha frecuencia, por
que la resolución de problemas es un trabajo que requiere de mucho esfuerzo.
¿Qué es un VPL?
Definición: Lenguaje de programación visual
[1991 IEEE Workshop on Visual Languages, Oct 1991, pp 40-46]
Definición: Un lenguaje de flujo de datos para el procesamiento
interactivo de imágenes.
Un lenguaje de programación que permite especificar un programa en dos
o más dimensiones. Los lenguajes textuales no son considerados de dos
dimensiones, porque el compilador y el intérprete procesan el flujo de texto
como un arreglo de una dimensión. Un VPL permite que la programación con
expresiones visuales - arreglos espaciales de símbolos textuales y gráficos.
Los VPL se pueden clasificar de acuerdo al grado de tipo y la extensión de
la expresión visual. Estas clasificaciones son: lenguajes basados en iconos;
lenguajes basados en formularios y los lenguajes de diagramas. Un ambiente
programación visual provee elementos gráficos o icónicos los cuales pueden ser
manipulados por el usuario de acuerdo a la gramática espacial.
Un lenguaje que ha sido transformado de manera visual es un lenguaje no
visual con representaciones visuales súper impuestas. Naturalmente los
lenguajes visuales tienen una expresión visual inherente para los cuales no hay
una equivalencia textual.
Todos los productos de la familia Visual de Microsoft™ no son lenguajes
de programación visual. Son lenguajes textuales que usan una interfaz grafica
para hacer las GUI más fáciles. La porción de la IU (interfaz de usuario) del
ambiente de programación es visual, el lenguaje en si no lo es. Fred Lakin ha
propuesto el termino "gráficos ejecutables" como una alternativa a VPL para
evitar confusiones [1991 IEEE Workshop on Visual Languages, Oct 1991, pp 4046].
2.1.2
Antecedentes de los lenguajes visuales
Horn [Horn, pp 1, 2001], describe al lenguaje visual como una de las
grandes avenidas para mejorar el rendimiento humano en un corto plazo (en los
siguientes 10 a 15 años). Hay una gran confusión acerca de este tipo de
lenguaje que hace que surjan muchas dudas, pero también representa una de
las grandes oportunidades. Los humanos pensamos visualmente y en forma de
lenguaje. Y cuando estas dos se combinan se forma una nueva y aumentada
inteligencia. Según Horn, esto es lo que piensa acerca de los lenguajes visuales:
En estos tiempos, los humanos piensan en formas
fragmentadas, pero el lenguaje visual tiene el
potencial de integrar nuestras habilidades y hacerlas
extraordinariamente más efectivas. Con el soporte del
desarrollo de las tecnologías de la información, el
lenguaje visual tiene el potencial de incrementar el
“ancho de banda” del ser humano, la capacidad de
aceptar, comprender y sintetizar de manera eficiente
una gran cantidad de información nueva. Tiene esta
capacidad a nivel individual, grupal y organizacional.
Mientras que esta convergencia ocurre, el lenguaje
visual mejorará nuestra forma de comunicarnos,
enseñar
en
áreas
de
la
ciencia
como
la
nanotecnología y biotecnología.
2.1.3
Historia de la investigación de los lenguajes visuales
Los lenguajes visuales se remontan a miles de años atrás, desde que el
hombre empezó a dibujar y crear pinturas rupestres, pasando por los egipcios
hasta nuestra era. Ahora, solo en los últimos 50 años este tipo de lenguaje de las
diferentes áreas de la ciencia ha compuesto un vocabulario extenso; la
tecnología de la ingeniería de diagramas ayudó a desarrollar ilustraciones
médicas y cientos de convenciones visuales que son conocidas mundialmente,
hasta convertirse en cada especialidad de la ciencia en un lenguaje verbal-visual
muy robusto [Horn, pp 2-3, 2001]. En la figura 1 se muestra un ejemplo de
cómo cada área aporta el arte para crear un lenguaje verbal-visual.
Figura 1 Integración de un Lenguaje Visual
En la actualidad existen muchos iconos que representan una idea exacta
de las tareas específicas, el significado asociado es lo que captamos. Debido a
que es una forma de comunicación, en los años 90 se propuso incorporarlos en
el uso de la computación como medio para definir datos y procesos. Esto creó el
área denominada Lenguajes Visuales o Sistemas Basados en Iconos (SBI).
Este tipo de lenguaje lo vemos a diario en nuestras vidas; por ejemplo, al
caminar y tratar de cruzar una calle, tenemos enfrente de nosotros
señalamientos que nos indican cuándo podemos empezar a caminar, cuándo
parar, por dónde no cruzar. Esto significa que las personas requieren solo de una
imagen para saber que hacer; cuando están bien diseñadas, el arte es
independiente del idioma.
Esto nos lleva a citar algunas ventajas al usar este tipo de proposiciones
visuales [Chapa, pp 1-3, 2001]:

Las imágenes son más didácticas que las palabras como medio de
comunicación. Se puede transmitir más información por medio de
una sola expresión pictográfica.

Las imágenes ayudan a entender y recordar.

Las imágenes pueden ser un incentivo para a aprender a
programar.

Las imágenes no están atadas a un lenguaje particular.
Chapa [Chapa, pp 1-3, 2001] describe que las virtudes de incorporar esta
metodología en un ambiente de programación, es que la representación puede
ser en dos y tres dimensiones, con atributos de color e iluminación con interfases
estáticas y dinámicas.
2.1.4
Comunicación efectiva
Según un estudio realizado por Horton [Horton, pp 3, 2001] y sus colegas,
hay un aumento en el rendimiento humano de 23% a un 89%, cuando usan
diagramas que integran elementos “stand alone” como lenguaje visual. Cuando
se hace referencia a la frase “stand alone” quiere decir que los diagramas tienen
todo lo necesario, en lo que respecta a figuras, para prescindir totalmente del
texto en un documento.
Las premisas que soportan estos estudios son los siguientes:

Comunicación interdisciplinaria más efectiva y rápida.

Nivel de pensamiento más complejo, que nos guía a una nueva era
del pensamiento.

Productividad en los negocios, gobiernos, áreas científicas y
técnicas.

Un gran avance en el potencial de la productividad de la educación
y el entrenamiento.

Comunicación cultural de diferentes naciones.
Horton predice que muchos de los avances que se hagan en este campo
(VPL) serán el resultado de grupos interdisciplinarios de científicos, ingenieros y
técnicos que tendrán que familiarizarse en otras áreas de la ciencia. Los recursos
del lenguaje visual serán requeridos en todos los niveles de la educación para
hacer el entrenamiento interdisciplinario posible.
Los investigadores, políticos y maestros se enfrentaran a problemas de
impacto científico y social, temas de ética organizacional, y en cada paso que se
de en el área de los LV (lenguajes visuales) y los problemas que se presenten
incrementarán nuestra habilidad para manejar la complejidad [Horton, pp 7,
2001].
2.1.5
Estructura y características de un lenguaje visual
Debido a que los lenguajes visuales son un nuevo paradigma de
programación, ofrecen la posibilidad de manipular directamente los objetos de la
interfaz. Un programa visual escrito en algún lenguaje visual consiste de un
arreglo espacial de iconos. Y si los iconos son metáforas adecuadas en el ámbito
de la computación, el significado de la proposición visual tiende a ser asimilada
bajo una misma interpretación. El grado de la similitud depende de que tanto las
construcciones mentales corresponden a las construcciones del lenguaje visual
[Chapa, pp 1-3, 2001].
Un lenguaje visual busca perfeccionar la habilidad de los programadores y
mejorar el entendimiento de los sistemas que manejan. Un VPL (lenguaje de
programación
visual)
no
debe
tener
ausencia
de
texto,
sino
usarlo
adecuadamente con las siguientes características:

Establecer un marco de trabajo del programador.

Definir los procesos válidos dentro del ambiente de trabajo.

Un VPL debe describir explícitamente las relaciones dentro de las
construcciones visuales.

El ambiente de programación debe proporcionar retroalimentación
visual inmediata.
2.1.6
Representaciones de los programas
Los programadores desarrollan soluciones a los problemas en una idea del
espacio abstracto, donde pueden visualizar las soluciones a los problemas de una
manera muy fácil. Pero los programas existentes para desarrollar las soluciones
son de texto secuencial [Lyons, pp 1, 1993].
En la Universidad de Massey, en Nueva Zelanda, desarrollaron un
Lenguaje
de
Programación
Visual,
que
llamaron
HyperPascal, con las
capacidades del lenguaje Pascal. Este lenguaje explota al máximo el poder de las
interfaces
gráficas
generando
programas
automáticamente
con
sintaxis
correctos. El programa restringe los movimientos del usuario al mínimo y usan el
paradigma procedural.
En ésta investigación que realizaron encontraron que hay muchas formas
de representar los programas que se desarrollan, tal es el caso de alto nivel,
ensamblador y lenguaje maquina. En todos estos casos las representaciones son
de manera secuencial. Esto influye en la manera de crear los programas más que
la forma multidimensional y de conceptualización gestalt de los programadores.
Y mucha de la complejidad de organizar un problema para empezar a programar
es el mapeo de un hiper-espacio mental a medio físico lineal.
2.1.7
Bibliografía
[H. Navarro, 2003] Héctor Navarro Güere
“E-Colors. E Graph-x Web Design”
Monsa, Madrid, España
[Zamora, 1990]
Zamora Editores
“Técnicas de Estudio Pre-U”
Tomo I, IV, Zamora, Colombia.
[RGarza, 2002]
Rosa María Garza, Susana Leventhal
“Aprender cómo aprender”
ITESM, Trillas, México.
[AUllman, 1998] Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman
“Compiladores. Principios, técnicas y herramientas”
Addison Wesley Longman, USA
[Norman, 2001] Norman A. Sprinthall, Richard C. Sprinthall, Sharon N. Oja
“Psicología de la educación”
Educational Psychology, España
[MSanchez, 2001]
Margarita A. de Sanchez
“Desarrollo de habilidades del pensamiento. Discernimiento,
Automatización e Inteligencia Práctica”
Guía del Instructor, Trillas, México
[Pressman, 2001] Roger S. Pressman
“Ingeniería del Software. Un enfoque práctico”
Software Engineering, McGrawHill, España
[Peddie, 1991]
Jon Peddie
“Graphical User Interfaces and Graphic Standards”
Professional Publishing, McGraw Hill, USA
[Willard, 2003]
Wendy Willard
“Super Utilidades para Photoshop 7”
Biblioteca Profesional, McGraw Hill, España
[Jamsa, 1998]
Kris Jamsa, Phil Schmauder y Nelson Yee
“VRML Biblioteca del Programador”
Jamsa Press, McGraw Hill, México
[Pratd, 2003]
Joan J. Pratdepadua
“Programación en 3D con Java 3D”
Alfaomega Ra-Ma, México
[Anuff, 1996]
Ed Anuff
“Java Sourcebook”
Wiley Computer Publishing, USA
[Bock, 2000]
[Cebal, 2000]
Jason Bock
“Visual Basic 6 Win32 API Tutorial”
Wrox Press, USA
Fco. Javier Ceballos
“Java 2 Curso de Programación”
Alfaomega, Ra-Ma, España
[Guzman, 2000] Adolfo Guzman Arenas
“Teoría y Aplicaciones de la Estructuración
Conocimiento”
Instituto Politécnico Nacional, Vol. 2(30), pp 13-22.
[Garcia, 1997]
Joel Garcia
“Give Your Data a Makeover”
Visual Basic Programmer’s Journal, Vol. 7(13), pp 34-41.
[Molfino, 2002]
Florencia Molfino
“Ergonomía. La evolución de las formas”
Siglo Digital, Vol 3(4), pp 21-24
[Gonz, 2002]
José María González Pinto
“Electronic Publishing Group en el Media-Lab”
Siglo Digital, Vol3(2), pp 63-68
[Najork, 1995]
Najork
“Visual Programming in 3D”
Dr. Dobb’s Journal. December 1995.
[Niebel, 1993]
Benjamin W. Niebel
“Ingeniería Industrial. Métodos, Tiempos y Movimientos”
Alfaomega, 9ª edición, 1993, pp 47
[Chordá, 2002]
Ramón M. Chordá
“Visual FoxPro 6. Guía Práctica”
Alfaomega, 2001, México, D.F.
del
[Panda, 1999]
Panda Software de México
“Los Virus Informáticos”
Editorial NESS, S.A. de C.V., 1999, pp15
[Birnios, 2000]
Baltazar Birnios, Mariano Birnios
“Microsoft Visual Basic 6.0. Manual de Referencia”
MP Ediciones, 2000, Buenos Aires, Argentina.
[MDonald, 2003] Mathew MacDonald
“Microsoft Visual Basic .NET. Programmers Cookbook”
Microsoft Press, 2003, Redmond, Washington, E.U.A.
[MSDN, 1997]
Microsoft© Electronic Distribution
“MSDN Library Visual Studio 6.0”
Microsoft Corporation, 1997, Redmond Washington, E.U.A.
[MSDN, 2001]
Microsoft© Electronic Distribution
“MSDN Library Visual Studio .NET”
Microsoft Corporation, 2001, Redmond Washington, E.U.A.
[JSDK, 2002]
Sun Microsystems© Electronic Distribution
“JavaTM 2 SDK, Standard Edition Documentation, E.U.A.
Version 1.4.0”
Java Software, 2002, California, E.U.A.
[MetroW, 1995] MetroWerks CodeWarrior© Inc.
“Code Warrior Principles of Programming”
MetroWerks Inc. 1995, Austin, Texas, E.U.A.
[DMARK, 1995]
Dave Mark
“Learn C++ Under Windows 95/NT”
MetroWerks Inc. 1995, Austin, Texas, E.U.A.
[CFPD, 2000]
Alan F. Blackwell, Kirsten N. Whitley, Judith Good, Marian
Petre.
“Cognitive Factors in Programming with Diagrams”
Artificial Intelligence Review, 2000, Cambridge, U.K.
[MORTIZ, 2000] Iván Martínez
“Trasfondo Histórico de la Programación Visual”
Universidad Interamericana de Puerto Rico, Recinto
Metropolitano, 2000. Puerto Rico.
[Lanaspre, 2003] B. Lanaspre y H. Glaser
“Distributed Prograph”
TGS Systems, 2003. Canadá
[Horn, 2001]
Robert E. Horn
“Visual Language and Converging Technologies in the Next
10-15 years (and beyond)”
Stanford University, Estados Unidos de América.
[Chapa, 2001]
Sergio V. Chapa Vergara, Noe Sierra Romero
“Panorama General de los Lenguajes Visuales”
Instituto Politécnico Nacional, 2001. México.
[Lyons, 1993]
Paul Lyons, Craig Simmons y Mark Apperley
“HyperPascal: a Visual Language to Model Idea Space”
Massey University, 1993. Nueva Zelanda.