Download Una experiencia de aprendizaje basado en proyectos

Document related concepts

Philip Wadler wikipedia , lookup

Erik Meijer wikipedia , lookup

Transcript
Una experiencia de
aprendizaje basado en proyectos
utilizando herramientas colaborativas
de desarrollo de software libre
Jose Emilio Labra Gayo, Daniel Fernández Lanvin,
Jesús Calvo Salvador, Agustín Cernuda del Río
Escuela Universitaria de Ingeniería Técnica Informática de Oviedo
EUITIO
Universidad de Oviedo
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Entorno
Escuela Universitaria Ingeniería Técnica Informática de Oviedo
Unos 1200 alumnos
2 titulaciones: IT Informática de Gestión y Sistemas
Reciente cambio de plan de estudios
Guerra de optativas
Muchas asignaturas optativas atractivas
Intensificaciones
Menos de 20 alumnos  Desaparición de optativa
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Asignatura
Programación declarativa
Optativa de 6 créditos (1 cuatrimestre), 25 alumnos aprox.
Impartir paradigmas de programación declarativos
Asignatura anterior: Programación Lógica y Funcional
2 meses de Programación funcional (lenguaje Haskell)
2 meses de Programación lógica (lenguaje Prolog…Curry)
Esquema anterior de prácticas atractivo
10 entregables a lo largo del curso
Cada entregable = pequeños ejercicios
Resueltos previamente por el profesor
Entorno y objetivos bien delimitado ( estudiantes contentos)
Profundizar en características de los lenguajes
Temática atractiva
Vocabularios XML
Gráficos en 2-dimensiones (SVG)
Mundos virtuales infinitos mediante octrees (WRML, X3D)
Aceptado en varios congresos (JENUI’03, WFLP’04, SINDI’05)
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Algunas dudas en el paraíso
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Los alumnos estaban contentos, pero…
Ejercicios un poco artificiosos (pocas posibilidades de fracaso)
Fuerte auto-estima de los estudiantes (quizá excesiva?)
Algunos casos de plagio
¿Qué estaban aprendiendo?
Los ejercicios atacaban diferentes características de los lenguajes
No se planteaba un desarrollo software complejo
¿Y las competencias transversales?
Trabajo en grupo, resolución de problemas, búsqueda de información…
Falsa sensación de seguridad…¿y cuando salgan a la calle?
¿Y el profesor?
Complejidad = definir ejercicios atractivos (con solución = artificiales)
Trabajo completamente de docencia
La línea de investigación del profesor va por otro lado
Al año siguiente había que modificarlos…
Repetición…¿aburrimiento?...¿sensación de pérdida de tiempo?
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
La idea
Resolver un proyecto real mediante técnicas de software libre
Tema del proyecto:
Intentar resolver un problema actual y real
Que no esté resuelto
Que sea atractivo y novedoso
Que esté abierto para poder cambiar de rumbo
Que el profesor conozca bien
Que les guste a los estudiantes y al profesor
Tema de investigación
Sobre el desarrollo:
Un proyecto único durante el curso para toda la clase
Utilizando herramientas colaborativas (sourceforge)
El profesor = un desarrollador más
El desarrollo similar a la creación de software libre…muy libre
Elección del problema
Un único lenguaje de desarrollo (Haskell, lenguaje funcional)
La web semántica
Campo muy reciente y que está de moda en Internet
Línea de investigación del profesor
Muchos problemas por resolver
Mucha relación con la programación lógica
La inclusión de reglas en lenguajes de web semántica equivale a
incorporar un lenguaje de programación lógica
Desarrollar herramientas para la web semántica en Haskell
Problema abierto: no existe ninguna herramienta actualmente
Un solo sistema desarrollado pero no activo
Relacionado con interés de investigación del profesor
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Metodología
Un único equipo = Toda la clase (incluidos los profesores)
27 desarrolladores
Exposición pública del proyecto
Nombre: WESO (WEb Semántica Oviedo)
Inclusión en almacen público de proyectos (Sourceforge)
Página Web (http://www.weso.sourceforge.net)
Herramientas colaborativas de desarrollo
Sourceforge
Lista de correo, cvs, gestión de bugs, releases, etc.
Canal IRC del proyecto
Foro de discusión
Pruebas unitarias (HUnit)
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
SourceForge
Plataforma más utilizada en desarrollo de software libre
Más de 100.000 proyectos y de 1millón de usuarios
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Grupos de trabajo
El desarrollo se basó en grupos de trabajo auto-coordinados
Objetivo = que los estudiantes aprendiesen a coordinarse
Creación de actas de cada reunión
Trabajos en periodos cortos
Grupos creados por el profesor
Se intentaron romper lazos de amistad previos al principio
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Fases del Desarrollo (1)
Identificación del problema
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Grupos de 4 ó 5 personas
Componentes de cada grupo elegidos por el profesor
Objetivo: mezclar a los estudiantes
Cada grupo investigó una posible aplicación: EARL, RDF/RSS,
FOAF, Open Directory, RDFCalendar y un grupo debía buscar
“otras”
Tiempo: 1 mes
Exposición pública al resto de la clase de la investigación
El profesor seleccionaría al ponente
Votación sobre el tema más atractivo
El desarrollo posterior sería por la línea elegida
Se eligió FOAF y un tema propuesto por los alumnos
NOTA: En esta fase, en las horas de prácticas fueron aprendiendo
el lenguaje Haskell
Fases del Desarrollo (2)
Primer prototipo
Nuevo reparto en grupos intentando que no se repitan los
miembros
Se parte de un esqueleto de aplicación desarrollado por los
profesores
Consta de diversos módulos
Cada grupo se encargará de un módulo
Cada módulo contiene unas pruebas unitarias (HUnit)
Objetivo: Obtener una primer release que haga algo
Tiempo: 1 mes y medio (17 de diciembre, antes de navidad)
Dicha versión sería publicada en Internet
Motivación: exposición pública del código
Solicitud del primer auto-informe de contribución al proyecto
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Fases del Desarrollo (3)
Corrección del prototipo
Creación de nuevos grupos más reducidos (2 personas)
Objetivo: Mayor control de la actividad intra-grupo
Tareas más concretas:
Mantenimiento de módulos
Reparación de bugs
Creación de ejemplos
Banco de pruebas
etc.
Tiempo: 1 mes (Hasta mediados de Enero)
Objetivo: Versión corregida del prototipo
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Fases del Desarrollo (4)
Ampliaciones
Disminución de actividad durante la fase anterior
Fechas: últimos 15 días de enero y principios de febrero
Coincide con exámenes de muchas asignaturas
Mayor estrés de los estudiantes
Menos tiempo para que se coordinen
Solicitud de segundo auto-informe de contribuciones
Breve trabajo final individual
Complemento al resto de contribuciones al proyecto
Objetivo: distinguir mejores estudiantes
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Evaluación de la asignatura
Participación en el proyecto
Participación en los diferentes grupos
Implementación de soluciones
Incorporación de mejoras al proyecto
Otras colaboraciones: lista de correo, página web, etc.
Auto-informes realizados por los estudiantes
Indicarán cuál ha sido su contribución
Se han solicitado 2 auto-informes
El primer auto-informe sirvió para captar la evolución del proyecto
Trabajo individual sobre el tema del proyecto
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Evaluación del proceso
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Encuesta a los estudiantes
Puntos positivos:
El método es bueno, pero hay que mejorarlo
Importante trabajar en proyecto real
Les hubiese gustado dedicarle más tiempo
Prefieren este método a uno más tradicional
Aprendizaje de técnicas reales de software
Pruebas unitarias, control de versiones, gestión de bugs, etc.
Puntos negativos:
Algunos se desmotivaron porque otros compañeros trabajaron mucho
Falta de objetivos claros
Excesivos cambios de grupos
Poco tiempo para coordinarse
Conclusiones
Método nuevo para los profesores
¿Qué aprendieron los estudiantes?
Posiblemente, menos programación declarativa
Pero más competencias transversales
Trabajo en grupo, Desarrollo de software colaborativo, (control de
versiones, módulos, etc.), Gestión del tiempo, etc.
Sobre el esfuerzo para el profesor…
Mayor que con enseñanza tradicional…¡seguro!
PERO es más divertido
Mayor interacción con los estudiantes
Se puede aprender de los estudiantes!!!
Se puede investigar mientras se enseña
OJO: Los estudiantes quedan con la sensación de que el
profesor no conoce todas las respuestas
¿es éso malo?
Diversas anécdotas…
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Anécdotas
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Propuesta improvisada de un tema por parte de unos alumnos
MACO: Mapa de titulaciones mediante web semántica
Colaboración de un estudiante de la Universidad de Oxford
Participación en la sala de Chat
Hijo del desarrollador del Swish (el sistema anterior)
Creación espontánea de líderes de grupo
Problemática del manejo de grupos
Roce entre 2 alumnos en una de las presentaciones
2 módulos debían comunicarse y tenían que ponerse de acuerdo en
la interfaz
Reciente artículo de unos estudiantes sobre la experiencia
Enseñanza declarativa vs. Imperativa
Grupo
de Estudio
para la Innovación de la
Docencia en Informática
Fin de la Presentación