Logo Studenta

asesores inteligentes para apoyar el proceso de enseñanza de lenguajes de programacion

¡Este material tiene más páginas!

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