SlideShare una empresa de Scribd logo
1 de 50
Descargar para leer sin conexión
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
Objetivo


Presentar un informe sobre el estado
actual del proyecto
Agenda
!   Contexto del proyecto
!   APO1
!   APO2
!   DATOS
!   Conclusiones
!   Preguntas
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
Ejes conceptuales
                       procesos de
                                            modelaje y solución
                        software
                                              de problemas



         algorítmica

                                                       técnicas de programación
                                                             y metodologías




elementos estructuradores
     y arquitecturas
                                                 tecnología y
                                                programación
                          herramientas de
                           programación
Estructura de niveles
                                                                                                    APO1:
                                                                                                      1
                                                                                                      2
         Nivel
                 Eje1    Eje2    Eje3    Eje4    Eje5    Eje6     Eje7    Entrenadores Evaluación     3
Semana
                 C   H   C   H   C   H   C   H   C   H   C    H   C   H                               4
                                                                                                      5
  1       1
          1
                                                                                                            APO2:
  2
  3       1
          2
                                                                                           ***
                                                                                                      6
  4
                                                                                                              7
                                                             ejercicio
  5       2                                                                                ***

  6
  7
          3
          3                                                                                                   8
  8
  9
          3
          4
                                                                                           ***
                                                                                                              9
  10      4
          5
                                                                                           ***
                                                                                                             10
  11
  12      5
          6
                                                                                           ***               11
                                                                                                                    DATOS:
  13
  14      6                                                                                                  12
          6                                                                                ***
  15
                                                                                                                      13
                                                                                                                      14
                                                                                                                      15
                 Generación incremental de habilidades                                                                16
                                                                                                                      11
                                                                                                                      18
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
La comunidad Cupi2: profesores
La comunidad Cupi2: profesores
La comunidad Cupi2: estudiantes
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 and
    Learning of Object Oriented Concepts, Nantes, Francia, Julio 2006.

!   J. Villalobos, R. Casallas, L. Osorio. "Looking for a New Approach to
    Teach/Learn a First Computer-Programming Course". International
    Conference 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.
Agenda
!   Contexto del proyecto
!   APO1
!   APO2
!   DATOS
!   Conclusiones
!   Preguntas
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
APO1 – Nivel 1
Problemas, 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
APO1 – Nivel 2
Definició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
APO1 – Nivel 2
Definición de situaciones y manejo de casos




                              Entrenadores
APO1 – Nivel 3
Manejo 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
APO1 – Nivel 3
Manejo de grupos de atributos




                                Entrenadores
APO1 – Nivel 3
Manejo de grupos de atributos




                                Entrenadores
APO1 – Nivel 4
Definició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
APO1 – Nivel 5
Construcció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
APO1 – Nivel 6
Estructuras 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
APO1 – Nivel 6
Estructuras de dos dimensiones y persistencia




                              Entrenadores
Agenda
!   Contexto del proyecto
!   APO1
!   APO2
!   DATOS
!   Conclusiones
!   Preguntas
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
APO2 – Nivel 7
Bú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
APO2 – Nivel 7
Búsqueda, ordenamiento y pruebas automáticas




                                 Entrenadores
APO2 – Nivel 8
Archivos 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
APO2 – Nivel 9
       Estructuras lineales encadenadas




!   Listas sencillamente y doblemente encadenadas
!   Otros distribuidores gráficos: FlowLayout, GridBagLayout
!   Otros componentes gráficos de swing
APO2 – Nivel 9
Estructuras lineales encadenadas




                             Entrenadores
APO2 – Nivel 10
Herencia 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
APO2 – Nivel 10
Herencia e interfaces




                        Entrenadores
APO2 – Nivel 11
Estructuras 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
APO2 – Nivel 12
Persistencia y distribución básicas



                          socket



                                   servidor   JDBC



                          socket



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




                                Entrenadores
Agenda
!   Contexto del proyecto
!   APO1
!   APO2
!   DATOS
!   Conclusiones
!   Preguntas
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
DATOS – Nivel 13
Complejidad 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
DATOS – Nivel 14
Estructuras 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
DATOS – Nivel 14
Estructuras de acceso directo




                                Entrenadores
!   Árboles AVL
    DATOS – Nivel 15         !   Árboles de sintaxis
    Estructuras recursivas   !   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”




almacenamiento
   memoria       Índices
   principal       AVL
DATOS – Nivel 15
Estructuras recursivas




                         Entrenadores
DATOS – Nivel 15
Estructuras recursivas




                         Entrenadores
DATOS – Nivel 16
   Estructuras 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)




                      Índices
                        AVL
almacenamiento
   memoria                  Índices
   principal                  2-3

         Huffman + Xerces
                      XML
DATOS – Nivel 17
Estructuras 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
DATOS – Nivel 18
    Diseño de software

                                          WEB
                                                    servidor
                                         servlets


                                                          miniDBC


                                                        driver
!   Arquitecturas simples de múltiples capas
    Componentes WEB (servlets)
!
                                                      Oráculo
!   Construcción de aplicaciones por
    composición de componentes
!   Patrones básicos de diseño                      Cupi2Collections
Agenda
!   Contexto del proyecto
!   APO1
!   APO2
!   DATOS
!   Conclusiones
!   Preguntas
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.
Conclusiones
!   Cómo mantener estos cursos en el estado
    estable?
Agenda
!   Contexto del proyecto
!   APO1
!   APO2
!   DATOS
!   Conclusiones
!   Preguntas

Más contenido relacionado

Similar a Cupi2 2006 1 Reunion Depto

Ejercicios De Practica FuncióN Lineal
Ejercicios De Practica FuncióN LinealEjercicios De Practica FuncióN Lineal
Ejercicios De Practica FuncióN LinealCarmen Batiz
 
Microsoft word regletas0
Microsoft word   regletas0Microsoft word   regletas0
Microsoft word regletas0Amaya Collado
 
Calendario g14 g15
Calendario g14 g15Calendario g14 g15
Calendario g14 g15UT00786
 
BCB comunicado de prensa-inflación 2011
BCB comunicado de prensa-inflación 2011BCB comunicado de prensa-inflación 2011
BCB comunicado de prensa-inflación 2011Oxígeno Bolivia
 

Similar a Cupi2 2006 1 Reunion Depto (8)

Ejercicios De Practica FuncióN Lineal
Ejercicios De Practica FuncióN LinealEjercicios De Practica FuncióN Lineal
Ejercicios De Practica FuncióN Lineal
 
Entorno del coreldraw
Entorno del coreldrawEntorno del coreldraw
Entorno del coreldraw
 
Carpeta Modelle Ocampo
Carpeta Modelle OcampoCarpeta Modelle Ocampo
Carpeta Modelle Ocampo
 
Microsoft word regletas0
Microsoft word   regletas0Microsoft word   regletas0
Microsoft word regletas0
 
Calendario g14 g15
Calendario g14 g15Calendario g14 g15
Calendario g14 g15
 
BCB comunicado de prensa-inflación 2011
BCB comunicado de prensa-inflación 2011BCB comunicado de prensa-inflación 2011
BCB comunicado de prensa-inflación 2011
 
Actividad de desempeño
Actividad de desempeñoActividad de desempeño
Actividad de desempeño
 
Actividad de desempeño
Actividad de desempeñoActividad de desempeño
Actividad de desempeño
 

Más de Maria Tobon

La enfermera virtual un proyecto tic para la de la sal
La enfermera virtual  un proyecto tic para la  de la salLa enfermera virtual  un proyecto tic para la  de la sal
La enfermera virtual un proyecto tic para la de la salMaria Tobon
 
Wikiaprendizajes
WikiaprendizajesWikiaprendizajes
WikiaprendizajesMaria Tobon
 
Presentación roberto canales
Presentación roberto canalesPresentación roberto canales
Presentación roberto canalesMaria Tobon
 
Presentación Roberto Canales
Presentación Roberto CanalesPresentación Roberto Canales
Presentación Roberto CanalesMaria Tobon
 
Presentación roberto canales
Presentación roberto canalesPresentación roberto canales
Presentación roberto canalesMaria Tobon
 
Piedecta 22557 escrito
Piedecta 22557 escritoPiedecta 22557 escrito
Piedecta 22557 escritoMaria Tobon
 
Renacer suenos de aula
Renacer suenos de aulaRenacer suenos de aula
Renacer suenos de aulaMaria Tobon
 
Medicion de las tic en la educacion
Medicion de las tic en la educacionMedicion de las tic en la educacion
Medicion de las tic en la educacionMaria Tobon
 
El libro total presentación completa
El libro total   presentación completaEl libro total   presentación completa
El libro total presentación completaMaria Tobon
 
Informe final videojuegos
Informe final videojuegosInforme final videojuegos
Informe final videojuegosMaria Tobon
 
Presentacion dia de internet
Presentacion dia de internetPresentacion dia de internet
Presentacion dia de internetMaria Tobon
 
Presentacion segundaopinion-2010
Presentacion segundaopinion-2010Presentacion segundaopinion-2010
Presentacion segundaopinion-2010Maria Tobon
 
Portafolio de servicios v6
Portafolio de servicios v6Portafolio de servicios v6
Portafolio de servicios v6Maria Tobon
 
Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...
Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...
Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...Maria Tobon
 
Aula tecnologica
Aula tecnologicaAula tecnologica
Aula tecnologicaMaria Tobon
 

Más de Maria Tobon (20)

La enfermera virtual un proyecto tic para la de la sal
La enfermera virtual  un proyecto tic para la  de la salLa enfermera virtual  un proyecto tic para la  de la sal
La enfermera virtual un proyecto tic para la de la sal
 
Wikiaprendizajes
WikiaprendizajesWikiaprendizajes
Wikiaprendizajes
 
Documento
DocumentoDocumento
Documento
 
Presentación roberto canales
Presentación roberto canalesPresentación roberto canales
Presentación roberto canales
 
Presentación Roberto Canales
Presentación Roberto CanalesPresentación Roberto Canales
Presentación Roberto Canales
 
Presentación roberto canales
Presentación roberto canalesPresentación roberto canales
Presentación roberto canales
 
Brochure dm
Brochure dmBrochure dm
Brochure dm
 
Brochure dm
Brochure dmBrochure dm
Brochure dm
 
Piedecta 22557 escrito
Piedecta 22557 escritoPiedecta 22557 escrito
Piedecta 22557 escrito
 
Renacer suenos de aula
Renacer suenos de aulaRenacer suenos de aula
Renacer suenos de aula
 
Medicion de las tic en la educacion
Medicion de las tic en la educacionMedicion de las tic en la educacion
Medicion de las tic en la educacion
 
El libro total presentación completa
El libro total   presentación completaEl libro total   presentación completa
El libro total presentación completa
 
Informe skoool
Informe skooolInforme skoool
Informe skoool
 
Informe final videojuegos
Informe final videojuegosInforme final videojuegos
Informe final videojuegos
 
Presentacion dia de internet
Presentacion dia de internetPresentacion dia de internet
Presentacion dia de internet
 
Presentacion segundaopinion-2010
Presentacion segundaopinion-2010Presentacion segundaopinion-2010
Presentacion segundaopinion-2010
 
Modelo 030511
Modelo 030511Modelo 030511
Modelo 030511
 
Portafolio de servicios v6
Portafolio de servicios v6Portafolio de servicios v6
Portafolio de servicios v6
 
Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...
Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...
Proyecto merlink. modelo de compras publicas electronicas en costa rica. sr. ...
 
Aula tecnologica
Aula tecnologicaAula tecnologica
Aula tecnologica
 

Último

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...solanocortezluisalfr
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 

Último (14)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 

Cupi2 2006 1 Reunion Depto

  • 1. 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
  • 2. Objetivo Presentar un informe sobre el estado actual del proyecto
  • 3. Agenda ! Contexto del proyecto ! APO1 ! APO2 ! DATOS ! Conclusiones ! Preguntas
  • 4. 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
  • 5. Ejes conceptuales procesos de modelaje y solución software de problemas algorítmica técnicas de programación y metodologías elementos estructuradores y arquitecturas tecnología y programación herramientas de programación
  • 6. Estructura de niveles APO1: 1 2 Nivel Eje1 Eje2 Eje3 Eje4 Eje5 Eje6 Eje7 Entrenadores Evaluación 3 Semana C H C H C H C H C H C H C H 4 5 1 1 1 APO2: 2 3 1 2 *** 6 4 7 ejercicio 5 2 *** 6 7 3 3 8 8 9 3 4 *** 9 10 4 5 *** 10 11 12 5 6 *** 11 DATOS: 13 14 6 12 6 *** 15 13 14 15 Generación incremental de habilidades 16 11 18
  • 7. 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
  • 8. La comunidad Cupi2: profesores
  • 9. La comunidad Cupi2: profesores
  • 10. La comunidad Cupi2: estudiantes
  • 11. 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 and Learning of Object Oriented Concepts, Nantes, Francia, Julio 2006. ! J. Villalobos, R. Casallas, L. Osorio. "Looking for a New Approach to Teach/Learn a First Computer-Programming Course". International Conference 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.
  • 12. Agenda ! Contexto del proyecto ! APO1 ! APO2 ! DATOS ! Conclusiones ! Preguntas
  • 13. 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
  • 14. APO1 – Nivel 1 Problemas, 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
  • 15. APO1 – Nivel 2 Definició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
  • 16. APO1 – Nivel 2 Definición de situaciones y manejo de casos Entrenadores
  • 17. APO1 – Nivel 3 Manejo 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
  • 18. APO1 – Nivel 3 Manejo de grupos de atributos Entrenadores
  • 19. APO1 – Nivel 3 Manejo de grupos de atributos Entrenadores
  • 20. APO1 – Nivel 4 Definició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
  • 21. APO1 – Nivel 5 Construcció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
  • 22. APO1 – Nivel 6 Estructuras 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
  • 23. APO1 – Nivel 6 Estructuras de dos dimensiones y persistencia Entrenadores
  • 24. Agenda ! Contexto del proyecto ! APO1 ! APO2 ! DATOS ! Conclusiones ! Preguntas
  • 25. 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
  • 26. APO2 – Nivel 7 Bú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
  • 27. APO2 – Nivel 7 Búsqueda, ordenamiento y pruebas automáticas Entrenadores
  • 28. APO2 – Nivel 8 Archivos 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
  • 29. APO2 – Nivel 9 Estructuras lineales encadenadas ! Listas sencillamente y doblemente encadenadas ! Otros distribuidores gráficos: FlowLayout, GridBagLayout ! Otros componentes gráficos de swing
  • 30. APO2 – Nivel 9 Estructuras lineales encadenadas Entrenadores
  • 31. APO2 – Nivel 10 Herencia 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
  • 32. APO2 – Nivel 10 Herencia e interfaces Entrenadores
  • 33. APO2 – Nivel 11 Estructuras 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
  • 34. APO2 – Nivel 12 Persistencia y distribución básicas socket servidor JDBC socket BD
  • 35. APO2 – Nivel 12 Persistencia y distribución básicas Entrenadores
  • 36. Agenda ! Contexto del proyecto ! APO1 ! APO2 ! DATOS ! Conclusiones ! Preguntas
  • 37. 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
  • 38. DATOS – Nivel 13 Complejidad 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
  • 39. DATOS – Nivel 14 Estructuras 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
  • 40. DATOS – Nivel 14 Estructuras de acceso directo Entrenadores
  • 41. ! Árboles AVL DATOS – Nivel 15 ! Árboles de sintaxis Estructuras recursivas ! 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” almacenamiento memoria Índices principal AVL
  • 42. DATOS – Nivel 15 Estructuras recursivas Entrenadores
  • 43. DATOS – Nivel 15 Estructuras recursivas Entrenadores
  • 44. DATOS – Nivel 16 Estructuras 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) Índices AVL almacenamiento memoria Índices principal 2-3 Huffman + Xerces XML
  • 45. DATOS – Nivel 17 Estructuras 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
  • 46. DATOS – Nivel 18 Diseño de software WEB servidor servlets miniDBC driver ! Arquitecturas simples de múltiples capas Componentes WEB (servlets) ! Oráculo ! Construcción de aplicaciones por composición de componentes ! Patrones básicos de diseño Cupi2Collections
  • 47. Agenda ! Contexto del proyecto ! APO1 ! APO2 ! DATOS ! Conclusiones ! Preguntas
  • 48. 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.
  • 49. Conclusiones ! Cómo mantener estos cursos en el estado estable?
  • 50. Agenda ! Contexto del proyecto ! APO1 ! APO2 ! DATOS ! Conclusiones ! Preguntas