Una discusión que apareció por la red hace unos meses, nos planteaba si era necesario o si era conveniente enseñar a programar en el colegio y universidades e incluso procurar que cuanta más gente supiese programa mejor. Como otras veces, en ese momento estaba yo liado en alguna otra guerra y no pude escribir del asunto. Pero ahora vuelvo sobre el tema.
Antes de desarrollar mi tesis, voy a poner la conclusión. Yo si que enseñaría a programar al mayor número posible de gente. Y claro que incluiría una asignatura en los colegios que fuese introducción a la programación. Y no la pondría optativa, obligatoria. Y ahora a defender mi postura.
- La asignatura, sería introducción a la programación, no introducción a la informática, ni a los ordenadores, ni a la ofimática. No, introducción a la programación.
- No plantearía enseñar ningún lenguaje en particular, al final todos van a evolucionar, desaparecer, sacar nuevas versiones. Por lo tanto lo que hay que hacer es sentar las base de lo que es un proceso, de como se pueden automatizar. Explicar a pensar en resolver problemas.
- Me centraría en la lógica de la programación, en el concepto de estructuras de control, condiciones lógicas y variables.
- Pondría mucho énfasis en la forma de encarar la resolución de problemas.
- Habría que buscar ejemplos de todos los sectores. Me explico, es muy común que en la mayoría de los ejemplos de introducción a la programación, la mayoría de ejemplos son matemáticos o de ciencias. Hay que buscar ejemplos que tengan aplicación en otras ramas más humanistas: historia, lengua, arte… se debe desterrar la idea de que esto de la programación solo viene bien a los de ciencias.
- No sería una asignatura cara. Realmente con una pizarra para el profesor y un cuaderno y un lápiz para cada alumno, sería suficiente. Queremos enseñar a resolver problemas, no a codificar.
Y una vez que tenemos claro el punto de partida, ¿qué ventajas podríamos obtener?
- Vivimos en una sociedad donde cada día más las comunicaciones dependen de sistemas digitales. Es imprescindible conocer aunque sea de forma somera como al final se comporta un programa, para poder tener claro las implicaciones que se derivan del uso de esos programas.
- Cada días más, las decisiones que tomamos dependen de datos obtenidos y/o procesador por sistemas informáticos. Como en el caso anterior, el conocer como se programan estos sistemas nos pueden ayudar a mejorar nuestras tomas de decisiones.
- El hardware ahora mismo es muy poderoso. Necesitamos programas que sean capaces de aprovechar la potencia que tenemos instalada. Cuanta más gente sea capaz de imaginar una solución por software a un problema de la vida diaria, mejor. Podremos aprovechar mejor todo el hardware, quitar tareas repetitivas a las personas. Y una buena forma de conseguir esto es tener una buena masa crítica de personas que sean capaces de expresar un problema y plantear una solución con un algoritmo. Aunque no sean capaces de codificar la solución. Hay que tener en cuenta que muchas veces es más importante el análisis previo que la codificación.
- El programar, nos obliga a ver el mismo problema desde varios ángulos. Nos hace pensar y nos obliga a conocer bien un tema antes de plantear una solución. Esto creo yo que favorecería el espíritu crítico (del que tan falta está la enseñanza actual) y haría que los estudiantes aprendiesen más a pensar y menos a memorizar.
Resumiendo, vamos a poner una analogía de coches, que tanto se llevan en la informática. La situación actual de la programación, se parece a la que existía en el automóvil en las dos primeras décadas del siglo pasado. Teníamos coches, pero su funcionamiento era tan complicado, que se requería de conductores especializados, vamos que hacia falta un chofer. Así que para usar un coche, o uno era un experto conductor, o necesitaba a un chofer. No podías ir donde quisieras, sin la ayuda del chofer. Por lo tanto la industria del automóvil no terminaba de despegar. Conforme más gente aprendió a conducir (y he de decir que en este proceso las mejoras técnicas en los vehículos también ayudaron, al simplificar el puesto de conducción y las tareas de mantenimiento) se vendían más coches. Y de esta forma la revolución del automóvil, surgió cuando todo el mundo sabía conducir uno. Y en muchos países (no así en el nuestro) enseñar a conducir es una asignatura en los colegios. Pues lo mismos podría suceder con la informática. Hoy en día casi todo el mundo tiene un ordenador, ya sea en forma de PC, de tableta, de smartphone… y si conociesen como interactuar con ellos de forma más directa, podríamos mejorar y diversificar su uso y obtener más beneficios que los que tenemos ahora mismo con ellos. Cuantos más programas creados por usuarios finales, mejor. Cuando uno se pone al volante del coche, va donde quiere, porque sabe conducir. Pues cuando coge un ordenador, debe saber por lo menos como decirle que hacer.
30 Comentarios
Comentarios Cerrados
Mi experiencia enseñando a gente de ciclos formativos, que vienen de secundaria, es que les faltaba:
a) Base lógica, ahí vendría muy bien el punto 3 que mencionas, porque a muchos no les entraba en la cabeza lo del OR y el AND.
b) Base matemática, lo de las matrices, por ejemplo, había gente que no entendía el concepto. El tema de precedencia de operadores, etc…
c) Inglés, al principio no entendía porqué algunos no eran capaces de ver la salida del compilador y arreglar fallos obvios, y es que muchos eran incapaces de entenderlo en otro idioma que no fuese español.
Una vez cubierto lo anterior, en mi opinión creo que ya se podría pasar a enseñar programación.
Totalmente de acuerdo, Guille.
Con una simple consulta del Access yo he tenido muchos alumnos que no entendían la diferencia entre Y y O, que en el lenguaje hablado se habla diferente (y para mí, malñ) en frases como: “las lluvias en Madrid, Valencia o Barcelona” cuando es una Y dicen una O (es que me saca de quicio eso…)
Dando clases de PHP, les costaba un montón encontrar ese paréntesis o coma que falta, aunque le señalen incluso la línea. Es otro “idioma” y eso cuesta, está claro, pero el error era “sobra ( en linea 50″, ya era extraño que fueran a la linea 50, y más aún que buscasen ese ( que sobra”. Eso supongo que con experiencia se arregla.
Entender los conceptos de vectores y matrices ya les costaba si no los habían usado antes, y en los punteros ni te cuento,
Eso sí, la hora de almorzar y cómo usar el Whatsapp y el Facebook se prenden por osmosis en 2 minutos.
Creo que es importante que se vea un resultado, y con una libreta se va aburrir hasta el que tenga más ganas de aprender. Entiendo tu postura de aprender las bases pero creo que pueda resultar mucho más movitivante hacerles programar algo y que lo puedan compilar. De hecho estudiando ingenieria informatica alguna clase de pizarra no me he enterado hasta que he llegado a casa lo he compilado y he jugado con ello.Creo que hay que combinar las bases con un resultado visual. Hoy en dia todos los niños tienen ordenador en casa y seguramente hasta smartphone que con profesores cualificados le podrian sacar hasta provecho.
Completamente de acuerdo. Y más específico: la parte visual tendría que hacer posible dibujar en pantalla con instrucciones simples, cosa que cada vez es menos simple con los lenguajes y entornos actuales.
Respecto a la conveniencia, no me cabe la menor duda. Leyendo los comentarios de más abajo, me quedo entre la perplejidad y la tristeza.
Señores, no se trata de enseñar tal o cual materia, se trata de enseñar una habilidad. Leer, escribir (a mano o con un teclado), dibujar o tocar un instrumento no son materias, por más que puedan formar la mayor parte de alguna asignatura en determinado curso. Esto no es un concurso de méritos entre distintas ramas del saber, es enseñar una habilidad básica para desenvolverse en distintas ramas.
Y tratar de convencer a gente que programa de que programar sirve para algo fuera del trabajo… puf. ¡Qué triste!
Yo no niego los beneficios de aprender programación, y me parecería fantástico que se enseñase. El problema que le veo es que lo mismo podrá decir casi cualquier otra profesión, y además con razón. Los industriales dirán que hay que entender cómo funcionan las máquinas porque estamos rodeadas de ellas, los arquitectos que hay que entender cómo funcionan las casas porque vivimos en ellas, y así sucesivamente con abogados, economistas, filólogos, etc.
Y aunque todos tengan razón, y sea tremendamente beneficioso que los niños aprendan todas esas cosas, resulta que el tiempo en la escuela es finito y hay que escoger. Y lo que ya no veo tan claro es si la programación es más útil/beneficiosa que cualquier otra de las materias que he comentado más arriba (y soy informático, ojo 🙂 ), por lo que igual lo mejor es no meterse en esos berenjenales, y que cada cual escoja en qué se quiere especializar más adelante. Ojalá hubiera tiempo para cultivarse en todos los ámbitos del saber, pero por desgracia eso no es así.
Opino lo mismo, y eso que programo en mi tiempo libre 🙂
Si hay que añadir asignaturas, yo metería una de economía. Y, antes que programación, una de lógica (con especial hincapié en las falacias).
Aún estudiando economía necesitas tener nociones básicas de programación para hacer análisis estadísticos…
Un niño en primaria, o en el instituto, no necesita hacer análisis estadísticos. Pero sí le iría muy bien aprender cómo funciona una hipoteca, cómo se calculan los intereses de una cuenta, o qué tipo de impuestos hay y cómo se calculan.
Ya digo que en primaria e incluso secundaria tal vez no sea necesario, totalmente de acuerdo. Pero en bachillerato, totalmente indispensable. En el instituto sí hace falta hacer análisis estadísticos.
Tienes razón en lo que argumentas, pero por esa regla de 3 ¿por qué enseñar física y química o Biología y Geología a los alumnos de 3º de ESO si no van a estudiar esa carrera o cualquiera relacionada? La respuesta es simple: con programación pueden abarcar muchos ámbitos de la vida que nos rodea (físicos o lógicos), en cambio arquitectura, industriales, etc son ámbitos más concretos (físicos)
Pues porque es importante que tengan unas mínimas nociones sobre su entorno. Y si se quieren especializar, pues que hagan la carrera. Y la programación se podría considerar una especialización de la informática básica (de usuario) o hasta de la lógica, y no tengo muy claro que sea más importante que, pongamos, economía básica o derecho, cosas que hoy día no se estudian y serían muy útiles.
¿Ves? eso quizá sea lo que no se ve por la educación clásica que hemos tenido todos. Nos situamos en el siglo XXI y nuestro entorno tiene mucho más que Física, Biología, Química, etc. Estamos en una era digital, una era de contenidos y saber programación ayuda a la gente a adaptarse a todo lo que ello conlleva: hacerte una página web para tu negocio o expresar opiniones, crear una macro en la hoja excel para analizar datos de forma eficiente, hacer consultas avanzadas a bases de datos para extraer la información exacta que necesitas, organizar mediante scripts tus películas y canciones digitales mediante patrones, extender los usos de la domótica, personalizar apliaciones o modificarlas según necesidades… Hay tantos aspectos que mejorarían la vida profesional y de ocio de las personas si supiesen programar que opino que es una ventaja enorme. En el Reino Unido ya se han dado cuenta de esas ventajas y ya es obligatorio la asignatura de programación http://www.enriquedans.com/2013/01/la-informatica-se-incorpora-como-ciencia-al-bachillerato-ingles.html Si queremos estar en la cresta de la ola en cuantos a países eficientes, punteros y adelantados, no hay otro camino que tomar medidas como esas.
El mismo argumento te podría dar un industrial. Al fin y al cabo estamos rodeados de todo tipo de artilugios y maquinaria, y entenderlo y saber crearlos, repararlos o personalizarlos nos aportaría una barbaridad de cosas en la vida personal y profesional. Y seguramente media docena de profesiones más podrían hacer una argumentación similar.
¿Quién tiene razón? Yo no lo tengo nada claro, pero por eso veo muy aventurado poner la informática por delante de otras disciplinas que, a priori, no veo que sean menos necesarias. Y no deja de llamarme la atención que todos los que postulan estas cosas sean informáticos, o al menos se muevan en el mundo de la informática. Dicen que para el que tiene un martillo todos los problemas son clavos, y me parece que algo de eso también hay.
Jesus jimenez que coño es para ti la asignatura de tecnologia
Una asignatura que, si no voy mal, no se da en primaria y en secundaria y bachiller sólo en algunas modalidades.
Totalmente de acuerdo con la necesidad de aprender nociones básicas de programación. Cada vez es más importante si no quieres depender de un informático que no necesariamente debiera dedicarse a cuestiones tan ‘triviales’ para ellos. Cada vez veo más importante la necesidad de tener unas nociones básicas que ayuden a aumentar mi productividad en el trabajo. Además creo que es aplicable a cualquier ámbito del conocimiento, ya seamos de letras o de ciencias.
De hecho, es una idea que se está expandiendo más y más. Hace más de un año ya se argumentaba a favor de esto en The Guardian. Tal vez no hace falta una asignatura así en primaria y secundaria, pero a partir de bachillerato debiera ser obligatoria. ¡Cuánto echamos de menos algunos no haber recibido una formación básica al respecto!
Jesús te contento con otro nuevo mensaje porque no me deja hacerlo en el hilo.
Y es cierto lo que dices de un industrial, de hecho ya se habla de la cuarta revolución industrial.
Sin embargo pero para eso necesitas unos recursos que no son factibles para un colegio (fresadoras, tornos, insoladoras, cortadoras laser, etc). Sin embargo con ordenadores que ya tienen todos los colegios se puede llevar adelante sin más problemas.
Pero no te confundas, si has leído el artículo que te he enlazado no habla de informáticos, habla de las autoridades del departamento de educación del Reino Unido.
Estoy deacuerdo con todo lo dicho anteriormente, pero yo, impartiría obligatoriamente desde primaria una asignatura anti-güasap.Vamos la lengua de Quevedo en todo su esplendor, ortografía y gramática.Nada más hay que ver las faltas de ortografía, expresión y la mutilación del castellano que se hace gracias a las palabras anglosajonas, mensajitos y acepciones sudaméricanas que se escriben en foros, videos de youtube, güasap, por no decir en trabajos escolares y universitarios(parcialmente corregidos por el corrector ortográfico de word).
Ya por no decir la caligrafía, y es que estamos acostumbrandonos a utilizar todo tipo de teclados y solo usamos un bolígrafo para firmar letras de hipotécas y los resguardos de las compras con tarjeta(antigüamente).
La lengua tiene el problema de que muchas veces se enseña de forma aburrida y pocas veces te enseñan a escribir, es más yo escribí mas en las clases de ingles que en las de lengua. En bachillerato en las clases de ingles escribíamos al menos una vez a la semana una redacción de al menos 150 palabras sobre un tema, en lengua nunca hice algo similar en ningún año.
No es necesario escribir, expresarse oralmente con corrección lleva mucha carga a la hora de escribir con corrección.
En la Ikastola de mis hijos, de 3 a 5 años lo primero que hacen por la mañana es hacer un corro y contar lo que quieran, lo que han hecho el fin de semana, algo que les ha gustado… el caso es que hablen para ir aprendiendo vocabulario y la manera de expresar sus ideas.
Si ni siquiera saben, o quieren, expresarse oralmente con corrección, mucho menos lo harán por escrito.
También es la exigencia de la correcta expresión en todos los ámbitos educativos, no sólo en lengua. A mi, en la FP, si no redactaba las memorias de taller con corrección y sin faltas me rechazaban el trabajo hasta que lo hiciera bien. Eso me enseñaba a esforzarme a presentar correctamente un trabajo por escrito: limpio y sin faltas gramaticales ni ortográficas.
No veas lo que cunde que no te corrijan un examen de cualquier materia, o un trabajo si no has prestado atención a la ortografía y gramática.
Un saludo.
Enseñar programación como lo ha planteado el tendero es realmente enseñar algoritmia, y es fundamental a la hora de resolver cualquier problema en cualquier ámbito.
Por ejemplo: una receta de cocina es un algoritmo.
Si enseñamos a pensar en los problemas, a dividirlos en fases y procesos pequeños e individuales, en suma, a diseñar un algoritmo (que es lo que se hace al programar: diseñar un algoritmo y luego implementarlo) estamos dando a las personas del mañana una herramienta muy poderosa para enfrentarse a cualquier reto que se les ponga por delante.
Saludos
Fernando, lo has resumido mucho mejor que yo. Efectivamente, la cuestión es saber resolver problemas y aplicar ese conocimiento al mundo real.
Discrepo…
Al hilo de la reciente publicación sobre el nivel de comprensión lectora y matemáticas: precisamente sobre lo que habláis es de esto. Si lo que hya actualmente no sirve (a los datos me remito) entonces las “bases” para lo que propones son de barro.
Primero lo primero: entender los problemas es el primer paso, saber razonar y no “clonar” una solución previa es el segundo…. la cultura del “copia y pega” lleva a situaciones hilarantes.
Te equivocas, la culpa no la tiene el “copia y pega”, la culpa la tienen ciertos métodos educativos que entienden mal las nuevas tecnologías… éstas han sido creadas por gente que ha sido educada sin ellas, por lo que no son malas y no tienen que desecharse a las primeras de cambio en aras de una modernidad mal entendida.
Un saludo.
Se me olvidaba que la condición indispensable para poder resolver un problema es entenderlo…
Evidentemente si se enseña algoritmia lo primero que hay que hacer es analizar los problemas, por tanto estamos trabajando la comprensión oral y escrita… y no sólo eso. También enseñas a aprender, porque no puedes resolver un problema si no sabes antes nada sobre el tema del mismo.
Un saludo
Me reservaré -en principio- mi opinión… Explico entonces el porqué comento esta entrada.
Los informáticos tenemos una merecida fama entre familiares (parejas incluidas) de que vamos al grano. Que no soportamos los circunloquios. Que nos exasperamos cuando nos hablan y reclamamos concreción. Y exasperamos a quienes nos rodean porque nuestras interacciones (respuestas, quería decir) son casi siempre cortas: sí / no. Nosotros sabemos que esto no es así porque seamos informáticos, sino porque somos programadores o hemos programado (autómatas, nóminas o juegos, da lo mismo).
¿Os imagináis un mundo en el que todos sean como nosotros, programadores? Ahí dejo la pregunta 😉
SI
;D
Y también tenemos fama que que nos gusta entender como funcionan las cosas, no parar de pensar, hasta encontrar una solución. Y si encontramos la solución, tratar de mejorarla… que no todo van a ser cosas malas.
Lo que yo defino como CURIOSIDAD y mucha gente califica como raro… parece ser que mantener la curiosidad por el qué, cómo y porqué se ve mal en los adultos…
Yo lo tengo claro desde hace muchos años: si eres un adulto curioso es raro que no seas un técnico (informático, mecánico, ingeniero…) o un científico.
Casi meto en la lista de “curiosos” al “cotilla” o “verdulero”, pero ese es otro tipo de curiosidad…
Un saludo.
Perdón, no soy programador, ni tampoco sé, pero si me tocó estudiar música, cosa que jamas me ha servido para nada, lo podría haber cambiado por programación y estoy seguro de que algo más útil hubiera aprendido.