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