Está en la página 1de 8

CONSTRUCCIÓN – Semestre 01-2019

Fecha. Bucaramanga – Colombia

Developing software is not an easy matter

Desarrollar software no es una cuestión fácil


Autor1, Autor2, Autor3
1Afiliación. correo; 2Afiliación. correo; 3Afiliación. Correo.

INFORMACIÓN DEL ARTÍCULO ABSTRACT


Why is it so difficult to learn to develop software? This question has been trying to answer for
Tipo a long time, but has not yet found a solution to this issue. Moreover, it tends to confuse
Reflexión (Investigación, Revisión) development with programming, and this also creates problems to elucidate the question. In
an era in which urgently required improve the quality, and reliability, and safety of software
Disciplina ingenieril: (Revisar la lista it becomes urgent to potentiate or develop skills and abilities in professionals to meet these
en la página de la conferencia) needs. But students are not interested in making careers involving these concepts, they prefer
other less demanding and easier to achieve a certification. This article attempts to answer the
Historia question and present some suggestions for overcoming this difficulty.
Recibido: xx-xx-xxxx
Correcciones: xx-xx-xxxx RESUMEN
Aceptado: xx-xx-xxxx ¿Por qué es difícil aprender a desarrollar software? Este interrogante se ha intentado
responder desde hace mucho tiempo, pero todavía no se ha encontrado una solución a esta
Keywords cuestión. Además, se tiende a confundir desarrollo con programación, y esto también genera
Software development, problemas para dilucidar la pregunta. En una época en la que se requiere urgentemente
programming, programming tools. mejorar la calidad, la fiabilidad, y la seguridad del software se hace apremiante potencializar
o desarrollar habilidades y destrezas en los profesionales para atender estas necesidades.
Palabras clave Pero los estudiantes no están interesados en tomar carreras que involucren estos conceptos,
Desarrollo de software, prefieren otros de menos exigencias y con mayor facilidad para alcanzar una titulación. En
programación, herramientas de este artículo se intenta responder a la pregunta y se presentan algunas sugerencias para
programación. superar esa dificultad.
© 2016. IAI All rights reserved

1. Introducción sugiere que tal vez haya demasiados programadores hoy


La mayoría de personas tiene acceso, utiliza o depende de en día, pero muy pocos desarrolladores [3].
un sistema software, y el desarrollo de la actual sociedad
está sometido a los productos desarrollados en software. Para la mayoría ambas ocupaciones son lo mismo,
Con este panorama, ¿por qué el software no satisface programadores y desarrolladores, pero un excelente
plenamente a los usuarios? ¿Por qué sus productos trabajo de la RedLatinaIS [4, p. 20] aclara esta cuestión y
presentan falencias en seguridad y fiabilidad? ¿Por qué las determina las diferencias sustanciales entre ambas:
legislaciones no le prestan suficiente atención a este
asunto? En general, se podría encontrar mejores formas de Los programadores escriben buen código. Hacerlo bien y
desarrollar software, aminorar sus costos, y endurecer las limpio es un factor importante, pero a menudo tienen
políticas de seguimientos a estos productos. Pero el hecho prioridad otras cuestiones. Las habilidades matemáticas
son opcionales, aunque poseerlas les ayuda a ser
de que la programación gire en torno a personas, y que lo
conscientes de los problemas comunes y de las
lleven a cabo personas, dificulta llegar a soluciones soluciones relacionadas con el dominio, pero son
rápidamente. Programar puede ser sencillo, al menos es la primordiales las relacionadas con la comunicación y la
creencia popular, pero desarrollar es una cuestión de interacción social. Son generalistas sin un tipo de
ciencia y conocimiento, por eso es difícil. Por esto es que especialización verdaderamente profundo; son capaces
cada día menos estudiantes quieren ser desarrolladores. de encontrar caminos en torno a los problemas, y de
conectar diversos componentes para cumplir con una
Se necesitan más desarrolladores, y esto se ha convertido serie de requisitos. Su trabajo consiste en aplicar el
en un punto de controversia mundial. La Oficina de conocimiento que poseen, del lenguaje de programación,
para escribir código eficiente y eficaz, a la vez que
Estadísticas Laborales de los Estados Unidos predijo en
respetan los conceptos de calidad y de seguridad, y
2008 una enorme demanda de profesionales en responden al diseño que se ha construido desde la
informática [1]. De acuerdo con este informe, la demanda Ingeniería de Software.
de profesionales de TI de 2006 a 2016 será el doble de la
tasa de crecimiento del resto de la fuerza laboral. La Los desarrolladores escriben código de calidad. Hacerlo
estimación actualizada en noviembre de 2009 [2] predecía limpio, claro, bien factorizado y libre de errores son
que las ocupaciones en Informática y Matemáticas eran el cuestiones importantes que tienen en cuenta, y además
grupo ocupacional de más rápido crecimiento dentro del conocen el significado de buen código dentro de un
grupo principal de más rápido crecimiento. La estadística dominio. Tienen adecuados conocimientos en
de la cantidad de profesionales en TI desempleados matemáticas y en cómo buscar buenas soluciones para
los problemas; poseen amplios conocimientos en como él mismo concluye, el desarrollo de software es un
algoritmia y buenas habilidades en su área de experticia proceso netamente abstracto, y se requiere una mente
y las relacionadas; debido a que su trabajo se lógica para interpretarlo, modelarlo, y simularlo. Al
desenvuelve al interior de equipos multi-disciplinares,
parecer se debería comenzar por ahí para buscar que los
poseen buena capacidad de comunicación verbal y
escrita, y de interacción con otras personas. Son
estudiantes no abandonen estas disciplinas.
profesionales que contribuyen de diversas maneras para
que el producto software tenga éxito, y su trabajo 2. Aprender a desarrollar/programar
consiste en aplicar principios científicos e ingenieriles En la década de 1980 en la Universidad de Yale se utilizaba
para comprender, abstraer y moldear un problema, que reiteradamente un ejercicio el curso de programación en
se pueda resolver mediante un programa informático, Pascal [11]: Escribir un programa que sume
para luego aplicar una metodología con el objetivo de repetidamente números enteros positivos, e imprimir su
llevar a la práctica la solución creada, tradicionalmente promedio cuando lea el valor entero 99999. Conocido
soportada en código de lenguaje de programación. En
como el problema de la precipitación, se convirtió en uno
términos generales son responsables de aplicar procesos
de calidad en todo el ciclo de vida del software.
de los más estudiados en los primeros años de la
investigación en informática educativa. En el artículo de
Aunque puede no estar claro si la industria necesita más 1983, del que se toma la formulación presentada, el equipo
programadores o más desarrolladores, lo que sí es una de Yale estaba explorando cómo mejorar el rendimiento de
realidad es que muchos estudiantes comienzan por el los estudiantes en la solución del ejercicio, y se lo
camino de la programación y se desaniman rápidamente. presentaron a tres grupos diferentes: 1) estudiantes de
Las cifras de las altas tasas de deserción en los cursos primer semestre, que ya sabían utilizar los ciclos while,
introductorios de computación son comunes en la repeat, y for, 2) estudiantes de segundo semestre, que ya
literatura y en las discusiones en diferentes Congresos y habían recibido por lo menos un curso de estructuras de
Conferencias. Jens Bennedsen y Michael Caspersen [5] datos, y 3) estudiantes de tercer y cuarto año de
hicieron el primer intento razonable para averiguar lo que programación de sistemas.
realmente parecen las tasas de fracaso. Solicitaron datos a
profesores de todo el mundo a través de varias listas de En cada grupo la mitad de los estudiantes utilizó Pascal
correo de Ciencias Computacionales (CS). Más de 60 tradicional y la otra mitad tenía la oportunidad de utilizar
instituciones presentaron sus tasas de fracaso en estos otro lenguaje (C o Phyton). Los resultados, resumidos en la
cursos, lo que significa que estos datos son auto- Tabla 1, pueden sorprender: sólo el 14% de los estudiantes
seleccionados y auto-reportados. Por ejemplo, escuelas de primer semestre pudo resolverlo en Pascal, y el 30% de
con resultados realmente embarazosos pueden haber los estudiantes del segundo semestre no pudo resolverlo
optado por no participar, o mentir, y los resultados pueden en ningún lenguaje. Este estudio fue repetido en la
estar sesgados debido a que el muestreo era no-aleatorio. literatura varias veces [12, 13], formal e informalmente,
En general, el 35% de los estudiantes fracasan o se retiran sorprendente con resultados similares cada vez.
del primer curso. Por lo tanto, los indicios indican que
Tabla 1. Rendimiento de los estudiantes de Yale
aproximadamente uno de cada tres estudiantes que inician
un curso CS, en todo el mundo, falla o se da por vencido. Grupo Con Pascal Con C o Phyton
¿Por qué pasa esto? Primer semestre 14% 24%
Segundo semestre 36% 61%
Aunque los resultados del estudio reportan el éxito o el Tercer y cuarto año 69% 96%
fracaso en tomar un curso en una universidad, para
algunos el criterio de asistir a un proceso de educación La solución al ejercicio requiere un condicional
formal no es la única definición posible de éxito. Hay relativamente complejo que controle el ciclo: si la entrada
muchos programadores que nunca tomaron un curso es negativa, la ignora y continúa con la siguiente; si la
formal en toda su vida, pero tienen éxito en la vida laboral. entrada es positiva y diferente de 99999, la lleva a la suma,
Nuevamente, persiste la confusión entre lo que es ser incrementa el contador, y continúa con la siguiente; si la
programador y ser desarrollador, y lo peor, la industria entrada es 99999, la ignorar, sale del ciclo, y muestra la
tampoco parece diferenciar. suma. Es fácil cometer un error al tener en cuenta la
entrada 99999 en la suma.
Claro que se necesita un proceso formal de capacitación
para adquirir o potencializar las habilidades, destrezas, y Estos resultados se lograron en la Universidad de Yale.
capacidades para desarrollar software. Así que primero Entonces, ¿podría ser que en Yale la enseñanza de la
hay que establecer la razón por la que los estudiantes programación fuera realmente mala? En esos años pocos
tienen dificultades para este aprendizaje. Si fuera posible estudiantes podrían haber aprendido algo de
establecer si es que desarrollar software es una actividad programación antes de entrar en la universidad, así que
anti-natural, se podrían buscar formas alternativas y cualquier instrucción que recibieran provenía de los
nuevas didácticas para hacerlo más fácil o diferente. Una cursos del primer semestre. Durante muchos años los
investigación liderada por el profesor colombiano Edgar investigadores se preguntaron cómo llevar a cabo un
Serna [6-10] determinó que una característica necesaria estudio acerca de la programación de computadores en el
para este tipo de profesionales es que desarrollen su que se pudiera evitar el factor de una posible mala
capacidad lógico-interpretativa y abstractiva, porque, formación en la institución.
En 2001, Mike McCracken [14] organizó un grupo de Los esfuerzos McCracken y Lister les enseñaron a los
investigadores para realizar un mismo estudio en cada una investigadores que es difícil subestimar la cantidad de
de sus cursos: asignar el mismo ejercicio y darles a los estudiantes a entender cuando se trata de enseñar a
estudiantes 90 minutos para presentar una solución en desarrollar software. Están aprendiendo claramente
papel. Cuatro instituciones de tres países participaron en mucho menos de lo que pensamos. Ahora, algunos
este primer estudio multi-institucional, multi-nacional estudiantes están aprendiendo; pero la mayoría no.
(MIMN) de rendimiento de los estudiantes en informática. Entonces, ¿qué tan difícil es aprender a desarrollar
Mediante una comparación de resultados a través de software para que la mayoría de estudiantes no lo logren?
fronteras institucionales y nacionales, los investigadores
esperaban obtener una imagen clara de lo que realmente 2.1 ¿Por qué es difícil?
pueden hacer estudiantes en sus primeros cursos. Los lingüistas suelen coincidir en que los seres humanos
están cableados para el lenguaje. El cerebro ha
El problema fue evaluar expresiones aritméticas (prefijo, evolucionado para aprenderlo rápida y eficientemente. Es
infijo, o postfijo) sólo con números, operadores binarios (+, decir, estamos conectados específicamente para el
-, /, *), o negación unaria (~ con el fin de evitar la lenguaje natural. Por el contrario, la programación es la
complicación de sobrecargar el signo menos). En total, 216 manipulación de un lenguaje artificial inventado para un
estudiantes presentaron respuestas. La puntuación media propósito relativamente poco natural: decirle a un
sobre un una rúbrica de clasificación independiente del determinado agente no humano (computador)
lenguaje de 110 puntos fue 22,89 (21%). Los estudiantes exactamente qué hacer. Tal vez la programación no es una
solucionaron terriblemente el ejercicio. actividad natural para los humanos, y sólo unos pocos son
capaces de realizar los ejercicios mentales complejos para
El grupo de trabajo realizó varias evaluaciones de los tener éxito en este acto anti-natural.
datos, y encontraron que el rendimiento varía
dramáticamente entre cursos. También evidenciaron los En este orden de ideas, ¿Cómo podemos responder esta
efectos joroba, que muchos profesores de informática han pregunta? Podemos intentar un enfoque similar a la
señalado y que varios trabajos han tratado de explicar. modificación de Lister al trabajo de McCracken: escoger
Algunos estudiantes simplemente hacen las cosas, y una parte más pequeña de la tarea y centrarse sólo en eso.
funcionan bien, pero la mayoría no lo logra. ¿Por qué es que Programar es decirle a una máquina qué hacer en un
algunos estudiantes simplemente consiguen programar y lenguaje no-natural. Y, si les indicamos a los participantes
otros no? Se ha investigado desde variables como la del estudio que describan en lenguaje natural ¿cómo le
experiencia previa en el área y los conocimientos dirían a otro ser humano como llevar a cabo una tarea
matemáticos [15], y todavía no hay explicación determinada? ¿Cómo definirían sus programas? Si
convincente para este efecto. quitamos el lenguaje artificial, ¿está programación sería
natural o de sentido común?
Algunos estudiantes pueden no responder a un estilo
particular de enseñanza o profesor, pero ¿por qué tantos En 1981 Miller [17] les pidió a los participantes en sus
estudiantes de diferentes instituciones lo hacen tan mal? estudios crear instrucciones para que otros las siguieran.
¿Estamos enseñando mal en todas partes? ¿Estamos sobre- Los participantes recibieron descripciones de varios
estimando lo que los estudiantes deben ser capaces de archivos (empleados, cargos, salarios), y tareas como:
hacer? O ¿no estamos midiendo las cosas correctas? hacer una lista, organizada por el nombre, de los
Raymond Lister [16] organizó otro grupo de trabajo en empleados que cumplan cualquiera de los siguientes
2004 para explorar algunas de estas preguntas. La idea de criterios: 1) tienen un cargo técnico y ganan 6 dólares o
este equipo era que el grupo de McCracken pedía más por hora, o 2) es soltero y gana menos de 6 dólares por
demasiado de los estudiantes. Darles un problema hora. Miller aprendió mucho acerca de qué era difícil y qué
requiere un alto nivel de pensamiento para diseñar e era fácil para los participantes. En primer lugar, los sujetos
implementar una solución. Entonces decidieron centrarse completaron sus tareas. En los resultados no dice que 1/3
en las habilidades de bajo nivel para leer y trazar código. abandonaron o fracasaron, como pasa todo el tiempo en
Crearon un cuestionario de opción múltiple (MCQ por sus los cursos de programación. El reto fundamental de
siglas en inglés), en el que se les pedía a los estudiantes especificar un proceso para que ejecute otra persona no
llevar a cabo tareas como lectura de código e identificación parece ser el problema.
de resultados, o identificar el código correcto para llenar
los vacíos en un fragmento de programa. Las preguntas se Una diferencia clave entre las soluciones en lenguaje
centraron en la manipulación de arreglos. Les pidieron a natural a los problemas de Miller y los problemas de
los participantes de todo el mundo tratar la misma MCQ programación estudiados por otros investigadores es la
con sus estudiantes. Los resultados fueron mejores, pero estructura de la solución. Los temas de Miller no definieron
aún decepcionante. Los 556 estudiantes tuvieron un iteraciones, pero sí un conjunto de operaciones. Por
puntaje promedio del 60%. Aunque estos resultados ejemplo, ellos no dijeron: tome cada carpeta y mire el
sugirieron que el grupo McCracken sobrestimó lo que los apellido; si comienza con S... En su lugar, hablaron de hacer
estudiantes podían hacer, Lister y su grupo esperaban un las cosas para todos los apellidos que empiezan con S...
rendimiento mucho mejor en sus preguntas. Miller se sorprendió de esto: nadie especificó las
condiciones de finalización para este ciclo. Algunas
personas hablaron sobre condiciones IF-like, pero ninguno
utilizó un ELSE. Estos resultados puntualizan la posibilidad vendemos entradas telefónicamente para los conciertos de
de que definir un lenguaje de programación natural es más la siguiente manera: cuando un cliente llama y pregunta
fácil para los principiantes. Miller llevó a cabo otro por un número (n) de asiento: 1) el vendedor encuentra los
experimento separado donde les dio a otros participantes n mejores asientos que están disponibles, 2) marca los n
las mismas instrucciones del primer experimento pero asientos como no-disponible, y 3) le ofrece las opciones de
definiendo vagamente los ciclos necesarios. Ninguno tuvo pago: tarjeta de crédito o débito, o la entrega en una
problema con estas instrucciones. Era obvio cuando parar dirección. Supongamos que tenemos más de un vendedor
al procesar los datos. Los sujetos procesaron el conjunto de que trabaja al mismo tiempo, ¿qué problemas se podrían
datos, pero se incrementaron un índice. encontrar, y cómo poder evitarlos? Unos 66 participantes
en cinco instituciones intentaron resolver este problema,
John Pane [18] tomó de nuevo esta exploración a finales de con sorprendente éxito. Como se ve en la Tabla 2, casi
1990 y principios de 2000, porque estaba interesado todos los estudiantes reconocieron cuál era el verdadero
explícitamente en la creación de un lenguaje de desafío del problema, y al 71% se le ocurrió una solución
programación que estuviera más cerca de cómo las funcional.
personas describen naturalmente procesos para que otros
utilicen. Replicó los experimentos de Miller, pero con Tabla 2. Problemas y soluciones identificados
diferentes tareas y entradas. Le preocupaba que al Logros % Estudiantes
proporcionar archivos y solicitar listas, Miller pudo haber Problemas identificados:
direccionado los resultados. En cambio, Pane les mostró a  Venta de entradas más de una vez 97%
los participantes imágenes y películas de videojuegos, y  Otros 41%
luego les preguntó cómo le indicarían al computador que Soluciones razonables a los problemas 71%
realizara lo mismo; por ejemplo, escribir una declaración
para que mueva a Pac-Man en relación con la presencia o La mayoría de las soluciones eran ineficientes (porque
ausencia de otras cosas. Como Miller, encontró que las ellos mismos eran los solucionadores) así que todavía hay
personas no son explícitas acerca de los ciclos. Al ir más mucho que estos estudiantes deben aprender. Los
allá de caracterizar los tipos de instrucciones que estudiantes pueden ser más capaces de pensar
escribieron en términos de paradigmas de programación, computacionalmente de lo que se cree. Sin embargo, el
encontró un montón de uso de restricciones (éste está hecho de que puedan resolver problemas de
siempre haciendo eso), de programación orientada a procesamiento paralelo sugiere que el problema de lograr
eventos (cuando Pac-Man se lleva todos los puntos se pasa que los estudiantes programen puede estar en las
al siguiente nivel), y de programación imperativa. Nadie herramientas.
habló de objetos ni una sola vez. Hablaron sobre las
características y los comportamientos de las entidades en 3. Opciones de mejoramiento
el videojuego, pero no las agruparon (por ejemplo, en
clases). Nunca hablaron de los comportamientos desde la 3.1 Las herramientas de programación
perspectiva de las propias entidades; todo estaba desde la ¿Cómo hacer que las herramientas mejoren? Una posible
perspectiva del jugador o el programador. respuesta obvia es migrar hacia una notación más visual.
Desde el surgimiento del lenguaje de programación basado
Con base a los experimentos de Miller y Pane, se podría en iconos de David Smith, Pygmalion [21], la teoría ha sido
afirmar que las personas pueden ser capaces de especificar que el razonamiento visual tal vez es más fácil para los
funciones para otro agente, pero los actuales lenguajes de estudiantes. Ciertamente, ha habido gran cantidad de
programación no les permiten programar la forma en que estudios que muestran que en general las visualizaciones
piensan acerca de las tareas. Si los lenguajes de ayudaron a los estudiantes en computación [22], pero
programación fueron hechos más naturales, ¿podría la relativamente pocos de ellos son cuidadosos.
mayoría de estudiantes aprender a programar? ¿Podrían
las personas resolver problemas complejos que implican Thomas Green y Marian Petre [23] hicieron una
algoritmos significativos? ¿Sería bueno tanto para tareas comparación entre un lenguaje de programación dataflow-
simples como para profesionales? Y si no, ¿podrían los like y un lenguaje de programación textual. Crearon
estudiantes en algún momento aprender un lenguaje programas en dos lenguajes visuales que se había
profesional? demostrado que funcionaban bien en estudios anteriores y
en un lenguaje textual que también se había probado. A los
Un grupo de investigadores que se hacen llamar participantes se les mostró un programa visual o un
Commonsense Computing Group [19] ha estado programa textual por un corto tiempo, y luego se les hizo
respondiendo algunas de estas preguntas. Les piden a una pregunta al respecto, por ejemplo, acerca de los datos
estudiantes de primer semestre resolver tareas de entrada que se muestran o de los resultados de la salida.
algorítmicas significativas, como la clasificación o la Sin importar cuánta experiencia tuvieran los sujetos con
paralelización de un proceso, en lenguaje natural y antes lenguajes visuales o textuales, o qué tipo de lenguaje visual
de que hayan aprendido cualquier lenguaje de se usara, comprender el lenguaje gráfico siempre les tomó
programación. Han encontrado resultados sorprendente más tiempo, y, en general, comprendieron los lenguajes
en estas tareas. En un estudio [20] les pidieron a los visuales más lentamente que los textuales. Green y Petre
estudiantes crear un proceso para un teatro que decide publicaron varios trabajos sobre variaciones de este
tener dos vendedores de billetes. Supongamos que estudio [24, 25], pero la verdadera prueba llegó cuando
Tom Moher y sus colegas [26] apostaron en favor de los Lo que sabemos hasta ahora es que los estudiantes en
lenguajes visuales. Tom y sus estudiantes graduados carreras de computación aprenden mucho menos acerca
estaban utilizando una notación visual, Redes de Petri, de diseño y programación de lo que se podría predecir, y
para enseñar programación a estudiantes de secundaria. que fallan el primer curso a un ritmo bastante alto.
Consiguieron una copia de los materiales de Green y Petre Encontramos que el cambio de lo textual a las modalidades
y crearon una versión en la que el único lenguaje visual visuales no ofrece consistentemente mejores resultados, lo
utilizado fue Petri Nets. Entonces, Tom volvió a ejecutar el que sugiere que otra variable puede estar en juego. Pero,
estudio personalmente con sus estudiantes como sujetos. ¿qué otras variables se podrían manipular con el fin de
El sorprendente resultado fue que, de nuevo, los lenguajes mejorar el éxito en el aprendizaje de la programación?
textuales eran más fácilmente comprendidos, sin importar
las condiciones. En 1999, Georgia Tech decidió exigir computación
introductoria para todos los estudiantes de pregrado.
¿Estamos equivocados acerca de los lenguajes visuales? En Durante los primeros años, sólo un curso satisfacía este
realidad, ¿la visualización tiende a reducir el requisito, y, en general, el porcentaje de aprobados fue del
entendimiento del software? ¿Qué pasa con estudios como 78%, que es bastante bueno para el análisis de Bennedsen
los de Naps et al [22]? ¿Estaban equivocados? y Caspersen [5]. Sin embargo, esa cifra no es tan buena
cuando se empieza a desagregar. La tasa de aprobación
Hay un método estándar para comparar múltiples para los estudiantes de Artes Liberales, Arquitectura y
estudios, llamado meta-estudio. Barbara Kitchenham Administración fue inferior al 50% [29]. Las mujeres
describe este procedimiento en su trabajo [27]. Chris fracasaron en casi el doble de la tasa de los hombres. Un
Hundhausen y sus colegas hicieron este tipo de análisis en curso dirigido a todos los estudiantes, en el que la mayoría
estudios sobre la visualización de algoritmos [28]. de hombres en carreras técnicas pasa, pone de relieve
Encontraron que sí, hay una gran cantidad de estudios que problemas generales en la enseñanza de la computación.
muestran beneficios significativos para los estudiantes, a
la vez que también hay una gran cantidad de estudios con Forte y Guzdial [30] iniciaron en 2003 un experimento
resultados no-significativos. Algunos que muestran para enseñarles a los estudiantes un tipo diferente de
resultados significativos no hacen evidente cómo podrían curso introductorio, contextualizado en torno a la
ayudar realmente (Figura 1). Encontraron que el hecho de manipulación de los medios de comunicación. En esencia,
cómo se utilizan las visualizaciones importa mucho. Por los estudiantes trabajaron los mismos tipos de programas
ejemplo, utilizándolas en demostraciones de lectura como en cualquier curso introductorio de Ciencias
tuvieron poco impacto en el aprendizaje del estudiante, Computacionales. De hecho, trataron de cubrir todos los
pero al hacer que los estudiantes construyeran sus propias temas [31] que recomiendan los estándares de ACM e IEEE
visualizaciones tuvieron un impacto significativo en su vigentes. Sin embargo, para analizar todos los ejemplos de
aprendizaje. los libros de texto, el código de ejemplo en las conferencias,
y las tareas los estudiantes debían manipular los medios
12
digitales. Aprendieron cómo recorrer los elementos de
10
una matriz, por ejemplo, mediante la conversión de todos
8
los píxeles de una fotografía en escala de grises. En lugar
6
de encadenar cadenas, concatenaron buffers de sonido
4 para hacer el empalme digital. Mediante la eliminación de
2 ojos rojos en una imagen, sin estropear cualquier otro rojo
0 en la misma, se utilizó para iterar a través de un sub-rango
No-significativos Significativos Significativos en Significativos en
análisis visual otra dirección
de una matriz. La respuesta fue positiva y dramática. Los
estudiantes encontraron el nuevo curso más relevante y
Figura 1. Resumen de los 24 estudios [28] convincente, en particular las mujeres cuya tasa de
aprobación se elevó por encima de la de los hombres (pero
Unos pocos estudios variaron el uso de la visualización no con cualquier significación estadística) [32]. La tasa
mientras mantienen todas las demás variables constantes, media de aprobación en los siguientes tres años se elevó al
por ejemplo, tipo de curso, tipo de estudiante, profesor, 85%, incluso a las carreras técnicas en las que no llegaba al
asignatura. Aunque después de su análisis los autores 50% por semestre [29].
sospechan que la forma de visualización que se utilice es
importante, los resultados no son suficientes para probar Suena como un gran éxito, pero, ¿es realmente cierto lo que
su sospecha. Una cosa que enseñan los estudios en dicen? ¿Ese nuevo enfoque es la única cosa que ha
educación es que en realidad es bastante difícil predecir los cambiado? Tal vez esas instituciones de repente
resultados. Los seres humanos no son tan predecibles comenzaron a aceptar estudiantes mucho más
como un proyectil que cae o un cóctel químico. De hecho, inteligentes. Quizás Georgia Tech contrató a un nuevo
hay que probar toda sospecha e hipótesis, y, a veces instructor carismático que hechizaba a los estudiantes con
probarlas varias veces en diferentes condiciones, hasta el cuidado en el contenido. La investigación en las áreas
que estar convencidos de algún hallazgo. sociales se refiere a estos factores como una amenaza a la
validez del estudio. En este caso, los investigadores
3.2 ¿Existe otra forma, otras variables? incluyeron semestres con diferentes instructores y los
resultados abarcan tres años de valor, por lo que es poco
probable que de repente los estudiantes fueran muy ¿Cómo puede ser eso? Una posibilidad real es que las
diferentes. ¿Podría ser entonces que el éxito en la pruebas no eran exactamente las mismas; los estudiantes
enseñanza de la programación se puede lograr al interpretaron de manera diferente; o puede ser que no
introducir los medios en la computación? midieron exactamente el tipo de aprendizaje que se
pretendía probar. Por ejemplo, tal vez la respuesta a
La primera prueba de los medios en la computación en una algunas de las preguntas podría ser adivinada porque los
institución diferente se realizó en Gainesville State College, distractores estaban tan lejos de ser factibles que los
en Georgia [33]. Este estudio también encontró mejoras estudiantes los pasaban por alto sin realmente saber la
dramáticas en las tasas de éxito entre los estudiantes, los respuesta correcta. Una buena prueba para medir el
cuales provenían de áreas como la informática y la aprendizaje debe ser confiable y válida, en otras palabras,
enfermería. Sin embargo, tanto en Georgia Tech como en medir lo correcto, y que los estudiantes la puedan
Gainesville los estudiantes eran predominantemente interpretar de la misma manera todo el tiempo. Por eso es
blancos. ¿Cambiarían en algo los resultados si los que hasta el momento no es posible determinar con
estudiantes fueran de las minorías étnicas? En la certeza que los estudiantes están aprendiendo las mismas
Universidad de Illinois en Chicago (UIC), Pat Troy y Bob cosas bajo diferentes enfoques. Es muy bueno que los
Sloan introdujeron los medios en sus cursos de estudiantes tengan mayor éxito con los medios, y es genial
computación [34]. Un curso ofrecido a estudiantes que que a los estudiantes de la UCSD les vaya mejor incluso en
querían especializarse en Ciencias Computacionales, pero el segundo curso, pero realmente no se puede decir con
que no tenían antecedentes en programación. Durante seguridad que todos los estudiantes aprenden las mismas
varios semestres, la tasa de aprobación de estos cosas.
estudiantes también aumentó. UIC tiene una población
estudiantil étnicamente diversa, donde la mayoría En segundo lugar, incluso aunque en Georgia Tech,
pertenece a grupos étnicos minoritarios. Con estos Gainesville, UIC, y UCSD fueron capaces de demostrar que
resultados, ¿es posible generalizar que los medios en la los estudiantes aprendieron lo mismo en el curso
computación ayudan al aprendizaje de la programación? El introductorio, ¿qué podría probar todo eso? ¿Que el curso
argumento puede ser que éstos siguen siendo casos se debe trabajar personalizado? ¿Que este tipo de curso es
inusuales. Los estudios en Georgia Tech y Gainesville eran mejor que el tradicional, sin importar el éxito que peste
adolescentes, mientras que en Chicago se trató de alcance? ¿Qué funciona para cada tipo de estudiante sin
estudiantes que quieren especializarse y el curso no hace importar su preparación o interés? ¿Que no importa la
parte normal de sus carreras de pregrado. Bet Simon y sus preparación y experiencia del profesor? Por supuesto, todo
colegas de la Universidad de California (UCSD), en San esto es ridículo. Siempre se puede imaginar algo que
Diego, comenzaron a utilizar los medios en los cursos podría salir mal.
introductorios de las carreras técnicas [35], y encontraron
que se incrementó el número de estudiantes que aprueban. En general, los enfoques curriculares nos ofrecen modelos
prescriptivos, sino teorías predictivas. Los estudios de los
¿Eso es todo? ¿Los medios en la computación son la medios en la computación muestran evidencia de que, para
solución? ¿Todo mundo debería utilizarlos? Aunque una variedad de estudiantes y profesores, la tasa de éxito
diversos estudios lo han aprobado [36, 37], no están libres en un curso introductorio se puede mejorar, pero no que
de ambigüedades. En primer lugar, estos autores no han inevitablemente se va a mejorar. Prometer algo así sería
dicho si los estudiantes aprenden lo mismo con los medios como tener una receta mágica. No es una teoría predictiva
en la computación que sin ellos. Si alguien afirma que lo ha en el sentido de que puede predecir mejoras, pero sin
logrado con este enfoque es muy escéptico, porque conocer muchas más variables que aún no han sido
actualmente no se cuenta con métricas fiables y válidas probadas. Tampoco puede ser predictiva porque no es
para hacer esa afirmación. Allison Tew y su equipo [29, 33] posible decir que al no usar los medios se garantiza el
trataron de responder a la pregunta de si los estudiantes fracaso.
aprenden lo mismo en diferentes cursos introductorios.
Desarrollaron dos pruebas isomórficas con preguntas de 4. Conclusiones
opción múltiple en cada uno de los lenguajes que querían La investigación en Educación en Informática, como un
comparar: un problema destinado a evaluar un concepto campo de estudio, sigue siendo una disciplina incipiente
particular (una iteración sobre una matriz) era [38]. Sólo recientemente nos estamos dando cuenta de la
esencialmente el mismo en ambas pruebas y en todos los importancia de calcular la educación y la necesidad de
lenguajes. Aplicaron estas pruebas antes y después del apoyar la enseñanza en esta área del conocimiento. La
curso con el fin de medir la diferencia que había en el organización Computer Science Teachers Association
aprendizaje del estudiante. Encontraron que los (CSTA) de la ACM para el apoyo a los profesores en
estudiantes aprendieron nuevas y diferentes cosas en el Ciencias Computacionales, sólo se conformó en 2005.
curso de nivel 1, pero que estas diferencias desaparecieron Mientras que, por ejemplo, el National Council of Teachers
en el curso de nivel 2. Eso es un gran hallazgo, lo que of Mathematics, se creó en 1920.
sugiere que las diferencias en el nivel 1 no eran tan críticas
para el éxito futuro. Pero en pruebas subsiguientes nunca La mayoría de estudios en este sentido apuntan más hacia
encontraron el mismo resultado. lo complejo que es para que los humanos aprender a
programar. Seguimos maravillados con la inteligencia y la
creatividad de los seres humanos, y que incluso los
estudiantes sin formación en informática ya puedan Artificial intelligence and instruction: Applications and
pensar en términos algorítmicos. Sin embargo, el methods, pp. 49-67. Boston: Addison-Wesley.
desarrollo de esa habilidad hasta el punto de que se pueda [13] Spohrer, J. (1992). Marcel: Simulating the novice
programmer. Norwood: Ablex.
utilizar para dar instrucciones a un dispositivo en un
[14] McCracken, M. et al (2001). A multi-national, multi-
lenguaje máquina se produce más lentamente de lo que se institutional study of assessment of programming skills of
podría esperar. Podemos lograr que los estudiantes lo first-year CS students. ACM SIGCSE Bulletin 33(4), pp. 125-
hagan a través del proceso, pero aún no tenemos medidas 180.
efectivas de lo mucho que están aprendiendo. Lo que [15] Bennedsen, J. & Caspersen, M. (2005). An investigation of
realmente necesitamos como campo son teorías potential success factors for an introductory model-driven
predictivas, basadas en modelos de cómo las personas programming course. Proceedings of the first international
realmente desarrollan su comprensión de la informática. workshop on computing education research, pp. 155-163.
Desde esas teorías se podrían construir planes de estudio October 1-2, Seattle, USA.
[16] Lister, R. et al [2004]. A multi-national study of reading and
en el que se pueda confiar. Tenemos pocos trabajadores, y
tracing skills in novice programmers. ACM SIGCSE Bulletin
sólo se acaba de empezar en esta difícil tarea. Existen 36(4), pp. 119-150.
pocos eventos científicos dedicados a este tipo de [17] Miller, L. [1981]. Natural language programming: Styles,
discusiones. Pero, aun así, ya se han dado los primeros strategies, and contrasts. IBM Systems Journal 29(2), pp.
pasos hacia la comprensión de por qué es que a los 184-215.
estudiantes les resulta tan difícil aprender a programar [9, [18] Pane, J.; Myers, B. & Ratanamahatana, C. (2001). Studying
10]. the language and structure in non-programmers’ solutions
to programming problems. International Journal of Human-
Como el mismo profesor Serna lo expresó en La Habana en Computer Studies 54(2), pp. 237-264.
[19] Cambria, E. et al (2009). Common Sense Computing: From
2013 [39]: “Somos una Sociedad Software-Dependiente, y
the society of mind to digital intuition and beyond. Lecture
sino empezamos a profesionalizar el desarrollo de estos Notes in Computer Science 5707, pp. 252-259.
productos podríamos avocarnos a una crisis peor que a la [20] Lewandowski, G., D.J. Bouvier, et al. 2007. Commonsense
falta de los mismos dispositivos que intentamos computing (episode 3): Concurrency and concert tickets.
programar”. Proceedings of the third international workshop on
computing education research, pp. 133-144. September 15-
Referencias 16, Atlanta, USA.
[21] Smith, D. (1975). PYGMALION: A creative programming
[1] Vegso, J. (2008). BLS Predicts strong job growth and high environment. PhD dissertation. Computer Science
salaries for IT workforce through 2016. Computing Department, Stanford University.
Research News 20(3), pp. 1-1. [22] Naps, T. et al (2003). Evaluating the educational impact of
[2] Lacey, A. & Wright, B. (2009). Employment outlook: 2008– visualization. ACM SIGCSE Bulletin 35(4), pp. 124-136.
18 - Occupational employment projections to 2018. [23] Green, T. & Petre, M. (1992). When visual programs are
Monthly Labor Review, November 2009, pp. 82-123. harder to read than textual programs. In Veer, G. et al (Eds.),
[3] Rampell, C. (2010). Once a dynamo, the tech sector is slow Proceedings Human-Computer Interaction: Tasks and
to hire. The New York Times, Sept. 7. Organisation, pp. 167-180. July 2-5, Rome, Italy.
[4] Serna M. E. (Ed.). (2013). Manifiesto por la [24] Green, T.; Petre, M. & Bellamy, R. (1991). Comprehensibility
profesionalización del desarrollo de software. Medellín: of visual and textual programs: A test of “superlativism”
Editorial IAI. against the “match-mismatch” conjecture. In Koenemann, J.
[5] Bennedsen, J. & Caspersen, M. (2007). Failure rates in et al (Eds.), Empirical Studies of Programmers: Fourth
introductory programming. ACM SIGCSE Bulletin 39(2), pp. Workshop, pp. 121-146. Ablex.
32-36. [25] Green, T. & Petre, M. (1996). Usability analysis of visual
[6] Serna, M.E. (2013). Logic in Computer Science. Revista programming environments: A “cognitive dimensions”
Educación en Ingeniería 8(15), pp. 62-68. framework. Journal of Visual Languages and Computing
[7] Serna, M.E. & Serna, A.A. (2013). Logic in Computer Science. 7(2), pp. 131-174.
In Baralt, J. et al (Eds.), XII Conferencia Iberoamericana en [26] Moher, T. et al (1993). Comparing the comprehensibility of
Sistemas, Cibernética e Informática: CISCI 2013. Orlando, textual and graphical programs: The case of Petri nets. In
USA. Cook, C.; Scholtz, J. & Spohrer, J. (Eds.), Empirical Studies of
[8] Serna, M.E & Flórez, O.G. (2013). The logical reasoning as Programmers: Fifth Workshop, pp. 137-161. Ablex.
functional requirement in engineering. In Larrondo, P.M.M. [27] Kitchenham, B. (2011). What we can learn from systematic
et al. (Eds.), Eleventh LACCEI Latin American and Caribbean reviews. In Oram, A. & Wilson, G. (Eds.), Making Software -
Conference for Engineering and Technology. Cancún, What really works, and why we believe it, pp. 35-54.
México. O’Reilly Media.
[9] Serna, M.E. & Polo, J.A. (2014). Logic and abstraction in [28] Hundhausen, C.; Douglas, S. & Stasko, J. (2002). A meta-
engineering education: A necessary relationship. Revista study of algorithm visualization effectiveness. Journal of
Ingeniería Investigación y Tecnología XV(2), pp. 299-310. Visual Languages and Computing 13(3), pp. 259-290.
[10] Serna, M.E. & Zapata, A.L. (2014). Approach to logic and [29] Tew, A.; Fowler, C. & Guzdial, M. (2005). Tracking an
abstraction in the engineering training. Revista innovation in introductory CS education from a research
Internacional de Educacion y Aprendizaje 2(1), pp. 35-47. university to a two-year college. ACM SIGCSE Bulletin 37(1),
[11] Soloway, E.; Bonar, J. & Ehrlich, K (1983). Cognitive pp. 416-420.
strategies and looping constructs: An empirical study. [30] Forte, A. & Guzdial, M. (2004). Computers for
Communications of the ACM 26(11), pp. 853-860. communication, not calculation: Media as a motivation and
[12] Johnson, W. & Soloway, E. (1987). PROUST: An automatic context for learning. Proceedings of the 37th Annual Hawaii
debugger for Pascal programs. In Kearsley, G. (Ed.), International Conference on System Sciences, pp. 1-10.
January 5-8, Hawaii, USA.
[31] Guzdial, M. (2003). A media computation course for non- in Computer Science Education Conference, pp. 214-218.
majors. ACM SIGCSE Bulletin 35(3), pp. 104-108. June 26-30, Ankara, Turkey.
[32] Rich, L.; Perry, H. & Guzdial, M. (2004). A CS1 course [36] Guzdial, M. & Ericson, B. (2009). Introduction to Computing
designed to address interests of women. ACM SIGCSE and Programming in Python: A Multimedia Approach.
Bulletin 36(1), pp. 190-194. Pearson Prentice Hall.
[33] Tew, A.; McCracken, M. & Guzdial, M. (2005). Impact of [37] Guzdial, M. & Ericson, B. (2009). Problem solving with data
alternative introductory courses on programming concept structures using Java: A multimedia approach. Pearson
understanding. Proceedings of the first international Prentice Hall.
workshop on computing education research, pp. 25-35. [38] Fincher, S. & Petre, M. (2004). Computer Science education
October 1-2, Seattle, USA. research. RoutledgeFalmer.
[34] Sloan, R. & Troy, P. (2008). CS 0.5: A better approach to [39] Serna, M.E. & Serna, A.A. (2013). Fornal Specification in
introductory computer science for majors. ACM SIGCSE context – Present and future. Ingeniare - Revista Chilena de
Bulletin 40(1), pp. 271-275. Ingeniería 22(2), pp. 243-256.
[35] Simon, B. et al (2010). Experience Report: CS1 for Majors
with Media Computation. ACM Innovation and Technology

También podría gustarte