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.