A veces no quedan claros algunos conceptos que solemos dar por supuestos. Por ejemplo, qué es la programación. En qué consiste hacer un programa. Muchos padres son conscientes de la importancia del tema pero no saben realmente qué quiere decir «programar».
Todo el mundo ha programado unas vacaciones o un viaje. Más o menos así:
- Reservar habitación de hotel
- ¿Tengo confirmada la reserva?
- NO: hay que llamar al hotel, después, volver a punto 2
- SÍ: continuar con el punto 3
- Verificar el coche, aceite, ITV, gasolina
- ¿Está todo correcto, aceite, ITV, etc.?
- NO: arreglar lo que proceda, volver al punto 3
- SÍ: continuar con el punto 5
- Hacer el viaje, llamar a, etc, etc
Estoy seguro de que nadie ha hecho algo parecido en un papel, pero sí en su cabeza. Estos 5 pasos (y los siguientes) constituyen en el mundo de la programación un algoritmo. El algoritmo es la manera en que, paso a paso, vamos a resolver un problema.
Qué es la programación
La programación consiste en hacer un conjunto de instrucciones (siguiendo unas reglas que proporcionan los lenguajes de programación) para obtener unos resultados. En el caso de la robótica, la programación requiere una serie de datos de entrada (nivel de aceite, ITV correcta, reserva correcta) que se procesan para obtener unos datos o acciones de salida (salir hacia el hotel, arreglar el coche…).
Para programar, hay que tener muy claro qué se quiere conseguir. En el caso de salir de vacaciones, está muy claro el objetivo; pasar unas buenas vacaciones en la playa. Para ello es preciso que el coche esté bien, la reserva de hotel sea correcta y un largo etcétera.
En el caso de un pequeño robot, quizás el objetivo sea menos ambicioso: andar por una habitación y no chocarse por las paredes. Un algoritmo para que el robot se mueva evitando chocar sería el siguiente:
- ¿El sensor («ojos») que me indica distancia a un obstáculo funcionan correctamente?
- SÍ: caminamos hacia delante, seguir con el punto 2
- NO: revisar si el sensor no tiene fallos y el conexionado, y verificarlo. Volver a 1
- ¿La distancia que veo a una pared u obstáculo es segura?
- SÍ: Avanzar. Volver al punto 2
- NO: maniobrar hacia atrás girando a la derecha durante un segundo. Volver al punto 2
A partir de este algoritmo, escribiremos un conjunto de instrucciones, es lo que llamamos programa. La descripción de los algoritmos o distintas formas de resolver un problema dan lugar a distintos programas. Algunos funcionarán mejor que otros. Se debe buscar siempre la eficiencia y la simplicidad.
Un sencillo ejemplo
Si estás estudiando matemáticas, no hay nada más fascinante como ver, por ejemplo, mediante un sencillo programa, cómo se hacen miles de operaciones en un abrir y cerrar de ojos.
Por ejemplo, aprieta las teclas Ctrl+shift+i (si estás en Chrome; F12 para Internet Explorer). La pantalla que te ha aparecido es la consola de javascript, uno de los lenguajes de programación más importantes en la actualidad. En la consola (ventana que ha aparecido con un signo >), teclea lo siguiente, tal como aparece escrito, sin olvidar los puntos y coma (;) ni las llaves ({}):
var suma=0; for(var i=1;i<=100;i++) { suma=suma+i; }
En lugar de teclear, puedes marcar esta línea, copiarla con CTRL+c, ir a la ventana de programación y teclear CTRL+v, después aprieta la tecla ENTER. Obtendrás 5050.
Este programa (no vamos a explicarlo en estos momentos) suma los cien primeros números, obteniéndose después el resultado, 1+2+3+4+5+6+…….+98+99+100 =5050. Si nunca en tu vida has programado, enhorabuena, acabas de hacer tu primer programa.
Cuando se empieza a escribir el código de un programa, si este es lo suficientemente complejo, es difícil que salga a la primera. Para facilitar la corrección de errores conviene pensar bien cómo resolver el problema (pensar bien el algoritmo) y dividir los programas en bloques más simples.
Cómo facilitar la programación
Hemos podido comprobar en el ejemplo escrito más arriba que el código de programación, es decir, el programa escrito, es un poco raro. Que conste que hacer un programa no es difícil en sus primeras fases pero requiere un proceso de aprendizaje un poco duro al principio, hay que aprender las reglas y las instrucciones y su uso. Lo bueno es que cuando se aprende un lenguaje de programación ya se conocen todos.
Con el objetivo de facilitar la programación y el acceso de los componentes electrónicos a todo el mundo, y en especial a los estudiantes más jóvenes, se diseñaron programas de bloques en los que no es necesario escribir código para hacer un programa.
Recordemos el ejemplo de la suma de 100 números. Podemos obtener lo mismo con este programa, construido sin escribir ninguna instrucción:
Por supuesto, el elemento que se encarga de ejecutar el programa es una placa de arduino (en vez de nuestro ordenador), que debemos conectar al ordenador y a la que debemos subirlo. Además, el lenguaje no es javascript, sino la versión de C para programar las placas de arduino.
El facilitar la redacción de programas de esta forma, así como simplificar el acceso a componentes electrónicos pone esta tecnología y la programación al alcance de todo el mundo. El precio que hay que pagar es un conocimiento menos profundo de ciertos aspectos electrónicos de importancia que, por otra parte, se pueden ir aprendiendo en fases más avanzadas. Pero lo más importante es que garantiza un primer acercamiento de los novatos (de cualquier edad) al mundo de la programación.
Cuáles son las ventajas de saber programar
Hacemos una relación de algunas de las ventajas que puede tener saber programar:
- La posibilidad de hacer trabajar a nuestro servicio una máquina programable. Es muy satisfactorio ver que podemos mandar hacer tareas muy complejas o mecánicas o los dispositivos que programamos. En el ejemplo, hemos conseguido que una máquina (nuestro ordenador) sume 100 números de forma casi inmediata. Podríamos haber puesto 1000 sin problemas. Es un ejemplo simple pero da una idea de las opciones que tenemos
- Puede aplicarse a cualquier tipo de conocimiento. Es posible utilizar determinados lenguajes como scratch para elaborar historias y juegos que pueden utilizarse como instrumento para enseñar humanidades (además de ciencia)
- Nos acercamos a la tecnología presente a cada paso que damos, estamos más cerca de ver cómo funcionan las cosas, ¿no sería interesante programar aplicaciones para nuestro móvil, por ejemplo?
- Enseña a estructurar los problemas en partes más simples para hacerlos más manejables y fácilmente resolubles
- Favorece la colaboración entre personas, el trabajo en equipo necesario para proyectos de cierta complejidad
- Nos permite tomar el control de las máquinas. Por ejemplo, hacer que un robot se comporte de acuerdo con nuestras preferencias
- En estos momentos es difícil cubrir los puestos de trabajo relacionados con tecnologías que implican saber programar, por lo tanto, es una opción laboral muy interesante
- Fomenta la creatividad, cada proyecto puede tener varias soluciones y algunas de ellas pueden dar lugar a interesantes variaciones
Quiero hacer hincapié en que la programación, así como el mundo de los ordenadores, no sólo ofrece ventajas a aquellos que se vayan a dedicar a la técnica. La programación pueden utilizarse para la enseñanza de humanidades. En el mundo de la educación son tan imprescindibles las letras como los números.
Además, nunca es tarde para empezar a programar. Aunque no te vayas a dedicar profesionalmente, te puede interesar hacer un circuito automático para regar tu jardín. O ayudar a tus hijos a programar un pequeño robot. La programación a estos niveles es muy sencilla y proporciona grandes satisfacciones de forma inmediata.
(Fotografía de cabecera: Piro4D pixabay)