Sei sulla pagina 1di 11

Antología de Programación

Benemérita
Universidad Autónoma de Puebla
Facultad de Ciencias de la Computación

ANTOLOGIA

...Algunas consideraciones para aprender a


programar!
M.C. Pedro Bello López

RESUMEN

El objetivo de este trabajo es mostrar de forma amena los aspectos cualitativos


que intervienen en el proceso de aprendizaje de la lógica de programación como
el primer paso para aprender a programar. En este trabajo no se presenta ningún
leguaje de programación solo se intenta lograr que el alumno reflexione sobre
lo importante que es la programación y las consideraciones necesarias para
aprender a diseñar y codificar programas de computadoras.

Otoño 2009

1
Antología de Programación

1. Introducción
La programación es una materia esencial en cualquier licenciatura de
computación. Su impacto es muy importante en la mayoría de las asignaturas
de la carrera y en el campo profesional del egresado, por ejemplo el impacto
de la programación en los diversos cursos donde la aplicará, podrían ser: en
Estructura y Representación de Datos, Algoritmos Computacionales, Bases de
Datos, Sistemas de Información, Compiladores, Sistemas Operativos, etc.

La razón principal para que un alumno aprenda la programación es para


resolver problemas. Pero también es muy importante que conozca el tipo de
problemas que deberá resolver en su campo profesional, por ejemplo: en la
banca, las instituciones gubernamentales, hospitales, el comercio, la industria,
servicios turísticos, etc.

Siendo la programación una actividad que implica un proceso mental,


generalmente complejo y creativo, exige del programador: inteligencia,
conocimiento, habilidades y disciplina.

La inteligencia es un recurso natural que en la mujer y el hombre normales es


suficiente para adquirir los otros tres atributos necesarios para programar y
poder resolver problemas utilizando una computadora

La adquisición del conocimiento se logra estudiando los conceptos,


fundamentos y las técnicas básicas de programación.

En cuanto a la adquisición de las habilidades, la voluntad del estudiante es


fundamental, ya que sólo con la práctica y la experimentación constante
personal podrá lograrse.

La disciplina, como observancia de las normas y el buen proceder, la podrá


adquirir el estudiante con la guía valiosa del maestro y de buenos
programadores, comúnmente los autores de libros de texto especializados.

“Algunos libros citan que la base para la solución de problemas a través de la


computadora (Programar) es tener muy buena lógica”

2
Antología de Programación

2. ¿Así que quieres programar?


Pues...!En hora buena¡ te has dado cuenta que las cosas no son fáciles y el
Copy & Paste no es tan factible en muchos casos y que en la mayoría de los
casos las cosas son mejores cuando entendemos que estamos haciendo,
supongo que te estás haciendo la interrogante, ¿y que se necesita para
programar?

Programar depende mucho de tu capacidad, lo primero debes entender es los


fundamentos de la programación, así cuando te encuentres con una situación
donde debas aplicar cierto código, tu sentido común (La Lógica) te dirá que
debes hacer. Una vez que entiendas los fundamentos de la programación,
estas listo para cualquier lenguaje, aunque te recomendaría que empezaras
aprendiendo un poco de C, después de eso, veras que cualquier lenguaje se
te hará sencillo, pues la mayoría de los lenguajes (no todos) están
fuertemente basados en este último.

De entrada te digo que debes ser autodidacta, pues hay muchas cosas que
deberás entender por ti sólo, y que aunque tomes miles de cursos
(exagerando) no las alcanzaras a comprender del todo sino las estudias y
analizas con detenimiento. Un punto clave para el estudio es el comprender lo
que estás haciendo, más que memorizar.

Si te decides por ser autodidacta, hay miles de cursos en la web sobre


fundamentos de programación y Lenguaje C, Google es tu amigo, y también te
recomiendo comprar libros de Introducción al lenguaje de programación ya
que normalmente son los mas básicos para iniciar.

Así que si después de leer esto sigues teniendo ganas de programar, ya


sabes, prueba, experimenta, intenta y cuando sientas que ya no puedes
más...Google es tu amigo. Y una cosa mas cuando entiendas un concepto y
ya lo manejes bien por favor enséñale (Explicando) a alguno de tus
compañeros, eso te servirá para reforzar aun más tus conocimientos y
obtendrás mayor habilidad.

Si eres programador y no logras hacer algo que sirva, llámalo


versión 1.0

3
Antología de Programación

3. La Lógica de programación
Cuando era niño, alguna vez me abroché mal la camisa, en un instante en que
toda mi familia estaba por salir. Una tía me vio con la camisa mal abrochada y
me abordó fuertemente diciéndome que porqué me había abrochado mal la
camisa, que si era que yo no tenía lógica.... Luego de acomodarme
adecuadamente la camisa, es decir, organizándome de manera que cada
botón coincidiera con su CORRESPONDIENTE ojal empecé a pensar que
realmente era posible que no tuviera lógica porque me parecía increíble que
yo no hubiera detectado que para que la camisa quedara colocada
correctamente solo había un camino (y que además era muy sencillo) y era
hacer coincidir cada par botón-ojal. Además de esta conclusión (tan obvia)
también llegué a otra (no tan obvia) y era el hecho de que es más difícil
ponerse mal una camisa que ponérsela bien.

En la medida en que los años fueron pasando, me di cuenta que son muchas
pero muchas las cosas obvias que por un extraño error no hacemos. Y en una
Ingeniería en Ciencias de la Computación la lógica es fundamental. Luego de
buscar muchas definiciones de Lógica, esta me parece interesante:

“La LOGICA es la forma mas OBVIA y mas FACIL de hacer algo”

Ésta definición refleja un sentido amplio y sencillo de entender que la lógica


esta en nosotros y lo que debemos hacer es explotarla para aplicarla.

Un usuario de IBM tenía problemas instalando el software y


llamó pidiendo ayuda. Puse el primer disco en la unidad y todo
parecía correcto. Pero cuando me pidió que metiera el segundo
disco tuve algunos problemas. Pero ya el tercero si no me cupo
esa ranura es muy pequeña.

4. Metodología para Solucionar un Problema


Siempre que vamos a resolver un problema nos enfrentamos con la dificultad
de tener que encontrar precisamente eso: Una Solución. A continuación
enumeraremos los pasos a seguir para resolver un problema mediante la
computadora.

PASO 1: Tener claro el Objetivo: Lo primero que debemos tener muy


pero muy claro es Cual es el problema. Es evidente que no
podemos avanzar hacia la casa de un amigo nuestro que no
sabemos en donde vive porque las posibilidades de que
lleguemos son casi nulas. De manera que lo primero a

4
Antología de Programación

conocer muy bien es el problema como tal que en nuestros términos lo


vamos a ver no como un problema sino como un:
OBJETIVO
Sí, el OBJETIVO es lo más importante en el desarrollo de un problema, es por
ahí por donde debes comenzar. Tener claro el objetivo nos va a permitir
obtener dos beneficios que a la postre serán más grandes de lo que podemos
pensar:

i. Tener claro el objetivo nos permite saber hacia donde vamos


ii. Tener claro el objetivo nos permite saber hasta donde debemos llegar

Estas dos definiciones parecieran ser lo mismo pero en el fondo no lo son.


Debes tener muy claro hacia donde vas pero puedes no saber hasta donde
debes llegar o, dicho en otras palabras, no saber en donde debe parar ó
podrías saber en donde debes parar pero no tener ni idea por cual ruta llegar.

El objetivo se ha de convertir en la razón de ser en la solución de un


problema. En nuestro caso, y mas que nunca, podemos decir que para llegar
a la solución de un problema la clave de ello está en Tener muy claro cuál es
el objetivo y No perderlo nunca de Vista.

Le comentó al técnico de atención on line que su computadora


decía: “no puedo encontrar la impresora”. Incluso he girado el
monitor hacia la impresora pero la computadora sigue sin poder
'ver' la impresora.

PASO 2: Diseñar el ALGORITMO, Tener claro el objetivo nos permite


algo adicional. Aquí voy a utilizar una frase que, aunque un
poco romántica, nos va a ilustrar a que me refiero: El objetivo
es el faro que solo cuando está bien claro nos ilumina el
camino para lograrlo. Cuando el objetivo está suficientemente
claro podemos vislumbrar un camino lógico para llegar hasta
él. Ese camino lógico va a tener un nombre dado y es:
El Algoritmo
Qué es un Algoritmo...? Es un conjunto de pasos
secuenciales y ordenados que permiten lograr un objetivo. Que sean pasos
secuenciales significa que deben ser ejecutados uno después de otro y que
sean pasos ordenados quiere decir que deben llevar un orden quasi-
obligatorio (u obligatorio en la mayoría de los casos). Como puede notar el
algoritmo permite lograr un objetivo. O sea que éste es el camino que
necesitamos para lograrlo. De nuevo, cuándo podemos vislumbrar claramente
el algoritmo..? Cuando el objetivo está realmente claro. Siempre que usted, en
el desarrollo de la solución de un problema, vea que en algún momento no

5
Antología de Programación

sabe por donde ir, no sabe qué hacer o se siente perdido, no busque mas
simplemente quiere decir que realmente usted no tenía tan claro el objetivo
como había pensado.

Como se estructura un objetivo..? Muy sencillo, esto le va a parecer muy obvio


pero aún así se lo voy a decir. Un algoritmo se estructura comenzando en un
Inicio y terminando en un Fin.
Veamos entonces ejemplo: Desarrollar un algoritmo que nos permita adquirir
el libro El Coronel no tiene quien le escriba de Gabriel García Márquez.

Objetivo: Adquirir el libro El Coronel no tiene quien le escriba de Gabriel


García Márquez.
Mucha atención al objetivo. Solamente es adquirirlo en ningún momento el
objetivo es leerlo o resumirlo ni nada, solamente adquirirlo.

Algoritmo (Expresión narrada): Salimos del lugar en donde estemos y nos


dirigimos hacia una librería. En caso de que ya estemos en una en una pues
sencillamente solicitamos si tienen el libro, si lo tienen lo adquirimos y si no lo
tienen vamos a otra librería en donde repetimos el proceso.

PASO 3: LA PRUEBA, todo algoritmo debe ser probado antes de ser


ejecutado con el propósito de que tengamos una alta
certeza de lograr el objetivo. Precisamente éste es el tercer
concepto que tendremos claro:
La prueba
Que para efectos técnicos se llamará la Prueba de
Escritorio. Qué es pues la Prueba de Escritorio..? Es la
simulación de la puesta en marcha de un algoritmo.

Con la Prueba de Escritorio podemos determinar si el algoritmo que hemos


diseñado logra el objetivo propuesto. De no ser así podremos concluir que se
debe corregir el algoritmo hasta lograr que satisfaga el objetivo propuesto.

Una vez desarrollado el algoritmo y habiéndosele


realizado una correcta “Prueba de Escritorio” se procede a
codificar el algoritmo en un Lenguaje de
Programación. Pero ¿que es codificar?

6
Antología de Programación

5. Programación y codificación.
Tal como cita Guillermo Levine [ 1], sobre programar y codificar “la diferencia
entre ambos conceptos es fundamental, y no está entendida del todo en el
medio profesional de la computación ni por completo, por desgracia, en el
medio académico”. Más de una vez hemos escuchado decir “ya aprendí a
programar en C”, lo correcto sería “ya aprendí a codificar en Lenguaje C”.

Hay un consenso creciente entre los profesores de programación en que los


estudiantes deben aprender cómo se resuelven los problemas lógicamente
(desarrollo de algoritmos) antes de preocuparse por la puntuación y otros
detalles de un lenguaje de programación. En el ciclo de la programación, la
codificación solamente representa una de las etapas posteriores al diseño de
la lógica y permite escribir en los términos de un lenguaje de programación la
serie de pasos que realizará la computadora al seguir paso a paso el
programa.

Consideramos que una técnica apropiada para iniciar a los estudiantes en la


programación es explicarles el siguiente diagrama:

ENTRADA PROCESO SALIDA

El estudiante debe ser capaz de describir la salida como la solución a un


problema a partir de los datos de entrada y su transformación a través del
proceso.

La programación estructurada es una técnica que facilita la construcción del


proceso a partir de las estructuras de control primitivas de secuenciación,
selección y repetición condicional. Así mismo la definición de un seudo código
en español, facilita el manejo de las estructuras de control para la construcción
de la lógica necesaria en el proceso.

Mi nombre es Jesús y tengo un disco duro Western Digital,


tengo un mensaje en la pantalla y me gustaría saber quien es el
General Failure y porqué está leyendo mi disco duro.

7
Antología de Programación

6. Aprende a programar en diez años


Algunos investigadores (Hayes, Bloom) han mostrado que toma
aproximadamente diez años desarrollar habilidades en cualquiera de una
amplia variedad de áreas, incluyendo la computación y otras como el juego de
ajedrez, la composición musical, la pintura, el piano, la natación, el tenis, y la
investigación en neuropsicología y topología. Parece no haber atajos: incluso
Mozart, prodigio musical a los 4 años, se tomó 13 más antes de empezar a
producir música de calidad mundial. En otro género, parece que los Beatles
llegan a escena apareciendo en el espectáculo de Ed Sullivan en 1964. Pero
ellos habían estado tocando desde 1957, y aunque tenían una masa de
seguidores desde antes, su primer gran éxito, Sgt. Peppers, apareció en 1967.
Samuel Johnson pensaba que se requieren más de diez años: "La excelencia
en cualquier área puede lograrse sólo mediante el trabajo de toda una vida; no
es algo que pueda adquirirse a un menor precio." Y Chaucer se quejaba "the
lyf so short, the craft so long to lerne."

Aquí está una receta para el éxito en programación:

 Interésate en la programación, y haz programación porque es divertida.


Asegúrate que se mantiene tan divertida que estarás en disposición de
invertir diez años.
 Habla con otros programadores. Lee otros programas. Enseña a otros
lo que has aprendido.
 Programa. El mejor tipo de aprendizaje es aprender haciendo (learning
by doing) .
 Si quieres, dedica cuatro o cinco años en una universidad (o más en
una escuela de graduados). Esto te dará acceso a algunas posiciones
que requieren credenciales, y te dará un entendimiento más profundo
del campo.
 Trabaja en proyectos con otros programadores. Sé el mejor
programador en algunos proyectos; sé el peor en otros. Cuando eres el
mejor, tienes que poner a prueba tus habilidades para liderar un
proyecto y para inspirar a otros con tu visión. Cuando eres el peor,
aprendes lo que los maestros hacen, y aprendes lo que a ellos no les
gusta hacer (pues te ponen a hacerlo por ellos).
 Trabaja en proyectos después que otros programadores. Proponte
entender un programa escrito por otra persona. Mira cuánto toma
entenderlo y hazle correcciones cuando los programadores originales
no están allí. Piensa en cómo diseñar tus programas para facilitarles el
trabajo a aquellos que le harán mantenimiento después de tí.
 Aprende por lo menos una media docena de lenguajes de
programación. Incluye uno con soporte para abstracciones de clases
(como Java o C++), uno que dé soporte a la abstracción functional
(como Lisp o ML), uno que dé soporte a la abstracción sintáctica (como

8
Antología de Programación

Lisp), uno que dé soporte a especificaciones declarativas (como Prolog


o plantillas C++), uno que dé soporte a corrutinas (como Icon o
Scheme), y uno que dé soporte al paralelismo (como Sisal).
 Recuerda que hay "computadoras" en la "ciencia de la computación".
Conoce cuánto le toma a tu computadora ejecutar una instrucción,
alcanzar una palabra de la memoria (con y sin cache), leer palabras
consecutivas de disco, y ubicar una nueva localización en disco.
 Involúcrate en un plan de estandarización de algún lenguaje. Podría
ser en el mismo comité ANSI C, o podría ser simplemente decidir si tu
estilo de codificación tendrá niveles de identación de 2 ó 4 espacios.
Como sea, averigua lo que les gusta a otras personas en un lenguaje,
cómo lo perciben, y quizá incluso un poco de por qué lo perciben como
lo hacen.

El programador y el infierno

Un programador de Microsoft que muere, y lógicamente va al


infierno, y allí el diablo le pregunta:
- Como somos colegas te voy a dar a elegir entre el infierno
normal o el de Windows Vista. A lo que el programador
contesta:
- Pues no se cual elegir, ¿por qué no me los enseñas?
El diablo con un movimiento del tridente le enseña un infierno
lleno de calderas con fuego eterno y mucha gente
lamentándose y le dice:
- Este es el infierno normal.
Volviendo a mover el tridente aparece una playa preciosa llenas
de mujeres fabulosas y con gente divirtiéndose y le dice:
- Este es el infierno de Windows Vista, ¿cuál eliges?
El programador sin pensarlo le dice al diablo:
- El de Windows Vista, por supuesto.
Y el diablo, moviendo el tridente le manda a una caldera con el
fuego mas candente del infierno y con un diablo torturando al
programador. El programador le dice al diablo:
- Oye, ¡esto no es lo que me has enseñado!
Y el diablo le contesta:
- ¿Qué esperabas si era la Versión DEMO?

9
Antología de Programación

7. Conclusión
“Privilegiar la enseñanza de la programación sobre los lenguajes de
programación.”

Como ya se ha establecido en los párrafos anteriores, lo importante es que el


estudiante aprenda a construir la lógica del programa y posterior a esto
codifique usando un lenguaje de programación, además a la par se debe
verificar el desarrollo de la habilidad necesaria para el diseño y construcción
de los algoritmos con un estilo disciplinado que les dé orden y claridad.

PERO RECUERDA SI VAS A ESTUDIAR COMPUTACION HAY


NIVELES…!

Todos los jefes son así

En una hermosa mañana, un jefe de proyecto, un analista


de sistemas y un programador estaban paseando por una
playa para distraerse del proyecto que los había tenido de
cabeza. De repente, encontraron una lámpara casi oculta en la
arena. Obviamente, uno de ellos la frota sin mucha esperanza y
grande fue su sorpresa cuando apareció un genio legítimo.
Al verlos, el genio dijo:
- Bueno, imagino que conocen el procedimiento habitual para
estos casos. Ustedes saben, eso de los tres deseos.
Normalmente se los concedo a una única persona, pero en este
caso como ustedes son tres, le concederé un deseo a cada uno.
El programador quiso ser primero y dijo:
- Me gustaría pasar el resto de mi vida viviendo en una gran
casa, sin problemas de dinero y rodeado de hermosas mujeres
que me idolatren.
El genio le concedió el deseo y lo envío a una lujosa casa, con
mucho dinero y muchas mujeres.
Después siguió el analista de sistemas:
- Me gustaría pasar el resto de mi vida en un gran y lujoso
crucero en el Mediterráneo, sin problemas de dinero y rodeado
de hermosas mujeres que me idolatren.
El genio le concedió el deseo y lo envío al crucero en el
Mediterráneo, con mucho dinero y muchas mujeres.
Al final, le toco el turno al jefe de proyecto.
- Y cuál sería tu deseo?, pregunto el genio.
- Los quiero de vuelta después del almuerzo...

10
Antología de Programación

BIBLIOGRAFIA
[1] Levine, G. Guillermo, Computación y programación moderna. Perspectiva
integral de la Informática. Pearson Educación, México, 2001. ISBN: 968-444-
485-0 Páginas:640.

[2] Joyanes, A. LUIS, Fundamentos de Programación. Algoritmos y


Estructura de Datos. McGraw Hill, España 1998. ISBN: 84-481-0603-2

[3] La Esencia de la Lógica de Programación –


Omar Ivan Trejos Buriticá
http://gpsis.utp.edu.co/omartrejos/index.php?o=libros&id=1
(Recomendado para leer todo el libro)

[4] Oviedo G, Mario, Ortiz U, Frida G. La enseñanza de la programación IPN-


UPIICSA.

[5] Aprende a Programar en diez años


http://www.dgamers.com.ar/showthread.php?t=12489

11

Potrebbero piacerti anche