El método de Pólya para resolver problemas

George Pólya presentó en su libro Cómo plantear y resolver problemas (en inglés, How to solve it) un método de 4 pasos para resolver problemas matemáticos. Dicho método fue adaptado para resolver problemas de programación, por Simon Thompson en How to program it.

En la siguientes secciones mostramos los 4 pasos de ambos métodos, junto con sus correspondientes preguntas.
Read More “El método de Pólya para resolver problemas”

Los principios del programador

Hace unos días se ha publicado en Conocimiento Libre (o lo que está detrás del Software Libre) el artículo Los principios del programador, escrito en inglés por Daniel Read y traducido al castellano por Juan A. Romero.

En el artículo se comentan los siguientes principios de la programación:

  1. El principio del carácter personal que establece: escribir el código de forma que refleje, y saque a relucir, solo lo mejor del carácter personal del programador.
  2. El principio de la estética que establece: Esforzarse por conseguir la belleza y la elegancia en cada aspecto del trabajo.
  3. El principio de la claridad que establece: Darle el mismo valor a la claridad que a la corrección. Utilizar activamente técnicas que mejoran la claridad del código. La corrección vendrá casi por sí sola.
  4. El principio de la distribución que establece: Usar la distribución visual del código para comunicar la estructura del código a un lector humano.
  5. El principio de lo explícito que establece: Intentar siempre favorecer lo explícito sobre lo implícito.
  6. El principio de código auto-documentado que establece: La documentación más fiable para el software es el propio código. En muchos casos, el propio código es la única documentación. Por lo tanto, hay que esforzarse en hacer que el código sea auto-documentado, y allí donde no sea posible, añadir comentarios.
  7. El principio de los comentarios que establece: Comentar mediante frases completas para resumir y comunicar la intención.
  8. El principio de las suposiciones que establece: Dar los pasos que sean razonables para comprobar, documentar y prestar atención a las suposiciones hechas en cada módulo y rutina.
  9. El principio de la interfaz con el usuario que establece: No hacer nunca que el usuario se sienta estúpido.
  10. El principio de volver atrás que establece: El momento de escribir buen código es justamente el preciso momento en el que se está escribiendo.
  11. El principio de el tiempo y el dinero de otros que establece: Un verdadero profesional no gasta el tiempo ni el dinero de otras personas produciendo software que no esté razonablemente libre de fallos; que no esté mínimamente probado; que no cumpla con los requisitos establecidos; que esté falsamente adornado con características innecesarias; o que tenga un aspecto deplorable.

El artículo desarrolla los anteriores principios junto con consejos sobre la escritura de programas informáticos.

Competición de IA de Google

La Google AI Challenge de este año es sobre un juego con dos jugadores, el Tron, que es parecido al Snake.

Se puede participar en la competición programando la estrategia del juego en distintos lenguajes de programación, entre los que se encuentran Haskell y Common Lisp.

Esta competición puede utilizarse en distintas asignaturas que impartimos: