El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales:...

50
El Proyecto Cupi2 Buscando nuevas maneras de enseñar a programar Jorge Villalobos Rubby Casallas Marcela Hernández Ingeniería de Sistemas y Computación Universidad de los Andes Mayo 3 2006

Transcript of El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales:...

Page 1: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

El Proyecto Cupi2Buscando nuevas maneras de enseñar a programar

Jorge VillalobosRubby Casallas

Marcela HernándezIngeniería de Sistemas y Computación

Universidad de los Andes

Mayo 3 2006

Page 2: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Objetivo

Presentar un informe sobre el estado actual del proyecto

Page 3: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Agenda

Contexto del proyecto APO1APO2DATOSConclusionesPreguntas

Page 4: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Contexto del proyectoBuscando nuevas maneras de enseñar a programar

http://cupi2.uniandes.edu.co/

Etapas:2003-2004: Levantamiento de información2004-2: Diagnóstico2004-2: Marco conceptual2004-2: Diseño APO12005-1: Piloto APO12005-2: 2do piloto APO1, piloto APO22006-1: Masificación APO1, 2do piloto APO2, piloto APO12006-2: Estable APO1, masificación APO2, 2do piloto DATOS2007-1: Cursos estables + piloto ISOFT

Page 5: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Ejes conceptualesprocesos desoftware modelaje y solución

de problemas

tecnología yprogramación

herramientas deprogramación

algorítmica

técnicas de programacióny metodologías

elementos estructuradoresy arquitecturas

Page 6: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Estructura de niveles

Semana Nivel Eje1 Eje2

Eje3 Eje4 Eje5 Eje6 Eje7 Entrenadores Evaluación

C H C H C H C H C H C H C H

1 1

2 1

3 1 ***

4 2

5 2 ***

6 3

7 3

8 3 ***

9 4

10 4 ***

11 5

12 5 ***

13 6

14 6

15 6 ***

ejercicio

APO1:123456 APO2:

789

101112 DATOS:

131415161118

Generación incremental de habilidades

Page 7: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Cupi2: materiales de soporte

El enfoque implica el desarrollo y mantenimiento de una gran cantidad de materiales:

Ejercicios y ejemplosEntrenadoresHojas de trabajoTalleresTutorialesLibros

Seminarios de inducción de profesores y monitores

Page 8: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

La comunidad Cupi2: profesores

Page 9: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

La comunidad Cupi2: profesores

Page 10: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

La comunidad Cupi2: estudiantes

Page 11: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

PublicacionesJ. Villalobos, R. Casallas, “Teaching/Learning a First Object-Oriented Programming Course outside the CS Curriculum”, ECOOP 10th Workshop on Pedagogies and Tools for the Teaching andLearning of Object Oriented Concepts, Nantes, Francia, Julio 2006.

J. Villalobos, R. Casallas, L. Osorio. "Looking for a New Approach toTeach/Learn a First Computer-Programming Course". InternationalConference on Engineering and Computer Education (ICECE), Madrid, España, Noviembre 2005.

J. Villalobos, R. Casallas, K. Marcos. “El Reto de Diseñar un Primer Curso de Programación de Computadores". XIII Congreso Iberoamericano de Educación Superior en Computación, Cali, Colombia, Octubre 2005.

J. Villalobos, D. Pérez, J. Castro, C. Jiménez. “Construcción de un Laboratorio Flexible de Estructuras de Datos". XIII Congreso Iberoamericano de Educación Superior en Computación, Cali, Colombia, Octubre 2005.

Page 12: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Agenda

Contexto del proyectoAPO1APO2DATOSConclusionesPreguntas

Page 13: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1

35 secciones (27 profesores de cátedra)Más de 50 monitoresTarde, pero por fin con libro!Diseño detallado de los niveles

Problemas pequeños =>análisis == diseñoarquitectura simple predefinidaHabilidades básicas de análisis, modelado y programación

Page 14: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 1Problemas, soluciones y programas

Habilidades elementales de análisisClases, objetos, métodos, atributosArquitectura básica de un programaAlgunos tipos simplesOperadores y expresiones simplesAsignaciónInvocación de métodosIntroducción a Java y EclipseUML: diagrama de clases

Page 15: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 2Definición de situaciones y manejo de casos

Expresiones lógicas, operadores relacionales, operadores lógicosInstrucciones condicionalesUso de constantesHabilidades básicas de modelado y asignación de responsabilidadesConstructores, modificadores, analizadoresConcepto de variableSe refuerza el concepto de paso de parámetros

Page 16: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 2Definición de situaciones y manejo de casos

Entrenadores

Page 17: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 3Manejo de grupos de atributos

Contenedoras de tamaño fijo: arreglosContenedoras de tamaño variable: vectores (clase ArrayList)Instrucciones repetitivas (for, while)Patrones de algoritmo para ciclosRepresentación de grupos en UMLLectura y uso de documentación Javadoc

Page 18: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 3Manejo de grupos de atributos

Entrenadores

Page 19: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 3Manejo de grupos de atributos

Entrenadores

Page 20: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 4Definición y cumplimiento de responsabilidades

Contrato, precondición y postcondiciónExcepcionesTécnicas de asignación de responsabilidades (patrón experto)Uso de Javadoc para especificar un contratoInstrucciones try-catch, throwDividir y conquistar aplicado a requerimientos funcionales

Page 21: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 5Construcción de la interfaz gráfica

Arquitectura de la interfaz de usuarioVentanas, paneles, etiquetas, zonas de texto, eventos, botones, distribuidores gráficosAsignación de responsabilidades a cada elemento de la interfazFramework swing de JavaEl método main() en Java

Page 22: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 6Estructuras de dos dimensiones y persistencia

Contenedoras de dos dimensiones: matricesPersistencia básica para iniciar el estado del modelo del mundo (Properties)Construcción de un programa completo

Page 23: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO1 – Nivel 6Estructuras de dos dimensiones y persistencia

Entrenadores

Page 24: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Agenda

Contexto del proyecto APO1APO2DATOSConclusionesPreguntas

Page 25: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2

2do piloto del curso4 secciones (RuC, MH, MS, CA)Borrador de diseño de los nivelesEjemplos completos para todos los nivelesEntrenadores

Problemas pequeños =>análisis != diseñodiseño dado en cada ejercicioarquitectura simple predefinidaprimeros requerimientos no funcionales

Page 26: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 7Búsqueda, ordenamiento y pruebas automáticas

Búsqueda secuencial y binariaAlgoritmos no recursivos de ordenamientoConstrucción de pruebas automáticas en JUnit y su uso en el proceso de desarrolloInvariante de clase y su documentación en JavadocInstrucción assert en JavaComponentes swing para visualización de grupos

Page 27: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 7Búsqueda, ordenamiento y pruebas automáticas

Entrenadores

Page 28: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 8Archivos y excepciones

Archivos secuenciales de texto, para hacer persistir el estado del modelo del mundoManejo y declaración de tipos de excepcionesUso del depurador en Eclipse

Page 29: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 9Estructuras lineales encadenadas

Listas sencillamente y doblemente encadenadasOtros distribuidores gráficos: FlowLayout, GridBagLayoutOtros componentes gráficos de swing

Page 30: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 9Estructuras lineales encadenadas

Entrenadores

Page 31: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 10Herencia e interfaces

Herencia, clases abstractas, redefinición de métodos, alcance dinámico, polimorfismoInterfaces como mecanismo de desacoplamientoDibujo básico en interfaces gráficasManejo de eventos del ratón y de menús

Page 32: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 10Herencia e interfaces

Entrenadores

Page 33: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 11Estructuras y algoritmos recursivos

Árboles binarios, árboles binarios ordenados, árboles n-ariosDesarrollo de métodos recursivosUso de árboles para representar información ordenada y estructuras de decisión

Page 34: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 12Persistencia y distribución básicas

BD

servidor

socket

JDBC

socket

Page 35: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

APO2 – Nivel 12Persistencia y distribución básicas

Entrenadores

Page 36: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Agenda

Contexto del proyecto APO1APO2DATOSConclusionesPreguntas

Page 37: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS

Piloto del curso (JV, PB)Borrador de diseño de los niveles

Problemas medianos =>análisis != diseñotodo gira alrededor del diseño (medir, proponer, justificar)arquitectura simple diseñada por el estudiantealgorítmica de estructuras de datos no trivialesnuevos requerimientos no funcionalesproyectos construidos por componentes

LED & Cupi2Collections

Page 38: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 13Complejidad y técnicas básicas de diseño

Complejidad de algoritmosDel análisis al diseñoDiseño bajo restriccionesLo representado vs. la representaciónTaxonomía y algorítmica de estructuras linealesUso de un IDE para la construcción de la interfazFramework Collections de JavaTécnicas básicas de simulación

Page 39: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 14Estructuras de acceso directo

Diseño bajo restriccionesLo representado vs. la representaciónTablas de hashing, diccionarios, conjuntos y mapasClases genéricas y su implementación en JavaManejo de appletsManejo y empaquetamiento de jarsUso de ant

Page 40: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 14Estructuras de acceso directo

Entrenadores

Page 41: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 15Estructuras recursivas

Árboles AVLÁrboles de sintaxisAlgoritmo de HuffmanArquitectura MVC y el patrón observadorDiseño bajo restriccionesAlgorítmica no trivial de estructuras arborescentesHeapsImplementación de árboles binariosUso de “librerías”

almacenamientomemoriaprincipal

ÍndicesAVL

Page 42: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 15Estructuras recursivas

Entrenadores

Page 43: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 15Estructuras recursivas

Entrenadores

Page 44: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 16Estructuras recursivas

Árboles B y 2-3XML y DOMDesarrollo incrementalDiseño bajo restriccionesComponentes gráficos de visualización de jerarquías (JTree)

almacenamientomemoriaprincipal

ÍndicesAVL

Índices2-3

XML

Huffman + Xerces

Page 45: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 17Estructuras no lineales

Grafos dirigidosDiseño de estructuras de datos para implementar un algoritmo no trivialAlgorítmica de búsqueda de caminos y óptimos (ciclos, Hamilton, Euler, etc.)Algorítmica de manejo de grafosDijkstra y árboles de recubrimiento

Page 46: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

DATOS – Nivel 18Diseño de software

Arquitecturas simples de múltiples capasComponentes WEB (servlets)Construcción de aplicaciones por composición de componentesPatrones básicos de diseño

servidor

miniDBC

WEB

servlets

driver

Cupi2Collections

Oráculo

Page 47: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Agenda

Contexto del proyecto APO1APO2DATOSConclusionesPreguntas

Page 48: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Conclusiones

Todos los indicadores son muy positivosHay todavía aspectos por mejorar en los tres cursosEn el ciclo básico de programación se logra llegar mucho más adelante que antesLos estudiantes terminan con una visión más amplia de la problemática de desarrollo con habilidades a distintos niveles de profundidad

Es una oportunidad para replantear los cursos que siguen: ISoft, ArqSw, etc.

Page 49: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Conclusiones

Cómo mantener estos cursos en el estado estable?

Page 50: El Proyecto Cupi2 - cupintranet.virtual.uniandes.edu.co · de una gran cantidad de materiales: zEjercicios y ejemplos zEntrenadores zHojas de trabajo zTalleres zTutoriales ... Laboratorio

Agenda

Contexto del proyecto APO1APO2DATOSConclusionesPreguntas