Mostrando entradas con la etiqueta Lógica de programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Lógica de programación. Mostrar todas las entradas

jueves, 12 de septiembre de 2024

Lenguajes. Python.

Lógica de programación

Parto de que la alfabetización digital, ahora entendida como competencia digital, que no es lo mismo pero se parece y para qué andarnos con diferenciaciones de matiz, tiene como uno de sus (discutidos) componentes, la lógica de programación. Digo discutidos porque, en sentido estricto, no es necesario dominar dicha lógica para ser un usuario más o menos competente de los recursos digitales (competencia digital a nivel usuario, que es la realmente predominante), pero sí en fundamental para hablar de alfabetización digital, también en sentido estricto, que asimilo a lo que el conocimiento y dominio de la lectura y la escritura son a la alfabetización a secas: conocer y saber usar el código, comprender los mensajes y componer textos. En esas diferencias radican las que se dan entre determinada forma de entender la competencia digital y el significado real de lo que supone la alfabetización digital. Evidentemente defiendo la necesidad de lograr esta última y considero falaz un desarrollo competencial que nos limite al mero papel de usuarios de tecnologías y algoritmos comercializados, sin negar la evidencia de que su conocimiento y dominio de uso son también necesarios. Necesarios sí, pero no suficientes.


Podemos definir como lógica de programación la formalización mediante representaciones y lenguajes formales de la capacidad de identificar un problema y organizar y estructurar ideas e instrucciones de forma coherente para su resolución. Esta estructuración que deriva y se expresa en lo que llamamos algoritmo, se realiza mediante la aplicación de reglas y procesos coherentes.

De la definición anterior se siguen dos cuestiones principales que revelan su importancia en el proceso de alfabetización que pretendemos:
  • Que existe y se conoce un problema, luego hay un conocimiento "experto" previo y una situación real que se problematiza.
  • Que se procede mediante un lenguaje formalizado, dotado de forma y regido por una lógica propia, no siempre equivalente (al menos en lo formal) a otros lenguajes y a otras lógicas. Un lenguaje que, en consecuencia, es necesario comprender y "hablar".
Si de la primera se deriva la importancia del conocimiento "experto" del problema y de su contexto (lo cual es clave en un enfoque instrumental y aplicado de la alfabetización digital), la segunda implica que existe una diferencia entre el conocimiento no formal de la algoritmia "natural", que la que aprendemos en función de nuestra experiencia vital socializada y la alfabetización digital, que supone el conocimiento de un lenguaje básico formalizado (que generalmente denominamos pseudolenguaje) mediante el que se expresa el algoritmo, y la formalización de la representación (gráfica) del mismo mediante diagramas de flujo.

Aunque este conocimiento básico subyace a todo proceso de alfabetización en lógica de programación, no es hasta que se conoce y "habla" un lenguaje real de programación que se alcanza la capacidad de aplicar la lógica de programación a la resolución de un problema, siendo éste el objetivo y la medida del logro del proceso de alfabetización. Es aquí donde se revela necesario optar por un lenguaje en función de los objetivos reales que se planteen alcanzar. Dicho de otro modo, es en este momento donde debemos valorar la idoneidad de Python como lenguaje de programación en el que basar el proceso de alfabetización digital.

miércoles, 13 de marzo de 2024

Presentación.

La programación como recurso para los SEO

Queda mucho para que la programación informática se considere parte de la competencia digital de los SEO; el estado actual de esta competencia está muy lejos de este objetivo, en mentalidad y en conocimientos, por lo que no se puede esperar que los orientadores asuman que el pensamiento computacional forma parte de su perfil competencial. 

La Administración educativa asume que esta competencia tiene carácter genérico, lo que, en la práctica, implica suponer que viene "de serie", con lo que no parece dispuesta a exigirla ni a considerarla específicamente como parte de la formación que ofrece. Y por lo visto, en la práctica, tampoco a dar ejemplo de su aplicación.

Por si éramos pocos, las muchas veces simplemente falsas promesas de la IA hacen aun más difícil que se plantee siquiera ese objetivo: ¿para qué aprender a programar si ya lo hace la IA?.

Nada de esto es cierto, al menos no en la forma simplista en que lo expreso, pero me temo que sea el planteamiento más frecuente, y no sólo en nuestro colectivo profesional. Sin duda la IA puede aportar mucho (menos de lo que pretende, posiblemente), pero no va a ser ninguna panacea, salvo que alguien interesado en el tema cree una IA específicamente diseñada para resolver estas nuestras necesidades. Mientras tanto, como tantas veces, podemos esperar sentados... o aprender a programar.

Saber programar supone un salto cualitativo fundamental para que los SEO sean competentes a la hora de crear las herramientas de trabajo  que necesitan, bien para automatizar la gestión de la documentación profesional, bien para crear herramientas que se ajusten a nuestras necesidades.

No es un proceso sencillo, ya que se requiere conocimiento y práctica, por lo que lleva tiempo. Pero tampoco es tan difícil en sus formas básicas pero suficientes para producir recursos que respondan satisfactoriamente a lo que necesitamos. Y para muestra el botón que ejemplifica el uso de los lenguajes de macros (script) basados y desarrollados sobre los propios documentos y pensados para automatizar su elaboración.

Con el objetivo de fundamentar el desarrollo de esta competencia (programar), he creído necesario empezar por el conocimiento de los elementos básicos del lenguaje OOo Basic. Estos conocimientos, además de necesarios para manejarse con este lenguaje, son en gran medida compartidos por todos los lenguajes de programación, con lo que sirve para futuros procesos de aprendizaje. Puedes encontrar estos conocimientos introductorios en la sección OOo Basic.