Upload
miguel-de-jesus-esparza
View
16
Download
0
Embed Size (px)
DESCRIPTION
Es una tesis sobre un sistema experto
Citation preview
UNIVERSIDAD NACIONAL DE TRUJILLO
FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS
ESCUELA ACADÉMICO PROFESIONAL DE INFORMÁTICA
“SISTEMA EXPERTO PARA EL MODELADO DE UN TUTOR PARA EL APRENDIZAJE DE
ESTRUCTURAS BASICAS DE PROGRAMACION”
TRABAJO DE GRADUACION
AUTOR
CASTRO REYNA FRANK PETER
ASESORA
YENNY MILAGRITOS SIFUENTES DIAZ
TRUJILLO – PERÚ
2013
Dedicatoria
A mis padres y hermano, por confiar en mí, por sus consejos, paciencia y apoyo constante a lo largo de mi vida, que con su esfuerzo y sacrificio me ayudaron a llegar a esta etapa y convertirme en un profesional.
Castro Reyna Frank Peter
Agradecimiento
Gracias a Dios por cada día de vida, a mi familia que siempre estuvo conmigo en las buenas y en las malas y a mi asesora por los conocimientos brindados y por la exigencia académica que fue aliento para la realización de este trabajo.
Castro Reyna Frank Peter
Presentación
Señores Miembros del Jurado:
Dando cumplimiento a las disposiciones contenidas en el Reglamento de
Grados y Títulos de la Facultad de Ciencias Físicas y Matemáticas, Escuela
Académico Profesional de Informática de la Universidad Nacional de Trujillo,
tengo a bien poner a vuestra consideración y criterio la Tesis intitulada:
“SISTEMA EXPERTO PARA EL MODELADO DE UN TUTOR
INTELIGENTE PARA EL APRENDIZAJE DE ESTRUCTURAS BASICAS
DE PROGRAMACION”, con la finalidad de obtener el Título de INGENIERO
INFORMÁTICO.
El presente trabajo de investigación tiene como uno de sus objetivos
principales entregar, tanto al lector como a los profesionales involucrados, el
desarrollo de un Tutor Inteligente que se adapte a las necesidades del alumno
para el aprendizaje de estructuras básicas de programación.
Castro Reyna Frank Peter
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 5
Índice General
Dedicatoria…………………………………………………………………............. 2
Agradecimiento….…………………………………………………………………. 3
Presentación………………………………………………………………………… 4
Resumen……………………………………………………………………………... 6
Abstract….…………………………………………………………………………… 7
INTRODUCCION………………………………………………………………….. 8
Planteamiento del problema…………………………………………………… 8
Formulación del problema…………………………………………………….. 9
Hipótesis………………………………………………………………………….. 9
MARCO TEORICO……………………………………………………………... 9
Sistemas Expertos…………………………………………………………….. 9
Inteligencia Artificial………………………………………………………… 10
Sistemas Inteligentes………………………………………………………… 13
JUSTIFICACION DEL PROBLEMA…………………………………………… 17
Desde el punto de vista práctico y social…………………………………… 17
Desde el punto de vista científico tecnológico…………………….............. 17
OBJETIVOS………………………………………………………………................ 18
Generales………………………………………………………………………… 18
Específicos……………………………………………………………………….. 18
CAPITULO I: MATERIAL Y METODOS……………………………………….. 19
1.1. Población……………………………………………………………….. 19
1.2. Muestra….……………………………..……………………………….. 19
1.3. Operacionalizacion de variables...…………………………….……. 20
1.4. Diseño de investigación……………………………………………… 21
1.5. Metodología……………………………………………………………. 22
CAPITULO II: RESULTADOS……………………………………………….......... 30
CAPITULO III: CONCLUSIONES………………………………………………... 32
Recomendaciones……………………………………………………………………. 32
Referencias Bibliográficas………………………………………………………….. 33
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 6
Resumen
El siguiente trabajo de investigación trata sobre la elaboración de un
sistema tutor inteligente que actuará como un tutor particular del estudiante
que permita definir y aplicar una estrategia metodológica para la enseñanza de
las estructuras básicas de programación que es capaz de guiar al alumno a lo
largo de un dominio en particular del conocimiento, resolviendo durante el
proceso tareas tales como la elaboración de una estrategia de tutorización, la
generación de ejercicios a la medida de las necesidades del alumno y la
resolución pedagógica de estos ejercicios, así como la explicación de la solución
haciendo uso del modelado del tutor enmarcado dentro de la arquitectura de
los sistemas tutores inteligentes con sus submódulos e interfaces, utilizando las
herramientas que provee la ingeniería de software y la inteligencia artificial.
Palabras Clave: tutor inteligente, inteligencia artificial, modelado de tutor,
sistemas tutores inteligentes.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 7
Abstract
The following work of investigation there treats on the production of a
system intelligent tutor who will act as a particular tutor of the student who
allows to define and to apply a methodological strategy for the education of the
basic structures of programming that is capable of guiding the pupil along a
domain especially of the knowledge, solving during the process such tasks as
the production of a strategy of tutorización, the generation of exercises to the
measure of the needs of the pupil and the pedagogic resolution of these
exercises, as well as the explanation of the solution using the shaped one of the
tutor framed inside the architecture of the systems intelligent tutors With his
submodules and interfaces, using the tools that there provides the engineering
of software and the artificial intelligence.
Key Words: Intelligent tutor, artificial intelligence, shaped of tutor, systems
intelligent tutors.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 8
Introducción Planteamiento del problema
Los estudiantes que inician la carrera de Informática en la Universidad
Nacional de Trujillo presentan dificultades en el aprendizaje de un lenguaje de
programación, esto se refleja según las estadísticas recogidas del departamento
de informática (a través de sus evaluaciones parciales y finales en el curso) en
un alto porcentaje de alumnos que no llegan a aprobar la materia (36%) y en el
bajo rendimiento académico (11.4), por lo que requieren de una guía docente o
algún sistema tutor inteligente.
Este tema de investigación surge motivado por la necesidad de encontrar
una alternativa diferente para el aprendizaje de las asignaturas de Algoritmos y
Programación de la carrera profesional de Ingeniería Informática de la
Universidad Nacional de Trujillo. Los alumnos que ingresan a la carrera de
Informática se caracterizan por ser un grupo heterogéneo, con diverso grado de
pre requisitos en el conocimiento de programación, con diferentes ritmos de
aprendizaje, por lo que la enseñanza a estos grupos se realiza teniendo en
cuenta el nivel promedio de los alumnos, lo que conlleva que muchos alumnos
no logren alcanzar los objetivos planteados, ya que ellos necesitan mayor
reforzamiento y que otro grupo de alumnos se ven limitados en su ritmo de
aprendizaje esperando al grupo promedio.
Por este motivo es necesario desarrollar un sistema tutor inteligente
(utilizando sistemas inteligentes) que realice la tarea de tutoría adaptándose a
diferentes modalidades o estrategias de enseñanza. Esta podría ser una
alternativa útil sobre todo para aquellos estudiantes que requieren un mayor
grado de tutoría del tipo uno a uno, es decir personalizado.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 9
Formulación del problema
¿Cómo modelar un tutor inteligente para el aprendizaje de estructuras básicas
de programación?
Hipótesis
El desarrollo de un sistema experto permitirá modelar un tutor para el
aprendizaje de estructuras básicas de programación.
Marco Teórico
Sistemas Expertos
Un sistema experto es como un sistema informático (hardware o software) que
simula a los expertos humanos en un área determinada [7]. Aclaramos la definición de que un sistema experto debe ser capaz de procesar y
memorizar información, luego deberá aprender y razonar para las situaciones
inciertas donde se haga uso de estos sistemas y al final tomar sus propias
decisiones para luego enviarlas a una persona u otro sistema experto. Algunas
aplicaciones de los sistemas expertos se han dado en distintas situaciones, tales
como:
Transacciones bancarias
Control de tráfico
Problemas de planificación
Diagnostico medico
Toma de decisiones para préstamo financiero, etc.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 10
Tipos:
Según la técnica que utilizan:
Sistemas basados en reglas:
Las cuales son formadas por una base o conjunto de reglas que
representa las relaciones entre variables, tomando como orden la
forma de resolver los problemas de la manera “Si premisa, entonces
conclusión", como por ejemplo lo que se muestra en las figuras
siguientes:
Figura 1: Conjunto de seis reglas.
Figura 2: Representación gráfica de las 6 reglas.
Regla 1 Si A y B
Entonces C
Regla 2 Si D, E y F Entonces G
Regla 3 Si H e I
Entonces J
Regla 4 Si C y G
Entonces K
Regla 5 Si G y J
Entonces L
Regla 6 Si K y L
Entonces M
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 11
Sistemas basados en probabilidad:
La cual se forma por medio de una base de conocimiento que
contiene formulas probabilísticas y el motor de inferencia que
contiene muchos métodos probabilísticos para hallar, en sí, la
probabilidad de los sucesos aplicando distintas hipótesis de
independencia.
Sistemas basados en redes neuronales artificiales:
Una red neuronal artificial es un procesador distribuido en paralelo
de forma masiva que tiene una tendencia natural para almacenar
conocimiento de forma experimental y lo hace disponible para su
uso, su funcionamiento se basa en función a las neuronas del cerebro
humano, en la figura siguiente vemos una red de neuronas
artificiales.
Figura 3: Representación gráfica de una red neuronal artificial.
Capa de nodos de entrada
Capa de neuronas ocultas
Capa de neuronas de salida
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 12
Sistemas basados en árboles de decisión:
El árbol de decisión es una representación jerárquica de atributos con
el fin obtener conocimiento específico para solucionar problemas en
donde se deben tomar decisiones.
Arquitectura
Los sistemas expertos están conformados por componentes, los cuales se
muestran en la Figura 4 a continuación:
Figura 4: Esquematización de los componentes de un sistema experto, en la cual las
flechas vienen a ser los flujos de información.
Especialistas Expertos Humanos
Base de Datos
Usuario
Ingenieros Conocimientos
Base Conocimient
o
Subsistema Adquisición
Conocimiento
Subsistema Control
Coherencia
Subsistema Aprendizaje
Subsistema Adquisición Información
Subsistema Interface Usuario
Subsistema
Explicación
Memoria Trabajo
Subsistema Ejecución-
Acción
Motor Inferen
cia
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 13
Componentes:
Base de Conocimiento: Conocimientos del experto humano
codificado (estático).
Base de Datos/Hechos: Memoria temporal de trabajo (dinámico).
Motor de Inferencia: Combina la base del conocimiento y la base
de hechos para deducir nuevos hechos y poder resolver
problemas.
Subsistema Interfaz de Usuario: Es el medio donde se comunica
el usuario con el sistema experto.
Subsistema Explicación: Es la justificación y explicación de los
resultados obtenidos.
Subsistema de Adquisición de Conocimiento: Es el modulo
donde se añadirán nuevos conocimientos a la base del
conocimiento.
Subsistema de Aprendizaje: Donde aprende a modular la
resolución de los problemas.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 14
Campos de Aplicación
Los sistemas expertos tienen muchas aplicaciones, de las cuales veremos
algunos ejemplos en donde se desenvuelve con gran eficiencia en con
mundo real.
Transacciones bancarias
Hoy en día se demuestran que los sistemas expertos incorporados en los
cajeros automáticos o mediante las líneas telefónicas resultan ser de gran
utilidad para poder hacer nuestras transacciones bancarias.
Control de tráfico
Es uno de las aplicaciones de mayor importancia de los sistemas
expertos. No hace mucho tiempo, el flujo de tráfico en las calles se una
ciudad se controlaban mediantes guardias de tráficos ubicados en las
intersecciones de dichas calles. Hoy en día se usan los sistemas expertos
en los semáforos haciéndoles operar de manera automática regulando el
flujo de tráfico en las calles de la ciudad.
Problemas de planificación
Los sistemas expertos puedes ser utilizado para resolver problemas de
planificación de manera que optimicen ciertos objetivos, como por
ejemplo:
Organización y la asignación de aulas para un examen.
Planificación de doctores y enfermeras en un gran hospital.
La planificación de autobuses para las horas de congestión o de
días festivos.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 15
Diagnóstico médico
Sin duda uno de las aplicaciones más importantes de los sistemas
expertos viene a ser en el campo medico por las cual puede ser usado de
muchas maneras:
Conocer la información de una enfermedad por medio de algunos
síntomas dados.
Actualizar los conocimientos de los doctores.
Cuando se desea saber qué enfermedad tiene un paciente y que
pruebas médicas deben realizarse.
Desarrollo de un sistema experto
En la figura 5 se muestra las etapas para diseñar e implementar un sistema
experto.
Figura 5: Etapas de desarrollo de un sistema experto.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 16
Planteamiento del problema: Es la primera fase por la cual se nos
centraríamos en un problema a resolver.
Encontrar al experto humano: Es la persona y/o base de datos
que pueden resolver el problema.
Diseño del sistema experto: Por la cual como su nombre indica,
comenzamos a diseñar el motor de inferencias, almacenamos los
datos en la base del conocimiento, etc.
Elegir herramienta de desarrollo: En esta etapa veremos si
usaremos un lenguaje de programación o una herramienta para
desarrollar el sistema experto.
Desarrollo y prueba del prototipo: En esta etapa, cuando el
prototipo no cumple con los requisitos establecidos pasara a las
etapas anteriores hasta que esté conforme a lo que le encomiende
dichos requisitos.
Refinamiento y generalización: Es la parte o etapa donde se
pulen los fallos y se le integran nuevas tareas que no se integraron
en el inicio.
Mantenimiento y puesta al día: La cual se da si el prototipo tiene
algunos defectos o problemas, en esta etapa se corrige estos
problemas, se actualiza, etc.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 17
Diferencias entre un sistema experto y un experto
humano:
En la tabla N° 1, nos da una idea del porque debemos usar un sistema experto
en comparación de un experto humano:
EXPERTO HUMANO EXPERTO ARTIFICIAL
No perdurable Permanente
Difícil de transferir Fácil de transferir
Difícil de documentar Fácil de documentar
Impredecible Consistente
Caro Alcanzable
Creativo No inspirado
Adaptativo Necesita ser enseñado
Experiencia Personal Entrada Simbólica
Enfoque amplio Enfoque cerrado
Conocimiento del sentido común Conocimiento técnico
Tabla N° 1: Diferencias entre experto humano y experto artificial.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 18
Ventajas
Están disponibles ininterrumpidamente de día y noche, ofreciendo
siempre su máximo desempeño.
Pueden duplicarse ilimitadamente, tener tantos de ellos como se
requieran.
Pueden trabajar en entornos hostiles y peligrosos.
Siempre se ajustan a las normas establecidas y son consistentes en
su desempeño, no desarrollan apreciaciones subjetivas,
tendenciosas, irracionales o emocionales.
No padece de olvido, fatiga, dolor o comete errores de cálculo.
No requiere un sueldo, promociones, seguros médicos,
incapacidades.
Siempre están dispuestos a dar explicaciones, asistir o enseñar a la
gente, así como a aprender.
Pueden tener una vida de servicio ilimitada.
Limitaciones
Se pueden deducir las siguientes limitaciones de los sistemas expertos:
El conocimiento es difícil de extraer de los expertos humanos.
La aproximación de cada experto a la situación evaluada puede
ser diferente.
Tienen una noción muy limitada acerca del contexto de problema,
no pueden percibir todas las cosas que un experto humano puede
apreciar de una situación.
Pueden existir decisiones que sólo son de competencia para un ser
humano y no una máquina.
No saben cómo subsanar sus limitaciones, no son capaces de
trabajar en equipo o investigar algo nuevo.
Son muy costosos de desarrollar y mantener.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 19
Inteligencia Artificial
A diferencia de la filosofía y la psicología, que tratan de entender cómo
funciona la inteligencia en abstracto, la Inteligencia Artificial (IA) es un intento
por descubrir y aplicar los aspectos de la inteligencia humana que pueden ser
simulados mediante construcciones artificiales.
Se observa que hasta en las etapas tempranas de su desarrollo, la Inteligencia
Artificial (IA) ha presentado productos sorprendentes en sus aplicaciones
[Stuart et al., 1995].
Hoy en día, el campo de la Inteligencia Artificial (IA) enmarca varias
subáreas tales como los sistemas expertos, la demostración automática de
teoremas, el juego automático, el reconocimiento de la voz y de patrones, el
procesamiento del lenguaje natural, la visión artificial, la robótica, las redes
neuronales, etc.
Figura 6: Relación entre la IA, la Ingeniería del Conocimiento y otras áreas.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 20
La inteligencia artificial (IA) surge así como una disciplina cuyo objetivo es
proveer técnicas para el desarrollo de programas capaces de simular la
inteligencia que utilizan los humanos para solucionar problemas en una gran
cantidad de dominios [Krishnamoorthy et al, 1996], por lo que la IA provee un
conjunto de formalismos que pueden representar los problemas, las
herramientas y técnicas para resolverlos.
Según diversos autores [Krishnamoorthy et al, 1996; Newell, 1969] las
actividades esenciales asociadas con la inteligencia son:
Actividades esenciales:
Responder de manera flexible a una gran variedad de situaciones.
Dar sentido a los mensajes contradictorios y/o ambiguos.
Reconocer la importancia relativa de los diferentes elementos de la
situación problemática planteada.
Encontrar similitudes entre situaciones, sin importar las diferencias
que las separan.
Encontrar las diferencias entre situaciones, sin importar lo similares
que puedan parecer.
Por su amplio contenido, es difícil definir a la Inteligencia Artificial (IA), pero
resulta de interés para este trabajo arribar a un concepto esclarecedor, por lo
que se expondrán diferentes posiciones acerca de la IA.
Si bien existen muchas definiciones de Inteligencia Artificial (IA) en las que
cada autor la presenta de una manera ligeramente diferente, aquí se resumirán
las más representativas, agrupadas como lo propone Stuart [Stuart et al., 1995]
en dos categorías:
Las que conciernen a los procesos de pensamiento y razonamiento.
Las que conciernen al comportamiento
En general, estas definiciones miden el éxito de la implementación de
herramientas de la Inteligencia Artificial (IA) de dos maneras diferentes:
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 21
En términos de performance humana: Es decir, capacidad de resolución
de problemas, capacidad de razonamiento abstracto, etc.
En términos de “racionalidad” o concepto ideal de inteligencia: Como
establece Stuart [Stuart et al., 1995] quien define a un sistema como
racional “si hace lo correcto”, es decir, una acción a la que llega por
medio de procesos lógicos mesurables.
Definiciones de la Inteligencia Artificial
Bellman en 1978 la definió como: “La automatización de las actividades
que asociamos con el pensamiento humano, actividades como la toma de
decisiones, la solución de problemas y el aprendizaje”. Esta definición
también es aplicada por Villareal Goulat [Villareal Goulat, 2001].
Haugeland en 1985 la definió como: “El nuevo y excitante esfuerzo de
hacer pensar a las computadoras”…”computadoras con mente, en el
sentido completo y literal de la frase”.
Según Charniak y McDermott en 1985 es: “El estudio de las facultades
mentales a través del uso de modelos computacionales”. Para Kurzweil
en 1990 es: “El arte de crear máquinas que realicen funciones que
requieran una cierta inteligencia cuando estas tareas son desempeñadas
por personas”.
Schalkoff en 1990 la definió como: “Un campo de estudio que busca
explicar y emular el comportamiento inteligente en términos de procesos
computacionales”.
Para Rich y Knight en 1991 es: “El estudio para hacer a las computadoras
realizar tareas, en las que por el momento los humanos son mejores”.
Según Winston en 1992 es: “El estudio de la computación para hacer
posible el percibir, razonar y actuar”.
Luger y Stubblefield en 1993 la definieron como: “La rama de la ciencia
de la computación que se encarga de la automatización del
comportamiento inteligente”.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 22
Por último, se considera a los dos pioneros de la investigación en
Inteligencia Artificial, Barr y Feigenbaum, quienes la definen de la
siguiente manera: “La Inteligencia Artificial es la parte de la Ciencia que
se ocupa del diseño de sistemas de computación inteligentes, es decir,
sistemas que exhiben las características que asociamos a la inteligencia
en el comportamiento humano que se refiere a la comprensión del
lenguaje, el aprendizaje, el razonamiento, la resolución de problemas,
etc.” [Barr et al., 1981].
Todas estas definiciones mencionadas son válidas y cada una agrega un
aspecto al amplio campo de estudio que es la Inteligencia Artificial (IA).
Sistemas Tutores Inteligentes
Guardia Robles [Guardia Robles, 1993] resume un conjunto de características
que deben cumplir todos los Sistemas Tutores Inteligentes (STI):
Deben ser “inteligentes” en comparación con los sistemas tradicionales de
instrucción por computadora (CAI), siendo el diferencial de inteligencia los
métodos de la rama de la Inteligencia Artificial (IA). Deben poseer la capacidad
tanto para resolver el problema que se le presenta a un estudiante como
también la capacidad de explicar cómo lo resolvió.
Como en los CAI tradicionales, permiten una mayor individualización en la
instrucción, llegando más lejos, a través del entendimiento de las metas y
creencias del estudiante.
Se usan técnicas de Inteligencia Artificial para planeación, optimización y
búsquedas, dejando que el sistema decida el orden de presentación del
contenido al alumno.
La interacción puede ser muy variada en un STI: desde sistemas pasivos (que
esperan para que el alumno realice una acción), hasta los que constantemente
presentan nueva información (tutor oportunista), con casos intermedios en los
que se enseña un concepto en un momento determinado o solo cuando el
alumno lo pide.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 23
Utilizan nuevas tecnologías, con los ejemplos de interfaces orientadas a la
utilización de multimedia y del WWW.
No basta con indicarle un error al estudiante, el sistema debe hacer hipótesis
basadas en el historial de errores del alumno y detectar la fuente del problema.
Con estas consideraciones en mente, Guardia Robles [Guardia Robles, 1993]
presenta una definición para los tutores inteligentes: “Un Sistema Tutor
Inteligente es un sistema de enseñanza asistida por computadora, que utiliza
técnicas de Inteligencia Artificial, principalmente para representar el
conocimiento y dirigir una estrategia de enseñanza; y es capaz de comportarse
como un experto, tanto en el dominio del conocimiento que enseña (mostrando
al alumno cómo aplicar dicho conocimiento), como en el dominio pedagógico,
donde es capaz de diagnosticar la situación en la que se encuentra el estudiante
y de acuerdo a ello ofrecer una acción o solución que le permita progresar en el
aprendizaje.” Villareal [Villareal, 2003] plantea que los Sistemas Tutores
Inteligentes (STI) simulan a un tutor autoritario que posee una estrategia de
enseñanza de los conceptos del dominio del tipo uno a uno. Además es un
experto en un dominio de conocimiento determinado y actúa como guía, tutor o
entrenador. Este tutor debe poder adaptarse a las necesidades, que surgen a lo
largo de la interacción en una sesión de tutelado, del estudiante alumno.
Arquitectura y Componentes
Los Sistemas Tutores Inteligentes (STI) tienen como principal objetivo impartir
la enseñanza de un contenido dado un dominio en la forma más adecuada a las
necesidades individuales del alumno. Estos sistemas se basan en una
arquitectura compuesta por tres grandes módulos: el módulo del tutor, el
módulo del alumno y el módulo del dominio [Villareal et al., 2001]. Podría
agregarse un cuarto módulo denominado el módulo de evaluación y, un quinto
denominado módulo de interface y el ecosistema propuesto por Cataldi
[Cataldi, 2004].
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 24
Módulo del Alumno: Este módulo debe representar el estado inicial
del alumno y sus características individuales, entre ellas una de las más
importantes es el conocimiento individual instantáneo sobre el dominio
[Villareal Goulart et al., 2001]. Guardia Robles [Guardia Robles, 1993] lo
define como: “El modelo del estudiante, que refleja cuánto conoce el
estudiante sobre el dominio, así como las experiencias cognitivas y de
aprendizaje que ha llevado, del cual puede obtenerse un diagnóstico.”
Módulo del Tutor: Este módulo posee el conocimiento sobre las
estrategias y tácticas de enseñanza para poder seleccionarlas en función
de las características del alumno, que están almacenadas en el módulo
del alumno [Villareal Goulart et al., 2001]. Pero debe ir más allá de la
experiencia en el dominio, ya que debe ofrecer a cada estudiante un
método de enseñanza de acuerdo con sus necesidades.
Módulo del Dominio: Este módulo posee el conocimiento de la
materia formado por las reglas de producción, estereotipos, etc. De aquí
el módulo tutor obtiene el conocimiento que debe enseñar [Villareal
Goulart et al., 2001]. Definido como “El modelo experto o del dominio, el
cual versa sobre la materia o curso que se impartirá” [Guardia Robles,
1993].
Módulo de Evaluación: Se encarga de realizar una evaluación
general del sistema y generar estadísticas acerca de los avances de los
estudiantes; pudiendo efectuar el diagnóstico evolutivo luego de cada
uno de los estados considerados, de este modo podría también predecir
el comportamiento en los eventos futuros. La evaluación de los
estudiantes debe ser constante y durante la carga del proceso, con
instancias de autoevaluación. También se deberán generar informes a
utilizar para evaluar al sistema como método apto de enseñanza.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 25
Módulo de Interface: Es la interface de interacción entre el STI y el
alumno real, que se encarga de presentar el material del dominio y
cualquier otro elemento didáctico de la manera correcta [Villareal
Goulart et al., 2001]. “La interface, que permite a los usuarios interactuar
con el sistema. Se distinguen tres tipos específicos de usuarios: el
Estudiante, el Instructor, y el Desarrollador del sistema.”[Guardia
Robles, 1993]. Para su diseño pueden seguirse los criterios ergonómicos
basados en el estándar ISO 9241 para Human Computer Interface (HCI)
u otros similares.
Modelado del Tutor
Los primeros tres módulos conforman la arquitectura clásica propuesta por
Carbonell [Carbonell, 1970] y también funcional de los STI [Villareal Goulart et
al., 2001] Esta postura presentó grandes avances en el modelado de ambientes
educativos, ya que separó el dominio de la forma en la que éste es utilizado
[Villareal Goulart et al., 2001].
Figura 7: Estructura clásica de un Sistema Tutor Inteligente propuesta por
Carbonell [Carbonell, 1970].
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 26
Justificación del Problema
Desde el punto de vista práctico o social
Esta investigación encuentra su justificación al proveer de una Asesoría
personalizada del estudiante que mejorará el rendimiento del mismo, Por lo
tanto, este trabajo surge motivado por las debilidades detectadas en el análisis y
la existencia de una falta de estandarización para generar Sistemas Tutores
Inteligentes (STI) con de propósito específico que puedan aplicarse a diferentes
perfiles, en particular al modelado del tutor.
Desde el punto de vista científico tecnológico
En este trabajo se plantea la solución tomando en cuenta como dominio de
aplicación el correspondiente al área de Programación Básica. El módulo del
tutor debe diseñarse de tal modo que pueda brindar una solución adecuada a
los problemas descritos en la problemática que presentan los estudiantes para
mejorar el rendimiento de ellos aportando este sistema de Asesoría inteligente a
la comunidad científica.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 27
Objetivos
Generales
Desarrollar un sistema experto para modelar un tutor para el
aprendizaje de estructuras básicas de programación.
Específicos
Establecer los fundamentos que sustentan las teorías seleccionadas.
Seleccionar los componentes del módulo del tutor mediante el uso de
submódulos que permitan guiar a los estudiantes en el proceso de
aprendizaje que manera que respondan a sus necesidades
Modelar el subsistema tutor enmarcado dentro de la arquitectura de los
sistemas tutores inteligentes con sus submódulos e interfaces, utilizando
las herramientas que proveen la ingeniería de software y la inteligencia
artificial.
Contrastar la hipótesis de investigación
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 28
Capítulo I
Material y métodos 1.1. Población:
La población de estudio está constituida por los alumnos de 1er ciclo de la
carrera de Ingeniería informática de la Universidad Nacional de Trujillo.
1.2. Muestra:
Basándonos de la metodología del muestreo para hallar el cálculo del tamaño
muestral de una población infinita se presenta a continuación la fórmula
definida:
Donde:
n = Tamaño de muestra representativa que deseamos obtener.
Z = valor correspondiente a la distribución de Gauss.
P = proporción en que la variable estudiada se da en la población.
E = Error de estimación.
De acuerdo a las variables dadas a continuación:
Z=1.85 para el 90% de confianza
P = 0.91(caso más desfavorable, desconocido)
E = casi 15% --> 0.14
Obtenemos:
n= (1.852 * 0.91 *(1 - 0.91)) / 0.142
n = 12.77 dando así un aproximado de una muestra de 12 personas (12
alumnos de la carrera de Ingeniería Informática de la Universidad
Nacional de Trujillo).
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 29
1.3. Operacionalización de variables:
1.3.1. Variable independiente:
Sistema experto.
1.3.2. Variable dependiente:
Modelado del tutor para el aprendizaje de estructuras básicas de
programación.
1.3.3. Indicadores:
Los elementos a considerar al momento de la medición, se expresan en el
siguiente cuadro:
Variables Indicadores
Independiente
Sistema experto.
Definir las variables de entrada.
Análisis del sistema experto.
Diseño y construcción del sistema
experto.
Dependiente
Modelado del tutor para el
aprendizaje de estructuras
básicas de programación
Rendimiento académico del
aprendizaje de las estructuras básicas
de programación.
Porcentaje de alumnos aprobados.
Tabla N° 2: tabla de variables con sus respectivos indicadores.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 30
1.4. Diseño de investigación:
El método utilizado es inductivo, porque de los informes obtenidos
(estadísticas del departamento de informática) se puede aplicar tecnología
de tutor inteligente a los estudiantes según su perfil.
Diseño de contrastación:
Este diseño se diagrama de la siguiente manera:
Dónde:
X = Desarrollo de un sistema experto (VI)
O=Aprendizaje de estructuras básicas de programación (VD)
X
O
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 31
1.5. Metodología:
Metodología de Desarrollo de Buchanan:
Uno de los primeros métodos de desarrollo estructurado de sistemas
inteligentes fue el propuesto por Buchanan y otros autores en 1983.
Según estos autores la adquisición del conocimiento de un sistema inteligente, y
por extensión la construcción de todo el sistema, podía dividirse en las cinco
fases dela figura 8: identificación, conceptualización, formalización,
implementación y prueba.
Figura 8: Esquematización de la metodología de Buchanan.
Sin embargo el proceso real no está tan bien definido como puede sugerir la
figura 8, y más bien representa una aproximación a las distintas y complejas
fases que se llevan a cabo a la hora de desarrollar un sistema inteligente, y que
pueden variar de una situación a otra.
Identificación
Conceptualización
Formalización
Implementación
Pruebas
Requisitos
Conceptos
Estructuras
Reglas
Rediseños
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 32
En síntesis, el método de Buchanan se muestra en dos fases, como lo muestra la
siguiente Tabla N° 3, que describe en cada una de ellas los componentes que lo
conforman.
FASE 1
Identificación
Seleccionar al experto, fuentes y medios
de conocimiento y clara definición del
problema.
Conceptualización
Encontrar los conceptos claves y las
relaciones necesarias para caracterizar el
problema.
FASE 2
Formalización
Implementación
Prueba
Reformulación permanente de conceptos,
rediseño de la forma de representación,
refinamiento del sistema implementado,
críticas y sugerencias de los expertos
permiten una mejora y un control del
funcionamiento del sistema.
Tabla N° 3: cuadro de fases de metodología de Buchanan.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 33
La descripción de cada una de estas fases es la siguiente:
Identificación:
Esta fase abarca desde la lectura de libros o artículos, las entrevistas o
charlas con las personas familiarizadas con el tema y la búsqueda de un
experto que esté dispuesto a colaborar en la construcción del sistema; como
así también la definición de cuáles son las funciones o tareas más idóneas
para ser realizadas por el sistema experto.
Estas tareas son importantes para determinan que lenguaje y que sistema se
usará para el trabajo de investigación.
En esta etapa el conocimiento del dominio del problema debe ser razonable
para poder entenderse con el experto humano, comprendida también como
la etapa de familiarizarse con el problema y el dominio.
Aquí también se reconocen aspectos importantes del problema, como son
los participantes (expertos del dominio, ingenieros del conocimiento y
futuros usuarios), las características del problema (tipo, subtareas de que se
compone, terminología a utilizar, aspectos fundamentales, etc.), los recursos
disponibles (fuentes de conocimiento, facilidades computacionales, tiempo
de desarrollo, financiación, etc.), y las metas a alcanzar (formalizar
conocimiento experto, distribuir experiencia, ayudar a la formación de
nuevos expertos, etc.).
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 34
Conceptualización:
Fase mediante la que se trata de organizar el conocimiento según un
esquema conceptual. El experto y el ingeniero del conocimiento tratan de
encontrar conceptos que representen el conocimiento del experto, al mismo
tiempo que intentan determinar cómo es el flujo de información durante el
proceso de resolución de problemas realizando entrevistas con el experto,
con el objetivo de identificar y caracterizar el problema informalmente.
Búsqueda de conceptos que representen el conocimiento del experto.
El experto de campo y el ingeniero de conocimiento definen el alcance del
sistema experto, es decir, que problemas va a resolver concretamente el
sistema experto, en esta etapa se tiene que delimitar el sistema.
Con el problema adecuadamente definido el ingeniero de conocimiento
inicia a determinar los principales conceptos del dominio que se requieren
para realizar cada una de las tareas que va a resolver el sistema.
Este trata de entender que conceptos son relevantes e importantes
solicitándole al experto que explique y justifique los razonamientos que
utiliza para resolver los problemas. Esto es importante para la tarea de
definición del sistema experto y para mantener una adecuada
documentación del mismo, ya que es útil para la tarea de diseño,
construcción y para posteriores modificaciones del sistema.
El ingeniero de conocimiento debe prestar atención al experto de campo
para encontrar la estructura básica que el experto utiliza para resolver el
problema.
Está etapa está formada por una serie de mecanismos organizativos que el
experto de campo usa para manejarse en ese dominio. Esta estructura básica
de organización del conocimiento le permite al experto realizar ciertos tipos
de inferencias.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 35
El ingeniero de conocimiento además debe reconocer las estrategias básicas
que usa el experto cuando desarrolla su tarea, que hechos establece primero,
que tipos de preguntas realiza primero, si define supuestos inicialmente sin
bases con información tentativa, como determina el experto que pregunta
debe usar para refinar sus suposiciones y en qué orden el experto prosigue
con cada subtarea y si ese orden varía según el caso.
La estructura del conocimiento indica que tareas y términos está usando y la
estrategia indica cómo y cuándo el sistema experto debe establecerlas.
Formalización:
Esta fase consiste en traducir los conceptos clave, los subproblemas, y las
características del flujo de información, identificados durante la fase
anterior, en representaciones formales basadas en herramientas o esquemas
de la ingeniería del conocimiento.
El ingeniero de conocimiento debe formalizar el conocimiento obtenido del
experto. Esta tarea implica definir que arquitectura permitirá una mejor
organización del conocimiento.
Es necesario elegir la organización, lenguaje y medio ambiente de
programación adecuados para la aplicación particular.
Se definen los conceptos primitivos, con la forma de representación elegida.
Este es el primer paso hacia la implementación del prototipo.
El ingeniero de conocimiento deberá a medida que se desarrolla el prototipo
lo siguiente:
Que el formalismo usado es el apropiado para reflejar los conceptos y el
proceso de inferencia del experto.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 36
Que las características particulares de construcción del lenguaje capturen
exactamente los aspectos estructurales más importantes de los conceptos
usados por el experto.
Que la estructura de control del lenguaje al activar las reglas refleja la
estrategia usada por el experto.
Que las reglas reflejen asociaciones y métodos que:
Son los usuarios por el experto
Son medios aceptables de dichos métodos
El ingeniero de conocimiento puede presentar las reglas definidas y en
ocasiones los resultados obtenidos al usar las reglas, para que el experto
manifieste su opinión sobre la representación y soluciones definiendo el
sistema experto prototipo.
Implementación:
En esta fase, el ingeniero de conocimiento formula reglas, y estructuras de
control, que representan los conceptos y el conocimiento formalizado. El
resultado es un programa prototipo que nos permite comprobar si hemos
conceptualizado y formalizado bien el conocimiento que el experto tiene
sobre el problema.
Se refina el sistema prototipo, depurado la base de conocimientos, refinando
reglas, rediseñando la estructura del conocimiento, o reformulando
conceptos básicos, con el objetivo de capturar información adicional que
haya proporcionado el experto. También se consultan en esta etapa otros
expertos para corroborar, controlar, ampliar y refinar el prototipo, es la fase
de depuración del sistema prototipo.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 37
Prueba:
Esta fase consiste en la evaluación del rendimiento del prototipo construido
para encontrar errores o anomalías en la base de conocimientos o en los
mecanismos de inferencia.
Cuando el sistema prototipo ha crecido tanto que resulta difícil de manejar
el ingeniero de conocimiento rediseña un sistema más eficiente. Este nuevo
sistema deberá refinarse y extenderse a fin de completar así el desarrollo del
sistema experto.
Esto es transformar efectivamente el sistema prototipo en un sistema
experto aplicable optimizando el sistema experto prototipo.
Retroalimentación de Buchanan:
Buchanan sitúa los lazos de realimentación después de la fase de prueba,
pero también indica que el proceso no tiene por qué seguir estrictamente la
secuencia representada en la figura anterior. Autores posteriores, como
Mayrhauser, señalan que las retroalimentaciones pueden aparecer entre
cualquier par de fases de la metodología.
Así, por ejemplo, si el ingeniero del conocimiento no encuentra reglas
adecuadas durante la implementación puede requerir una vuelta atrás y una
reformulación del problema. La nueva representación del ciclo de vida de
los sistemas inteligentes sería tal y como se presenta en la siguiente Figura 9,
una red completamente comunicada.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 38
Figura 9: Ciclo de vida de un sistema experto.
Las estructuras de este tipo son muy complejas de controlar y de manejar, ya
que el número de iteraciones entre las fases es desconocido, y los objetivos
pueden cambiar a medida que avanza el desarrollo. También es difícil llevar a
cabo un control de los progresos realizados.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 39
Capítulo II: Resultados
Identificar los objetivos para los alumnos :
Establece cuál es el objetivo de la sesión pedagógica que se está llevando
a cabo y qué es lo que se pretende obtener como resultado para los
estudiantes una vez finalizada dicha sesión.
Para esto el agente docente usará la información sobre el alumno
proveniente del agente alumno, según su perfil.
Ser capaz de detectar las necesidades del alumno:
Esto se tiene que hacer en base a los requerimientos del alumno para
modificar la estrategia de enseñanza si así fuera necesario.
Supervisar y establecer el avance hacia los objetivos:
Esto se refleja en el nivel del alumno según su avance.
Seleccionar los protocolos pedagógicos más eficientes:
Esto se debe hacer para cada una de las sesiones pedagógicas a fin de
impartirla de tal manera de lograr los mejores resultados con los
elementos disponibles, que se pueden obtener a través del módulo del
estudiante y del módulo del dominio.
Presentar la explicación de un concepto:
Si es necesario de diferentes maneras, para variar el modo de presentar
un tema si el alumno no alcanza a comprender el concepto nuevo.
Esta tarea se realiza en colaboración con el agente Docente, el agente
Alumno, el Gestor de Estrategias, el Módulo de Dominio y el Generador
de Lenguaje Natural.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 40
Exponer numerosos ejemplos:
Sobre los conceptos analizados utilizando al agente docente y al
generador de lenguaje natural.
Recibir las respuestas:
Del agente alumno a las evaluaciones y las eventuales consultas del
alumno.
Ordenar y actualizar el registro de los nuevos conceptos adquiridos
por los alumnos:
Para esto el Agente Docente trabaja con el Agente Alumno. Supervisar
las tareas que el alumno realice en colaboración con otros alumnos,
como parte de su aprendizaje colaborativo.
Comunicarse con los otros agentes Docentes:
Por ejemplo, para acordar tareas a realizar por los alumnos.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 41
Capítulo III: Conclusiones Se ha investigado el problema integrando distintas perspectivas a fin de obtener
una base teórica consolidada, sobre la cual desarrollar el sistema experto para el
modelado de un tutor teniendo en cuenta las fases de desarrollo del sistema
experto para entender cómo se gestionaría el uso del sistema por los estudiantes
en los casos en que la sesión se realiza para tutorizado , definiendo la fase de
identificación y conceptualización del sistema experto.
Recomendaciones:
Realizar el análisis de requerimientos directamente con las personas
involucradas tanto estudiantes del curso como el docente o experto a cargo del
curso, puesto que serían los que van a utilizar el sistema experto y podrán dar
información adecuada y necesaria.
Para el desarrollo de un sistema experto se recomienda el uso de una
metodología apropiada que permita utilizar esquemas, diagramas, gráficos y
demás herramientas que facilitan la elaboración de la conceptualización y
formalización del sistema.
Sistema experto para el modelado de un tutor para el aprendizaje de estructuras básicas de programación
Frank Peter Castro Reyna 42
Referencias bibliográficas: [1]Sr. Fernando A. Slagueiro (2005). “Sistemas Inteligentes basados en
tecnologías para un Tutor”. Universidad de Buenos Aires.
[2] Zulma Cataldi y Fernando J.Lage (2009). “Sistemas tutores inteligentes
orientados a la enseñanza para la comprensión”. Universidad Tecnológica
Nacional.
[3] Sra. Constanza Raquel Huapaya(2009). “Sistema Tutorial Inteligente un
Análisis Crítico”. Universidad Nacional de la Plata.
[4] Quilcatoma Panchi Betty y Quimitiba Cadena Norma Amparo (2006).
“Sistema de Tutor Inteligente para programación básica c bajo el modelo de
objetos de aprendizaje”. Escuela Politécnica del Ejército.
[5] Olmo Castillo (2010).”Tutorial de Introducción de Lógica Borrosa”. Octubre
2010.
[6] Javier Rivas Rodríguez (2008). “Sistema de Ayuda a la Toma de Decisiones
basado en Árboles de Decisión Fuzzy”. Universidad Complutense de Madrid-
España.
[7] Ruth Marlene Calle (2011). “Sistema experto de orientación legal en los
procedimientos conciliatorios de conflictos agrarios”. Universidad mayor de
San Andrés La Paz-Bolivia.
[8] Sánchez. “SISTEMAS EXPERTOS: UNA METOLOGIA DE
PROGRAMACION”. Prentice Hall. México. 1991.