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