La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programa Prometeo – Escuela Superior Politécnica de Chimborazo 1 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Sesión 5:

Presentaciones similares


Presentación del tema: "Programa Prometeo – Escuela Superior Politécnica de Chimborazo 1 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Sesión 5:"— Transcripción de la presentación:

1 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 1 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Sesión 5: Enseñanza de los algoritmos Ángel Velázquez Universidad Rey Juan Carlos España

2 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 2 Seminario “Enseñanza de la Programación” Objetivos de la sesión 5 Ilustrar muchos de los temas de investigación mediante asignaturas de algoritmos: –Taxonomías educativas y alineamiento –Informática educativa –Modelos conceptuales –Modelos mentales (malentendidos)

3 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 3 Seminario “Enseñanza de la Programación” Índice Planteamiento de la asignatura Objetivos de aprendizaje Visualización de la recursividad Instrucción de los algoritmos voraces Asignatura de algoritmos avanzados Asignatura de programación avanzada

4 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 4 Seminario “Enseñanza de la Programación” Planteamiento de la asignatura

5 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 5 Seminario “Enseñanza de la Programación” Planteamiento de la asignatura Tres planteamientos de una asignatura de algoritmos: –Basado en estructuras de datos: Algoritmos de manipulación –Basado en problemas: Ordenación Grafos … –Basado en técnicas de diseño: Divide y vencerás Vuelta atrás …

6 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 6 Seminario “Enseñanza de la Programación” Planteamiento de la asignatura Contenidos comunes: –Análisis de complejidad: En profundidad variable –Algunos algoritmos de ordenación: Por mezcla Rápida –Algunos algoritmos de grafos: Kruskal y Prim Dijsktra Floyd

7 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 7 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje

8 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 8 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Ejemplo de una asignatura “Diseño y Análisis de Algoritmos”, 3º curso Temario: 1.Introducción 2.Análisis de eficiencia 3.Optimización de algoritmos 4.Introducción a la técnicas de diseño de algoritmos 5.Divide y vencerás 6.Algoritmos voraces 7.Vuelta atrás

9 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 9 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos generales de la asignatura:

10 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 10 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 1 (introducción):

11 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 11 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 2 (eficiencia):

12 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 12 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 3 (optimización):

13 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 13 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 4 (introducción a las técnicas de diseño):

14 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 14 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 5 (divide y vencerás):

15 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 15 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 6 (algoritmos voraces):

16 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 16 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Objetivos del tema 7 (vuelta atrás):

17 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 17 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Algunas notas: –No se espera alcanzar el nivel de creación en ningún tema, sino el de aplicación: Soluciones generales para ecuaciones recurrentes (varias, divide y vencerás) Esquemas de código (eliminación de recursividad lineal, memorización, divide y vencerás, vuelta atrás para una solución, todas y óptima) Esquemas de árbol de búsqueda (permutaciones, subconjunto) Metodologías de desarrollo (eliminación de la recursividad múltiple redundante) Explicitar otras decisiones de diseño (estructuras de datos auxiliares y comprobaciones en vuelta atrás)

18 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 18 Seminario “Enseñanza de la Programación” Objetivos de aprendizaje Algunas notas: –No son obligatorias todas las prácticas –Repensar el tema de algoritmos voraces: Aburrido –Uso de software educativo: Sistema de visualización de la recursividad Srec Sistema de experimentación con algoritmos voraces GreedEx

19 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 19 Seminario “Enseñanza de la Programación” Evaluación Cinco prácticas: 1.Introducción 2.Eliminación de recursividad redundante 3.Divide y vencerás 4.Experimentación con algoritmos voraces 5.Vuelta atrás Examen final

20 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 20 Seminario “Enseñanza de la Programación” Visualización de la recursividad

21 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 21 Seminario “Enseñanza de la Programación” Sistema SRec Recursividad: –Construcción fundamental en muchos algoritmos Sistema de visualización de la recursividad (SRec)

22 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 22 Sistema SRec Tres vistas: –Árbol de recursión –Pila de control –“Traza” Seminario “Enseñanza de la Programación”

23 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 23 Sistema SRec Técnica de divide y vencerás: Seminario “Enseñanza de la Programación”

24 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 24 Sistema SRec Técnica de divide y vencerás: Seminario “Enseñanza de la Programación”

25 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 25 Sistema SRec Técnica de programación dinámica: –Análisis de redundancia: Seminario “Enseñanza de la Programación”

26 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 26 Sistema SRec Trabajos futuros: –Revisión de la interfaz de usuario –Mejora y simplificación de las vistas –Ampliación para soportar algunas técnicas de diseño Seminario “Enseñanza de la Programación”

27 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 27 Seminario “Enseñanza de la Programación” Instrucción de los algoritmos voraces

28 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 28 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Técnica de diseño de algoritmos para resolver problemas de optimización Esquema de programación: Aprendizaje de algoritmos voraces public static {int} algVoraz ({int} candidatos) { for ({int} sol = {}; (candidatos!={}) && !(esSolucion(sol)); ) { int sig = seleccionar(candidatos); candidatos = candidatos – {sig}; if (esValida(sol  {sig})) sol = sol  {sig}; } return sol; }

29 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 29 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Aprendizaje tradicional, pasivo Ejemplo (problema de selección de actividades): Una solución válida: {3,8,2} Una solución óptima: {9,5,4,2} Función de selección óptima: –selección en orden creciente de finalización Demostración de optimidad Aprendizaje de algoritmos voraces

30 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 30 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Código: Orden de complejidad: O(n) Con la ordenación: O(nlogn) Aprendizaje de algoritmos voraces public static boolean[] selectActivs (int[] c, int[] f) { boolean[ ] s = new boolean [c.length]; s[0] = true; int i = 0; for (int j = 1 ; j >){ s[j] = true; i = j; } else s[j] = false; } return s; } public static boolean[] selectActivs (int[] c, int[] f) { boolean[ ] s = new boolean [c.length]; s[0] = true; int i = 0; for (int j = 1 ; j >){ s[j] = true; i = j; } else s[j] = false; } return s; }

31 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 31 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Esfuerzos preliminares Instrucción de algoritmos voraces: –Aprendizaje pasivo, como recetas –Difícil realizar actividades Sistemas de visualización de algoritmos: –Análisis de figuras de libros para varias técnicas de diseño de algoritmos: No hay representación común para los algoritmos voraces

32 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 32 Método experimental y GreedEx Método experimental: –Descubrir cuáles son las funciones de selección óptimas para cierto problema: partimos de un algoritmo voraz genérico identificamos y aplicamos diversas funciones de selección con el algoritmo genérico, y evaluamos la optimalidad de estas funciones de selección –Funciones “razonables” para el problema de selección de actividades: Por inicio / Por fin / Por duración /

33 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 33 Método experimental y GreedEx Aplicar las funciones de selección a ciertos datos de entrada:

34 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 34 Método experimental y GreedEx Aplicación a varios conjuntos de datos: –Acumulación de evidencia –Contrajemplos

35 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 35 Método experimental y GreedEx Sistema GreedEx:

36 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 36 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Método experimental y GreedEx Usabilidad de GreedEx: –5 evaluaciones de usuario final: Resultados generales (1-5): –Atención al apoyo a actividades docentes: Exportación de tablas y figuras

37 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 37 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Evaluación del método experimental Características de los productos generados (informes): –Problema: prácticas mal hechas, incluso malentendidos Factores distintivos de los informes: 1.Propuesta de estrategias subóptimas 2.Incoherencia del razonamiento 3.Criterio de optimización adicional: Maximizar ocupación de la sala Minimizar tiempo de espera 4.Propuesta dependiente de los datos de entrada

38 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 38 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Evaluación del método experimental Categorías encontradas: –Categorías viables: A1, A2 –Categorías casi viables: B –Categorías inviables: C, D, E, F

39 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 39 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Evaluación del método experimental Evolución de las categorías:

40 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 40 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Método instruccional Método instruccional final: –Método experimental –“Ayudante interactivo” GreedEx –Apuntes –Integración en la asignatura

41 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 41 Seminario “Enseñanza de la Programación” Asignatura de algoritmos avanzados

42 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 42 Seminario “Enseñanza de la Programación” Objetivos de la asignatura Asignatura “Algoritmos Avanzados”, 4º curso Temario: 1.Introducción 2.Algoritmos voraces 3.Algoritmos aproximados 4.Vuelta atrás 5.Ramificación y acotación 6.Eliminación de recursividad redundante 7.Programación dinámica 8.Algoritmos aproximados

43 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 43 Seminario “Enseñanza de la Programación” Objetivos de la asignatura Algunas notas: –Algoritmos de búsqueda: Repaso y aplicación de vuelta atrás a problemas de optimización Ampliación de ramificación y poda Panorama de otras variantes: –¿Sistematización? –Programación dinámica: No se incluye el diseño de las ecuaciones recursivas: –Sólo eliminación de recursividad y determinación de decisiones

44 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 44 Seminario “Enseñanza de la Programación” Objetivos de la asignatura Algunas notas: –Espiralado: Reafirmar y profundizar en técnicas conocidas Presentar técnicas relacionadas (o necesarias) Mismo problema para varias prácticas –Prácticas: Alineación completa de prácticas con lo explicado: –Sin examen final Pueden repetir las prácticas para corregir sus errores, subiendo su nota: –Aprendizaje y motivación –Trabajos de ampliación: Trabajos voluntarios para profundizar No reevaluables

45 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 45 Seminario “Enseñanza de la Programación” Objetivos de la asignatura Cinco prácticas: 1.Algoritmos voraces 2.Vuelta atrás y ramificación y acotación 3.Eliminación de recursividad redundante 4.Programación dinámica 5.Algoritmos aproximados Cuatro trabajos de ampliación: 1.Implementación eficiente de algoritmos voraces 2.Analizar e implementar un algoritmo de vuelta atrás 3.Generar soluciones únicas 4.Analizar e implementar un algoritmo de programación dinámica

46 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 46 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Modelos conceptuales de algoritmos voraces Preguntas: ¿porqué en unos algoritmos se ordenan los candidatos y en otros no? ¿es posible adaptarlos al esquema? Conclusión: –No todos los algoritmos voraces conocen sus candidatos desde el principio y sin cambiar Consecuencias sobre modelos conceptuales: –Esquema voraz más general –Explicitación del tratamiento eficaz de la selección de candidatos: ordenación, …

47 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 47 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Modelos conceptuales de algoritmos voraces Nuevo esquema, más general: –Estudio y diseño del nuevo modelo –¡Ya estaba descubierto! public static {int} algVoraz ({int} candidatos) { for ({int} sol = {}; (candidatos!={}) && !(esSolucion(sol)); ) { int sig = seleccionar(candidatos); candidatos = candidatos – {sig}; if (esValida(sol  {sig})) sol = sol  {sig}; } return sol; } public static {int} algVoraz ({int} problema) { {int} candidatos = extraer (problema); for ({int} sol = { }; (candidatos != { }) && !(esSolucion(sol)); ) { int sig = seleccionar(candidatos); candidatos = candidatos – {sig}; if (esValida(sol  {sig})) { sol = sol  {sig}; actualizar(candidatos,sig,problema); } return sol; }

48 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 48 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Modelos conceptuales de algoritmos voraces Ordenación de candidatos: –Problema práctico de difícil comprensión: ¿Usar aprendizaje por descubrimiento? Otros casos de selección eficiente de los candidatos: –Trabajo de ampliación

49 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 49 Seminario “Enseñanza de la Programación” Experimentación con optimalidad Experimentación con la optimalidad de los algoritmos aproximados: –Comparación con algoritmos óptimos y subóptimos: Diseñados con varias técnicas de diseño Falta de curiosidad de algunos alumnos por resultados contradictorios

50 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 50 Seminario “Enseñanza de la Programación” Trabajos futuros Posibles retos futuros: –Aprendizaje por descubrimiento de la ordenación de candidatos en algoritmos voraces –Sistematización de técnicas de búsqueda: Consultar bibliografía de IA y optimización –Aprendizaje de la corrección: Diseño de contraejemplos (todas las técnicas) Principio de vuelta atrás Principio de optimalidad (programación dinámica) Ampliación de correctores automáticos (tipo OptimEx) –Aprendizaje de la optimalidad: Mejorar la comparación entre técnicas exactas y aproximadas Ampliar OptimEx ¿Otras técnicas: algoritmo probabilísticos…?

51 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 51 Seminario “Enseñanza de la Programación” Asignatura de programación avanzada

52 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 52 Seminario “Enseñanza de la Programación” Objetivos de la asignatura Asignatura “Programación Avanzada”, 4º curso, ESPOCH Temario: 1.Introducción 2.Recursividad 3.Eliminación de la recursividad 4.Eficiencia de algoritmos 5.Divide y vencerás 6.Vuelta atrás

53 Programa Prometeo – Escuela Superior Politécnica de Chimborazo 53 Seminario “Enseñanza de la Programación” Objetivos de la asignatura Retos: –Recursividad: Aplicar conocimientos didácticos Evaluación de dificultades de alumnos Aprendizaje de técnicas de divide y vencerás y de vuelta atrás –Eficiencia de algoritmos: Conseguir aprendizaje más activo


Descargar ppt "Programa Prometeo – Escuela Superior Politécnica de Chimborazo 1 Máster Universitario en Informática Interactiva y Multimedia Ángel Velázquez Sesión 5:"

Presentaciones similares


Anuncios Google