cupi2 2006 1 reunion depto
TRANSCRIPT
![Page 1: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/1.jpg)
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: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/2.jpg)
Objetivo
Presentar un informe sobre el estado actual del proyecto
![Page 3: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/3.jpg)
Agenda
! Contexto del proyecto ! APO1! APO2! DATOS! Conclusiones! Preguntas
![Page 4: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/4.jpg)
Contexto del proyecto! Buscando nuevas maneras de enseñar a programar
! http://cupi2.uniandes.edu.co/
! Etapas:" 2003-2004: Levantamiento de información" 2004-2: Diagnóstico" 2004-2: Marco conceptual" 2004-2: Diseño APO1" 2005-1: Piloto APO1" 2005-2: 2do piloto APO1, piloto APO2" 2006-1: Masificación APO1, 2do piloto APO2, piloto APO1" 2006-2: Estable APO1, masificación APO2, 2do piloto DATOS" 2007-1: Cursos estables + piloto ISOFT
![Page 5: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/5.jpg)
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: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/6.jpg)
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: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/7.jpg)
Cupi2: materiales de soporte
! El enfoque implica el desarrollo y mantenimiento de una gran cantidad de materiales:" Ejercicios y ejemplos" Entrenadores" Hojas de trabajo" Talleres" Tutoriales" Libros
! Seminarios de inducción de profesores y monitores
![Page 8: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/8.jpg)
La comunidad Cupi2: profesores
![Page 9: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/9.jpg)
La comunidad Cupi2: profesores
![Page 10: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/10.jpg)
La comunidad Cupi2: estudiantes
![Page 11: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/11.jpg)
Publicaciones! J. 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: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/12.jpg)
Agenda
! Contexto del proyecto! APO1! APO2! DATOS! Conclusiones! Preguntas
![Page 13: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/13.jpg)
APO1
! 35 secciones (27 profesores de cátedra)! Más de 50 monitores! Tarde, pero por fin con libro!! Diseño detallado de los niveles
! Problemas pequeños =>" análisis == diseño" arquitectura simple predefinida" Habilidades básicas de análisis, modelado y programación
![Page 14: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/14.jpg)
APO1 – Nivel 1Problemas, soluciones y programas
! Habilidades elementales de análisis
! Clases, objetos, métodos, atributos
! Arquitectura básica de un programa
! Algunos tipos simples! Operadores y expresiones
simples! Asignación! Invocación de métodos! Introducción a Java y Eclipse! UML: diagrama de clases
![Page 15: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/15.jpg)
APO1 – Nivel 2Definición de situaciones y manejo de casos
! Expresiones lógicas, operadores relacionales, operadores lógicos
! Instrucciones condicionales! Uso de constantes! Habilidades básicas de
modelado y asignación de responsabilidades
! Constructores, modificadores, analizadores
! Concepto de variable! Se refuerza el concepto de
paso de parámetros
![Page 16: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/16.jpg)
APO1 – Nivel 2Definición de situaciones y manejo de casos
Entrenadores
![Page 17: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/17.jpg)
APO1 – Nivel 3Manejo de grupos de atributos
! Contenedoras de tamaño fijo: arreglos
! Contenedoras de tamaño variable: vectores (clase ArrayList)
! Instrucciones repetitivas (for, while)
! Patrones de algoritmo para ciclos
! Representación de grupos en UML
! Lectura y uso de documentación Javadoc
![Page 18: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/18.jpg)
APO1 – Nivel 3Manejo de grupos de atributos
Entrenadores
![Page 19: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/19.jpg)
APO1 – Nivel 3Manejo de grupos de atributos
Entrenadores
![Page 20: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/20.jpg)
APO1 – Nivel 4Definición y cumplimiento de responsabilidades
! Contrato, precondición y postcondición
! Excepciones! Técnicas de asignación de
responsabilidades (patrón experto)
! Uso de Javadoc para especificar un contrato
! Instrucciones try-catch, throw! Dividir y conquistar aplicado a
requerimientos funcionales
![Page 21: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/21.jpg)
APO1 – Nivel 5Construcción de la interfaz gráfica
! Arquitectura de la interfaz de usuario
! Ventanas, paneles, etiquetas, zonas de texto, eventos, botones, distribuidores gráficos
! Asignación de responsabilidades a cada elemento de la interfaz
! Framework swing de Java! El método main() en Java
![Page 22: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/22.jpg)
APO1 – Nivel 6Estructuras de dos dimensiones y persistencia
! Contenedoras de dos dimensiones: matrices
! Persistencia básica para iniciar el estado del modelo del mundo (Properties)
! Construcción de un programa completo
![Page 23: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/23.jpg)
APO1 – Nivel 6Estructuras de dos dimensiones y persistencia
Entrenadores
![Page 24: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/24.jpg)
Agenda
! Contexto del proyecto ! APO1! APO2! DATOS! Conclusiones! Preguntas
![Page 25: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/25.jpg)
APO2
! 2do piloto del curso! 4 secciones (RuC, MH, MS, CA)! Borrador de diseño de los niveles! Ejemplos completos para todos los niveles! Entrenadores
! Problemas pequeños =>" análisis != diseño" diseño dado en cada ejercicio" arquitectura simple predefinida" primeros requerimientos no funcionales
![Page 26: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/26.jpg)
APO2 – Nivel 7Búsqueda, ordenamiento y pruebas automáticas
! Búsqueda secuencial y binaria! Algoritmos no recursivos de
ordenamiento! Construcción de pruebas
automáticas en JUnit y su uso en el proceso de desarrollo
! Invariante de clase y su documentación en Javadoc
! Instrucción assert en Java! Componentes swing para
visualización de grupos
![Page 27: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/27.jpg)
APO2 – Nivel 7Búsqueda, ordenamiento y pruebas automáticas
Entrenadores
![Page 28: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/28.jpg)
APO2 – Nivel 8Archivos y excepciones
! Archivos secuenciales de texto, para hacer persistir el estado del modelo del mundo
! Manejo y declaración de tipos de excepciones
! Uso del depurador en Eclipse
![Page 29: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/29.jpg)
APO2 – Nivel 9Estructuras lineales encadenadas
! Listas sencillamente y doblemente encadenadas! Otros distribuidores gráficos: FlowLayout, GridBagLayout! Otros componentes gráficos de swing
![Page 30: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/30.jpg)
APO2 – Nivel 9Estructuras lineales encadenadas
Entrenadores
![Page 31: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/31.jpg)
APO2 – Nivel 10Herencia e interfaces
! Herencia, clases abstractas, redefinición de métodos, alcance dinámico, polimorfismo
! Interfaces como mecanismo de desacoplamiento
! Dibujo básico en interfaces gráficas
! Manejo de eventos del ratón y de menús
![Page 32: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/32.jpg)
APO2 – Nivel 10Herencia e interfaces
Entrenadores
![Page 33: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/33.jpg)
APO2 – Nivel 11Estructuras y algoritmos recursivos
! Árboles binarios, árboles binarios ordenados, árboles n-arios
! Desarrollo de métodos recursivos
! Uso de árboles para representar información ordenada y estructuras de decisión
![Page 34: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/34.jpg)
APO2 – Nivel 12Persistencia y distribución básicas
BD
servidor
socket
JDBC
socket
![Page 35: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/35.jpg)
APO2 – Nivel 12Persistencia y distribución básicas
Entrenadores
![Page 36: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/36.jpg)
Agenda
! Contexto del proyecto ! APO1! APO2! DATOS! Conclusiones! Preguntas
![Page 37: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/37.jpg)
DATOS
! Piloto del curso (JV, PB)! Borrador de diseño de los niveles
! Problemas medianos =>" análisis != diseño" todo gira alrededor del diseño (medir, proponer, justificar)" arquitectura simple diseñada por el estudiante" algorítmica de estructuras de datos no triviales" nuevos requerimientos no funcionales" proyectos construidos por componentes
! LED & Cupi2Collections
![Page 38: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/38.jpg)
DATOS – Nivel 13Complejidad y técnicas básicas de diseño
! Complejidad de algoritmos! Del análisis al diseño! Diseño bajo restricciones! Lo representado vs. la
representación! Taxonomía y algorítmica de
estructuras lineales! Uso de un IDE para la
construcción de la interfaz! Framework Collections de
Java! Técnicas básicas de
simulación
![Page 39: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/39.jpg)
DATOS – Nivel 14Estructuras de acceso directo
! Diseño bajo restricciones
! Lo representado vs. la representación
! Tablas de hashing, diccionarios, conjuntos y mapas
! Clases genéricas y su implementación en Java
! Manejo de applets! Manejo y
empaquetamiento de jars! Uso de ant
![Page 40: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/40.jpg)
DATOS – Nivel 14Estructuras de acceso directo
Entrenadores
![Page 41: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/41.jpg)
DATOS – Nivel 15Estructuras recursivas
! Árboles AVL! Árboles de sintaxis! Algoritmo de Huffman! Arquitectura MVC y el
patrón observador! Diseño bajo restricciones! Algorítmica no trivial de
estructuras arborescentes! Heaps! Implementación de
árboles binarios! Uso de “librerías”
almacenamientomemoriaprincipal
ÍndicesAVL
![Page 42: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/42.jpg)
DATOS – Nivel 15Estructuras recursivas
Entrenadores
![Page 43: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/43.jpg)
DATOS – Nivel 15Estructuras recursivas
Entrenadores
![Page 44: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/44.jpg)
DATOS – Nivel 16Estructuras recursivas
! Árboles B y 2-3! XML y DOM! Desarrollo incremental! Diseño bajo restricciones! Componentes gráficos de
visualización de jerarquías (JTree)
almacenamientomemoriaprincipal
ÍndicesAVL
Índices2-3
XML
Huffman + Xerces
![Page 45: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/45.jpg)
DATOS – Nivel 17Estructuras no lineales
! Grafos dirigidos! Diseño de estructuras de
datos para implementar un algoritmo no trivial
! Algorítmica de búsqueda de caminos y óptimos (ciclos, Hamilton, Euler, etc.)
! Algorítmica de manejo de grafos
! Dijkstra y árboles de recubrimiento
![Page 46: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/46.jpg)
DATOS – Nivel 18Diseño de software
! Arquitecturas simples de múltiples capas! Componentes WEB (servlets)! Construcción de aplicaciones por
composición de componentes! Patrones básicos de diseño
servidor
miniDBC
WEB
servlets
driver
Cupi2Collections
Oráculo
![Page 47: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/47.jpg)
Agenda
! Contexto del proyecto ! APO1! APO2! DATOS! Conclusiones! Preguntas
![Page 48: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/48.jpg)
Conclusiones
! Todos los indicadores son muy positivos! Hay todavía aspectos por mejorar en los tres
cursos! En el ciclo básico de programación se logra
llegar mucho más adelante que antes! Los 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: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/49.jpg)
Conclusiones
! Cómo mantener estos cursos en el estado estable?
![Page 50: Cupi2 2006 1 Reunion Depto](https://reader031.vdocuments.pub/reader031/viewer/2022021918/58a5f6ad1a28aba5728b6a4f/html5/thumbnails/50.jpg)
Agenda
! Contexto del proyecto ! APO1! APO2! DATOS! Conclusiones! Preguntas