Page 53 - revista 2019
P. 53

Revista de la Facultad de Ingeniería, Año 6, Número 1
            Este programa expresa la misma solución dada anteriormente por el estudiante, pero
            ahora utilizando la sintaxis de C++. Se utiliza un arreglo para representar la calle con
            N puertas, donde el valor dentro de cada celda representa la cédula de la persona que
            vive  en  la  casa  correspondiente  (los  índices  de  los  arreglos  en  C++  pertenecen  al
            rango que va de 0 a N-1). El programa dice:

                   boolean encontre = FALSE;

                   int i = 0;
                   while ((encontre == FALSE) && (i <= N-1)) {

                          if (arre[i] == cedula) {
                                  encontre = TRUE;
                          } else {

                                  i = i + 1;
                          }

                   }
            Al  igual  que  en  el  caso  del  pasaje  de  la  descripción  en  lenguaje  natural  a
            pseudocódigo,  la  mayoría  de  los  estudiantes  participantes  no  escribió  una  versión
            formal  en  C++  correctamente  en  el  primer  intento.  Tuvieron  tanto  problemas  de
            sintaxis  (por  ejemplo,  expresar  incorrectamente  las  condiciones  lógicas  de  la
            estructura  while),  como  de  ejecución  (por  ejemplo:  olvidar  avanzar  a  la  siguiente
            celda mediante la instrucción: i = i + 1). Para superar los problemas de sintaxis, se le
            pidió  al  estudiante  que  compilase  su  programa  en  la  computadora,  a  efectos  de
            analizar  los  errores  dados  por  el  compilador.  Para  superar  los  problemas  de
            ejecución, se le pidió nuevamente volver al plano de la acción, mediante la ejecución
            manual del programa (una vez más, como si fuera un robot), dibujando el arreglo con
            valores que representan las cédulas de las personas y una flecha que señale la celda
            en la que actualmente se encuentra el índice representado por la variable i). También
            se  le  pidió  que  ejecute  su  programa  en  la  computadora  (tras  haber  compilado
            correctamente).

            Conclusión

            En  todos  los  casos,  los  estudiantes  lograron  completar  exitosamente  el  pasaje  de
            lenguaje  informal  a  lenguaje  formal  en  el  experimento  propuesto.  Fue  necesario
            volver al plano de la acción (en algunos casos más veces y en otros menos veces) a
            efectos de que los estudiantes tomasen conciencia (conforme a lo previsto por la ley
            general de la cognición de Piaget) de que las acciones realizadas no se correspondían
            con lo escrito (tanto en la descripción en lenguaje natural, como en el algoritmo en
            pseudocódigo y finalmente en el programa en C++). La vuelta a la acción demostró
            ser  clave  a  la  hora  de  construir  conocimiento  sobre  el  algoritmo  en  cuestión  y
            permitió, mediante aproximaciones sucesivas, que los estudiantes pudieran resolver
            el  problema  en  forma  satisfactoria  y  expresarlo  formalmente  en  un  lenguaje  de
            programación.
            El  experimento  dejó  en  evidencia  los  beneficios  que  presenta  la  utilización  de  un
            enfoque  constructivista  para  el  aprendizaje  conceptos  de  programación.  No
            solamente a la hora de conceptualizar el algoritmo y expresarlo de manera informal
            (descripción  en  lenguaje  natural  y  pseudocódigo)  sino  también  a  la  hora  de
            expresarlo en un lenguaje formal (lenguaje de programación). Se espera perfeccionar
            a  mediano  plazo  las  pautas  didácticas  actualmente  utilizadas  en  el  curso  de




            52
   48   49   50   51   52   53   54   55   56   57   58