Vista previa del material en texto
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS CIUDAD DE MÉXICO ASESORES INTELIGENTES PARA APOYAR EL PROCESO DE ENSEÑANZA DE LENGUAJES DE PROGRAMACIÓN Asesor: TESIS QUE PARA OPTAR POR EL GRADO DE MAESTRO EN CIENCIAS DE LA COMPUTACIÓN PRESENTA BRUNO GUARDIA ROBLES Comité de tesis: Dr. Marc Boumedine Montaner Dr. Carlos Rodríguez Lucatero Jurado: M. en C. Enrique David Espinosa Carrillo Dr. Carlos Rodríguez Lucatero Presidente M. en C. Enrique David Espinosa Carrillo Secretario Dr. Marc Boumedine Montaner Vocal México, D.F., Noviembre de 1997. . :· ;-- ~. - .,. . l . '. : ,, RESUMEN En este trabajo se presenta la arquitectura base ANGEL (Asesor iNteligente Genérico para la Enseñanza de Lenguajes de Programación), la cual permite implementar en forma flexible un asesor inteligente que asista al alumno; con la capacidad de adaptarse a distintos lenguajes de programación, o distintos modelos de enseñanza. Con el apoyo de ANGEL, se espera facilitar el proceso de asesoría a los alumnos de lenguajes de programación, aumentando su disponibilidad aún en ausencia del profesor; consiguiendo una mejora en la oportunidad de la asesoría al alumno, y contribuyendo a la virtualización de la Universidad. El diseño de ANGEL está orientado a ser sumamente modular y flexible, pues está basado en un motor de inferencia común a dos bases de conocimiento basado en reglas, correspondientes al dominio del lenguaje que va a enseñar y a la estrategia educativa que aplicará como asesor; así como analizadores léxico y sintáctico con facilidades para su adaptación a nuevos lenguajes, y una representación del estudiante y los conceptos a aprender aplicable a diversos dominios. El enfoque de este trabajo es aplicable al desarrollo de otros tipos de asesores inteligentes, especialmente aquellos que faciliten el manejo o el aprendizaje del manejo de sistemas computacionales, no necesariamente lenguajes de programación. Los resultados preliminares muestran que ANGEL puede resultar una herramienta muy útil para asistir al alumno y complementar un curso donde se aprenden lenguajes de programación, tanto en un esquema "presencial", donde apoyará al profesor para atender a un gran número de alumnos; como en un esquema "virtual", donde los alumnos no cuenten con acceso físico al profesor. Palabras clave: sistemas tutores inteligentes; sistemas expertos; interfases inteligentes; enseñanza asistida por computadora; lenguajes de programación. 4 5 6 CONTENIDO Dedicatoria ................................................................................................... .. ................................. 2 Reconocimientos ........................................................................................................... .. ................. 3 Resumen ........................................................................................................................................... 4 Contenido ........................................................................................................................................ 6 Lista de figuras. .. . .. .. . .. . .. .. . .. .. .. . . . .. .. .. .. .. .. .. .. .. .. . . . .. .. .. .. .. .. .. .. .. .. .. .. .. . . . . . . . .. . . .. . . . .. .. .. .. .. . . . .. .. .. .. .. .. .. .. .. .. .. 1 O Lista de tablas ................................................................................................................................ 11 1. Antecedentes .......................................................................................................................... 12 1.1. Panorama del Capítulo ....................................................................................................... 12 1.2. Limitantes en la enseñanza de lenguajes de programación ............................................... 12 1.3. Cambios en el modelo de enseñanza/aprendizaje .............................................................. 15 1.4. La tendencia de utilizar la tecnología computacional en la enseñanza ............................. 19 1.5. Asesores inteligentes ......................................................................................................... 21 1.6. Objetivos del trabajo .......................................................................................................... 23 1.7. Organización del trabajo .................................................................................................... 24 2. El proceso de enseñanza - aprendizaje de un lenguaje en las materias de programación ... 27 2.1. Panorama del capítulo ....................................................................................................... 27 2.2. Modelos de Enseñanza-Aprendizaje ................................................................................. 28 2.2.1 Introducción ............................................................................................................... 28 2.2.2 Teorías instruccionales .............................................................................................. 28 2.3. Observación de los procesos que intervienen en la enseñanza- aprendizaje de un lenguaje de programación ........................................................................................................................ 36 2.4. Roles dentro del proceso de enseñanza - aprendizaje ........................................................ 38 2.5. Comparación de modelos instruccionales con la situación actual ..................................... 42 2.6. Selección de un modelo de referencia ............................................................................... 44 2.7. Conclusiones ...................................................................................................................... 45 3. Sistemas Tutores Inteligentes ................................................................................................ 47 3 .1. Panorama del capítulo ....................................................................................................... 4 7 3 .2. Revisión histórica .............................................................................................................. 48 3.2.1 SCHOLAR ................................................................................................................. 48 3.2.2 West ........................................................................................................................... 48 7 3.2.3 MENO ....................................................................................................................... 49 3.2.4 COACH ..................................................................................................................... 49 3.3. Características que distinguen un sistema tutor inteligente ............................................... 50 3.4. Componentes generales ..................................................................................................... 51 3.5. Clasificación de Sistemas Tutores Inteligentes, de acuerdo a su rol en un modelo de enseñanza-aprendizaje ............................................................................................................... 53 3.6. Interfases inteligentes ........................................................................................................ 53 3.6.1 Problemática en el diseño de interfase ...................................................................... 53 3.6.2 Sistemas adaptativos: una clasificación ..................................................................... 54 3.7. Asesores inteligentes ......................................................................................................... 56 3.8. Conclusiones ...................................................................................................................... 57 4. Modelado de la arquitectura .................................................................................................59 4.1. Panorama del capítulo ....................................................................................................... 59 4.2. Papel del asesor inteligente en el proceso de enseñanza - aprendizaje ............................. 59 4.3. Adaptación del curso ......................................................................................................... 61 4.4. Diseño de la arquitectura ................................................................................................... 62 4.4.1 Diagrama general. ...................................................................................................... 62 4.4.2 Diseño de la interfase ................................................................................................ 64 4.4.3 Diseño del modelo del dominio ................................................................................. 67 4.4.4 Diseño del modelo del estudiante .............................................................................. 70 4.4.5 Diseño del Modelo instruccional o pedagógico ....................................................... 76 4.5. Conclusiones ...................................................................................................................... 78 5. Programación de ANGEL ..................................................................................................... 80 5.1. Panorama del Capítulo ....................................................................................................... 80 5.2. Arquitectura física general ................................................................................................. 81 5.3. Selección de herramientas ................................................................................................. 84 5.3.1 Selección del lenguaje de programación ................................................................... 84 5.3.2 Selección de herramientas para análisis léxico y sintáctico ...................................... 86 5.3.3 Selección de la plataforma de sistema experto .......................................................... 87 5.3.4 Conclusiones de la selección ..................................................................................... 90 5.4. Implementación de la interfase .......................................................................................... 90 5.4.1 diagrama general de la interfase ................................................................................ 90 5.4.2 Interfase con el alumno: Editor/asesor ...................................................................... 90 5.4.3 Interfase con el profesor: Reportes sobre el modelo del estudiante .......................... 92 5.4.4 Interfase con el desarrollador: catálogo de conceptos ............................................... 93 5.5. Implementación del modelo del dominio .......................................................................... 93 5.5.1 Arquitectura del modelo del dominio ........................................................................ 93 5.5.2 Analizador léxico y sintáctico ................................................................................... 94 5.5.3 Planteamiento de las reglas del sistema experto ........................................................ 95 5.5.4 Construcción de la base de conocimientos ................................................................ 96 5.5.5 Integración del sistema experto ................................................................................. 96 5.5.6 Problemática en la activación de las reglas ............................................................... 98 5.6. Implementación del modelo del Estudiante ..................................................................... 100 5.6.1 Representación del estudiante ................................................................................. 100 5.6.2 Registro de la actividad del estudiante .................................................................... 101 8 5. 7. Implementación del modelo instruccional....................................................................... 102 5.7.1 Construcción de funciones auxiliares y su uso desde reglas ................................... 103 5. 7 .2 Planteamiento de las reglas...................................................................................... 104 5.8. Conclusiones .................................................................................................................... 104 6. Pruebas ................................................................................................................................ 106 6.1. Panorama del capítulo ..................................................................................................... 106 6.2. Diseño de experimentos ................................................................................................... 106 6.3. Pruebas preliminares realizadas con el asesor inteligente ............................................... 108 7. Conclusiones y trabajo futuro ............................................................................................. 113 7 .1. Resumen del trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 7.2. Conclusiones generales del trabajo .................................................................................. 114 7.3. Continuación de este trabajo .......................................................................... : ................. 116 7.4. Líneas de investigación propuestas para trabajos futuros ............................................... 117 7 .5. Contribución esperada ..................................................................................................... 119 Bibliografia .................................................................................................................................. 120 Bibliografía utilizada ............................................................................................................... 120 Bibliografía electrónica ........................................................................................................... 125 Apéndice A: Glosario .................................................................................................................. 126 Apéndice B: Reglas planteadas para el modelo del dominio ...................................................... 128 Apéndice C: Reglas planteadas para el modelo pedagógico ..................................................... 153 Apéndice D: Descripción de archivos usados en ANGEL .......................................................... 156 9 10 LISTA DE FIGURAS. Figura 1: Diagrama de contexto del proceso de aprendizaje de un lenguaje de programación .... 14 Figura 2: Modelo básico del aprendiz según Gagné ...................................................................... 33 Figura 3: Fases y sucesos del aprendizaje según Gagné ............................................................... 34 Figura 4: Proceso de la enseñanza de lenguajes de programación ................................................ 37 Figura 5: Modelo de dos roles (alumno/profesor) ......................................................................... 38 Figura 6: Modelo de tres roles, transmisor - receptor - asesor ...................................................... 40 Figura 7: Participantes que juegan los tres roles ........................................................................... 41 Figura 8: Arquitectura de sistemas tutores inteligentes, según Kaplan ......................................... 51 Figura 9: Arquitectura de sistemas tutores inteligentes, según Clancey ....................................... 52 Figura 1 O: Relación entre SistemasTutores Inteligentes, Agentes Inteligentes e Interfase Hombre-Máquina ................................................................................................................... 56 Figura 11: Arquitectura general de ANGEL ................................................................................. 62 Figura 12: Arquitectura física de ANGEL .................................................................................... 82 Figura 13: Arquitectura de la interfase .......................................................................................... 90 Figura 14: Pantalla de la interfase con el alumno .......................................................................... 91 Figura 15: Pantalla de reportes en la interfase con el profesor.. .................................................... 92 Figura 16: Arquitectura del modelo del dominio .......................................................................... 94 Figura 17: Ejemplo de implementación de una regla .................................................................... 97 Figura 18: Arquitectura del modelo del estudiante ..................................................................... 100 Figura 19: Arquitectura del modelo instruccional.. ..................................................................... 103 Figura 20: Planteamiento del problema para probar ANGEL ..................................................... 108 Figura 21: Asesoría no irruptiva al alumno ................................................................................. 109 Figura 22: Nivel superior de asesoría solicitada por el alumno .................................................. 109 11 LISTA DE TABLAS. Tabla 1: Conocimientos y habilidades que se adquieren en la programación ............................... 13 Tabla 2: Comparación de los modelos modernista y postmodernista ........................................... 17 Tabla 3: Procesos que gobiernan el aprendizaje por observación ................................................. 30 Tabla 4:Agentes propuestos para el modelado del proceso enseñanza - aprendizaje ................... 39 Tabla 5: Similaridades y diferencias entre las teorías intruccionales y el proceso observado ...... 43 Tabla 6: Clasificación de sistemas adaptativos ............................................................................. 54 Tabla 7: Comparación de lenguajes de programación ................................................................... 85 Tabla 8: Resumen de resultados experimentales ......................................................................... 110 12 l. ANTECEDENTES 1.1. PANORAMA DEL CAPÍTULO El trabajo actual surge de la inquietud por encontrar formas de mejorar los resultados de la asesoría, a alumnos del área de Computación, de los lenguajes de programación. Por ello, se considera conveniente exponer la problemática en este contexto: qué limitantes se desean superar; por qué es necesario superar el modelo actual de enseñanza - aprendizaje, y qué beneficios podemos lograr con ello; las tendencias tecnológicas que rodean a este proceso, y nos proporcionan nuevas formas de lograr nuestras metas; y como resumen, una breve exposición de qué se propone para avanzar en la solución de esta problemática. 1.2. LIMITANTES EN LA ENSEÑANZA DE LENGUAJES DE PROGRAMACIÓN Dentro de la enseñanza de los lenguajes de programación, tenemos como objetivos generales el conseguir que los alumnos desarrollen sus habilidades, y adquieran los conocimientos necesarios, para desarrollar programas y sistemas computarizados que resuelvan problemas reales. [4][37] Durante la experiencia del autor como instructor y profesor de diversos lenguajes de programación, se ha observado que se pueden clasificar dichos conocimientos y habilidades, en la forma presentada en la tabla 1. 13 Ti bl 1 e a a onoc1m1entos y a 1 1 a es que se a :1 uzeren en a pro5!ramacion. h bTd d d l Conocimientos del len2uaje Habilidades Léxico (palabras reservadas; funciones de Planteamiento y diseño de algoritmos para la librería; signos de puntuación y su uso como solución de problemas. separadores o terminadores; constantes numéricas y alfanuméricas; forma de los identificadores o variables que puede definir el usuario). Sintaxis ( orden correcto para utilizar las Capacidad de detectar rápidamente los errores palabras del léxico). de lógica, es decir, en el planteamiento del algoritmo. Gramática (forma en la que se relacionan las Experiencia en los errores comunes propios del unidades sintácticas, por ejemplo las lenguaje, que permite prevenirlos además de instrucciones del lenguaje, para conseguir la detectarlos eficientemente. [7] [2] ejecución de un proceso complejo). El proceso actual de enseñanza - aprendizaje se puede considerar como limitado, en ocasiones por la falta de habilidades del instructor, en ocasiones por la inadecuada preparación previa de los alumnos, por la ineficiencia en el proceso de transmisión de conocimientos, o por la ineficiencia en la retroalimentación, entre otras posibles razones. Especialmente, se proponen como causas principales de que el alumno no consiga cubrir los objetivos: • Actitud negativa del alumno hacia el aprendizaje. • Falta de conocimiento profundo por parte del profesor. • Falta de experiencia sobre los errores comunes de los alumnos y cómo atacarlos. • El alumno no cuenta con formas apropiadas de comparar o evaluar sus soluciones, de forma que descubra cómo mejorarlas. • Impartición de una clase general a una gran cantidad de alumnos, que por su naturaleza es incapaz de orientarse a las necesidades específicas de cada uno de ellos. • Retroalimentación inefectiva del profesor al alumno. • Falta de práctica suficiente en el laboratorio (limitada por tiempo o recursos). • Se ha dado demasiado peso al papel del profesor como transmisor, y menor al del alumno como receptor. El aprendizaje de un lenguaje de programación implica para el alumno, en primer lugar, estructurar y comprender un nuevo lenguaje, es decir, ajustar su estructura mental para reconocer un nuevo léxico, sintaxis y gramática [7][E7], que le permitan formar un significado para frases u oraciones en el mismo lenguaje. En ese sentido, la situación es similar al aprendizaje de cualquier otro lenguaje formal, como el de las matemáticas; y para conseguir dominarlo, se necesita usarlo en forma continuada, con una retroalimentación y tratando de expresar diversas ideas en el mismo, así como leyendo expresiones en el lenguaje. 14 De manera que en este aspecto, se puede visualizar el aprendizaje del lenguaje de programación, como un proceso de práctica, donde el alumno busca expresar sus ideas utilizando el lenguaje específico, obteniendo por parte del instructor o de sus compañeros retroalimentación sobre si la forma elegida es correcta (en léxico, sintaxis y gramática); y que se apoya para el aprendizaje del mismo, mediante ejemplos que visualiza o utiliza para resolver problemas. Existe un nivel más alto de abstracción, donde se utiliza el lenguaje para resolver problemas. En este nivel, el alumno utiliza sus habilidades para describir algoritmos y su conocimiento sobre las estructuras de datos. Hablando de Matemáticas, este nivel es independiente de la notación: un problema se resuelve utilizando el mismo algoritmo, sin importar la notación usada. Del mismo modo, el nivel algorítmico es independiente del lenguaje, en el caso de la Programación. Siguiendo un enfoque sistémico, si deseamos mejorar la salida del proceso [13] (por ejemplo, la eficacia y eficiencia del alumno al resolver problemas utilizando el lenguaje de programación), requerimos en primer lugar conseguir su calidad, controlando y estandarizando al proceso; reconocer las variaciones debidas a las entradas (distintos alumnos, con distintas experiencias académicas, habilidades adquiridas, y estilos de aprendizaje), y con esta información,modificar el proceso incrementalmente; lo cual puede lograrse por medio de ajustes a las variables que limitan la capacidad de cada uno de los subsistemas, así como a través de cambios completos en el proceso o sus subsistemas, probando nuevos enfoques sobre cómo conseguir el resultado deseado. Alumno con las habilidades desarrolladas y los conocimientos apropiados Proceso de aprendizaje del lenguaje de programación Alumno que no cuenta con los conocimientos y habilidades que le permitan utilizar eficazmente el lenguaje de programación Figura 1: Diagrama de contexto del proceso de aprendizaje de un lenguaje de programación 15 De acuerdo a este enfoque sistémico, para conseguir el control de calidad de este proceso, requerimos una mejor comprensión de lo que está ocurriendo en este proceso de aprendizaje; y necesitamos asegurarnos que los recursos utilizados sean los apropiados, y que el alumno cuente con ellos en el momento oportuno. En general, las limitantes para su aprendizaje pueden clasificarse en dos tipos: • Aquellas debidas a un proceso erróneo, las cuales requieren un ajuste de los medios de aprendizaje (laboratorios, apoyos visuales, material didáctico, libros, estilo de enseñanza profesor). • Aquellas debidas a la falta de disponibilidad de los recursos en el momento oportuno. No es el objetivo de este trabajo el atacar las limitantes del primer tipo, siendo más bien labor de especialistas en Pedagogía y existiendo gran cantidad de bibliografia y talleres al respecto [8], que buscan mejorar el desempeño del profesor y la preparación de su clase. Sin embargo, dada su íntima relación, sí se mencionarán ampliamente, en los diversos puntos en que estas limitantes entran en contacto con las del segundo tipo. Cabe aclarar que en este trabajo solamente se persigue la enseñanza del lenguaje de programación, en su nivel léxico, sintáctico y semántico, propio del lenguaje; se asume que el alumno ya cuenta con el conocimiento sobre algoritmos y estructuras de datos [37]. Las Ciencias Computacionales ofrecen diversas soluciones a las limitantes del segundo tipo, que principalmente tienen que ver con la falta de disponibilidad del profesor y su conocimiento, en el momento o lugar oportuno. 1.3. CAMBIOS EN EL MODELO DE ENSEÑANZA/APRENDIZAJE Para explorar las limitantes del primer tipo, es decir, aquellas relacionadas con la forma que toma el proceso de aprendizaje, se hace en este apartado una revisión histórica de la tendencia más relevante en la actualidad en cuanto a los modelos propuestos para explicar dicho proceso. Durante siglos, la educación fue reservada a una elite sumamente reducida [14], y limitada en sus alcances a un único punto de vista, fuera religioso, racionalista o cualquiera otra de las corrientes filosóficas que la guiara. Un gran cambio en la educación se dio con la aparición del método científico y posteriormente de la Pedagogía moderna; al aplicar el método científico para desarrollar el pensamiento crítico, y además iniciar la investigación según dicho método en el campo de la enseñanza, se ha avanzado enormemente en los resultados y alcances que pueden obtenerse de dicha educación. 16 Desde el punto de vista de algunos filósofos contemporáneos, tales como Focault, dicha corriente (llamada "modernista" por estos pensadores), si bien resultó un gran avance, presenta serias deficiencias. Entre las deficiencias más importantes, destacan las siguientes: • Se ignora la naturaleza humana y social, al concentrarse en la transmisión de conocimiento "objetivo" sin mezclarse con los valores. • Se pierden puntos de vista valiosos, al tomar un enfoque único como verdad absoluta, sin considerar enfoques multidisciplinarios y humanísticos. • Se carga demasiado el papel del profesor como transmisor, disminuyendo la importancia del alumno como receptor activo. Para ayudar a la comparación, Dennis McCallum presenta en "The Death o/Truth" [El] un ejemplo de cómo se ven cuatro conceptos básicos de la educación, desde las dos posiciones filosóficas, la "modernista" contra la "postmodernista", que se presenta en la tabla 2 (siguiente página). Muchas de las universidades más reconocidas del mundo, siguiendo la tendencia del pensamiento postmodemista, y el trabajo de pedagogos como Piaget, han iniciado un proceso de rediseño de su modelo educativo [14]; el ITESM [1] es un ejemplo de esta tendencia. En algunas referencias, se usa la terminología "tradicional" y "nuevo", en lugar de "modernista" y "postmodernista"; para propósitos de este análisis, se consideran enfoques equivalentes. El modelo educativo tradicional se caracteriza por lo siguiente: • El profesor dicta o expone su clase, utilizando diversos medios: pizarrón; acetatos, videos, presentaciones de diapositivas y otros medios de proyección; asignación de tareas, trabajos y proyectos; referencias bibliográficas; y experimentación en clase o prácticas de laboratorio. • El alumno toma notas, reflexiona o estudia sobre la temática que el profesor expone; y pregunta sus dudas, pidiendo al profesor que aclare los conceptos. • La mayor parte de la responsabilidad sobre la ejecución del proceso recae en el profesor. • El profesor se constituye como el eje del proceso de enseñanza - aprendizaje. • El profesor decide qué y cómo debe aprender el alumno. De esta manera, el alumno puede tender a convertirse en un ente pasivo que solamente recibe el conocimiento del profesor. Tabla 2: Comparación de los modelos modernista y postmodernista, adaptada de McCallum {El 1 Conocimiento: 17 Modernista: Los educadores, idealmente, deben ser transmisores reconocidos de conocimiento no sesgado. Postmodernista: Los educadores son facilitadores y copartícipes en la construcción del conocimiento; con un enfoque sesgado. Cultura: Modernista: Los estudiantes deben aprender sobre la cultura, pero ésta puede ser una barrera para el aprendizaje. Por tanto, los estudiantes de culturas diversas deben entrenarse en un lenguaje o medio de comunicación común, antes de que el profesor sea capaz de transmitirles conocimiento. Postmodernista: La meta modernista de unificar la sociedad ha resultado en dominación y explotación, ya que esa unificación se basa en la cultura dominante; no solamente toda cultura tiene el mismo valor, sino que constituye una realidad igualmente importancia; los estudiantes que pertenecen a minorías deben contar con las herramientas para evitar ser absorbidos por la cultura dominante, occidental. Valores: Modernista: Según los modernistas más conservadores, los educadores son autoridades legítimas en cuanto a valores, por lo tanto deben entrenar a los estudiantes en los valores universales; según modernistas "liberales", la educación debe ser independiente de los valores. Los profesores ayudan a los estudiantes a aclarar sus valores, es decir, a decidir con qué valores se comprometerá cada estudiante como individuo. Los valores pueden y deben separarse de los hechos. Los valores más importantes son la racionalidad y el progreso. Postmodernista: La educación debe ayudar a los estudiantes a construir valores diversos y útiles en lo personal, en el contexto de su cultura. Los valores son útiles solamente para una cultura dada, no verdaderos o correctos en ningún sentido universal. Ya que los profesores no pueden evitar enseflar bajo sus propios valores, es aceptable que promuevan abiertamente sus valores en el salón de clases. Entre los valores que es importante enseflar, se encuentran la búsqueda de la diversidad, la tolerancia, libertad, creatividad, emociones e intuición. Naturaleza humana: Modernista: Existe una personalidad estable e inherente al individuo, que puede conocerse objetivamente. Sobre esta base, los tests de inteligencia y otras pruebas "objetivas" similares, pueden ser usados para descubrir la inteligencia innata del estudiante. Al proporcionarles el dominio de unaasignatura, el profesor promueve la autoestima de los alumnos. La educación ayuda a los individuos a descubrir sus identidades. Los individuos y la sociedad progresan al aprender y aplicar conocimiento objetivo. Postmodernista: Los estudiantes no tienen una esencia innata. En su lugar, la personalidad es construida en un contexto social. Los educadores posmodemos consideran que la autoestima es una precondición para el aprendizaje. Consideran la educación como una terapia, la cual ayuda a los individuos a construir sus identidades, en lugar de descubrirlas. El progreso del individuo y de la sociedad ocurre cuando a las personas se les otorga la libertad para elegir y alcanzar sus orooias metas. 18 Se observa que un buen profesor, siguiendo este modelo, logra que el alumno adquiera habilidades, actitudes y valores [1]. Es decir, forma personas, no simplemente profesionales. Sin embargo, se considera que en el proceso educativo tradicional no están explícitas dichas habilidades, actitudes y valores; no se evalúa su adquisición; ocurre en forma no programada y no estructurada. Por ello, se considera que las necesidades actuales requieren ampliar y perfeccionar este modelo. El nuevo modelo educativo propuesto, cambia en dos aspectos fundamentales: • El proceso se centra en el aprendizaje más que en la enseñanza. • Se busca desarrollar en forma estructurada y programada las habilidades, actitudes y valores. De esta manera, el nuevo proceso se caracteriza por: • El profesor planea y diseña actividades y experiencias que faciliten el aprendizaje previsto, antes del desarrollo del curso; y durante el mismo, facilita, guía, motiva y ayuda a los alumnos en su proceso personal de aprendizaje, manteniendo el enfoque sobre los objetivos previstos. • El alumno aporta dentro de un proceso de aprendizaje colaborativo con sus pares; aplica sus nuevos conocimientos en la realización de proyectos, el estudio de casos y la solución de problemas. Esto lo lleva a reflexionar sobre la ejecución de su propio proceso y mejorar el mismo en forma personal. • La responsabilidad sobre la ejecución del proceso recae principalmente en el alumno. La creación de este valor (responsabilidad) en el alumno incide en desarrollar habilidades de búsqueda, selección, análisis y síntesis. • El alumno se constituye como el eje del proceso de enseñanza - aprendizaje. • El alumno decide cómo aprender, y adapta el qué debe aprender; si bien el profesor continúa diseñando objetivos previstos para un curso, que proporcionan una guía o modelo sobre el cual el alumno puede ajustar su modelo. Se postula que este proceso puede alcanzar una mayor efectividad, ya que se adaptará más personalmente a las necesidades de cada alumno; se invertirán más recursos para conseguir los objetivos, ya que no solamente el profesor los persigue activamente; y los alumnos contarán con nuevas habilidades, actitudes y valores, especialmente la autonomía y la habilidad de aprender por sí mismos, que trascienden el curso específico y podrán ser usada por el alumno a lo largo de toda su vida. [ 1] [ 41] El proceso de cambio debe cubrir varios elementos [1]: • Un cambio en la intencionalidad y en los objetivos: de contar sólo con objetivos técnicos o específicos al curso, se agrega el desarrollo simultáneo de habilidades, actitudes y valores. • Un cambio en el proceso, para centrarlo en el alumno y en grupos colaborativos de aprendizaje. • La aportación de apoyos tecnológicos que faciliten y permitan aumentar la eficiencia del nuevo proceso. 19 Las tendencias que hemos revisado, donde el modelo tradicional de enseñanza - aprendizaje está siendo sustituido por uno centrado en el aprendizaje, requieren de un rediseño de los cursos, así como del desarrollo tecnológico que nos proporcione nuevas herramientas de apoyo [14][41], las cuales permitan al profesor enfrentar este reto. Entre las herramientas que revisten un particular interés por su potencialidad, se encuentran aquellas que las Ciencias Computacionales pueden poner a disposición de las entidades educativas, sean personas (profesores) o instituciones (universidades, centros de capacitación, empresa e industria). [41][3][15] En este trabajo, se enfoca un subproceso del proceso de enseñanza - aprendizaje, que es el proceso de asesoría (coaching) [3][7][24]. Como se explica en el capítulo 2, la asesoría es una parte importante de dicho proceso, pues provee al alumno de la retroalimentación respecto a la práctica de sus nuevos conocimientos y personaliza el aprendizaje. Además, el proceso de asesoría es precisamente el punto donde se presenta la problemática planteada en la sección anterior, respecto a las limitantes a las que se enfrenta el profesor al impartir una materia de lenguajes de programación. 1.4. LA TENDENCIA DE UTILIZAR LA TECNOLOGÍA COMPUTACIONAL EN LA ENSEÑANZA Desde que las computadoras pudieron ser utilizadas en escuelas y universidades, se han convertido en una herramienta de apoyo a la enseñanza. La instrucción asistida por computadora (CAi) ha sido utilizada por bastante tiempo [3][11][25][15]. Sin embargo, es hasta el desarrollo de la computadora personal, cuando se ha puesto al alcance de las masas esta capacidad; en México, no es sino hasta los últimos cinco años que se ha vuelto de uso común la computadora personal en el hogar y en la escuela. Pero con la mayor difusión de esta tecnología, ha surgido la necesidad de convertirla en un apoyo efectivo para la enseñanza; de manera que es el tiempo en el que distintas formas de CAi empiezan a difundirse. 20 Las nuevas capacidades que nos brinda la tecnología de sistemas computacionales, con las que no contábamos en tiempos anteriores y que pueden utilizarse beneficiosamente para resolver la problemática actual del proceso de enseñanza - aprendizaje, incluyen: • La comunicación asíncrona y remota, sea persona a persona o persona a un grupo. [6][43] • La distribución de la información a un bajísimo costo. [39][43] • La repetición y multiplicación de un curso, utilizando los medios de audio, video, instrucción programada, y multimedia en general, sin requerir un nuevo esfuerzo por parte del profesor. [43][11][37][26] • En general, la automatización de tareas repetitivas, que así permiten al profesor concentrarse en las tareas con un mayor nivel de inteligencia, y ser más productivo. [6][1] Rickel [3] plantea una categorización específica sobre los sistemas de CAi: • Libros electrónicos, donde el contenido es fijo, su presentación, las preguntas y respuestas previstas, y un control específico del flujo sobre el material, que acepta ciertas bifurcaciones predeterminadas basadas en las respuestas predeterminadas. [E4] • CAi generadora, en la cual el paquete utiliza plantillas, gramáticas de generación de problemas y números aleatorios para crear problemas que el estudiante debe resolver. Este tipo de sistemas resultan benéficos para apoyar clases de Matemáticas o Física, pero están limitados a facilitar al alumno la práctica de habilidades muy específicas; son generalmente incapaces de adaptarse al estudiante, relacionar las respuestas correctas con las incorrectas y deducir cómo corregir los problemas que el estudiante se encuentra en el aprendizaje. [11] • ICAI, que se refiere a instrucción asistida inteligentemente por computadora; implica la aplicación de técnicas de Inteligencia Artificial para superar las limitantes planteadas. Principalmente, se considera que son sistemas con un rico conocimiento de su dominio, representado de manera que pueda usarse en formas no explícitamente especificadas por su diseñador, capaz de reaccionar e individualizar su instrucción de acuerdo al comportamiento, nivel de conocimiento, tasa de aprendizaje y otros factores propios de cada estudiante. [E5] Todas estas variantes de enseñanza asistida por computadora, tienen una gran oportunidad de desarrollo, especialmentedentro del contexto de la evolución hacia un nuevo modelo de enseñanza - aprendizaje, planteada en la sección anterior. Como participante dentro de la docencia, específicamente respecto a la enseñanza de lenguajes de programación, el autor está interesado en la investigación sobre el uso de tecnologías ICAI aplicadas a la enseñanza; el presente trabajo trata con detalle, de dicha investigación. Entre las tecnologías de ICAI, las que se revisarán a fondo en el capítulo 3, se ha seleccionado el modelo de asesores inteligentes [7] [2] [E6] como el más apropiado para ser aplicado a las limitantes, descritas en la sección anterior, en el proceso de enseñanza - aprendizaje de los lenguajes de programación. 1.5. ASESORES INTELIGENTES. 21 En el capítulo 2 se describe el proceso de asesoría, como una parte importante del proceso de enseñanza - aprendizaje; para este trabajo, el proceso de asesoría se define como el proceso en el cual el profesor retroalimenta al alumno, respecto al comportamiento de este último al aplicar el conocimiento que está aprendiendo. Como se verá en el capítulo 3, se llamarán "asesores inteligentes" a los sistemas tutores inteligentes, que ejecutan un proceso de enseñanza centrado en la asesoría, y pueden ser un importante complemento para el profesor. Se ha seleccionado esta técnica, ya que nos permite atacar los dos problemas principales que motivan la línea de investigación propuesta: • El profesor no cuenta con la disponibilidad suficiente en tiempo para asesorar personalmente a un número elevado de alumnos, durante su práctica de programación. [E2][14][10] • De la misma forma, el alumno no cuenta con la oportunidad de resolver sus dudas eficientemente cuando se encuentra fuera de clase, por ejemplo en casa o en el laboratorio, trabajando en la materia, dado que el profesor no cuenta tampoco con la disponibilidad de estar en el lugar y momento oportuno para asesorar al alumno. Estos problemas han sido tratados dentro del área de ICAI, en particular mediante los "Sistemas Tutores Inteligentes", sobre los que se trata ampliamente en este trabajo. Los Sistemas Tutores Inteligentes pueden ser clasificados en distintos tipos, de acuerdo a sus técnicas de interacción y a su orientación pedagógica, entre otros criterios. El sistema propuesto en este trabajo para atacar los problemas planteados, puede catalogarse como un "tutor con estilo de asesoría" [7]; en este trabajo, se le llama "asesor inteligente automatizado", ya que resulta redundante decir en español "tutor - asesor"; enfatizando la necesidad de un comportamiento inteligente por parte del asesor; y permitiendo distinguir un asesor humano del sistema implementado computacionalmente. Podemos considerar que el comportamiento requerido es inteligente, pues para que un asesor humano asesore a un alumno, requiere de conocimiento sobre el tema en el cual asesora, así como de estrategias específicas para poder transmitirlo al alumno, y para diagnosticar qué conocimiento requiere el alumno para conseguir realizar su tarea. De acuerdo a esto, varias definiciones de Inteligencia Artificial pueden ser usadas para mostrar que el asesor inteligente automatizado entra dentro de esta rama; en particular, se mencionarán tres, todas indicadas en Russell [9]. • "El arte de crear máquinas [por ejemplo, sistemas computacionales] con capacidad de realizar funciones que realizadas por personas, requieren de inteligencia" (Kurzweil). • "El estudio de cómo lograr que las computadoras realicen tareas que, por el momento, los humanos hacen mejor" (Rich y Knight). [18] • "La rama de la ciencia de la computación que se ocupa de la automatización de la conducta inteligente" (Luger y Stubblefield). Russell sugiere que las definiciones de IA se pueden agrupar en cuatro categorías; en particular, las que estamos usando corresponden a: • Sistemas que actúan como humanos. • Sistemas que actúan racionalmente. 22 Idealmente, este trabajo buscaría construir un asesor inteligente automatizado que contara il con el conocimiento e "inteligencia" suficientes para sustituir plenamente la función de un asesor humano; pero este es un problema sumamente dificil de resolver en el estado del art actual [32][33], por lo que es más razonable resolver el problema parcialmente, 1 concentrándose en el resolver el problema al nivel de racionalidad, que es inferior en su complejidad al nivel "actuar como humano", principalmente, por no requerir resolver el problema de cómo dotar al sistema de "sentido común". Un problema adicional que motiva la investigación en esta línea, es la tendencia a virtualizar la enseñanza [10][14]; para conseguir este objetivo, se requiere permitir extender el alcance del profesor, en el tiempo y en el espacio. Los asesores inteligentes automatizados cubren con este objetivo, pues están disponibles en tiempo y espacio en el cual el profesor no lo está, y pueden recabar información útil para el profesor tales como el tipo de asesoría que proporcionaron al alumno. Por ello, también se examina en el trabajo esta tendencia, como un respaldo adicional para la investigación. Como se desarrollará y justificará durante el trabajo, se buscará construir un asesor inteligente automatizado, que actúe racionalmente. A este asesor inteligente, se le conocerá como ANGEL (Asesor iNteligente Genérico para la Enseñanza de Lenguajes de programación). 23 1.6. OBJETIVOS DEL TRABAJO Para este trabajo, se pretende demostrar la siguiente tesis: [E2] Los asesores inteligentes son una alternativa viable para apoyar la enseñanza de una materia del área de lenguajes de programación, tomando el papel del profesor en la asesoría a los alumnos cuando no esté disponible; y por medio de su uso, se puede conseguir mayor oportunidad en la asesoría al alumno, elevar el nivel de impartición de la materia, y apoyar la virtualización de la enseñanza. El objetivo general perseguido en el trabajo, que permitirá demostrar la tesis propuesta, será el siguiente: Implementar e implantar una arquitectura base, sobre la cual puedan construirse fácil y eficientemente asesores inteligentes automatizados que apoyen los procesos repetitivos de asesoría de la enseñanza; y comprobar su funcionalidad, construyendo sobre dicha arquitectura un asesor que apoye la enseñanza de una materia del área de lenguajes de programación. 1 1 I Nuevamente, el nombre usado par~Jclerirse el asesor inteligente automatizado será /1 .--~ j '7 ,., : "ANGEL", acrónimo de Aseso~~~~~¡~ª la Enseñanza de la Programación. \: 1 ,_ ,_ Algunos de los objetivos específicos que deberán cubrirse en el trabajo, incluyen: • Búsqueda de un modelo pedagógico que permita modelar los procesos de asesoría. • Investigación sobre las herramientas de otras disciplinas (Psicología, Pedagogía) que pueden complementar los modelos teóricos y la aplicación del asesor. • Diseño de la arquitectura requerida para el asesor automatizado • Selección detallada de las herramientas de las distintas áreas de las Ciencias Computacionales (Inteligencia Artificial, Teoría de la Computación y Autómatas, Diseño de Interfase, Algorítmica) apropiadas para implementar la arquitectura. • Construir o implementar el asesor prototipo, en la materia de Ensamblador, que el autor imparte en el ITESM-CCM. [E7] • Probar el asesor, apoyando la impartición del curso Virtual de la materia. [E7] • Evaluar los cambios ocurridos en el desempeño del estudiante, como consecuencia directa del uso del asesor. • Publicar reportes o avances de investigación, para obtener retroalimentación por parte de los colegas trabajando en problemas similares .. ' (~-- • Documentar el uso de la arquitectura, permitiendo que en el futuro otros profesores puedan construir asesores para otros lenguajes, basados en la misma arquitectura. • Prueba de la construcción rápida y sencilla de un asesor con conocimiento básico, en otro dominio (lenguaje).• Preparar nuevas líneas de investigación, para trabajos posteriores. 1.7. ORGANIZACIÓN DEL TRABAJO El presente trabajo pretende exponer cómo se han ido cumpliendo los objetivos indicados en la sección anterior. Para ello, se divide en 7 capítulos y 5 anexos: 24 • El capítulo 1, "Antecedentes", ha pretendido presentar el contexto de donde surge esta investigación, y sus objetivos, haciendo una recapitulación respecto a los planteados en la Propuesta de Tesis [E2]. • El capítulo 2, "El proceso de enseñanza - aprendizaje de un lenguaje en las materias de programación", expone la situación actual sobre cómo es este proceso, especialmente revisando el subproceso de "asesoría" donde el profesor asiste y retroalimenta en forma personalizada al alumno. • El capítulo 3, "Sistemas Tutores Inteligentes", hace una recapitulación sobre los avances en esta rama, justifica por qué el asesor objeto de este trabajo se sitúa dentro de los mismos, y presenta una introducción general al tema que proporcione un contexto para los siguientes capítulos. • El capítulo 4, "Modelado del problema", trata sobre el diseño de la arquitectura y selección de las herramientas de distintas disciplinas utilizadas para poder construir el asesor inteligente, así como el diseño de interfase y de pruebas para comprobar su funcionalidad. • El capítulo 5, "Programación del asesor inteligente", cubre la implementación computacional del asesor y los problemas encontrados en la misma, así como las soluciones correspondientes. • El capítulo 6, "Pruebas", detalla la ejecución de las mismas, donde el asesor inteligente interactúa con alumnos reales y la medición del cambio en el desempeño generado por el asesor. • El capítulo 7, "Análisis y discusión de los resultados", revisa los resultados, presenta las conclusiones generales del trabajo, y ofrece información sobre las líneas de investigación y trabajo futuros. • Se incluyen como apéndices: ~ Un glosario apropiado para facilitar la comprensión de los términos técnicos utilizados a lo largo del trabajo, así como para unificar la definición usada en el presente trabajo para términos comunes que tal vez puedan usarse en otros contextos, con otra semántica. (Apéndice A). ~ El detalle de las reglas planteadas, tanto para el modelo del dominio como para el modelo instruccional, en los apéndices B y C. ~ Información sobre el código fuente del asesor, en el apéndice D. ~ Finalmente, la gramática utilizada para el análisis del lenguaje y el diagnóstico de programas a partir del mismo, en el apéndice E. 25 26 2. EL PROCESO DE ENSEÑANZA - APRENDIZAJE DE UN LENGUAJE EN LAS MATERIAS DE PROGRAMACIÓN 2.1. PANORAMA DEL CAPÍTULO 27 Una vez que se ha explicado el objetivo general de este trabajo, se requiere analizar cómo ocurre el proceso de asesoría; y fundamentarlo en investigaciones del área de la Pedagogía. Para construir el asesor inteligente automatizado ANGEL, es necesario realizar un diseño de su operación; esto incluye, además de los aspectos propios de las técnicas de Inteligencia Artificial y Sistemas Tutores Inteligentes, que se tratarán en el capítulo 3, las estrategias de asesoría que se usarán. La ciencia que se ha dedicado a investigar el proceso de enseñanza - aprendizaje y las técnicas para hacerlo más eficiente o mejorar su calidad, es la Pedagogía; ya que el objetivo final de ANGEL es contribuir para mejorar dicho proceso, es conveniente apoyarse en las teorías propuestas dentro de la Pedagogía. Sin embargo, aún no se conoce de estudios pedagógicos que hayan sido realizados en un contexto específico similar al existente en las asignaturas de aprendizaje de lenguajes de programación; por ello, se requiere la observación de dicho contexto, que permita distinguir sus características. Esta será usada para seleccionar un solo modelo pedagógico de referencia sobre el cual se realice la implementación y experimentación de ANGEL. En este capítulo, se revisan algunos de los más conocidos modelos de instrucción propuestos por la Pedagogía; se explica el contexto en el que deseamos aplicarlos; de acuerdo a ello, se propone un modelo del proceso de enseñanza - aprendizaje de asignaturas de programación y los roles que existen dentro de dicho proceso; y se elige la estrategia instruccional, basada en un modelo teórico aceptado en el ámbito de la Pedagogía, que se considera más apropiada para ser usada dentro del proceso de enseñanza - aprendizaje en el contexto de asignaturas de programación. El objetivo de este capítulo es por lo tanto, establecer el universo o entorno dentro del cual el agente ANGEL realizará su trabajo; así como la estrategia instruccional que seguirá. 2.2. MODELOS DE ENSEÑANZA-APRENDIZAJE 2.2.1 INTRODUCCIÓN No se pretende realizar una revisión exhaustiva de los modelos de enseñanza - aprendizaje; sin embargo, sí se considera conveniente revisar las características principales de algunos de ellos, que faciliten situar el contexto dentro del cual se da el proceso de enseñanza - aprendizaje. Para entender el subproceso de asesoría y sus limitantes, que es el problema al que se busca solución, se requiere examinar los procesos y modelos generales de enseñanza - aprendizaje. 28 Entre las diversas teorías formadas por diversos pedagogos para explicar cómo se da el aprendizaje, hay básicamente dos tendencias [23]: la instruccional, donde se considera al profesor como el diseñador del contenido que el alumno debe "aprender"; y la del aprendizaje por descubrimiento, donde el profesor es un facilitador para que el alumno descubra el conocimiento que le convenga. Está fuera del alcance de este trabajo analizar la controversia entre ambos enfoques, sin embargo, se mencionarán algunas características de teorías en las dos tendencias, con el objetivo de tomar una posición apropiada para el objetivo de este trabajo. 2.2.2 TEORÍAS INSTRUCCIONALES Araújo y Chadwick [13] resumen un conjunto de las teorías de instrucción más influyentes, de una forma que permite comparar los puntos de vista, fortalezas y debilidades de distintos autores. Las teorías que cubren incluyen las de Ausubel, Bandura, Bruner, Gagné, Piaget y Skinner, de las que se hace un muy breve resumen a continuación. Es importante comentar que en esta sección se hablará de aprendizaje desde el enfoque pedagógico, mientras que en el resto del trabajo suele tomarse el enfoque de la Inteligencia Artificial. En el glosario se analiza la diferencia entre ambos sentidos semánticos de "aprendizaje". Siempre que se haga referencia a estos modelos, el enfoque es netamente pedagógico. 2.2.2.1. Teoría de Ausubel Se especializa en la adquisición de aprendizaje significativo, y por ello no considera el aprendizaje mecánico o de memoria. 29 Para considerar a un aprendizaje como significativo, requiere de tener un sentido para ser incorporado al conjunto de conocimientos que el sujeto posee; es decir, el concepto aprendido deberá relacionarse con conocimientos previamente existentes en la estructura mental del sujeto. De acuerdo a esto, existen dos tipos de sentido: lógico, en el cual el contenido en sí mismo está relacionado; y psicológico, que es el sentido propio del sujeto, es decir, la forma en la que encaja el sentido lógico en la estructura mental particular del alumno. También considera al aprendizaje como receptivo, en cuanto a que el profesor establece los contenidos y estructura del material, lo cual facilita su aprendizaje al ahorrar tiempo al alumno y facilitar la organización del nuevo conocimiento dentro de su estructura mental. Un tema interesante dentro de la teoría de Ausubel, es el reconocimiento de cinco procesos mentales dentro del aprendizaje: reconciliación integrativa, subsunción ( derivativa y correlativa), asimilación, diferenciación progresiva, y consolidación. Estos procesos se describen a continuación: • En la reconciliación integrativa se obtiene una generalización,un nuevo concepto que abstrae a otros anteriormente conocidos. • La subsunción es la forma básica en la que entra nuevo contenido al cuerpo de conocimiento del alumno; existen dos formas de la misma: derivativa, en la que el concepto aprendido se integra como un nuevo ejemplo de aplicación de un concepto existente, reforzando por tanto al anterior; y correlativa, en la cual el contenido del aprendizaje es una extensión, modificación o cualificación de conceptos previamente aprendidos. • La asimilación ocurre cuando aparece un nuevo sentido del concepto, al tiempo que permanece en relación con el concepto original que permitió hacer la subsunción de dicho concepto. • La diferenciación progresiva, que es contraria a la reconciliación integrativa, permite relacionar nuevo conocimiento, por sus diferencias o particularidades. Se orienta a dirigir el aprendizaje de lo general a lo particular, y Ausubel la considera como "más sencilla" para el alumno que la reconciliación integrativa. • La consolidación, es el proceso donde el contenido se refuerza hasta dominarse; debe darse antes de introducir nuevos contenidos. Además de estos procesos, Ausubel sugiere que el contenido deberá presentarse en una forma organizada, de manera que sea fácil para el alumno incluirlos en su estructura mental; se sugiere el uso de "organizadores avanzados", que son contenidos de inducción que presentan la relación que tendrá el material que se aprenderá, con los conocimientos anteriores del alumno, estableciendo un puente entre ambos conocimientos; y enfatiza la importancia de resaltar la organización y la diferenciación junto con los conceptos. Mediante el uso de organizadores avancados, se facilita la ocurrencia de los procesos de aprendizaje. Por ello, Ausubel se opone a la tendencia de que en la organización de un libro o material didáctico se olvide de hacer énfasis en las relaciones entre capítulos y secciones. 2.2.2.2. Teoría de Bandura Esta teoría toma un enfoque social, donde el aprendizaje es resultado de un proceso de interacción con otras personas. Se define claramente un proceso de aprendizaje, que engloba: 30 • Como entradas, un suceso modelado, que es el comportamiento o técnica que se desea aprender; determinantes antecedentes, que se refieren a expectativas y experiencia previa, así como el estatus del modelo; y los determinantes consecuentes, que incluyen los refuerzos y castigos correspondientes a la imitación o no correcta. • Como procesos internos del aprendiz: atención, que incluye diversas variables sensoriales y psicológicas, donde el aprendiz observa el suceso modelado; retención, donde el aprendiz codifica simbólicamente el suceso, y lo organiza dentro de su estructura cognitiva; reproducción motriz, donde el aprendiz es capaz de repetir el comportamiento, es decir, de aplicar el conocimiento aprendido; y el proceso motivacional, que incluye la ejecución de subprocesos que mantengan trabajando al proceso del aprendizaje, tales como los reforzadores y la autorregulación. • Como salidas esperadas, la repetición del comportamiento aprendido y la autorregulación del alwnno. Los procesos que gobiernan el aprendizaje, según Bandura, se esquematizan en la tabla 3; a su teoría se le conoce como "aprendizaje por observación en un contexto social". Tabla 3: Procesos que J obiernan el aprendizaje vor observación. Tomada de Arauja [J 3]. Procesos de Atención Procesos de retención Procesos de Procesos reproducción motriz motivacionales Estímulos Codificación Aptitudes fisicas. Refuerzo externo. modeladores simbólica. Nitidez Disponibilidad de Refuerzo vicario. Valor afectivo Organización respuestas. Complejidad cognitiva. Autorrefuerzo. Prominencia Autoobservación de Valor funcional Entrenamiento los comportamientos simbólico. reproducidos. Características del observador Entrenamiento motor. Precisión de la Capacidades retroalimentación. sensoriales Nivel de estimulación Campo perceptual Historia de refuerzo 31 2.2.2.3. Teoría de Piaget Esta teoría, que representa la corriente de la psicología evolutiva, suele no considerarse como una teoría de aprendizaje sino más bien una teoría del desarrollo psicológico [23][24], y en esto hay cierta controversia. Efectivamente el mismo Piaget no desarrolla una estrategia de instrucción, dejando ese trabajo a pedagogos que usando la psicología evolutiva proponen aquella. Una diferenciación que algunos teóricos hacen y parece ser pertinente, es que una teoría del aprendizaje habla del proceso que ocurre para que el aprendiz adquiera el conocimiento, mientras que una teoría de instrucción ofrece un modelo para optimizar la ocurrencia del proceso de aprendizaje. Con este enfoque, se comenta la teoría de Piaget sin tomarla como teoría instruccional, sino más bien teoría del aprendizaje. Se consideran varias etapas del desarrollo psicológico del niño, llamadas "estadios": el sensomotor, que abarca del nacimiento hasta los primeros 18 a 24 meses de vida; el de "operaciones concretas", de los 2 a los 11 ó 12 años de edad; y el de "operaciones formales", que inicia entre los 11 y 12 años. En el primer estadio, se desarrollan los esquemas sensorio-motores, pero existe una ausencia operacional de símbolos, y al final del mismo se inicia el establecimiento de esquemas. En el segundo estadio, que a su vez se divide en dos etapas (pensamiento preoperacional y pensamiento operacional concreto), se desarrollan las funciones simbólicas, tales como el lenguaje, los juegos y la imaginación; y más adelante, la inclusión lógica, se inicia el agrupamiento de estructuras cognitivas, se adquieren nociones tales como la conservación de sustancia, peso, volumen y distancia. Finalmente, el tercer estadio representa el raciocionio hipotético-deductivo, el uso de proposiciones lógicas y otras estructuras cognitivas de alto nivel como el álgebra. 2.2.2.4. Teoría de Bruner Esta teoría, relacionada con la de Piaget, enfatiza el aprendizaje por descubrimiento. Indica que el alumno es quien tiene que descubrir el contenido del aprendizaje, pues esto le causa mayor satisfacción y permite una mayor retención; pero desarrolla más específicamente que Piaget una técnica o proceso de instrucción donde el profesor cree el ambiente que favorezca lograr dicho objetivo. Para ello, propone que los contenidos a enseñar se presenten como un conjunto de problemas y relaciones que el alumno debe resolver, así como lagunas que debe llenar, a fin de que se interese y le resulte significativo el aprendizaje. De esta manera, se presenta el material de enseñanza como hipótesis a comprobar por el alumno. Se señalan cuatro ventajas, respaldadas por pruebas experimentales: 32 • Potencia intelectual: el alumno, como resultado de esta técnica, forma la habilidad de aplicar el aprendizaje a resolver problemas en la vida real. • Existe motivación, tanto intrínseca (la satisfacción del alumno al resolver el problema) como extrínseca (la retroalimentación y competencia que se genera con sus compañeros y profesor). • El aprendizaje del descubrimiento en sí mismo; es decir, por la ejercitación de resolver problemas de aprendizaje, el alumno aprende a aprender. • Maximiza la retención en la memoria. 2.2.2.5. Teoría de Gagné En esta teoría, el aprendizaje se define como un proceso que permite a un organismo vivo modificar sus comportamientos en forma rápida y permanente; por tanto, el aprendizaje se verifica cuando existe un cambio de comportamiento, relativamente estable. Esto supone cuatro elementos: • Un aprendiz. • Una situación o entorno que permite el aprendizaje. • Un comportamiento explícito del aprendiz. • Un cambio interno. El proceso del aprendizaje se ve afectado por una serie de factores, internos y externos al aprendiz; los internos incluyen: • La información en forma de hechos, sea que se le presenta al aprendiz o que éste la recuerda de un aprendizaje anterior. •Las habilidades intelectuales previamente desarrolladas. • Las estrategias de aprendizaje previamente desarrolladas. Mientras que los externos incluyen principalmente: • Contigüidad en las experiencias en el tiempo. • Repetición de la experiencia. • Refuerzo. Una vez que plantea estos factores que afectan al aprendizaje, Gagné puede plantear al proceso de aprendizaje como un sistema, donde dichas entradas afectan la salida; y por lo tanto, el profesor puede mejorar la salida controlando las entradas. ¿Cómo sugiere Gagné que se haga esto? En primer lugar, agrega un concepto, el de jerarquía, importante como base para su descripción del funcionamiento del sistema; este concepto indica que los distintos tipos de aprendizaje (conceptos clasificados) están organizados en forma jerárquica, requiriendose para el aprendizaje de un concepto, el aprendizaje de aquellos subordinados. Sus experimentos demostraron en forma estadísticamente significativa que: • Sólo se verificó el aprendizaje en un nivel jerárquico superior cuando los niveles superiores habían sido aprendidos. 33 • La correlación entre el nivel de aprendizaje en un nivel superior y sus niveles jerárquicamente inferiores fue muy alta. Las estructuras existentes en el aprendiz humano, para Gagné son similares a las de una computadora; de hecho, su modelo del aprendiz se conoce como "modelo de procesamiento de informaciones". En la figura 2 se muestra el modelo, que incluye: Control ejecutivo Generador de respuestas Registro Sensorial Memoria a corto plazo Expectativas Memoria a largo plazo Figura 2: Modelo básico de aprendizaje y memoria en un enfoque de procesamiento de la información (tomado de Chadwick [ 13}) • Sensores, por los cuales el aprendiz recibe los estímulos del ambiente. • Registro sensorial, que traduce los estímulos en unidades significativas para el aprendiz; por ejemplo, reconocimiento de formas y palabras. • Memoria a corto plazo, donde se procesa durante un tiempo limitado un conjunto de impresiones sensoriales. • Memoria a largo plazo, donde se almacena prácticamente de por vida una síntesis obtenida de la memoria a corto plazo. • Generador de respuestas, el cual ocupa información en cualquiera de las memorias para decidir la acción con la que el aprendiz reaccionará. • Efectores, que son los órganos con los que el aprendiz modifica al ambiente como respuesta. • Control ejecutivo y expectativas, que son variables que controlan cómo se ejecuta el proceso. Gagné propone un conjunto de fases por las que pasa el aprendizaje, que son motivación, aprehensión, adquisición, retención, recuerdo, generalización, desempeño y retroalimentación. • En la primera fase, que es la motivación, el aprendiz establece las expectativas del aprendizaje. El rol del profesor en esta fase es activar la motivación, e informar de los objetivos a alumno. • La segunda fase, conocida como aprehensión, es donde ocurre la atención y una percepción selectiva. El rol del profesor consiste en dirigir la atención del alumno. • En la fase de adquisición, se codifica y almacena el conocimiento en la memoria de corto plazo. El rol del profesor en este caso es estimular la memoria y proporcionar los hechos en una forma fácil de codificar, así como guiar el aprendizaje. • Posteriormente, en la fase de retención, se transfiere el conocimiento a la memoria de largo plazo. Mientras, el profesor continúa desempeñando los mismos roles que en la fase de adquisición. 34 • Una vez retenido el conocimiento, se recuerda; en esta fase de recuerdo, el proceso central es la recuperación de la información. Se sugiere que aquí el profesor realice actividades que promuevan la retención. • La fase de generalización permite transferir el conocimiento de un dominio a otro. El profesor puede intervenir promoviendo la transferencia, por ejemplo demostrando la aplicación del conocimiento. • El cambio en el comportamiento se puede medir en la fase de desempeño, donde el aprendiz ejecuta una nueva respuesta a la situación original. El profesor aquí solamente interviene como observador. • Finalmente, se cierra un ciclo de aprendizaje en la fase de retroalimentación, donde se hace un refuerzo al proceso. En esta fase es donde el profesor interviene fuertemente, dando retroalimentación, sea positiva (premiando y elogiando el buen desempeño) o crítica (señalando las fallas en el a rendiza'e). 1'otivacf6" tlecuerd0 Atención v percepción selectiva ~qulslcfó" Codificación \\.etencló11 Almacenamiento en memona Recuperación Transferencia Respuesta Refuerzo Figura 3: Fases y sucesos del aprendizaje según Gagné. Adaptada de Arauja {13}. 35 ! !, ) 2.2.2.6. Teoría de Skinner ( c\Y' f\i '_j/_ , La teoría conductista, que representa Skinneh24], i~ qd,p:endizaje viene del refuerzo; el individuo recibe un estímulo, es decir, experÚne.nti un suceso que percibe sensorialmente; e inmediatamente después, ocurre un refuerzo, es decir, un suceso, controlable por el individuo, que favorece o dificulta la conducta del mismo. El aprendizaje se da cuando el individuo reconoce la conexión entre ambos sucesos, y por ello cambia su comportamiento para conseguir que el suceso ocurra o no ocurra. Algunos ejemplos son el aprendizaje de abrir un paraguas para protegernos de la lluvia: se tienen el suceso "lluvia" y el suceso "abrir el paraguas", siendo el segundo controlable; el aprendiz reconoce la relación entre ellos: "cuándo abro el paraguas, me protege de la lluvia", y por ello, desarrolla un cambio en su comportamiento: una vez aprendido, cada vez que el aprendiz se encuentre con el suceso "lluvia", accionará "abrir el paraguas". El enfoque es perfectamente aplicable a eventos de conocimiento: hablando en general, cuando se tiene el suceso "problema" y el suceso "técnica que lo soluciona", el alumno aprende a reconocer esa clase de problemas diferenciándolo de otras clases de problemas, y accionar para dichos problemas la técnica correspondiente. El refuerzo se da cuando el aprendiz obtiene una solución exitosa, la que puede representar desde satisfacción personal, hasta una mejor calificación o la capacidad de ejecutar una acción deseable. Con estas bases para explicar los cambios de conducta, el método de Skinner para la instrucción consiste en la aplicación de refuerzos; se prefieren los refuerzos positivos, sean los premios o el "castigo" consistente en la falta del premio, si bien se reconoce que también pueden funcionar (y desafortunadamente se usan más de la cuenta) los refuerzos negativos, sea la aplicación de un castigo directo, o "salvarse del castigo" por una buena conducta. De acuerdo a ello se reconoce como la principal función del profesor la de encargarse que ocurra el refuerzo dentro del ambiente de aprendizaje, siempre que el alumno consigue la respuesta apropiada, similar a la que se desea obtener. Para ello, se definen como principales variables el usar muchos pasos pequeños en el aprendizaje, y buscar como objetivo minimizar el número de errores, y una secuencia correcta en los conceptos que asegure una progresión estrictamente creciente. 2.2.2.7. Aplicación de los modelos instruccionales en el contexto estudiado La mayoría de los autores anteriores han realizado su investigación en otros contextos, tales como la educación primaria y secundaria. Se requiere un análisis del contexto para establecer cómo se pueden adaptar estos modelos para contribuir en la mejora del proceso de enseñanza - aprendizaje de un lenguaje de programación. En la siguiente sección, se examina ese contexto, hacia el que se deberá dirigir la aplicación de un modelo instruccional. 36 2.3. OBSERVACIÓN DE LOS PROCESOS QUE INTERVIENEN EN LA ENSEÑANZA - APRENDIZAJE DE UN LENGUAJE DE PROGRAMACIÓN. La experiencia del autor ha permitido observar algunos patrones comunes en la forma en que se enseña a los alumnos a programar, utilizando un lenguaje deprogramación específico. Estos patrones se presentan a continuación, y se resumen en la figura 4; a través de la observación de este proceso, se podrá justificar a continuación la selección de un modelo de enseñanza - aprendizaje que pueda ser adaptado a este proceso. • En la gran mayoría de los casos, el profesor ( o en su defecto, el libro o artículo), inicia por la introducción del léxico y sintaxis del lenguaje, es decir, qué comandos lo forman, qué otras categorías de palabras (tokens) existen, y cómo deben estructurarse para formar unidades lógicas coherentes. • Posteriormente, se suele demostrar cómo escribir un programa completo, o exponer el funcionamiento de uno ya escrito; mostrando de pasada la gramática del lenguaje, es decir, cómo se estructura un texto más amplio en el lenguaje. • Los dos procesos anteriores por lo general no son lineales; ocurren cíclicamente; varias veces a lo largo del curso, se expone un grupo de instrucciones del lenguaje, y después se demuestra su uso. De la misma forma que ocurre en un lenguaje natural, donde se empieza con un léxico limitado, y poco a poco se va ampliando al tiempo que se pueden expresar ideas más complejas. En cada "unidad" del curso (que puede ser una sesión de clase, un capítulo del libro, una semana, mes u otro período conveniente de tiempo), se sugieren o solicitan ejercicios para que el alumno los resuelva, aplicando así el conocimiento recién adquirido. • En la mayoría de las ocasiones, si bien éste es un patrón un poco menos común, se proporcionan ejemplos resueltos de ejercicios más o menos similares a los que el alumno se enfrentará. • También en general, se retroalimenta y evalúa al alumno por medio de exámenes o pruebas; los cuales pueden incluir dos tipos principales de preguntas: las "teóricas", que validan el conocimiento del léxico, o de las reglas sintácticas y gramaticales; y las "prácticas", que consisten en ejercicios de programación. • Cuando los recursos computacionales (principalmente en cuanto a infraestructura de hardware y software) así lo permiten, se realizan prácticas de programación, donde uno o dos alumnos utilizan una computadora para escribir programas en el lenguaje en cuestión, y el profesor tiene la oportunidad de observarlos mientras aplican ese conocimiento, pudiendo así detectar por ejemplo: qué conocimiento requiere el alumno para conseguir sus objetivos, qué conceptos erróneos se han formado por parte del alumno; en general, diagnosticar los problemas en el aprendizaje del alumno; y usando su experiencia, retroalimentarlo de tal forma que pueda resolver dichos problemas. • El profesor contesta las dudas que el alumno le plantea, con lo cual se produce retroalimentación que dirige al alumno, y adapta la exposición del contenido a las necesidades específicas del alumno. • Otros recursos [8] con los que comúnmente el profesor refuerza el proceso del aprendizaje, incluyen la utilización de distintos medios de exposición (apoyos) y la realización de preguntas. 37 • En algunas ocasiones, especialmente en grupos grandes, el profesor "titular" cuenta con un profesor auxiliar; este auxiliar facilita la labor del profesor titular, en actividades tales como: control del grupo, resolución de dudas, asesoría, evaluación, y en ocasiones también en la "impartición" de la clase. Cabe hacer notar que el tamaño del grupo es un factor que afecta el comportamiento del grupo [24], y el número de dudas o requerimientos de asesoría que recibe el profesor, así como el número de exámenes o tareas a evaluar; pero tareas como explicar, demostrar, y en general, transmitir la información y "hechos" referentes a la asignatura, están limitadas por otros factores tales como el tamaño del aula, del pizarrón, y los medios audiovisuales con los que se cuenta, así como la calidad del material; pero son independientes del número de alumnos. Figura 4: Proceso de la enseñanza de lenguajes de programación 2.4. ROLES DENTRO DEL PROCESO DE ENSEÑANZA - APRENDIZAJE 38 La generalidad de los modelos instruccionales, como hemos verificado, aswnen que en el proceso de enseñanza - aprendizaje hay dos "roles" que juegan los participantes: • El de profesor, quien ya cuenta con el conocimiento, y se encarga de transmitirlo, exponerlo, o facilitar su adquisición. • El de alumno, el cual no cuenta con el conocimiento o comportamiento deseado; y cuya tarea consiste en adquirirlo. Se habla de "roles" y no "participantes", ya que puede haber múltiples individuos desempeñando cada uno de dichos roles; lo único que se puede decir del número de individuos, es que generalmente hay más alumnos que profesores; los arreglos más comunes dentro de un aula son "un profesor que imparte la asignatura a n alumnos", donde n suele estar en el rango de 5 a 300 alumnos, dependiendo del nivel escolar y la asignatura; y "dos profesores paran alumnos", donde dos profesores comparten el rol de profesor, generalmente por que el número de alumnos es alto. Según sea el modelo instruccional, es la forma en que se supone que interactúan Alumno y Profesor; por ejemplo, algunos modelos indican que el Profesor inicia la interacción, y el Alumno reacciona al Profesor; mientras que en otros, el rol iniciador es el Alumno y el Profesor actúa "reactivamente" [24][23]. Sin embargo, en general se considera que el Profesor transmite información y responde dudas del alumno, además de retroalimentar en forma de refuerzos; mientras que el alumno es un receptor activo (tiene un comportamiento observable) de la información, y plantea dudas o requiere asesoría. Todo esto se ejemplifica en la figura 5. Alumno Retroalimentación ( refuerzos Información (hechos) Profesor Dudas (falta info.) Retroalimentación (señales) Figura 5: Modelo de dos roles (alumno-profesor). Tomando el proceso observado durante la experiencia del autor en la enseñanza de lenguajes de programación, en la propuesta de tesis [E2] se propuso la existencia de tres roles: el transmisor, el receptor, y el asesor. 39 • El transmisor ( del conocimiento), generalmente llevado a cabo por el profesor titular, quien se encarga de dirigir el proceso de enseñanza - aprendizaje hacia la consecución de un objetivo definido para el curso o asignatura de la que se trate; en el modelo tradicional [1], toma el papel de exponer la clase y centrar el proceso en él, siguiendo un estilo de conferencia más que de diálogo. • El receptor ( del conocimiento), que es generalmente ejecutado por muchos alumnos, los cuales deberán tener como resultado un aprendizaje, el cual se puede definir como un cambio en el comportamiento ( en el caso de aprendizaje de un lenguaje de programación, el cambio implicará que el alumno cuente con la capacidad de resolver problemas utilizando la herramienta "lenguaje de programación" de que se trate). • Un asesor, quien suele ser el profesor mismo, pero también puede estar a cargo de un profesor auxiliar o de un alumno avanzado; el cual observa al alumno (receptor) al momento de aplicar el conocimiento recibido, y de acuerdo al ajuste del comportamiento del alumno, valida si se ha dado o no el aprendizaje; en el caso de que no se haya dado, es decir, que diagnostique fallas en la ejecución por parte del alumno, le proporciona retroalimentación que facilite la reconstrucción o complementación del conocimiento del alumno, permitiendo así que se oriente hacia el comportamiento deseado. Este papel puede identificarse con el facilitador que aparece en el nuevo modelo de enseñanza propuesto en el ITESM [ 1], o en el modelo postmodernista [E 1]. Estos roles se resumen en la tabla 4, y en las figuras 6 y 7: Tabla 4: Algunos agentes que se proponen para el modelado del proceso enseñanza - a rendiza ·e. Meta principal Reconocer y corregir los errores del Alumno al realizar prácticas de Nombre del a ente Transmisor Alumno Asesor ¿Para qué sirven estos roles? ¿Por qué no simplemente