Introducción
El término programación es excesivamente amplio, pues puede ser utilizado casi en cualquier campo semántico; en consecuencia hemos tenido que ampliar la búsqueda a conceptos como código fuente, lenguaje de programación, software... Sobre estos conceptos existe infinidad de información pero pocas definiciones. En cualquier caso, hemos dado solución a esta dificultad entendiendo que la programación es, simplemente, el proceso (o resultado) mediante el cual se elabora (o establece) el sistema de comunicación entre hombre y máquina.
El código humano es extraordinariamente complejo para cualquier máquina , que sólo entiende de circuitos abiertos o cerrados (0 ó 1), y por tanto deben establecerse órdenes desde el lenguaje humano (o la acción humana) hacia el lenguaje de la máquina. La “traducción” o todo el sistema de codificación que permite esta transcripción sería el lenguaje de programación. Existen más de 100 lenguajes de programación que se adaptan mejor a las necesidades de comunicación y de órdenes en función del tipo de máquina o software o plataforma al que va destinado (html, SQL, java, C, C++, PHP…).
Así pues, las citas que exponemos en el trabajo son variadas en cuanto al objeto de definición, pero ayudan a conformar un concepto global sobre la programación, que consideramos era el propósito del ejercicio.
Citas
“El código fuente es la versión del software que está originalmente escrito (es decir, escrito en un ordenador) por un ser humano en texto plano (es decir, legible por caracteres alfanuméricos).” (N.d.T.: Traducción propia del inglés)
The Linux Information Project (2006). Definición del código fuente. Obtenido el 14 de marzo de 2018 en http://www.linfo.org/source_code.html
Por tanto, necesitamos también concretar el término software que la propia fuente de información (LINFO) nos proporciona para entender mejor el concepto, pues no se entiende código fuente sin los conceptos software y lenguaje de programación:
“El término software hace referencia a todos los sistemas operativos, programas de aplicación y datos que utilizan los productos que contienen microprocesadores. Dichos productos incluyen no solo ordenadores personales, sino también una amplia gama de otros productos, como sistemas electrónicos de aeronaves, sistemas de señalización ferroviaria, robots industriales, equipos médicos electrónicos, sistemas de guía de vehículos espaciales, cámaras electrónicas e incluso juguetes electrónicos simples.”
The Linux Information Project (2006). Definición del código fuente. Obtenido el 14 de marzo de 2018 en http://www.linfo.org/source_code.html
“El código fuente se puede escribir en cualquiera de los cientos de lenguajes de programación que se han desarrollado. Algunos de los más populares son C , C ++, Cobol, Fortran, Java, Perl, PHP, Python y Tcl / Tk. Hay muchos programas que se pueden usar para escribir código fuente en el lenguaje de programación
deseado, que van desde editores de texto simples y de propósito general (como vi o gedit en Linux o Notepad en Microsoft Windows) a entornos de desarrollo integrados (como Visual C++ en Microsoft Windows o la Plataforma multiplataforma Eclipse para construir y ejecutar herramientas integradas de desarrollo de software). Después de escribir, el código fuente se guarda en un solo archivo o, más comúnmente, en múltiples archivos, con la cantidad de archivos que dependen de factores tales como el lenguaje de programación y el tamaño del proyecto.”
The Linux Information Project (2006). Definición del código fuente. Obtenido el 14 de marzo de 2018 en http://www.linfo.org/source_code.html
“El código fuente [...] incluye los scripts de compilación, instalación y ejecución de [un] programa y los ficheros de definiciones de interfaces (pero excluye los componentes usuales de sistemas operativos).”
Bain, M. (2009). Comentarios breves sobre la GNU General Public License v3. IDP. Revista de Internet, Derecho y Política, (8).
Por último, dado que el término no acepta confusión y resulta reiterativo añadir nuevas fuentes, hemos considerado oportuno proponer una extracción de una pequeña definición de carácter social y que consideramos cabe tener en cuenta en el futuro de la educación:
“[...] Los lenguajes de programación son la nueva notación científica para representar y transformar la realidad. Cada vez son más las voces que claman por la importancia de enseñar a programar y comprender la lógica informática a diferentes niveles, como instrumento de autonomía y creci- miento personal en una sociedad hipertecnificada”
Velasco, Juan-Jesús (2014). “Niños programadores: para qué sirve la enseñanza de programación en las escuelas”. El diario (Diario de Turing), 19 de agosto.
http://www.eldiario.es/turing/Ninos-programadores-ensenanza-programacion-escuelas_0_293970921.html
El concepto que asume el grupo
Definimos programación -dentro del ámbito de la informática o la tecnología digital- como el proceso de diseño y creación de software mediante un código (código fuente) que permite comunicar órdenes humanas directa o indirectamente sobre un hardware o software.
Otras fuentes
Blog de divulgación que, de manera sencilla, ayuda a entender cómo se comunican y programan las máquinas:
Casos educativos
La programación, como hemos dicho anteriormente, es un concepto amplio que no sólo tiene sentido en la informática pura y dura; por tanto, un campo muy útil, llamativo y motivador para introducir en la programación es la robótica. Pero la robótica tiene su propio apartado en este glosario. En otro orden, en este enlace podemos acceder a un artículo que plantea 11 lenguajes y plataformas específicas para introducir la programación en la educación. Os enumeramos algunos:
- Scratch - Herramienta más conocida disponible para enseñar programación en los colegios, ya sea en Primaria o Secundaria. Su éxito viene por su facilidad de uso.
- Minecraft Code Builder - una plataforma para programar dentro del mundo Minecraft a través de un lenguaje específico, basado en bloques de colores.El resultado permite, de una forma muy sencilla, modificar el mundo de Minecraft poniendo cientos de bloques con unas pocas instrucciones, ordenarlos según ciertos patrones o conseguir algo que manualmente nos llevaría horas, en unos pocos segundos.
- CodeBug - Una plataforma que permite programar un pequeño bichito, una especie de ranita con luces y botones a través de un lenguaje de programación basado en bloques. CodeBug es entretenido y muy completo al permitir bloques, Python y JavaScript, además de divertido y económico.
- BeetleBlocks - Permite programar en un escenario 3D, su gran virtud que acompaña con algunos nuevos bloques de instrucciones especiales que, por ejemplo, permiten crear figuras geométricas. A las coordenadas X e Y añaden una nueva, Z, añadiendo así esta tercera dimensión que puede dar mucho juego a la hora de programar. Es completamente gratis y dispone de decenas de ejemplos de código para poder aprender todo lo que podemos hacer con esta plataforma.
- Codecombat - CodeCombat es un videojuego en el que aprenderemos a programar. Tendremos que ir solucionando problemas en base a utilizar programación, para así ir avanzando en los niveles y subir la dificultad. Tremendamente adictivo aunque, eso sí, sólo con lenguajes textuales y nada de bloques de colores.
Análisis final
A nuestro juicio este concepto es muy clásico, aunque no se explicara con el mismo término. Se nos ocurre que incluso se programaba reacciones de mecanismos (manuales, evidentemente) en función de un código milenios atrás: trampas que reaccionaban a una acción concreta, cerraduras que sólo permiten el accionamiento del cerrojo ante un código de “dientes” concreto…
La novedad con respecto a lo expuesto en el párrafo anterior está en la sofisticación, que a partir de la revolución industrial supuso un cambio cualitativo y exponencialmente creciente hasta llegar a los complejos algoritmos que deben procesar los ordenadores y cuyo origen está en el primer programa de ordenador que dejó la matemática británica Augusta Ada Byron para la historia de la programación (conocido en 1843).
Por tanto, cualitativamente no existe novedad en cuanto al concepto básico de programación, pero evidentemente sí existen novedades cualitativas a nivel tecnológico que se alcanzan gracias a que la complejidad de acciones que permite la programación es infinita -como lo es el lenguaje humano-, el límite está en nuestra imaginación.
No hay comentarios:
Publicar un comentario