Programación mediante diseño<br />Innovar la enseñanza y el aprendizaje de la computación<br />05/10/2011<br />1<br />
Impulsado por el PLT, busca ampliar en órdenes de magnitud el alcance de la enseñanza de la computación<br />05/10/2011<br...
Enseñar a programar con base en la aritmética y el álgebra es la mejor forma de demostrar la profundidad, amplitud y belle...
Introducir la enseñanza de la programación empleando lenguajes profesionales ni hace justicia a la computación ni atrae a ...
Desde la educación  media hasta el doctorado<br />05/10/2011<br />5<br />
En nivel secundaria parte de la solución computacional de problemas que habitualmente aburren a los estudiantes<br />05/10...
Cuánto avanza un cohete que asciende a velocidad constante<br />05/10/2011<br />7<br />
Pero con aritmética de imágenes<br />05/10/2011<br />8<br />
¿Cómo la aritmética de imágenes se parece a la aritmética de números? <br />05/10/2011<br />9<br />
¿Cómo una función que relaciona la velocidad con la altura de un cohete es igual a una animación?<br />05/10/2011<br />10<...
Inicialmente, se requiere convertir un estado a una imagen<br />05/10/2011<br />11<br />
Se requiere un lenguaje que soporte aritmética y álgebra de imágenes<br />05/10/2011<br />12<br />
Si se tiene un estado inicial con un determinado valor, se requiere que con cada tic del reloj cambie el estado, y que con...
p. e.	(big-bang 	0<br />          			[on-tick add1]<br />          			[to-draw altura])<br />05/10/2011<br />14<br />
Mejor: 	       (big-bang 	100<br />          			[on-tick sub1]<br />          			[to-draw altura])<br />05/10/2011<br />15...
Donde la representación de eventos con el teclado y el ratón es:<br />05/10/2011<br />16<br />
(big-bang 	estado0<br />	(on-key manejador-teclas)<br />(to-drawrender-imágenes))<br />05/10/2011<br />17<br />
(big-bang 	estado0<br />		(on-mouse manejador-eventos-ratón)<br />(to-drawrender-imágenes))<br />05/10/2011<br />18<br />
;;  Mundo EventoTecla -> Mundo<br />(define (manejador-mundo mundo-actual tecla) … )<br />05/10/2011<br />19<br />
Un video juego puede ser:<br /> 1. algo como estado inicial del mundo<br /> 2. con el que con cada tic se calcule el estad...
¿Esto motiva a los estudiantes, los beneficia?<br />05/10/2011<br />21<br />
Sí, ya que pronto escriben videojuegos sencillos mediante sólo matemáticas de secundaria como lenguaje de programación<br ...
Ver http://www.bootstrapworld.org/<br />05/10/2011<br />23<br />
Quienes pronto buscan más matemáticas: funciones condicionales, geometría, trigonometría, analítica, entre otras. Mejorand...
Al mismo tiempo que buscan programar más y mejor con estructuras, vectores, uniones, listas, gráficas, árboles y funciones...
…y módulos, clases, objetos, así como otros medios de organización,  …<br />05/10/2011<br />26<br />
…pasando de una programación divertida con matemáticas simples al diseño sistemático de programas…<br />05/10/2011<br />27...
…demandando diversos lenguajes de programación y recetas de diseño…<br />05/10/2011<br />28<br />
Estas ideas se plantearon inicialmente en lenguajes que en su momento estuvieron de moda: C++ y Scheme<br />05/10/2011<br ...
Igualmente se pudieron plantear en Basic, Java, JavaScript, Python o Ruby onRails… sin embargo,<br />05/10/2011<br />30<br />
… en todos surgen problemas graves en el reporte de errores o de sintaxis, pues presuponen un programador profesional que ...
Aprender sistemáticamente diseño de programas requiere una serie de lenguajes de enseñanza que no coinciden con un lenguaj...
Además de requerirse indicaciones de las fases de cómo pasar de la declaración del problema  a la formulación computaciona...
Fases que permitan ver en cuál está un estudiante y si está atorado como resolver dicha situación<br />05/10/2011<br />34<...
Desde un inicio se requiere aprender un proceso de diseño sistemático de programas<br />05/10/2011<br />35<br />
Se requieren orientaciones de diseño (recetas) que correlacionen la forma de los datos con dichas fases<br />05/10/2011<br...
Datos atómicos, enumeraciones, estructuras, uniones, recursivos o mutuamente recursivos…<br />05/10/2011<br />37<br />
Correlacionados con el problema, acompañados de la declaración de propósito y de contrato, con ejemplos funcionales, forma...
Se requiere soporte de pruebas automáticas…<br />05/10/2011<br />39<br />
No es problema de programar en un lenguaje “X”, sino de vincular las matemáticas con el diseño de programas<br />05/10/201...
Alinear la ‘rogramación con la ‘ritmética, conduciendo al diseño sistemático en cualquier lenguaje, a principios sólidos d...
05/10/2011<br />42<br />
Próxima SlideShare
Cargando en…5
×

Programación mediante diseño1

267 visualizaciones

Publicado el

Publicado en: Educación
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
267
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
1
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Programación mediante diseño1

  1. 1. Programación mediante diseño<br />Innovar la enseñanza y el aprendizaje de la computación<br />05/10/2011<br />1<br />
  2. 2. Impulsado por el PLT, busca ampliar en órdenes de magnitud el alcance de la enseñanza de la computación<br />05/10/2011<br />2<br />
  3. 3. Enseñar a programar con base en la aritmética y el álgebra es la mejor forma de demostrar la profundidad, amplitud y belleza del cómputo<br />05/10/2011<br />3<br />
  4. 4. Introducir la enseñanza de la programación empleando lenguajes profesionales ni hace justicia a la computación ni atrae a los estudiantes a la misma<br />05/10/2011<br />4<br />
  5. 5. Desde la educación media hasta el doctorado<br />05/10/2011<br />5<br />
  6. 6. En nivel secundaria parte de la solución computacional de problemas que habitualmente aburren a los estudiantes<br />05/10/2011<br />6<br />
  7. 7. Cuánto avanza un cohete que asciende a velocidad constante<br />05/10/2011<br />7<br />
  8. 8. Pero con aritmética de imágenes<br />05/10/2011<br />8<br />
  9. 9. ¿Cómo la aritmética de imágenes se parece a la aritmética de números? <br />05/10/2011<br />9<br />
  10. 10. ¿Cómo una función que relaciona la velocidad con la altura de un cohete es igual a una animación?<br />05/10/2011<br />10<br />
  11. 11. Inicialmente, se requiere convertir un estado a una imagen<br />05/10/2011<br />11<br />
  12. 12. Se requiere un lenguaje que soporte aritmética y álgebra de imágenes<br />05/10/2011<br />12<br />
  13. 13. Si se tiene un estado inicial con un determinado valor, se requiere que con cada tic del reloj cambie el estado, y que con cada cambio se dibuje el estado siguiente<br />05/10/2011<br />13<br />
  14. 14. p. e. (big-bang 0<br /> [on-tick add1]<br /> [to-draw altura])<br />05/10/2011<br />14<br />
  15. 15. Mejor: (big-bang 100<br /> [on-tick sub1]<br /> [to-draw altura])<br />05/10/2011<br />15<br />
  16. 16. Donde la representación de eventos con el teclado y el ratón es:<br />05/10/2011<br />16<br />
  17. 17. (big-bang estado0<br /> (on-key manejador-teclas)<br />(to-drawrender-imágenes))<br />05/10/2011<br />17<br />
  18. 18. (big-bang estado0<br /> (on-mouse manejador-eventos-ratón)<br />(to-drawrender-imágenes))<br />05/10/2011<br />18<br />
  19. 19. ;; Mundo EventoTecla -> Mundo<br />(define (manejador-mundo mundo-actual tecla) … )<br />05/10/2011<br />19<br />
  20. 20. Un video juego puede ser:<br /> 1. algo como estado inicial del mundo<br /> 2. con el que con cada tic se calcule el estado siguiente, e.s.<br />3. y/o con el que con cada evento tecla se calcule el e.s.<br />4. y/o con el que con cada evento mouse se calcule el e.s.<br />5. y con el que cada evento, se calcule la imagen correspondiente<br />05/10/2011<br />20<br />
  21. 21. ¿Esto motiva a los estudiantes, los beneficia?<br />05/10/2011<br />21<br />
  22. 22. Sí, ya que pronto escriben videojuegos sencillos mediante sólo matemáticas de secundaria como lenguaje de programación<br />05/10/2011<br />22<br />
  23. 23. Ver http://www.bootstrapworld.org/<br />05/10/2011<br />23<br />
  24. 24. Quienes pronto buscan más matemáticas: funciones condicionales, geometría, trigonometría, analítica, entre otras. Mejorando su desempeño en ellas.<br />05/10/2011<br />24<br />
  25. 25. Al mismo tiempo que buscan programar más y mejor con estructuras, vectores, uniones, listas, gráficas, árboles y funciones que producen y consumen funciones.<br />05/10/2011<br />25<br />
  26. 26. …y módulos, clases, objetos, así como otros medios de organización, …<br />05/10/2011<br />26<br />
  27. 27. …pasando de una programación divertida con matemáticas simples al diseño sistemático de programas…<br />05/10/2011<br />27<br />
  28. 28. …demandando diversos lenguajes de programación y recetas de diseño…<br />05/10/2011<br />28<br />
  29. 29. Estas ideas se plantearon inicialmente en lenguajes que en su momento estuvieron de moda: C++ y Scheme<br />05/10/2011<br />29<br />
  30. 30. Igualmente se pudieron plantear en Basic, Java, JavaScript, Python o Ruby onRails… sin embargo,<br />05/10/2011<br />30<br />
  31. 31. … en todos surgen problemas graves en el reporte de errores o de sintaxis, pues presuponen un programador profesional que conoce suficientemente el lenguaje<br />05/10/2011<br />31<br />
  32. 32. Aprender sistemáticamente diseño de programas requiere una serie de lenguajes de enseñanza que no coinciden con un lenguaje profesional<br />05/10/2011<br />32<br />
  33. 33. Además de requerirse indicaciones de las fases de cómo pasar de la declaración del problema a la formulación computacional de una solución<br />05/10/2011<br />33<br />
  34. 34. Fases que permitan ver en cuál está un estudiante y si está atorado como resolver dicha situación<br />05/10/2011<br />34<br />
  35. 35. Desde un inicio se requiere aprender un proceso de diseño sistemático de programas<br />05/10/2011<br />35<br />
  36. 36. Se requieren orientaciones de diseño (recetas) que correlacionen la forma de los datos con dichas fases<br />05/10/2011<br />36<br />
  37. 37. Datos atómicos, enumeraciones, estructuras, uniones, recursivos o mutuamente recursivos…<br />05/10/2011<br />37<br />
  38. 38. Correlacionados con el problema, acompañados de la declaración de propósito y de contrato, con ejemplos funcionales, formatos o esquemas, codificación y pruebas.<br />05/10/2011<br />38<br />
  39. 39. Se requiere soporte de pruebas automáticas…<br />05/10/2011<br />39<br />
  40. 40. No es problema de programar en un lenguaje “X”, sino de vincular las matemáticas con el diseño de programas<br />05/10/2011<br />40<br />
  41. 41. Alinear la ‘rogramación con la ‘ritmética, conduciendo al diseño sistemático en cualquier lenguaje, a principios sólidos de ingeniería de software…a la investigación en lenguajes de programación.<br />05/10/2011<br />41<br />
  42. 42. 05/10/2011<br />42<br />

×