Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Utili zación d e Mapas Conceptuales en la enseñanza de la programación Carlos Iván Chesñevar Profesor Adjunto Email: cic@cs.uns.edu.ar – Http://cs.uns.edu.ar/~cic Tel. 0291-459 5135 interno 2611 / Fax 0291-459-5136 Departamento de Ciencias de la Computación Universidad Nacional del Sur – Av. Alem 1253 – (8000) Bahía Blanca - Argentina RESUMEN Las Ciencias de la Computación pueden considerarse una de las disciplinas científicas más recientes y cambiantes de las últimas décadas. En ellas, la utilización de lenguajes de programación juega un rol central, circunstancia que se refleja en la curricula de las distintas carreras inherentes a esta disciplina (Licenciatura en Cs. de la Computación, Analista de Sistemas, etc.). Este trabajo pretende aportar el resultado de la experiencia de utilizar mapas conceptuales en la enseñanza de programación en el primer año de las carreras dependientes del Departamento de Ciencias de la Computación. Dichos mapas conceptuales han venido siendo usados por el autor en los últimos cuatro años, y han dado resultados sumamente positivos en cuanto a fijación de contenidos. Se discuten las motivaciones de su utilización en apuntes de clase, y su utilización en transparencias para el dictado de clases. Como conclusión final, se analiza la potencial extensión de los mapas conceptuales utilizados a mapas conceptuales hipermediales, aprovechando las facilidades tecnológicas brindadas por la computación. 1. Introdu cc ión y motivaciones Las Ciencias de la Computación pueden considerarse una de las disciplinas científicas más recientes y cambiantes de los últimos años. En ellas, la utilización de lenguajes de programación (LPs) juega un rol central, circunstancia que se refleja en la curricula de las distintas carreras inherentes a esta disciplina (Licenciatura en Cs. de la Computación, Analista de Sistemas, etc.). La enseñanza de LPs como parte integrante de la formación profesional en Computación se ha originado en los años ’60, y desde entonces una gran cantidad de cambios han tenido lugar, motivados esencialmente por el surgimiento de nuevos paradigmas de programación. La pregunta “¿cómo debe enseñarse a programar?” tiene una respuesta abierta, y en el seno de la comunidad de Cs. de la Computación existen numerosas discusiones sobre cuál es el mejor paradigma de programación para quien se inicia en computación, cuál es el lenguaje de programación más apropiado, etc. Aun cuando estas decisiones estén definidas, la metodología abordada para enseñar a programar utilizando un determinado lenguaje también es un tema en discusión. Escribir un programa de computadora utilizando un LP requiere del alumno varias competencias y habilidades, que involucran básicamente la capacidad de manipular un conjunto de abstracciones interrelacionadas entre sí para la resolución de problemas. En tal sentido, el proceso de enseñanza-aprendizaje de un LP es extremadamente complejo. La tarea de aprender a manipular el conjunto de símbolos asociado a un lenguaje conforme una sintaxis, asociándolos con una semántica, demanda un esfuerzo considerable para los alumnos ingresantes. A esto se suma en muchos casos una formación deficiente del secundario, que les dificulta organizar nuevos conceptos de una manera ordenada, construyendo taxonomías, diferenciando propiedades y estableciendo pautas para razonar sobre las mismas. En este contexto es que se introdujo el uso de mapas conceptuales para la enseñanza de conceptos básicos de programación en la asignatura “Resolución de Problemas y Algoritmos”. Los mapas conceptuales [Novak y Gowin, 1988] constituyen una técnica desarrollada por Joseph Novak como una respuesta práctica al modelo del aprendizaje significativo [Ausubel, Novak, Hanesian, 1983]. Los mapas conceptuales brindan “una estrategia para ayudar a los estudiantes a aprender y para ayudar a los educadores a organizar los materiales objeto de este aprendizaje”, “un método para ayudar a estudiantes y educadores a captar el significado de los materiales que se van a aprender”, “un recurso esquemático para representar un conjunto de significados conceptuales…” [Ontoria, 1993]. Este trabajo pretende ilustrar la aplicación de mapas conceptuales en la enseñanza de conceptos básicos de programación, a través de experiencias desarrolladas por el autor. El trabajo se estructura como sigue: en la sección 2 se introduce la noción de mapa conceptual aplicada a la enseñanza de la programación. Luego, en la sección 3, se brindan detalles de la experiencia realizada, y se mencionan alternativas futuras. Finalmente, en la sección 4 se presentan las principales conclusiones obtenidas. 2. Mapas conceptuales en la enseñanza de la programación En esta sección introduciremos primeramente una breve descripción de cuáles son los elementos característicos de los mapas conceptuales, mostrando posteriormente cómo aplicamos dichos mapas para la enseñanza de la programación. 2.1. Mapas conceptuales. Características Asumimos que el lector está familiarizado con la noción de mapa conceptual (para detalles ver [Ontoria 1993]). Mencionaremos sintéticamente brevemente los elementos fundamentales que los caracterizan: • Concepto: según Novak, un concepto es “una regularidad en los acontecimientos o en los objetos que se designa mediante algún término” [Novak, 1982]; son imágenes mentales que provocan en nosotros las palabras o signos con los que expresamos regularidades [Ontoria, 1993]. • Propo sición : dos o más términos conceptuales unidos por palabras para formar una unidad semántica. • Palabras-enlace: palabras que sirven para unir los conceptos y señalar el tipo de relación existente entre ambos. Tres características de los mapas conceptuales que los diferencian de otras técnicas cognitivas son la jerarquización (el mapa conceptual reflejará el orden de importancia entre conceptos), la selección (el mapa constituirá una síntesis o resumen de lo más significativo de un tema), y el impacto visual (una representación gráfica vistosa mostrará claramente el mensaje contenido en el mapa conceptual). 2.2. La actividad de programación. Fund amentos En la asignatura “Resolución de Problemas y Algoritmos”, la enseñanza de la programación es introducida a través de un lenguaje de diseño de algoritmos [Rueda y otros, 1993]. Dicho lenguaje brinda un conjunto de herramientas primitivas, las cuales pueden combinarse entre sí para la resolución de problemas, siguiendo los lineamientos de la denominada "programación estructurada”. En esta conceptualización, un algoritmo es una secuencia de acciones, que permite resolver un problema en tiempo finito. En general, un algoritmo tendrá asociados datos de entrada (a ser provistos) y datos de salida (resultados); opcionalmente se requerirá la utilización de datos auxiliares. Un algoritmo estará definido en términos de acciones primitivas, las cuales tienen un significado que se asume conocido. Un algoritmo brinda una especificación de cómo resolver un problema. Al adoptar ciertos valores para los datos de entrada, la ejecución del algoritmo permitirá la obtención de valores reflejados a través de los datos de salida. Consideremos un ejemplo para clarificar los conceptos antes presentados. En la figura 1 se muestra un esbozo de “algoritmo” consistente en un único paso para obtener la suma de los números naturales entre 1 y N. Figura 1: Una primer versión intuitiva para obtener la suma de los números entre 1 y N. Obsérvese que en este ejemplo las acciones “primitivas” son la suma (+), y la denominada asignación, que tiene la forma <dato> � <expresión matemática>. La asignación permite conceptualizar un <dato> como una “caja” (o “contenedor”) en la cual puede almacenarse un valor, resultante de calcular <expresión matemática>. Así, al escribir S � 3, estamos “guardando” en S el valor 3. Alescribir S � S+ 4, estaremos indicando que queremos guardar en S el valor preexistente en S más 4 (esto es, si S tenía 6, entonces S pasará a ser 4+6 = 10). Sin embargo, las acciones primitivas deben tener un significado preciso, y totalmente definido. Esto no ocurre en el algoritmo anterior (pues los puntos suspensivos no tienen una semántica clara, si bien se comprende intuitivamente su significado). Luego el algoritmo anterior puede rescribirse como se muestra en la figura 2 (izq.). Dicho algoritmo tampoco sería preciso (pues también hay una Algor itmo SumarNaturales Datos de entrada: N {dos números naturales} Datos de salida: S { suma de 1+2...+N } S ✁ 1 + .... + N noción intuitiva de qué significa lo que escribimos, pero no es precisa). Después de haber aprendido ciertas estructuras de control (como la repetición), los alumnos llegan a elaborar un algoritmo válido, como el que se muestra en la figura 2 (der.). Figura 2: Versión intuitiva (izq.) y definitiva (der.) del algoritmo SumarNaturales. La actividad de programación involucrará entonces aprender ciertas “acciones primitivas” (como la asignación), que pueden combinarse con otras (como la repetición que hemos presentado), a fin de especificar un algoritmo que indicará, en términos precisos, cómo resolver un problema dado. La ejecución de dicho algoritmo, para ciertos datos de entrada, nos deberá dar la solución esperada de acuerdo a nuestra especificación. 2.3. Por qué introdu cir mapas conceptuales para enseñar a programar Hemos visto muy resumidamente algunos de los conceptos con los que deberá enfrentarse un alumno ingresante a una carrera universitaria de Ciencias de la Computación. Entre los principales obstáculos que aparecen para el aprendizaje y aplicación de un lenguaje de diseño de algoritmos pueden puntualizarse los siguientes: • El alumno se ve necesitado de manejar un gran número de nuevos conceptos (acción primitiva, la ejecución dinámica de un algoritmo vs. su especificación estática, etc.), e integrarlos de manera significativa. En los algoritmos, las acciones complejas suelen definirse en términos de otras acciones más sencillas. Esto hace que la comprensión acabada de las acciones más simples redunde en beneficios para entender aquellas más complejas. • Las acciones tienen dos aspectos que están estrechamente relacionados entre sí: una sintaxis (reglas de redacción de las acciones en un algoritmo), y una semántica (significado formal y preciso de una acción dada). • El alumno se enfrenta a la necesidad de manejar un lenguaje objeto (para elaborar algoritmos) y un meta-lenguaje (para hablar acerca de cómo se comporta el lenguaje algorítmico). • Existen conceptos relativamente complejos interrelacionados entre sí (Ej.: todo dato está asociado a un tipo, el cual constituye un conjunto de valores). Algor itmo SumarNaturales Datos de entrada: N {dos números naturales} Datos de salida: S { suma de 1+2...+N } S ✂ 1 S ✂ S + 1 S ✂ S + 2 ... S ✂ S + N Algor itmo SumarNaturales Datos de entrada: N {dos números naturales} Datos de salida: S { suma de 1+2...+N } S ✂ 1 i ✂ 1 Repetir N veces S ✂ S + i i ✂ i+ 1 Los textos tradicionales de enseñanza de programación en el ámbito universitario (ej: [Grogono 86]) prescinden de un lenguaje de diseño de algoritmos para enseñar a programar, apelando directamente a un lenguaje de programación. Ese acercamiento prescinde muchas veces de una clara identificación de cómo se interrelacionan distintos conceptos entre sí. El resultado es que muchos conceptos teóricos son presentados como “compartimentos estancos”, y sólo a través de la práctica el alumno llega a poder interrelacionarlos. Esto motivó la exploración de distintas técnicas didácticas que facilitaran a los alumnos una mayor comprensión y vinculación de los temas presentados [Chesñevar, 1994; Chesñevar & Cáccamo, 1995]. Entendemos que los mapas conceptuales brindan una presentación integradora y ofrecen un recurso esquemático de lo aprendido [Novak, 1982], donde se clarifican las relaciones jerárquicas y los niveles de abstracción. En programación se da el caso particular de que todo concepto expresado a través de la sintaxis de un lenguaje de programación tiene su correlato en un significado operacional (semántica), y que dicho significado estará definido de manera composicional, en término del significado de otros conceptos más elementales. En tal sentido, nuestro acercamiento al uso de mapas conceptuales en enseñanza de la programación involucró añadir distintos atributos visuales que facilitaran la distinción de conceptos. Así, los conceptos centrales se definieron dentro de rectángulos con bordes gruesos, y esquinas redondeadas; la sintaxis se definió a través de rectángulos con líneas contínuas; la semántica se definió a través de rectángulos con líneas punteadas. A cada concepto central presentado se le asociaron ejemplos, presentados también con un tipo de letra determinado. Al final de este trabajo se muestran ejemplos de los mapas conceptuales utilizados para formalizar la noción de algoritmo y la noción de acción de asignación descrita anteriormente (ver apéndices 1 y 2). 3. Experiencia realizada En la asignatura “Resolución de Problemas y Algoritmos” hemos venido utilizando mapas conceptuales como una herramienta complementaria para mejorar el aprendizaje de estructuras significativas, que permitan al alumno interrelacionar los distintos conceptos aprendidos. Su utilización se realizó en diversas etapas, como se describe a continuación. 3.1. Primer Etapa: Mapas Conceptuales Tradicionales En una primer instancia, los mapas conceptuales utilizados fueron “tradicionales”, en el sentido en que se los desarrolló en papel, distribuyéndolos como fotocopias para que los alumnos contaran con ellos por anticipado en el momento del desarrollo de la clase teórica. Durante el desarrollo de la clase teórica, a medida que se fueron introdujendo nuevos conceptos se los fue reflejando en el pizarrón en un mapa conceptual, utilizando diferentes colores para identificar distintos elementos (conceptos, atributos, etc). Dicho mapa se correspondía con el que los alumnos tenían disponible de manera impresa, de manera tal que los alumnos pudieran concentrar su esfuerzo en entender los conceptos teóricos introducidos y su interrelación. Los mapas conceptuales utilizados en esta primera instancia fueron “enriquecidos” con marcas que denotaron distintas clasificaciones de información, tal como se detalló anteriormente. Las marcas utilizadas fueron diferentes tipos de letra (asociadas a distintos conceptos y jerarquías), distintos formatos de “cajas” (asociados a conceptos y atributos), entre otras. Se emplearon, en síntesis, diferentes recursos gráficos para brindar una jerarquía de clasificación de conceptos, indicando su interrelación mediante flechas, de la manera tradicional. Una limitación importante a nivel logístico la dio la imposibilidad de contar con el color como un recurso didáctico adicional (en virtud de que las fotocopias obligaron forzosamente a recurrir a material en blanco y negro). Esta limitación fue subsanada en la segunda etapa, donde se potenció ampliamente todo lo realizado en papel. 3.2. Segund a Etapa: Mapas Conceptuales en MS PowerPoint A partir de 1999 comenzó a utilizarse sistemáticamente un proyector multimedia (en conjunción con una computadora portátil) para la presentación de conceptos teóricos en las clases de “Resolución de Problemas y Algoritmos”. La utilización del software Microsoft PowerPoint permitió trasladar automáticamente los mapas conceptuales tradicionales que se venían utilizando hasta ese momento a mapas conceptuales hipermediales [Señas y otros, 1996;Señas y otros, 1998]. Esto obedece a que PowerPoint brinda la facilidad de construir transparencias interactivas, en las cuales pueden definirse de manera relativamente sencilla los elementos que típicamente se requieren para representar mapas conceptuales, a saber: - gráficos de distinta naturaleza, con rótulos arbitrarios - colores asociados a los elementos que integran un gráfico - audio, video, y demás elementos hipermediales - animación arbitraria de una transparencia Este último recurso tuvo un rol particularmente importante, en virtud de que permitió motivar a los alumnos, focalizando su atención de manera guiada, y mostrando la interrelación de conceptos de manera dinámica, lo que entendemos constituye un refuerzo positivo para el aprendizaje. Todos estos elementos conjugados con la metodología de mapas conceptuales brindan una herramienta extremadamente poderosa al momento de enseñar a programar. 3.3. Resultados obtenidos Si bien no se realizó un seguimiento formal de la incidencia del uso de mapas conceptuales en el desempeño de los alumnos, la utilización de los mismos tuvo una repercusión positiva en el rendimiento de éstos en exámenes parciales y finales. Desde la incorporación de los mapas conceptuales como herramienta de apoyo para la presentación de temas en clase se registró una mayor aptitud de los alumnos para responder a preguntas complejas que obligaran a vincular y relacionar distintos conceptos. Adicionalmente, se apreció que ciertos errores sistemáticos en el aprendizaje pudieron ser erradicados, interpretándose que los mismos obedecían a la imposibilidad de interrelacionar ciertas definiciones y propiedades entre sí. 3.4. Etapa futura: Mapas Conceptuales en Internet A partir del primer cuatrimestre del año 2000 quien suscribe el presente trabajo comenzó a utilizar Internet como medio para brindar acceso a los alumnos al material de la cátedra “Elementos de Programación”. La idea fue contar con un recurso adicional para hacer llegar material de estudio a los alumnos, y establecer con ellos un vínculo alternativo a la clase tradicional, a través del uso del correo electrónico. El resultado obtenido fue altamente positivo, y con un alto grado de aceptabilidad: muchos alumnos prescindieron de material fotocopiado, accediendo directamente a archivos con programas ejemplo y transparencias. También muchos alumnos comunicaron sus inquietudes y opiniones a la Cátedra por e-mail. Una intención futura es incorporar los mapas conceptuales actualmente utilizados como páginas web. Esto es relativamente sencillo de implementar, dado que los mapas conceptuales en su versión actual se sustentan en un soporte de software que permite automáticamente su almacenamiento en un formato apto para ser visualizados en Internet. Esto permitiría a los alumnos contar con un enfoque sintético de los principales conceptos presentados en la materia, a los cuales podrían acceder en cualquier momento y desde cualquier lugar, con ventajas análogas a las mencionadas en las obtenidas cuando se utiliza el proyector multimedia, como se describió anteriormente. 4. Conclusiones y Trabajos Relacionados Los mapas conceptuales que hemos descrito en este trabajo son algunos de los que se han utilizado durante el dictado de la materia “Resolución de Problemas y Algoritmos” durante el 2do. cuatrimestre de 1996, 1997 y 1998. La idea de su incorporación como recurso didáctico surgió naturalmente, con el afán de clarificar los conceptos teóricos básicos involucrados en la actividad de programación. Hasta el momento dichos mapas han sido utilizados como herramienta de transmisión de conocimiento, complementando material impreso (apuntes) en los cuales se tratan los conceptos teóricos en profundidad. El trabajo aquí presentado se relaciona con el realizado en [Señas y otros, 1996; Señas y otros, 1998], donde se introdujo la noción de mapa conceptual hipermedial. En ese acercamiento se brinda una plataforma de software para los denominados esquemas de ejecución de algoritmo. En nuestro caso, los mapas conceptuales se utilizan esencialmente como complemento de las presentaciones en el pizarrón, y pueden resultar hipermediales cuando se los combina adecuadamente con el proyector multimedia (caso contrario, disponer de los mismos en papel los transforma básicamente en mapas conceptuales convencionales). Un aspecto a tener en consideración es la factibilidad de implementación del acercamiento propuesto. En una situación ideal, la enseñanza de la programación debe contar con un laboratorio de computadoras como soporte práctico, cosa que por diversas razones muchas veces no está disponible. Es necesario conjugar entonces una buena metodología con una escasa disponibilidad de recursos tecnológicos de común acceso para un curso numeroso de alumnos. Cabe señalar que en la primer instancia del acercamiento propuesto en este trabajo se utilizó simplemente material fotocopiado, que fue distribuido entre los alumnos. En la segunda instancia del acercamiento el material técnico requerido fue un proyector multimedia, en conjunción con una computadora portátil. El costo de dicha tecnología –disponble actualmente en el Departamento de Cs. de la Computación- es considerablemente inferior al que supondría un laboratorio de computadoras adecuado para la enseñanza de la programación en un curso inicial. Bibliografía Ausubel, D; Novak, J; Hanesian, H. - “Psicología Educativa” – México Trillas, 1989. Chesñevar, C.; Cáccamo,M. – “Un metaintérprete Prolog para la implementación de algoritmos en un curso introductorio a la programación “ – Anales del IV Congreso Iberoamericano de Educación Superior en Computación. Canela (Brasil), julio de 1995. Chesñevar, C. –````Syntactic diagrams as a tool for solving text-processing problems''. Special Interest Group on Computer Science Education Bulletin. Association for Computer Machinery. (Vol. 26, Number 4, Dic. 1994, págs. 35-40). Grogono , Peter - “Programación en Pascal” - Addison Wesley, 1986 Novak, J. - “Teoría y Práctica de la Educación” –– Madrid, Alianza, 1982. Novak, J. y Gowin, D. - “Aprendiendo a aprender” –– Barcelona, Martinez Roca, 1988. Ontoria, Anton io. - “Mapas conceptuales: una técnica para aprender” (2da. Ed)– Narcea S.A. Ediciones, 1993. Rueda, S.; Castro, S.; Zanconi, M. – “Resolución de Problemas y Algoritmos” – Notas de curso. 1993. Señas, P.; Moron i, N.; Vitturini, M.; Zanconi, M. – “Combining Concept Mapping and Hypermedia” – en Ed-Media 96, Boston, 1996. Señas, P.; Moron i, N.– “Herramientas no convencionales para el aprendizaje de la programación” – IV Congreso Argentino de Cs. de la Computación, Neuquén, Argentina, 1998. Apéndice 1: Algor itmo. Mapa Conceptual. Resolución de Problemas y Algoritmos / Dep. de Cs. de la Computación / Prof. Carlos Iván Chesñevar / Asist. Sergio Martig ALGORITMO de entrada de salida auxili ares simples compuestas Acción de asignación Acción Mostrar secuencial de decisión repetitiva (iterativa) de es una involucra pueden ser involucran pueden ser tiene la forma Algor itmo <Nombre del algoritmo> DE : <nombres de los datos de entrada> DS : <nombres de los datos de salida> DAUX : <nombres de los datos auxili ares> ..... .... secuencia de acciones ..... ....... Ejemplo : Algoritmo PotenciaNatural DE : A, B {ambos nros. naturales} DS : Pot {A elevado a la B} Pot ✄ 1 Repetir B veces Pot ✄ Pot * A permiten agrupar SECUENCIA DATOS ACCIONES ESTRUCTURAS DE CONTROL 3 A Apéndice 2: Pr imitiva de Asignación. Diagrama Conceptual. Resolución de Problemas y Algoritmos / Dep. de Cs. de la Computación / Prof. Carlos Iván Chesñevar / Asist. Sergio Martigrepresentados con nombres Ejemplos: A, B, Cant involucra pueden involucrar datos constantes Ej : 5, 3, 2.4 Ej : verdadero, falso operadores ar itméticos ej : +, -, *, //, / relacionales ej : =, <, >, >=, booleanos ej : y, o, no pueden modificar su valor mediante PRIMITIVA DE ASIGNACION tiene la forma <dato> ☎☎ <expresión> al ejecutarse, su efecto es Primeramente se evalúa el resultado de <expresión>, y el valor resultante se almacena como valor asociado de <dato> Ejemplos: A ✆ 2 B ✆ 3 + (5 - A) A ✆ A*A a la derecha del símbolo ✆ siempre aparece una expresión pueden ser pueden ser su resultado es su resultado es un valor numérico Ejemplos: (3*(5+A)) (A+B+C)*2 un valor de verdad Ejemplos: (A+B) > (3+C) (2+B) = A Un dato puede abstraerse como una “caja” rotulada, que tiene cierto contenido valor siempre posee asociado un DATOS EXPRESION ARITMETICA LOGICA
Compartir