El objetivo de este documento es presentar un resumen de las actividades realizadas y de los resultados obtenidos en el marco del proyecto CUP!2 (http://cupi2.uniandes.edu.co), que ha sido financiado por la vicerrectoria Acadmica, la Facultad de !ngenieria y el Departamento de Sistemas, y ha contado con el apoyo del grupo L!D!E.
El proyecto CUP!2 comenz en junio del 200+, por iniciativa del Departamento de !ngenieria de Sistemas, con la intencin de resolver algunos problemas detectados en los cursos del ciclo basico de programacin. Estos cursos representan mas de la mitad de los puestos-estudiante del Departamento.
2. Etapas Desarrolladas
Al inicio del proyecto se elabor un documento de diagnstico |1| y se fijaron los objetivos concretos, al igual que las restricciones y los indicadores que iban a ser utilizados.
En la siguiente tabla se resumen las principales etapas del proyecto. En ella se puede apreciar el momento en el cual fue modificado cada uno de los cinco cursos que constituian el ciclo basico de programacin.
2006-1 Unin con APO1 Estado estable 35 secciones Piloto 2 + secciones Piloto 1 2 secciones 2006-2 Unin con APO2 Estado estable 35 secciones Curso disenado 9 secciones Piloto 2 2 secciones 200/-1 Estado estable 3+ secciones Estado estable 15 secciones Curso disenado 3 secciones
En 2006-1 el curso !ntroduccin a la !nformatica" fue fusionado con el curso APO1" y en 2006-2 sucedi lo mismo con los cursos Taller de Programacin" y APO2". Los cursos APO1" y APO2" estaban orientados inicialmente a estudiantes de !ngenieria de Sistemas.
Los nuevos cursos trabajan desde la perspectiva de la programacin orientada a objetos y utilizan el lenguaje Java. Desde el punto de vista pedaggico, utilizan un enfoque novedoso que ha sido validado a lo largo del proyecto.
3. Seguimiento de Indicadores
Hay 5 indicadores que hemos utilizado para monitorear el avance del proyecto:
Evaluacin del profesor (en todas sus dimensiones) en la encuesta a estudiantes que hace semestralmente la Universidad.
Evaluacin del curso (en todas sus dimensiones) en la encuesta a estudiantes que hace semestralmente la Universidad.
Promedio obtenido por los estudiantes en el curso.
Nortalidad en el curso, medido como el porcentaje de estudiantes que pierde la materia.
Cantidad de tema cubierto en los cursos y tipo de proyectos que los estudiantes son capaces de desarrollar despus del curso.
En esta seccin se muestra la evolucin en el tiempo de estos indicadores para cada uno de los cursos:
En el semestre 2006-1 se hace el cambio de este curso y se integra con el curso APO1 que se dictaba para estudiantes de ingenieria de sistemas.
En el semestre 2006-2 se publica el libro del curso y se entra en un estado estable.
Uno de los retos de este curso es su caracter masivo. En este momento existen 3+ secciones por semestre, con cerca de 900 estudiantes de casi todas las carreras de la Universidad. Como
parte del proyecto ha sido necesario el desarrollo de herramientas de coordinacin y seguimiento. Contamos ademas con profesores de perfiles muy distintos, con un alto nivel de rotacin.
El nuevo curso incluye todos los temas presentes en el curso original, ademas de nuevos temas en interfaces graficas, pruebas, excepciones y una introduccin global al tema de ingenieria de software. Los estudiantes logran construir programas mucho mas complejos y avanzados que los que podian construir con el curso anterior. Este semestre, por ejemplo, los estudiantes construiran como ejercicio del ultimo nivel del curso un programa para jugar SUDOKU, que debe tener la siguiente interfaz de usuario:
En el semestre 2006-2 se hace el cambio de este curso y se integra con el curso APO2 que se dictaba para estudiantes de ingenieria de sistemas.
En el semestre 200/-1 los estudiantes y profesores trabajan sobre notas de clase, que se deben convertir en el libro del curso en 200/-2.
El nuevo curso incluye todos los temas incluidos en el curso original, con excepcin de los temas que estaban directamente relacionados con el lenguaje C++ (aproximadamente el 10 del contenido). En el nuevo curso se incluyen nuevos temas como bases de datos, distribucin, concurrencia, pruebas automaticas y nuevos tipos de arboles. Se refuerza la visin de ingenieria de software que se introdujo en el primer curso. Se avanza en la construccin de interfaces graficas. Los estudiantes logran construir programas mucho mas complejos y avanzados que los que se podian construir en la versin anterior del curso. Este semestre, por ejemplo, los estudiantes construiran como ejercicio del ultimo nivel del curso un programa distribuido (un servidor y multiples clientes) para jugar ruleta, que debe tener la siguiente interfaz de usuario:
Nuchos de los temas del curso se refuerzan mediante el uso de herramientas computacionales, denominados entrenadores. Todos ellos han sido desarrollados en el marco del proyecto.
En los semestres 2005-1 y 2005-2 se hicieron los pilotos del curso. El seguimiento y acompanamiento estuvo a cargo de L!D!E. En esa etapa se validaron las principales hiptesis de trabajo |2| |3| |+|.
El enfoque del curso requiere de una gran cantidad de recursos de soporte, los cuales han sido construidos en el marco del proyecto.
En este momento el curso se encuentra integrado con el curso de !ntroduccin a la Programacin" y esta en un estado estable. Los esfuerzos actuales se concentran en la construccin de materiales de entrenamiento para profesores.
Hasta el semestre 2006-1 este curso era tomado exclusivamente por estudiantes de ingenieria de sistemas. El curso ha sido complementado con elementos tecnolgicos (comunicaciones, persistencia, etc.) que ayudan a manejar la motivacin de los estudiantes.
Este curso representaba un reto especial en su diseno. En la versin inicial, mas del 30 de nuestros estudiantes perdian el curso y eso generaba un problema de desmotivacin y desercin.
Este curso todavia se encuentra en la ultima fase de ajuste, aunque ya cuenta con un diseno detallado. Se espera que en el semestre 200/-2 se llegue a un estado definitivo y estable.
El curso se orienta primordialmente hacia el tema de diseno, lo cual ha requerido de la construccin de multiples herramientas de simulacin y de una gran cantidad de casos de estudio.
El nuevo curso incluye todos los temas incluidos en el curso original, con excepcin de aqullos que fueron movidos al curso anterior. En el nuevo curso se incluyen nuevos temas como desarrollo de aplicaciones WEB (servlets y applets), uso de herramientas como ant, manejo de lenguajes como XNL, construccin de aplicaciones por componentes, desarrollo de pruebas sobre escenarios aleatorios y algunos patrones simples de diseno (singleton, bridge, fabrica abstracta, iterador). Los estudiantes logran construir programas mucho mas complejos y avanzados que los que se podian construir en la versin anterior del curso. Este semestre, por ejemplo, los estudiantes construiran durante los ultimos 3 niveles del curso un programa WEB con una arquitectura multi-capas para la venta de documentos por !nternet. El inicio de la aplicacin WEB tiene la siguiente interfaz de usuario:
4. Recursos de Apoyo Construidos
Resumen de los principales elementos de apoyo construidos durante el proyecto, clasificados por tipo y por curso: APO1 APO2 DATOS Libros y notas de clase Libro publicado por Prentice-Hall. De venta en 11 paises de !beroamrica Notas de clase. El libro debe salir al mercado en agosto de 200/ o enero de 2008. Presentaciones parciales para los principales temas del curso.
Articulos publicados: + articulos publicados en congresos internacionales. 1 articulo aceptado en un journal de educacin en informatica. Casos de estudio: 6/ ejemplos de programas completos, implementados y documentados. 36 ejemplos de programas completos, implementados y documentados. 2/ ejemplos de programas completos, implementados y documentados. Hojas de trabajo: 12 hojas de trabajo construidas por el proyecto Cerca de /5 hojas de trabajo construidas por los profesores y almacenadas en el depsito del proyecto. 12 hojas de trabajo construidas por el proyecto Cerca de 15 hojas de trabajo construidas por los profesores y almacenadas en el depsito del proyecto. 2+ hojas de trabajo construidas por el proyecto Talleres: 2 talleres 5 talleres + talleres Tutoriales: 1 tutorial 2 tutoriales 2 tutoriales Entrenadores: / entrenadores disponibles 1+ entrenadores disponibles 10 entrenadores disponibles Frameworks de desarrollo: Proyecto Cupi2 Collections: implementacin de las 26 estructuras de datos tipicas, en su versin genrica (aprox. 20.000 lineas de cdigo) Proyecto LED (Laboratorio de estructuras de datos). Simulador y animador de los algoritmos de estructuras de datos (aprox. /5.000 lineas de cdigo) Apoyo administrativo: Funcionalidad incluida en el sitio WEB del proyecto (http://cupi2.uniandes.edu.co) : Opcin para que un estudiante solicite una monitoria, suministrando toda la informacin necesaria.
Opcin para que un profesor seleccione un monitor. Opcin para que el coordinador haga el nombramiento de un monitor. Sistema automatico de publicacin de calendarios y horarios. Comunidad de profesores: Funcionalidad incluida en el sitio WEB del proyecto (http://cupi2.uniandes.edu.co) : Depsito de bitacoras, en donde los profesores registran en cada nivel del curso la preparacin de las clases y los resultados obtenidos. Esta informacin esta abierta para consultas de otros profesores. Se encuentran registradas en este momento cerca de 600 bitacoras (desde 2005-1), clasificadas por profesor, curso y nivel. Depsito de materiales, en donde los profesores dejan copia de los enunciados de sus examenes, hojas de trabajo desarrolladas en clase, presentaciones, enunciados de laboratorios, etc. Esta informacin esta abierta para consultas de otros profesores. En este momento se encuentran registrados mas de 2500 documentos. Depsito de materiales de induccin para la formacin de profesores nuevos. Seguimiento del proyecto: Funcionalidad incluida en el sitio WEB del proyecto (http://cupi2.uniandes.edu.co) : Opcin para que los profesores registren los resultados obtenidos en cada una de las evaluaciones hechas a los estudiantes. El sistema mantiene una traza desde 2005-1. Los profesores pueden de esta manera compararse con las demas secciones. Sistema de informacin con resultados estadisticos de los cursos del ciclo basico de programacin desde 2003. Hay una base de datos con toda la informacin necesaria para hacer el seguimiento de los indicadores. Es posible, por ejemplo, hacer todo el seguimiento teniendo en cuenta el programa de los estudiantes que toman el curso. Otros: Se hizo el registro de marca del nombre del proyecto (CUP!2) y de su logo. El sitio WEB del proyecto (http://cupi2.uniandes.edu.co) permite el acceso a los estudiantes a todos los materiales de apoyo. Hay una zona reservada para profesores y una zona reservada para el coordinador. En el ano 2006 se dictaron 13 conferencias en distintas universidades del pais para mostrar los resultados del proyecto. varias universidades colombianas estan aprovechando los materiales y la experiencia lograda en el proyecto. Construccin de herramientas de apoyo a la tarea de desarrollo de programas.
5. Algunas Conclusiones
El cambio en los cursos del ciclo basico de programacin ha tenido un efecto muy positivo en los estudiantes que estudian ingenieria de sistemas, y llegan a tomar cursos mas avanzados. Esto ha causado que se haya comenzado un proceso de renovacin curricular en el area de construccin de software. Este semestre estamos llevando a cabo los pilotos para las nuevas versiones de los cursos !ngenieria de Software" y Arquitectura de Software", y estamos preparando los materiales de soporte para las nuevas versiones de los cursos de maestria en esta misma area (Diseno de Software" y Componentes de Software").
El proyecto se ha desarrollado segun lo planeado y se han obtenido resultados en distintas dimensiones que se pueden catalogar como excelentes.
Se han tomado las medidas necesarias para garantizar la sostenibilidad del proyecto, permitiendo asi mantener actualizados los bancos de ejercicios y de entrenadores.
6. Referencias
|1| J. villalobos. Estudio de la situacin actual de cursos del ciclo basico de programacin y recomendaciones", D!SC - Uniandes, Agosto de 200+.
|2| J. villalobos, R. Casallas. Teaching/Learning a First Object-Oriented Programming Course outside the CS Curriculum". 10th Workshop on Pedagogies and Tools for the Teaching and Learning of Object Oriented Concepts - ECOOP (European Conference on Object-Oriented Programming), Nantes, Francia, Julio 2006.
|3| J. villalobos, R. Casallas, L. A. Osorio. Looking for a New Approach to Teach/Learn a First Computer-Programming Course". !nternational Conference on Engineering and Computer Education (!CECE05), Nadrid, Espana, Noviembre 2005.
|+| J. villalobos, R. Casallas, K. Narcos. El Reto de Disenar un Primer Curso de Programacin de Computadores". X!!! Congreso !beroamericano de Educacin Superior en Computacin, Cali, Colombia, Octubre 2005.