Está en la página 1de 2

Acerca del Aprender a programar

Reflexiones
Christian Vidal castro

Programar es (muy) complejo1


Muchas veces he escuchado que la programación de computadores es una de las
actividades más dificiles. Y tiene mucho de cierto. Cuando uno comienza a entender
ese mundo de lógica del tipo "Si ocurre esto entonces ..." o "Repita esto Hasta que ..."
es, en algunos casos, traumático y frustrante. El alumno, muchas veces, no entiende la
lógica ni se adapta a la rigurosidad del nuevo lenguaje.

Para quien pretende enseñar la programacion de computadores, partiendo desde el


concepto de algoritmo y su importancia, también es un desafío. Los alumnos por lo
general no obtienen buenas calificaciones y se crea un clima de "alta mortalidad
académica", en las asignaturas relacionadas que no favorece el aprendizaje2.

¿Cual es la complejidad de la programacion de computadores? Influyen sin duda


muchos factores, pero el primero de ellos es que se trata de "Comunicar acciones a
una máquina que no tiene inteligencia". El computador es una máquina tonta. Muy
poderosa, rápida y precisa ... pero sin inteligencia. No puede hacer nada por si sola.
Entonces debemos cambiar la forma de comunicar nuestras ideas ya que no podemos
"hablarle" (por ahora) en nuestro lenguaje humano ambiguo y subjetivo. Ese parece
ser el problema. En la programación, intentamos dar órdenes a una entidad sin
inteligencia y nuestro lenguaje no sirve.

La importancia del algoritmo


Cuando nos enfrentamos a un problema de la vida cotidiana le buscamos una
solución. Dividiendo el problema en partes más sencillas y pequeñas y luego para
cada parte "pensamos" una secuencia de pasos. Esta secuencia de pasos es "casi" un
algoritmo. "Casi" un algoritmo, porque por lo general pensamos muy rápidamente en
las acciones por lo que no están muy claras y son bastante generales. Pero como
somos inteligentes las entendemos en ese estado. Sin embargo un computador,
requiere de acciones precisas, finitas y definidas para realizar una acción. Y eso si es
un algoritmo.

Cuando nos comunicamos entre personas entendemos instrucciones imprecisas. Por


ejemplo, analicemos el clásico algoritmo para hablar por teléfono desde un teléfono
público. Presentaremos aquí un "algoritmo" simplificado y en un forma de lenguaje
natural (en realidad más formal que lo que hablamos normalmente) y mostraremos al
lado las posibles imprecisiones de nuestras órdenes.

1
Aunque pueda ser una opinión subjetiva es bastante generalizada entre alumnos de Informática.
2
La excepción son aquellos alumnos que tienen una habilidad tremenda para la programación y que
distancian a sus compañeros no sólo por su rápido aprendizaje de los lenguajes sino por su
razonamiento.
1
Algoritmo en Lenguaje Natural Imprecisiones
Inicio
Levantar el auricular ¿ Hasta qué altura ?
Escuchar tono ¿ Por cuanto tiempo ?
Si (hay tono de marcar ) entonces
Insertar monedas ¿ Por dónde? ¿ Cuantas?
Marcar número ¿ Dónde se marca? ¿ Con qué?
Si (contestan) entonces ... ¿ qué es "contestan"?
Hablar
De lo contrario
Colgar fono ¿ Qué cosa? ¿ en qué? ¿hasta cuando?
Sacar Monedas ... ¿ de dónde?...
De lo Contrario
Buscar otro teléfono ...
Fin Algoritmo

Si nos imaginamos que estas órdenes deben ser ejecutadas por un ser sin inteligencia,
ni criterio o sentido común (por ejemplo un computador), surgirían aún más
imprecisiones o ambiguedades. Entonces no es fácil escribir órdenes para que sean
ejecutadas por una máquina tonta.

¿ Qué se requiere para escribir buenos algoritmos ?


• Conocer lo mínimo de cómo funcionan los computadores y los objetos asociados
(memoria, variables, direcciones de memoria, lenguajes de programación,
instrucciones, etc.)
• Analizar detenidamente el problema a solucionar, conocer todas sus variables o
factores, qué se requiere como entrada (datos), saber que se quiere lograr
exactamente al final del algoritmo (información), qué problemas podrían ocurrir,
etc.
• Ser metódico. Utilizar algún método que nos ordene mentalmente para llegar a la
solución. Y Luego debemos detenernos a pensar un algoritmo y en lo posible
escribirlo de una forma adecuada (Pseudocódigo, R&G, Diagrama de Flujos, etc.)
• Utilizar un lenguaje preciso y definir acciones precisas. No se debe dejar nada a
criterio del computador porque no lo tiene. Se le debe decir cuando comenzar y
cuando parar... aunque sea tedioso y largo
• Preveer todas las posibles acciones imprevistas. Esto es una de las cosas
difíciles... adelantarse a todo aquello que pueda producir un error en nuestro
algoritmo (por ejemplo números negativos, divisiones por cero, raíces cuadradas
negativas, etc.)

Pero sin duda, lo más importante para escribir algoritmos es entender la problemática
de la comunicación hombre (inteligente) - computador (tonto) y adquirir (a fuerza
de ejercicios y análisis) el razonamiento lógico de un programador.

También podría gustarte