2011-03-09 13 views
7

¿Alguien tiene alguna sugerencia sobre problemas que podría darles a mis alumnos como práctica de clase?Alguna idea sobre problemas de algoritmos INTERESANTES y ejemplos para mis estudiantes

Me gustaría darles algo que no sea aburrido, pero les hará pensar algorítmicamente y originalmente. Tal vez algunos problemas de la vida real?

Me gustaría poder motivarlos a TODOS, no solo a los superdotados. Y me gustaría hacer que trabajen juntos para resolver los problemas, así que estoy evitando problemas estadísticos estériles.

+0

¿Puede darnos un poco de información sobre la clase que está enseñando? Importa un poco si estás enseñando una clase de algoritmos de nivel graduado o una introducción general a la clase de programación en una escuela secundaria. –

Respuesta

12

Me parecen muy interesantes los algoritmos de retroceso para resolver el rompecabezas de las 8 reinas y los rompecabezas de Sudoku. Cuando mi TA ejecutó un código que resolvió un Sudoku y emitió la solución al rompecabezas, no había una persona en la sala que no estuviera ligeramente inspirada. Muchos de los ejemplos de varios algoritmos estadísticos relacionados están disponibles en http://inst.eecs.berkeley.edu/~cs188/sp11/lectures.html

El principal punto de interés para muchos de los algoritmos presentados en esta clase tiene que ver con el juego Pacman, usando A * para ayudar a Pacman a encontrar su camino a través de un laberinto o algoritmos que refuerzan Hidden Markov Models para ayudar a Pacman a evitar a sus enemigos. Esto para mí durante los estudios de pregrado fue una buena salida de los conjuntos de problemas estériles que muchos cursos son notorios.

+0

Un PathFinder (como en PacMan) siempre es interesante. :) – st0le

+0

consejos geniales y simples, vota, muchas gracias. – Eedoh

1

Bien ymmv si esto es interesante, pero ¿qué tal una metaprogramación? Por ejemplo, un ejercicio podría ser definir una sintaxis para definir tipos de datos y objetos de esos tipos, y luego escribir un programa (en algún lenguaje de implementación) que pueda a/escribir definiciones de esos tipos en algunos idiomas objetivo (por ejemplo, C y Python) yb/escribir bibliotecas de idiomas de destino para, digamos, imprimir, analizar, serializar y deserializar instancias de esos tipos de fecha, y tal vez c/escribir una interfaz gráfica de usuario para editar instancias de esos tipos de datos.

Cuestiones relacionadas