Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
MatDis: Aplicación de apoyo para Matemática Discreta Blas, María Julia – Gaspoz, Cecilia – Herrera, Mariana Universidad Tecnológica Nacional, Facultad Regional Santa Fe Abstract Este proyecto, aspira a producir una secuencia didáctica para los alumnos de los primeros niveles de Ingeniería en Sistemas de Información, integrando contenidos de Matemática Discreta con los trabajos prácticos finales de Algoritmos y Estructuras de Datos. Mediante el uso de una metodología de trabajo en etapas, se generó una aplicación para la cátedra Matemática Discreta. Este software llamado MatDis, se encarga de resolver problemas sobre Estructuras Algebraicas Finitas y sobre Grafos Dirigidos, utilizando herramientas desarrolladas en la cátedra Algoritmos y Estructuras de Datos. Palabras Clave Secuencia didáctica. Aplicación. Integración. Adaptación de código. Algoritmos. Grafos dirigidos. Estructuras algebraicas. Interfaz. Introducción El eje principal, sobre el cual se sustenta este trabajo, es un proyecto de investigación iniciado en el año 2008, dirigido por las docentes Malva Alberto (Matemática Discreta; Directora) y Marta Castellaro (Algoritmos y Estructuras de Datos; Codirectora) de la Facultad Regional Santa Fe - Universidad Tecnológica Nacional que involucra la participación de alumnos y profesores de los primeros niveles de la carrera. El proyecto tiene como objetivo diseñar e implementar secuencias didácticas en matemática y tecnologías básicas que atiendan a la selección, articulación y complejización creciente de contenidos y actividades, con carácter transdisciplinar en los primeros años de la carrera. Pone a prueba actividades que puedan expandirse, proyectarse y retroalimentarse a lo largo de uno o dos ciclos lectivos con la intención de promover la capacidad de los alumnos para gestionar sus propios aprendizajes. Como ex-alumnas de las cátedras involucradas, con el objetivo de mejorar nuestros propios aprendizajes y con la idea de ayudar y colaborar con el aprendizaje de los alumnos de primer año es que participamos en la producción de esta secuencia didáctica que intenta mejorar los desempeños de los alumnos en el momento de resolver y verificar resultados en temas de Matemática Discreta. Nuestra propuesta utiliza como punto de partida las aplicaciones diseñadas por los alumnos de primer año del ciclo lectivo 2008, en Algoritmos y Estructuras de Datos y que formaban parte de sus trabajos prácticos o de trabajos de integración finales para la regularización de la cátedra. Las mismas, fueron planteadas con la intención de producir una herramienta de apoyo en dos contenidos que generalmente presentan dificultades para su comprensión: Estructuras Algebraicas Fintas y Grafos Dirigidos. Durante el desarrollo de esta experiencia, se profundizó la idea de integrar estos trabajos prácticos, con el fin de generar un programa con valor en el área Matemática Discreta. Para ello, se centraron esfuerzos en realizar mejoras a nivel de interfaz y de algoritmos; como también en la adaptación de las funcionalidades existentes, la implementación de nuevas características y la extracción de aquellas agregadas solamente con fines educativos de la asignatura. Se pretende que esta nueva aplicación, a la cual hemos llamado “MatDis” y todo el trabajo realizado resulte útil para los docentes de ambas cátedras y que los alumnos de ingreso 2009 puedan aprender con esta herramienta tanto como nosotras disfrutamos haciendo esta tarea. Elementos del trabajo y metodología Para generar la aplicación final, y cumplir con el principal objetivo de mejorar las situaciones de aprendizaje para Matemática Discreta, se utilizó una metodología de trabajo en fases. Debido a la cantidad de información disponible, se planificaron cinco etapas: Etapa 1: Formalización de las funcionalidades a implementar para Estructuras Algebraicas y Grafos Dirigidos. Etapa 2: Identificación de comportamientos secundarios a remover. Definición de comportamientos a agregar. Etapa 3: Integración y adaptación de los algoritmos existentes. Etapa 4: Diseño de una interfaz de usuario. Etapa 5: Pruebas. Concluidas las cinco fases, se obtuvo una aplicación final: MatDis. De cada etapa, se detalla a continuación cual fue su meta, como se llevó a cabo y cuáles fueron los resultados obtenidos. Etapa 1: Formalización de las funcionalidades a implementar para Estructuras Algebraicas y Grafos Dirigidos Las aplicaciones que sirvieron como base de este proyecto, son los trabajos prácticos finales de la cátedra Algoritmos y Estructuras de Datos del ciclo lectivo 2008. Su objetivo fue integrar el resto de los trabajos prácticos desarrollados durante el cuatrimestre en una aplicación de mayor alcance. Debido a la naturaleza de las consignas, los requisitos que debían cumplir las aplicaciones variaban según el número de grupo asignado. A raíz de esto surge esta etapa. La meta es definir el conjunto de operaciones a implementar; tanto para Estructuras Algebraicas, como para Grafos Dirigidos. Teniendo en cuenta las operaciones que ya estaban definidas en el común de los trabajos, contemplando las temáticas desarrolladas en la asignatura Matemática Discreta, y tras haber realizado una serie de reuniones, sin perder de vista el objetivo final, se obtuvo como resultado una lista de funcionalidades (Tabla 1). FUNCIONALIDADES ESTRUCTURAS ALG. DIGRAFOS Cargar alfabeto/LCI Cargar grafo Visualizar LCI Grado Idempotencia Ver grafo Semigrupo Conmutativo Nodo Aislado Con unidad Pendiente Grupo / Abeliano Camino Subgrupo Simétrico Divisores de cero Reflexivo Anillo Conmutativo D-completo Con unidad Nodos adyacentes Con división Lista grados nodos Integridad Lista nodos pendientes Cuerpo Tabla 1: Lista de funcionalidades Etapa 2: Identificación de comportamientos secundarios a remover. Definición de comportamientos a agregar Una vez definidas las operaciones a implementar, y previo al comienzo de la composición del programa final, surge esta etapa, la cual tiene como meta terminar de definir las funcionalidades a implementar, a nivel aplicación, para posteriormente comenzar a diseñar. Para cumplirla, se identificó de forma precisa cuales eran los comportamientos no esenciales para la aplicación final, y que por lo tanto eran necesarios remover. De la misma forma, se definió un conjunto de funcionalidades nuevas; las que debido a las características del trabajo práctico, y a los plazos dados a los alumnos, no habían sido implementadas. Originalmente, al iniciar la ejecución, los trabajos constaban de una fase de registro y manejo de usuarios. Esto requería la validación de una contraseña, y nombre de usuario; lo que conjuntamente incluía el uso de archivos para mantener esta información almacenada. Debido a que para los fines de una herramienta del tipo que se pretende diseñar esto no era necesario, se decidió quitar todas esas funcionalidades. Por otra parte, dada la naturaleza de la herramienta que se va a diseñar, y teniendo presente quiénes serán sus potenciales usuarios, se decidió agregar opciones de ayuda a lo largo de toda la aplicación. Las mismas, se clasificaron según su objetivo en dos tipos: � Información extra: Define conceptos teóricos. Permite que el usuario, ante el desconocimiento de un concepto (manejado por el programa), pueda solucionar su duda. Es un medio de información de acceso rápido. � Ayuda: Trata los problemas más comunes que suelen surgir mientras se trabaja con el programa. Explica cuales son las formas de ingreso de los datos, y como serán mostrados por pantalla. Da detalle de porque pueden producirselos errores durante la ejecución. Junto con lo explicitado anteriormente, se implementó una funcionalidad más. La misma consiste en permitirle al usuario generar un archivo de salida que almacene la información de la parte del programa en la cual estuvo trabajando. Será llamado grafos.txt o estructuras.txt (según sea que haya ejecutado el menú Grafos Dirigidos o Estructuras Algebraicas); y guardará, no solo los datos ingresados, sino también la respuesta a todas las operaciones que puedan ser efectuadas sobre los mismos. Durante la ejecución del programa, se preguntará si se desea crear este archivo, y en caso afirmativo se especificará su ubicación. La finalidad de este agregado, es que el usuario pueda simplemente cargar los datos, generar el archivo de salida, y luego (teniéndolo impreso o no) ver cuales propiedades se cumplen y cuales no. Una vez concluida esta etapa, debido a que todas las funcionalidades que se desean implementar están completamente determinadas, se está en condiciones de avanzar, e iniciar el proceso de integración y adaptación de los distintos trabajos. Etapa 3: Integración y adaptación de los algoritmos existentes Partiendo del conjunto de aplicaciones diseñadas en lenguaje C por los alumnos de Algoritmos y Estructuras de Datos, la meta en esta etapa es integrar y adaptar de forma coherente las representaciones de datos y los algoritmos de las operaciones de Estructuras Algebraicas y de Grafos Dirigidos. Como resultado, se obtiene una representación de datos específica para cada tema, y el código de las operaciones correspondientes, según lo definido en las etapas previas. Luego de revisar las distintas codificaciones, y teniendo en cuenta que el común de los trabajos usó array para implementar Estructuras Algebraicas y listas enlazadas para Grafos; se decidió que la representación de los datos se haría de igual forma. Esta decisión se tomó por dos motivos. El primero es que la mayoría de los trabajos utilizaban estas estructuras. Así, esta elección facilita encontrar un mayor número de operaciones ya definidas para la manipulación de datos. Con esto último, mucho código es potencialmente candidato a ser reutilizado. El segundo motivo, es que criterio personal, se cree que dicha forma de representación es completamente adecuada para la magnitud del trabajo. Posteriormente del conjunto de trabajos prácticos se eligió un subconjunto que cumpliera con la representación elegida. De allí se seleccionó una aplicación para usar como base. Se decidió utilizar el programa desarrollado por las alumnas Gaspoz, Mir y Tibaldo. En esta aplicación, los datos eran almacenados de la siguiente manera: � Estructuras Algebraicas: Para el alfabeto se crearon dos estructuras: 1) Un array de tipo de dato elemento*, que guarda otro array de 11 caracteres para el nombre de cada elemento. 2) Un array de tipo de dato Alphabet que guarda 20 elementos del tipo de dato elementos. � Grafos Dirigidos: Su representación queda definida por dos listas enlazadas: 1) Lista de los nodos del grafo: Cada nodo incluye su nombre y un campo valor para almacenar el entero correspondiente. 2) Lista de los arcos del grafo: Cada nodo incluye un puntero al nodo origen, un puntero al nodo destino, y dos campos más con el valor numérico correspondiente al nodo destino y al nodo origen. Con esta elección, se comenzó un proceso de trabajo continuo e interactivo. En primera instancia, se removieron las funcionalidades de manejos de usuario. Esto fue sencillo, ya que el código de las funciones que cumplían con esta actividad se encontraba en una librería especifica. Luego, se incorporaron las operaciones definidas para Estructuras Algebraicas. Para esto, se juntaron funciones y código de distintos trabajos seleccionados con anterioridad. A algunos fue necesario hacerles correcciones, o agregarles parte de código. Lo mismo se realizó para las operaciones de Grafos Dirigidos. En este caso, surgió una dificultad mayor, debido a que los trabajos originales trataban los nombres de los nodos con números, y en la Matemática Discreta se utilizan caracteres. Para adaptar esto, se codificaron funciones que capturan cadenas de caracteres por pantalla, pero que luego le generan a cada una, un número entero para su almacenamiento interno. Lo mismo, pero en sentido inverso, ocurre cuando se debe mostrar por pantalla un nombre guardado. Con esta solución no se requirió ningún tipo de modificación en las funciones existentes. Finalmente, como ultima parte de esta etapa, se codificaron las funcionalidades nuevas. Esta tarea simplemente fue generar código, no se le dio un formato definido (esto se dejó para la etapa siguiente). Etapa 4: Diseño de una interfaz de usuario Una vez que se finalizó la codificación y la corrección de los algoritmos para todas las operaciones definidas en las fases 1 y 2, se pasó a la última etapa de la construcción del programa: la definición de la interfaz. Para esto, se trabajo en conjunto alumnos de distintos años, los cuales además de dar sus perspectivas desde el punto de vista de diseñadores, dieron su punto de vista como potenciales usuarios. La meta aquí es diseñar una interfaz sencilla y completa, que integre con el mismo criterio las funcionalidades de Estructuras Algebraicas y de Grafos Dirigidos. Como parte de la definición de una interfaz global para la aplicación, en esta etapa, se estableció una combinación de colores. Se decidió que toda la aplicación utilizaría azul y cian para los dos temas principales; y que tanto la ayuda como la información adicional estarían en magenta y blanco. A su vez, los errores se identifican con el color rojo y/o con un sonido de alerta. � Menú Principal Como referente para la disposición de las distintas pantallas, se observaron los diseños de algunos trabajos de la cátedra. Las pautas impuestas en las consignas, también resultaron de gran utilidad; sobre todo la restricción que indicaba que al ingresar, se habilita un menú de opciones con 3 ítems: E (estructuras algebraicas), G (grafos), S (salir). Del trabajo elegido como base, se tomo la idea de diseñar un formato de pantalla similar al de la Figura 1. Figura 1 Se examinaron distintas alternativas de colores y de formato. Respetando todos los lineamientos básicos definidos, se diseñó una alternativa similar a la Figura 1, pero en lugar de ingresar una opción, se trabaja con un menú desplazable. El formato final es el ilustrado en la Figura 2. Figura 2 � Menú: Estructuras Algebraicas, Grafos Dirigidos, Información Extra, Ayuda La distribución y formato básico del menú de Estructuras Algebraicas y Grafos Dirigidos surgió como factor común en casi todos los trabajos prácticos. La mayoría de las aplicaciones implementaba ambos con un menú numérico (uno para cada tema), y solicitaba el ingreso de una opción. Esta idea se mantuvo, y la única definición adicional que se realizó es que el titulo de cada menú sería inverso en cuanto a los colores para las letras y para el fondo. Intentando respetar estas ideas, y agregándole algunas mejoras, para el menú Estructuras Algebraicas se pasó de la Figura 3 a la Figura 4. Lo mismo ocurrió con el menú de Grafos (se pasó de la Figura 5 a la Figura 6). Figura 3 Figura 4 Figura 5 Figura 6 La información extra y la ayuda, debido a que son funcionalidades agregadas para este trabajo, se diseñaron y codificaron en un nuevo menú, al que se accede desde cualquier parte del programa. Como este menú es distinto en esencia de los restantes, se lo armo con el mismo formato pero con otros colores. Algunas pantallasde esta parte del programa se muestran en las Figuras 7, 8, 9 y 10. Figura 7 Figura 8 Figura 9 Figura 10 � Errores Se diseñaron dos tipos de errores: 1) Errores al ejecutar en un menú una opción no disponible en ese momento. 2) Errores de carga de datos. En el primer caso, se diseñó un formato extra para la presentación en pantalla. El objetivo del mismo, es mostrar cual fue el motivo del error y acaparar la atención del usuario ante este evento; por lo que se utilizó color rojo y la emisión de un sonido de alerta (Figura 10). En el segundo caso, simplemente se emite un sonido de alerta, y se le indica al usuario cual fue su error. (Figura 11). Figura 10 Figura 11 ETAPA 5: Pruebas En este nivel se busca, antes de pasar a la prueba de la aplicación por parte de los docentes, hacer una verificación interna, para que ante cualquier eventualidad se la corrija a tiempo. La meta entonces es validar desde la perspectiva de alumnas, por medio de la realización de pruebas a distintos niveles, la aplicación obtenida a este punto del desarrollo. El resultado obtenido en esta etapa fue completamente satisfactorio. Se generaron distintos casos de prueba, los cuales incluían ejercicios dados a los alumnos en el libro de Matemática Discreta y ejercicios de exámenes (parciales y finales). Todos ellos se ejecutaron sobre el programa. A continuación, se dan a conocer dos casos de prueba utilizados (uno para cada tema); y se muestran las distintas pantallas que surgieron en la aplicación al ejecutar las distintas operaciones de menú. � Estructuras Algebraicas El alfabeto elegido para esta prueba es: A = {s, t, x, y} Las leyes de composición interna definidas sobre A son + y *. Sus respectivas definiciones se muestran a continuación en las Tabla 2 y 3. + s t x y s y x s t t x y t s x s t x y y t s y x Tabla 2: LCI “+” * s t x y s y y x x t y y x x x x x x x y x x x x Tabla 3: LCI “*” Luego de realizar la carga en el programa de los elementos correspondientes al alfabeto A, con el fin de verificar si la información existente es correcta, se mostró por pantalla la Figura 12. Al cargar las LCI + y *, se mostraron en pantalla las Figuras 13 y 14 respectivamente. Figura 12 Figura 13 Figura 14 Luego, a cada consulta, las respuestas obtenidas por pantalla fueron las siguientes. - Analizar si la LCI + es idempotente. Ver Figura 15. Figura 15 - Analizar si la LCI + es semigrupo. Ver Figura 16. Figura 16 - Analizar si la LCI + es semigrupo conmutativo. Ver Figura 17. Figura 17 - Analizar si la LCI + es semigrupo con unidad. Ver Figura 18. Figura 18 - Analizar si la LCI + es grupo. Ver Figura 19. Figura 19 - Analizar si la LCI + es grupo abeliano o conmutativo. Ver Figura 20. Figura 20 - Analizar si el alfabeto B es subgrupo de (A,+). Ver Figura 21. Figura 21 - Analizar si es anillo. Ver Figura 22. Figura 22 - Analizar si es anillo con unidad. Ver Figura 23. Figura 23 - Analizar si es cuerpo. Ver Figura 24. Figura 24 � Grafos Dirigidos El Grafo elegido en este caso es el diagramado en la Figura 25. Figura 25 Luego de la carga en el programa de los valores correspondientes a los nodos y a las conexiones entre ellos, a modo de confirmación el software mostró la pantalla correspondiente a la Figura 26. Figura 26 Posteriormente, a cada consulta realizada, las respuestas obtenidas fueron: - Listar nodos aislados. Ver Figura 27. Figura 27 - Determinar si un nodo es pendiente (en este caso el nodo c). Ver Figura 28. Figura 28 - Listar nodos adyacentes a un nodo (en este caso nodo c). Ver figura 29. Figura 29 - Grado de un nodo (en este caso nodo a). Ver Figura 30. Figura 30 - Listar grados de los nodos. Ver Figura 31. Figura 31 - Determinar si el grafo es D-Completo. Ver Figura 32. Figura 32 - Determinar si el grafo es reflexivo. Ver Figura 33 Figura 33 - Determinar si el grafo es simétrico. Ver Figura 34. Figura 34 - Determinar si existe un camino (en este caso que pase por los nodos a, d y e). Ver Figura 35. Figura 35 - Determinar si existe un camino (en este caso que pase por los nodos a, b, c y d). Ver Figura 36. Figura 36 - Determinar si un nodo es aislado (en este caso el nodo c). Ver Figura 37. Figura 37 - Listar nodos pendientes. Ver figura 38. Figura 38 Resultados Una vez concluidas las etapas del proceso de desarrollo de la aplicación, y ya teniendo un software concreto para exponer, se tomó un enfoque distinto para evaluar los resultados. Desde esta perspectiva, se buscó que estudiantes de años superiores (2º y 3º año), completamente ajenos al desarrollo de la aplicación, y que desconocían la existencia de este proyecto, realizaran pruebas sobre el programa. Las respuestas de esta actividad fueron muy buenas y completamente satisfactorias, por lo que se decidió agregar un ciclo más de prueba antes de terminar nuestro software. Se realizó una fase de testing, en la que se involucró a los profesores de la cátedra Matemática Discreta. Nuevamente, la aplicación fue aceptada en su totalidad, sin necesidad de realizar cambios mayores. Simplemente se realizaron algunas mejoras de bajo nivel e impacto en la aplicación existente, a raíz de consideraciones vistas desde la perspectiva docente. Al concluir las etapas de prueba, se obtuvo el programa final. Sobre esta aplicación, se realizaron ejecuciones para comprobar su eficiencia. Se muestran a continuación, los archivos de salida generados con un caso de prueba de Estructuras Algebraicas (Figura 39) y uno de Grafos Dirigidos. El Grafo utilizado es el esquematizado en la Figura 40, y el archivo de salida correspondiente es el de la Figura 41. Figura 39 Figura 40 Figura 41 Discusión Tomando como referentes los resultados obtenidos en las pruebas, se observó que la aplicación cumple con los objetivos propuestos en una primera instancia (etapas 1 y 2 de la metodología de trabajo). Todas las operaciones disponibles están implementadas adecuadamente; lo que permite avanzar, e ir más lejos generando nuevas expectativas. La aplicación diseñada, se ha definido como una herramienta de apoyo. Debido a esta característica, es posible relacionar esta experiencia con otras; como así también extender este mismo trabajo. Con el objetivo de explotar estas posibilidades, se planea a futuro, generar una guía de actividades sobre estos temas; y realizar, conjuntamente con los docentes, un taller para los alumnos en el cual se ponga en práctica el uso del programa. También será posible otorgarles una copia del programa a los estudiantes, para que lo utilicen en sus hogares como herramienta de estudio y de aprendizaje. Una experiencia que surge de forma natural de este trabajo, es la posibilidad de generar una secuencia de versiones del programa. La misma, como herramienta para Algoritmos y Estructuras de Datos, podría ser de utilidad para mostrar a los alumnos algunas posibilidades existentes para mejorar sus aplicaciones (generalmente trabajos prácticos), tanto a nivel de interfaz como a nivel de los algoritmos. Como es evidente, esta tarea está íntimamente ligada con la información que surgió a lo largo del desarrollo del software, pero la integración en un orden lógico y con justificaciones de los cambios, puede ser realizada como una actividad separada. Siestas ideas se concretan exitosamente, puede tomarse una iniciativa similar en el segundo cuatrimestre del ciclo lectivo 2009, para ser aplicada en 2010. En este supuesto caso, debido a que los alumnos habrían participado previamente como usuarios de una aplicación análoga, probablemente los resultados a nivel de aplicación sean mejores. Esto se debe a que conocerán por experiencia propia, cuales son los requisitos, tanto de interfaz, como de procesamiento, que los potenciales usuarios esperarán de la aplicación. Conclusión Una de las funciones de la educación es promover la capacidad de los alumnos para gestionar sus propios aprendizajes, para adoptar una autonomía creciente en su carrera académica y disponer de herramientas intelectuales y sociales que les permitan un aprendizaje continuo a lo largo de toda la vida. Para contribuir a esta función, desde nuestra perspectiva de alumnas, el objetivo de este proyecto fue generar un programa con valor en el área Matemática Discreta partiendo de las aplicaciones diseñadas por los alumnos de primer año en Algoritmos y Estructuras de Datos. Inicialmente, se siguió este proceso de desarrollo en cinco etapas, en forma lineal, pero luego, se comenzó a iterar sobre las distintas etapas; con el fin de construir una aplicación más eficiente. Se continuó con este proceso hasta que se obtuvo una aplicación que si bien es correcta y está terminada, puede ser mejorada por nuestros futuros aportes y por los que puedan dar los propios usuarios u otros alumnos comprometidos. La aplicación dio lugar al nacimiento de nuevas expectativas sobre el uso y destino futuro. Los alumnos de Matemática Discreta podrán ser usuarios durante este primer cuatrimestre del año 2009 y además, como alumnos de Algoritmos y Estructuras de Datos durante el segundo cuatrimestre podrán ampliar los alcances de la aplicación a otros temas. Finalmente, merecen citarse dos consecuencias de la actividad; por un lado la revisión de temas y actividades que debimos hacer y por el otro el acercamiento, la confianza y la interacción que se vivió a nivel personal mientras MatDis iba gestándose y generándose. Estamos orgullosas de haber iniciado esta actividad donde los propios estudiantes generen herramientas de apoyo para los alumnos que les suceden. Agradecimientos Destacamos la colaboración de docentes y alumnos. Muchas gracias a nuestros compañeros Melina Tibaldo, Fernanda Mir, Fabio Berra y Germán Barbini. Referencias [1] Aguilar, J.; Martinez; Z. (2005): Programación en C. Mc Graw Hill. México. [2] Alberto, M; Castellano, M. (2008): La innovación en el aula universitaria: contenidos y actividades integradas. Ponencia aceptada por el Comité Académico del Tercer Congreso de Educación. UNL. Santa Fe. [3] Alberto, M.; Schwer, I; Cámara, V; Fumero, Y. (2005): Matemática Discreta con aplicaciones a las Ciencias de la Programación y Computación. Ediciones UNL. [4] Marzal, A y Gracia, I. (2003) Introducción a la Programación con Python y C. Universidad Jaume. España Datos de contacto 1. María Julia Blas. Universidad Tecnológica Nacional. Facultad Regional Santa Fe. Lavaisse 610 – Santa Fe - CP: 3000. mariajuliablas@gmail.com. 2. Cecilia Gaspoz. Universidad Tecnológica Nacional. Facultad Regional Santa Fe. Lavaisse 610 – Santa Fe - CP: 3000. ceciliagaspoz@gmail.com. 3. Mariana Herrera. Universidad Tecnológica Nacional. Facultad Regional Santa Fe. Lavaisse 610 – Santa Fe - CP: 3000. merii.gud@hotmail.com.
Compartir