You are on page 1of 6

Aprendizaje de la programacin en la escuela secundaria Argentina

El Consejo Federal de Educacin Argentina declar de importancia estratgica para el sistema


educativo argentino la enseanza y el aprendizaje de la Programacin en todas las escuelas
argentinas con el fin de fortalecer el desarrollo y social de la Nacin. Con este plan se espera
la ubicacin del pas dentro de un selecto grupo de naciones que dan un lugar crucial al
aprendizaje y la enseanza de la programacin como una herramienta clave para la
construccin de ms y mejor ciudadana.

Popularmente, se define a la programacin como al proceso de escribir, testear,


debuggear y mantener el cdigo de programas de computadoras. Sin embargo, la
programacin abarca mucho ms, por ejemplo, tambin incluye la habilidad para resolver
problemas complejos o abstraer conceptos. Asimismo, la formacin en la competencia de
resolucin de problemas puede resultar muy importante en el mundo laboral. En este
contexto, surgen las preguntas de Se espera que los alumnos sean programadores o que
sepan resolver problemas? Se espera que los alumnos solo sean capaces de resolver los
problemas planteados o que puedan aplicar dichos conocimientos para dar solucin a
problemas de la vida real?

Diversos estudios afirman que aprender a programar no es fcil, y que quienes se


inician en la programacin a menudo cometen errores de interpretacin e incorporan
conceptos errneos. De esta forma, resulta de vital importancia analizar las diferentes
alternativas de enseanza posibles. La enseanza de la programacin puede abordarse desde
diversos puntos de vista. A continuacin se ejemplifican algunos de ellos. Primero, puede
optarse por una enseanza instruccionista, en la que el nfasis se encuentra en el cdigo a
producir y no en los procesos de bsqueda de solucin a los problemas. En este caso, la
enseanza se orienta a la descripcin de los diferentes elementos sintcticos que componen
el lenguaje elegido y a presentar ejemplos de uso. Esta estrategia de enseanza tiene el
problema de que la herramienta o lenguaje elegido puede interferir en la interiorizacin de
los conceptos. No es deseable que los alumnos utilicen la herramienta pero que no hayan
aprendido los conceptos, o peor, que crean que entendieron los conceptos porque son
capaces de utilizar el entorno de desarrollo y escribir lneas de cdigo sintcticamente
correctas, pero incorrectas desde un punto de vista semntico.
Segundo, puede optarse por un enfoque algortmico, en el cual se intenta que los
alumnos desarrollen estrategias que les permitan encontrar la solucin a los problemas
planteados. En este caso, se parte de un problema, se busca la solucin y se la modela, sin
hacer nfasis en los lenguajes o software para usos especficos. Este tipo de estrategia puede
resultar tediosa para los alumnos, dado que no implica la utilizacin de una computadora. Las
dificultades que pueden surgir a partir de este tipo de estrategias se relacionan con la
traduccin de los razonamientos correctos en un conjunto de instrucciones de programacin
para que sean ejecutadas por la computadora.
Tercero, un enfoque problmico en el que se hace nfasis en la creacin de situaciones
problemticas que permitan crear la necesidad de adquirir nuevo conocimiento informtico
que ser luego el objeto de estudio. En este caso, se parte de un problema como medio para
la bsqueda de nuevo conocimiento informtico. Luego, una vez que dicho conocimiento es
adquirido, se realizan prcticas para la fijacin del mismo.
Como se ha expuesto, cada uno de los diferentes puntos de vista para la enseanza
de programacin tiene sus ventajas y desventajas. De esta forma, cada una de las diferentes
alternativas de enseanza puede dar lugar a situaciones problemticas o dificultades en los
alumnos. Dichas dificultades pueden deberse a situaciones anteriores al momento de la
enseanza de la programacin que condicionan las estructuras de los alumnos (por ejemplo,
la ausencia de modelos mentales, malas costumbres en el uso de la computadora antes de la
adquisicin de buenas prcticas de programacin o falta de conocimientos previos
matemticos, lgicos); motivacin de los alumnos (encontrar la utilidad de lo que se est
diseando, que les resulte aburrido); a actitudes de los docentes (por ejemplo, falta de
estrategias de enseanza o propuesta de actividades sin un objetivo o contexto especfico).
Asimismo, los alumnos tambin podran encontrarse con dificultades propias del aprendizaje,
como ser complejidad de las estructuras de control a utilizar, dificultades notacionales (por
ejemplo, el aprendizaje de los diferentes aspectos sintcticos y semnticos del lenguaje a
utilizar), dificultad en la compresin de los problemas, o dificultades al momento de disear
los algoritmos.
En lo que respecta a la semntica y a la adquisicin de competencias para la resolucin
de problemas, es posible que los alumnos tengan puntos de vista limitados o locales, lo que
puede desencadenar en el diseo de algoritmos errneos. Incluso, puede suceder que los
alumnos aun encontrando una solucin prctica a los problemas, fallen en programar,
corregir o mejorar dicha solucin. Esto puede deberse a que los alumnos no son capaces de
traducir sus intuiciones mentales en una forma comunicativa, o de dejar de lado la
subjetividad del pensamiento que dio lugar al desarrollo para concentrarse en la solucin
programtica objetiva. Finalmente, dificultades en el testing de lo programado (por ejemplo,
suele ser difcil que los alumnos encuentren ejemplos de los diferentes casos para los que el
algoritmo diseado debe funcionar).

En este contexto, el problema que se desea abordar es la existencia de las


problemticas que pueden surgir en la escuela secundaria argentina al momento de ensear
programacin. En particular, se desea estudiar cules son las dificultades que los alumnos
enfrentan durante los diferentes estadios del aprendizaje. Es decir, problemticas iniciales
(presentacin de la actividad de programacin, conceptos bsicos), problemticas
directamente relacionadas con el aprendizaje en s (dificultades en el diseo de algoritmos,
estructuras de control), instancias de evaluacin (qu hacen los alumnos cuando tienen que
trabajar solos), y finalmente, dificultades que impiden la adquisicin de las competencias de
programacin (por ejemplo, adquisicin de la capacidad de abstraccin).

Los resultados de este estudio permitirn arrojar algo de luz acerca de las cuestiones
inherentes al aprendizaje de la programacin en las escuelas secundarias argentinas que
producen dificultades en los alumnos. En ltima instancia, este estudio podr servir de gua
para la elaboracin de estrategias educativas que den lugar a una enseanza ms efectiva de
la temtica, reduciendo las potenciales dificultades y problemas de los alumnos.

Preguntas de Investigacin
Cmo es el proceso de aprendizaje de la programacin en la escuela secundaria? De
qu manera los alumnos modelan problemas reales a travs de la programacin?
Cules son las dificultades que los alumnos enfrentan cuando se les ensea a
programar?
Qu estrategias utilizan los alumnos para resolver los problemas? (comparan,
buscan ejemplos, consultan con compaeros, consultan con el docente)
Cules son los conceptos que presentan ms dificultades para los alumnos?
(concepto de variable, estructuras iterativas, estructuras condicionales)
Cules son los momentos en que se presentan dificultades durante el aprendizaje de
la programacin?
Cules dificultades se presentan cuando se inicia la explicacin?
Cules dificultades se presentan al resolver ejercicios sin la ayuda
permanente del docente?
Existen dificultades adicionales en el momento de la evaluacin?
A qu responden las dificultades que enfrentan los alumnos?
Las dificultades se relacionan con la forma de dictar clase del docente?
Expresan los alumnos frustracin por no comprender al docente?
Los alumnos presentan dificultades al desconocer conceptos elementales
necesarios para el aprendizaje de la programacin?
Los andamios propuestos por el docente son acorde a las dificultades que presenten
los alumnos?
Cmo el docente adapta dichos andamios con el objetivo de reducir las
dificultades de los alumnos?

Objetivos

El objetivo principal de este trabajo es describir los procesos que se utilizan durante el
aprendizaje de los primeros rudimentos de programacin en la escuela secundaria. Como es
ampliamente reconocido [1,3], el aprendizaje de la programacin requiere el manejo de
diversos conceptos que pueden dificultar el mismo. Por un lado, la programacin debe tener
un contexto, es decir, un problema que se quiera modelar. En caso de que el problema no
haya sido seleccionado correctamente, existe la posibilidad de que el alumno se concentre
ms en entender el problema que en modelarlo correctamente para luego programarlo. El
segundo paso, es desarrollar el modelo del problema en trminos formales, es decir,
encontrar un modelo matemtico del problema a resolver. Finalmente, est el proceso de
codificar el modelo que d lugar a un programa para ser ejecutado por la computadora.

Un segundo objetivo es estudiar el proceso por el cual los alumnos desarrollan el


modelo del problema. Como se mencion anteriormente, el desarrollo de este modelo
requiere la utilizacin de herramientas matemticas. En el contexto de la escuela argentina,
esto puede representar un reto debido a los pre-conceptos sobre la matemtica. Por ejemplo,
se ha mostrado que existen diversos aspectos que tienen una correlacin significativa con el
desempeo de los alumnos en matemtica [2], por ejemplo los estudiantes de sexo femenino
tienen una performance menor que sus compaeros masculinos. Sin embargo, el estudio no
clarifica si la correlacin de estas variables es accidental, por ejemplo, resultado de un sesgo
de expectativa, o causal. En este sentido, una de las principales preguntas a contestar es cul
es el efecto de explicitar que el modelo es matemtico.

Un tercer objetivo es comprender cmo el alumno interacta con la computadora.


Hoy en da, los alumnos de la escuela secundaria son considerados nativos digitales, ya que
han nacido rodeados de tecnologas digitales, como son las computadoras y los celulares, de
forma que se asume que estn acostumbrados a utilizarlos. En consecuencia, muchos de los
alumnos se consideran expertos en computacin. Sin embargo, su experticia en la
computacin se limita a una utilizacin de dichos dispositivos desde un punto de vista de
usuario. Son capaces de navegar por Internet, escuchar msica, utilizar herramientas de chat
o redes sociales; pero no comprenden como dichas herramientas funcionan. Por ejemplo,
difcilmente un nativo digital sepa qu es el cdigo binario, el protocolo TCP/IP, o la diferencia
entre memoria RAM y ROM. En este sentido, aprender a programar introducir al alumno en
un rea sobre la cual no tiene conocimientos, aun cuando se consideraba experto, de modo
que se presenta la posibilidad de que los alumnos experimenten frustraciones.

Un cuarto objetivo es determinar cmo los alumnos comprenden el nivel de


abstraccin de los lenguajes. En este sentido, es importante destacar que existen diversos
lenguajes que se utilizan para ensear en la escuelai. De acuerdo con la fundacin Sadosky,
es desaconsejable utilizar lenguajes de propsito general como C++ o VisualBasic, aunque en
el mismo texto recomiendan la utilizacin de Python, Smaltalk, Haskell, o incluso Java y C a
travs de la herramienta Mumuki. En consecuencia, puede decirse que no se proveen guas
confiables acerca de qu herramientas o lenguajes utilizar. Esto probablemente se deba al
desconocimiento de cmo los alumnos aprenden los lenguajes o cmo hacen propios los
conceptos de los diversos paradigmas y tcnicas, entre otras cuestiones. Por ejemplo,
lenguajes de alto nivel cmo Java o Python proveen conceptos como objetos que ayudan a
simular mejor la realidad, mientras que lenguajes de bajo nivel como C proveen acceso al
funcionamiento interno del hardware. En este sentido, Java o Python ocultan muchas tareas
como la administracin de memoria, abstrayendo a los programadores, en este caso los
alumnos, de cmo se asigna y libera dicho recurso. En cambio, si se utiliza C, los
programadores tienen un control ms fino de los recursos, requiriendo as un conocimiento
ms acabado del funcionamiento de los recursos. De esta forma, adems de modelar el
problema, los alumnos tienen que determinar la administracin de recursos, lo que puede
resultar en un proceso de aprendizaje ms complejo y propenso a errores.

El quinto objetivo es analizar de qu manera los alumnos son capaces de integrar


todos los conceptos para resolver nuevos problemas mediante la programacin. En este
objetivo se integran todos los objetivos anteriores, desde la compresin de un problema y su
modelado, hasta el diseo de una solucin basada en el modelo que pueda ser implementada
utilizando el lenguaje de programacin seleccionado.

Metodologa

En un primer paso se seleccionarn cursos de secundario que tengan en su currcula algn


contenido de programacin. De los cursos candidatos sern evaluados sus contenidos,
objetivos, y las herramientas que el docente propone utilizar; con el fin de observar diversas
tcnicas de enseanza y herramientas. Se tendr especial cuidado en seleccionar cursos con
un nivel socio-econmico similar, para minimizar variaciones introducidas por dichos
factores.

Como primera medida, se realizarn entrevistas semi-estructuradas a los alumnos con


el objetivo de analizar cules son las expectativas con respecto al curso, qu tipos de usuarios
de tecnologas digitales son, y qu conocimientos creen poseer. Por otra parte, se conducirn
entrevistas abiertas con los docentes para conocer sus expectativas y diagnosticar qu
problemas o dificultades esperan encontrar durante el curso.

Con el objetivo de analizar la clase y los procesos docentes y del alumno, se registrarn
las clases impartidas. De preferencia se realizar una grabacin de audio con el objetivo de
registrar no solo el contenido que dio le docente, sino cmo los alumnos reaccionaron a dicho
contenido y qu preguntas realizaron durante el dictado de la clase. Con respecto a las
actividades prcticas, el registro depender del tipo de actividad prctica que se realice. En
caso de ser actividades en grupos se registrar no solo el uso de la computadora (en caso de
ser actividades en computadora), sino tambin las interacciones entre los miembros del
grupo entre s y con el docente. En el caso de actividades individuales, se registrar las
interacciones en la clase con el objetivo de determinar cmo se comportan los alumnos
cuando se supone que no deberan interactuar, qu tipo de informacin intercambian y cules
son los motivos de estas interacciones. Por otro lado, se registrarn las distintas actividades
que fueran realizadas por los alumnos, es decir, los apuntes que tomaron y las resoluciones
de los ejercicios prcticos. Con dicho material se intentarn recrear los procesos de
aprendizaje que ocurren en el alumno. Se espera poder observar de qu manera estos
procesos se nutren de los procesos docentes y de los procesos de aprendizaje de otros
alumnos. A su vez, se espera poder determinar qu procesos disruptivos existen dentro del
aula y potenciales estrategias para mitigar sus consecuencias negativas.

Al finalizar el curso, se realizar una evaluacin de los conocimientos adquiridos. La


evaluacin contendr ejercicios cuyo objetivo ser determinar la capacidad del alumno para
mapear un problema a un modelo y viceversa. Otro punto a evaluar, ser como el alumno
mapea un modelo a un programa ejecutable por la computadora. Finalmente, se evaluar un
ejercicio donde al alumno se le describe un problema y este debe inferir el modelo, proponer
un diseo e implementar un programa acorde. Para la evaluacin del cdigo resultante, se
utilizar tanto una evaluacin humana, as como tambin deteccin de malas prcticas en el
cdigo y mtricas de cdigo utilizando herramientas de anlisis esttico de cdigo.

Finalmente, se realizar otra entrevista semi-estructurada a los alumnos para


determinar cul es su opinin del curso, si sus expectativas fueron cumplidas y qu clase de
conocimientos creen que poseen sobre el tema del curso. Los resultados de estas encuestas
sern cotejados con los resultados de las encuestas realizadas antes del curso. Tambin se
realizarn las encuestas a los docentes con el objetivo de analizar su opinin sobre el curso y
si cree que los objetivos propuestos han sido alcanzados por los alumnos.
Referencias

[1] Brooks R. Towards a theory of the cognitive processes in computer programming,


International Journal of Human-Computer Studies, Volume 51, Issue 2, 1999, Pages 197-211,
ISSN 1071-5819

[2] Cervini, R. Desigualdades Socioculturales en el Aprendizaje de Matemtica y Lengua de la


Educacin Secundaria en Argentina:Un modelo de tres niveles. Revista ELectrnica de
Investigacin y EValuacin Educativa, v. 8, n. 2.

[3] Saeli, M.; Perrenet, J.; Jochems, W. M. G. & Zwaneveld, B. (2011), 'Teaching programming
in secondary school: A pedagogical content knowledge perspective.', Informatics in
Education 10 (1) , 73-88 .

i
http://program.ar/herramientas-secundaria/

You might also like