[Solar-educacion] proyectito

Ricardo H. Medel rmedel en cs.stevens-tech.edu
Mie Jun 9 06:45:34 CEST 2004


Webeando por la pagina de Gleducar vi que la seccion de Propuestas
Didacticas en el Area de Informatica esta vacia y se me ocurrio una idea
para empezar una propuesta didactica en la ense~anza de la programacion.

Lo comento aca para que me digan que les parece, si tiene algun
sentido/utilidad desarrollarla y cual seria el mejor lugar para hacerlo.

La idea es un curso muy corto sobre las cuestiones (muy) basicas de
programacion, orientada a la gente que no sabe nada del tema, como para
que vean que es eso de los "programas" que "ejecutan" las computadoras y
porque esos bichos son tan inteligentes. :)

Esta basado en una idea que encontre hace a~os (en 1990, creo) en un
articulo y que luego desarrolle con una colega. Implementamos la idea como
las primeras lecciones de programacion de los alumnos de primer a~o de
computacion de la Univ Nac de San Luis, y luego yo volvi a usar la idea
para algunos ejercicios en primer a~o de las carreras de computacion de la
Univ Nac de Rio Cuarto. Pero en este caso los objetivos son otros y los
apuntes originales se perdieron, asi que seria un curso distinto.

La idea es usar un lenguaje de programacion muy simple para escribir
programas que guien a un ente dentro de un laberinto. Los laberintos son
bidimensionales y deben tener una entrada y al menos una salida, y debe
haber al menos un camino posible entre la entrada y la salida (de ultima
la entrada puede servir como salida tambien). En cierto sentido es similar
a "Karel the robot", pero es un lenguaje mas simple y el objetivo final es
otro: mostrar que por un lado las computadoras responden a secuencias de
ordenes muy simples, pero que al mismo tiempo siguiendo esas ordenes
simples pueden tener "comportamientos" que nos parecen inteligentes o muy
avanzados.

El programa del curso incluiria introducir las instrucciones basicas
(PASO, GIRO DER), luego explicar la posibilidad de crear nuevas
instrucciones por medio de subrutinas (sin parametros). Por ejemplo:

GIRO IZQ:
  GIRO DER
  GIRO DER
  GIRO DER
FIN GIRO IZQ

Luego introducir condiciones (PARED?, AFUERA?, NO condicion) y las
estructuras de control condicion (SI-ENTONCES-SINO) y ciclo (MIENTRAS).

Todo esto salpicado con muchos ejercicios y tratando de que los alumnos
deduzcan que instrucciones o estructuras de control necesitarian para
hacerse la vida mas facil, en vez de meterselas como una pildora que hay
que tragar.

Y despues llega el gran final: el algoritmo que resuelve CUALQUIER(*)
laberinto:

PRINCIPAL:
  PASO
  MIENTRAS NO AFUERA?
    GIRO DER
    MIENTRAS PARED?
      GIRO IZQ
    PASO
FIN PRINCIPAL

Que les parece? Vale la pena? Habria que hacer los apuntes y un sistemita
que como minimo interprete los programas escritos en este lenguaje. No
tengo demasiado tiempo libre, pero algo le puedo dedicar.

Avisen si ya esta hecho!!

Ricardo H. Medel
Stevens Institute of Technology
-----------------------------------------
(*) El laberinto tiene que estar bien formado y el ente debe estar en el
estado inicial tipico: un paso afuera de la celda de entrada.



Más información sobre la lista de distribución Solar-educacion