Está en la página 1de 11

Antologa de Programacin

Benemrita
Universidad Autnoma de Puebla
Facultad de Ciencias de la Computacin
ANTOLOGIA
...Algunas consideraciones para aprender a
programar!
M.C. Pedro Bello Lpez
RESUMEN
El objetivo de este trabajo es mostrar de forma amena los aspectos cualitativos
ue intervienen en el proceso de aprendizaje de la lgica de programacin como
el primer paso para aprender a programar. En este trabajo no se presenta ning!n
leguaje de programacin solo se intenta lograr ue el alumno refle"ione sobre
lo importante ue es la programacin # las consideraciones necesarias para
aprender a dise$ar # codificar programas de computadoras.
%to$o &''(
)
Antologa de Programacin
1. Introduccin
La proramacin es una materia esencial en cual!uier licenciatura de
computacin" #u impacto es mu$ importante en la ma$or%a de las asinaturas
de la carrera $ en el campo pro&esional del eresado' por e(emplo el impacto
de la proramacin en los diversos cursos donde la aplicar)' podr%an ser* en
+structura $ ,epresentacin de -atos' Aloritmos Computacionales' Bases de
-atos' #istemas de In&ormacin' Compiladores' #istemas Operativos' etc"
La ra.n principal para !ue un alumno aprenda la proramacin es para
resolver problemas" Pero tambin es mu$ importante !ue cono.ca el tipo de
problemas !ue deber) resolver en su campo pro&esional' por e(emplo* en la
banca' las instituciones ubernamentales' /ospitales' el comercio' la industria'
servicios tur%sticos' etc"
#iendo la proramacin una actividad !ue implica un proceso mental'
eneralmente comple(o $ creativo' e0ie del proramador* inteligencia,
conocimiento, habilidades y disciplina.
La inteligencia es un recurso natural !ue en la mu(er $ el /ombre normales
es su&iciente para ad!uirir los otros tres atributos necesarios para proramar $
poder resolver problemas utili.ando una computadora
La ad!uisicin del conocimiento se lora estudiando los conceptos'
&undamentos $ las tcnicas b)sicas de proramacin"
+n cuanto a la ad!uisicin de las habilidades' la voluntad del estudiante es
&undamental' $a !ue slo con la pr)ctica $ la e0perimentacin constante
personal podr) lorarse"
La disciplina' como observancia de las normas $ el buen proceder' la podr)
ad!uirir el estudiante con la u%a valiosa del maestro $ de buenos
proramadores' com1nmente los autores de libros de te0to especiali.ados"
Algunos libros citan que la base para la solucin de problemas a travs de la
computadora (Programar) es tener muy buena lgica
&
Antologa de Programacin
2. As que quieres programar
Pues"""2+n /ora buena3 te /as dado cuenta !ue las cosas no son &)ciles $ el
Cop$ 4 Paste no es tan &actible en muc/os casos $ !ue en la ma$or%a de los
casos las cosas son me(ores cuando entendemos !ue estamos /aciendo'
supono !ue te est)s /aciendo la interroante' y que se necesita para
programar
Proramar depende muc/o de tu capacidad' lo primero debes entender es los
&undamentos de la proramacin' as% cuando te encuentres con una situacin
donde debas aplicar cierto cdio' tu sentido com1n 5La Lica6 te dir) !ue
debes /acer" Una ve. !ue entiendas los &undamentos de la proramacin'
estas listo para cual!uier lenua(e' aun!ue te recomendar%a !ue empe.aras
aprendiendo un poco de C' despus de eso' veras !ue cual!uier lenua(e se
te /ar) sencillo' pues la ma$or%a de los lenua(es 5no todos6 est)n
&uertemente basados en este 1ltimo"
-e entrada te dio !ue debes ser autodidacta' pues /a$ muc/as cosas !ue
deber)s entender por ti slo' $ !ue aun!ue tomes miles de cursos
5e0aerando6 no las alcan.aras a comprender del todo sino las estudias $
anali.as con detenimiento" Un punto clave para el estudio es el comprender lo
!ue est)s /aciendo' m)s !ue memori.ar"
#i te decides por ser autodidacta' /a$ miles de cursos en la 7eb sobre
&undamentos de proramacin $ Lenua(e C' Goole es tu amio' $ tambin te
recomiendo comprar libros de Introduccin al lenua(e de proramacin $a
!ue normalmente son los mas b)sicos para iniciar"
As% !ue si despus de leer esto siues teniendo anas de proramar' $a
sabes' prueba' e0perimenta' intenta $ cuando sientas !ue $a no puedes
m)s"""Goole es tu amio" 8 una cosa mas cuando entiendas un concepto $
$a lo mane(es bien por &avor ens9ale 5+0plicando6 a aluno de tus
compa9eros' eso te servir) para re&or.ar aun m)s tus conocimientos $
obtendr)s ma$or /abilidad"
Si eres programador y no logras hacer algo que sirva,
llmalo versin 1.0
*
Antologa de Programacin
!. La Lgica de programacin
Cuando era ni9o' aluna ve. me abroc/ mal la camisa' en un instante en !ue
toda mi &amilia estaba por salir" Una t%a me vio con la camisa mal abroc/ada $
me abord &uertemente dicindome !ue por!u me /ab%a abroc/ado mal la
camisa' !ue si era !ue $o no ten%a lica"""" Lueo de acomodarme
adecuadamente la camisa' es decir' orani.)ndome de manera !ue cada
botn coincidiera con su CO,,+#PON-I+NT+ o(al empec a pensar !ue
realmente era posible !ue no tuviera lica por!ue me parec%a incre%ble !ue
$o no /ubiera detectado !ue para !ue la camisa !uedara colocada
correctamente solo /ab%a un camino 5$ !ue adem)s era mu$ sencillo6 $ era
/acer coincidir cada par botn:o(al" Adem)s de esta conclusin 5tan obvia6
tambin lleu a otra 5no tan obvia6 $ era el /ec/o de !ue es m)s di&%cil
ponerse mal una camisa !ue ponrsela bien"
+n la medida en !ue los a9os &ueron pasando' me di cuenta !ue son muc/as
pero muc/as las cosas obvias !ue por un e0tra9o error no /acemos" 8 en una
Inenier%a en Ciencias de la Computacin la lica es &undamental" Lueo de
buscar muc/as de&iniciones de Lica' esta me parece interesante*
La LOGICA es la forma mas OBVIA y mas FACIL de hacer algo
;sta de&inicin re&le(a un sentido amplio $ sencillo de entender !ue la lica
esta en nosotros $ lo !ue debemos /acer es e0plotarla para aplicarla"
Un usuario de IBM tena pro!lemas instalando el
so"t#are y llam pidiendo ayuda. $use el primer disco
en la unidad y todo pareca correcto. $ero cuando me
pidi que metiera el segundo disco tuve algunos
pro!lemas. $ero ya el tercero si no me cupo esa ranura
es muy peque%a.
". #etodologa para $olucionar un %roblema
#iempre !ue vamos a resolver un problema nos en&rentamos con la di&icultad
de tener !ue encontrar precisamente eso* &na $olucin" A continuacin
enumeraremos los pasos a seuir para resolver un problema mediante la
computadora"
PASO 1: Tener claro el Ob(etivo* Lo primero !ue debemos tener mu$
pero mu$ claro es 'ual es el problema" +s evidente !ue no
podemos avan.ar /acia la casa de un amio nuestro !ue no
sabemos en donde vive por!ue las posibilidades de !ue
lleuemos son casi nulas" -e manera !ue lo primero a
+
Antologa de Programacin
conocer muy bien es el problema como tal !ue en nuestros trminos lo
vamos a ver no como un problema sino como un*
()*+,I-(
#%' el OB<+TI=O es lo m)s importante en el desarrollo de un problema' es por
a/% por donde debes comen.ar" Tener claro el ob(etivo nos va a permitir
obtener dos bene&icios !ue a la postre ser)n m)s randes de lo !ue podemos
pensar*
i. ,ener claro el ob.eti/o nos permite saber hacia donde /amos
ii. ,ener claro el ob.eti/o nos permite saber hasta donde debemos llegar
+stas dos de&iniciones parecieran ser lo mismo pero en el &ondo no lo son"
-ebes tener mu$ claro /acia donde vas pero puedes no saber /asta donde
debes llear o' dic/o en otras palabras' no saber en donde debe parar
podr%as saber en donde debes parar pero no tener ni idea por cual ruta llear"
+l ob(etivo se /a de convertir en la ra.n de ser en la solucin de un
problema" +n nuestro caso' $ mas !ue nunca' podemos decir !ue para llear
a la solucin de un problema la clave de ello est) en ,ener muy claro cu0l es
el ob.eti/o y 1o perderlo nunca de -ista.
&e coment al t'cnico de atencin on line que su
computadora deca( )no puedo encontrar la impresora*.
Incluso he girado el monitor hacia la impresora pero la
computadora sigue sin poder +ver+ la impresora.
PASO 2: 2ise3ar el AL4(5I,#(, Tener claro el ob(etivo nos permite
alo adicional" A!u% vo$ a utili.ar una &rase !ue' aun!ue un
poco rom)ntica' nos va a ilustrar a !ue me re&iero* +l ob(etivo
es el &aro !ue solo cuando est) bien claro nos ilumina el
camino para lorarlo" Cuando el ob(etivo est) su&icientemente
claro podemos vislumbrar un camino lico para llear /asta
l" +se camino lico va a tener un nombre dado $ es*
+l Algoritmo
>u es un Aloritmo"""? +s un con(unto de pasos
secuenciales $ ordenados !ue permiten lorar un ob(etivo" >ue sean pasos
secuenciales sini&ica !ue deben ser e(ecutados uno despus de otro $ !ue
sean pasos ordenados !uiere decir !ue deben llevar un orden !uasi:
obliatorio 5u obliatorio en la ma$or%a de los casos6" Como puede notar el
aloritmo permite lorar un ob(etivo" O sea !ue ste es el camino !ue
necesitamos para lorarlo" -e nuevo' cu)ndo podemos vislumbrar claramente
el aloritmo""? Cuando el ob(etivo est) realmente claro" #iempre !ue usted' en
el desarrollo de la solucin de un problema' vea !ue en al1n momento no
,
Antologa de Programacin
sabe por donde ir' no sabe !u /acer o se siente perdido' no bus!ue mas
simplemente !uiere decir !ue realmente usted no ten%a tan claro el ob(etivo
como /ab%a pensado"
Como se estructura un ob(etivo""? @u$ sencillo' esto le va a parecer mu$ obvio
pero a1n as% se lo vo$ a decir" Un aloritmo se estructura comen.ando en un
Inicio $ terminando en un Fin"
-eamos entonces e.emplo6 -esarrollar un aloritmo !ue nos permita ad!uirir
el libro El Coronel no tiene quien le escriba de Gabriel Garca !"rque#"
(b.eti/o6 Ad!uirir el libro +l Coronel no tiene !uien le escriba de Gabriel
Garc%a @)r!ue."
@uc/a atencin al ob(etivo" #olamente es ad!uirirlo en nin1n momento el
ob(etivo es leerlo o resumirlo ni nada' solamente ad!uirirlo"
Algoritmo 7+8presin narrada9* #alimos del luar en donde estemos $ nos
diriimos /acia una librer%a" +n caso de !ue $a estemos en una en una pues
sencillamente solicitamos si tienen el libro' si lo tienen lo ad!uirimos $ si no lo
tienen vamos a otra librer%a en donde repetimos el proceso"
PASO 3: LA %5&+)A' todo aloritmo debe ser probado antes de ser
e(ecutado con el propsito de !ue tenamos una alta
certe.a de lorar el ob(etivo" Precisamente ste es el tercer
concepto !ue tendremos claro*
La prueba
>ue para e&ectos tcnicos se llamar) la %rueba de
+scritorio" >u es pues la Prueba de +scritorio""? +s la
simulacin de la puesta en marc/a de un aloritmo"
Con la Prueba de +scritorio podemos determinar si el aloritmo !ue /emos
dise9ado lora el ob(etivo propuesto" -e no ser as% podremos concluir !ue se
debe correir el aloritmo /asta lorar !ue satis&aa el ob(etivo propuesto"
Una ve. desarrollado el aloritmo $ /abindosele
reali.ado una correcta APrueba de +scritorioB se procede a
codi:icar el aloritmo en un Lenua(e de
Proramacin" Pero C!ue es codi&icar?
-
Antologa de Programacin
;. %rogramacin y codi:icacin.
Tal como cita Guillermo Levine D
E
F' sobre proramar $ codi&icar Ala di&erencia
entre ambos conceptos es &undamental' $ no est) entendida del todo en el
medio pro&esional de la computacin ni por completo' por desracia' en el
medio acadmicoB" @)s de una ve. /emos escuc/ado decir A$a aprend% a
proramar en CB' lo correcto ser%a A$a aprend% a codi&icar en Lenua(e CB"

Ga$ un consenso creciente entre los pro&esores de proramacin en !ue los
estudiantes deben aprender cmo se resuelven los problemas licamente
5desarrollo de aloritmos6 antes de preocuparse por la puntuacin $ otros
detalles de un lenua(e de proramacin" +n el ciclo de la proramacin' la
codi&icacin solamente representa una de las etapas posteriores al dise9o de
la lica $ permite escribir en los trminos de un lenua(e de proramacin la
serie de pasos !ue reali.ar) la computadora al seuir paso a paso el
prorama"
Consideramos !ue una tcnica apropiada para iniciar a los estudiantes en la
proramacin es e0plicarles el siuiente diarama*
+l estudiante debe ser capa. de describir la salida como la solucin a un
problema a partir de los datos de entrada $ su trans&ormacin a travs del
proceso"
La proramacin estructurada es una tcnica !ue &acilita la construccin del
proceso a partir de las estructuras de control primitivas de secuenciacin'
seleccin $ repeticin condicional" As% mismo la de&inicin de un seudo cdio
en espa9ol' &acilita el mane(o de las estructuras de control para la construccin
de la lica necesaria en el proceso"
Mi nom!re es ,es-s y tengo un disco duro .estern
/igital, tengo un mensa0e en la pantalla y me gustara
sa!er quien es el 1eneral 2ailure y porqu' est leyendo
mi disco duro.
)
.
E/01A2A P1%CE3% 3AL42A
Antologa de Programacin
<. Aprende a programar en die= a3os
Alunos investiadores 5Ga$es' Bloom6 /an mostrado !ue toma
apro0imadamente die. a9os desarrollar /abilidades en cual!uiera de una
amplia variedad de )reas' inclu$endo la computacin $ otras como el (ueo de
a(edre.' la composicin musical' la pintura' el piano' la natacin' el tenis' $ la
investiacin en neuropsicolo%a $ topolo%a" Parece no /aber ata(os* incluso
@o.art' prodiio musical a los H a9os' se tom EI m)s antes de empe.ar a
producir m1sica de calidad mundial" +n otro nero' parece !ue los Beatles
llean a escena apareciendo en el espect)culo de +d #ullivan en EJKH" Pero
ellos /ab%an estado tocando desde EJLM' $ aun!ue ten%an una masa de
seuidores desde antes' su primer ran 0ito' #t" Peppers' apareci en EJKM"
#amuel <o/nson pensaba !ue se re!uieren m)s de die. a9os* NLa e0celencia
en cual!uier )rea puede lorarse slo mediante el traba(o de toda una vidaO no
es alo !ue pueda ad!uirirse a un menor precio"N 8 C/aucer se !ue(aba Nt/e
l$& so s/ort' t/e cra&t so lon to lerne"N
Aqu est0 una receta para el >8ito en programacin6
Intersate en la proramacin' $ /a. proramacin por!ue es divertida"
Ase1rate !ue se mantiene tan divertida !ue estar)s en disposicin de
invertir die. a9os"
Gabla con otros proramadores" Lee otros proramas" +nse9a a otros
lo !ue /as aprendido"
Prorama" +l me(or tipo de aprendi.a(e es aprender /aciendo 5learnin
b$ doin6 "
#i !uieres' dedica cuatro o cinco a9os en una universidad 5o m)s en
una escuela de raduados6" +sto te dar) acceso a alunas posiciones
!ue re!uieren credenciales' $ te dar) un entendimiento m)s pro&undo
del campo"
Traba(a en pro$ectos con otros proramadores" # el me(or
proramador en alunos pro$ectosO s el peor en otros" Cuando eres el
me(or' tienes !ue poner a prueba tus /abilidades para liderar un
pro$ecto $ para inspirar a otros con tu visin" Cuando eres el peor'
aprendes lo !ue los maestros /acen' $ aprendes lo !ue a ellos no les
usta /acer 5pues te ponen a /acerlo por ellos6"
Traba(a en pro$ectos despus !ue otros proramadores" Proponte
entender un prorama escrito por otra persona" @ira cu)nto toma
entenderlo $ /a.le correcciones cuando los proramadores oriinales
no est)n all%" Piensa en cmo dise9ar tus proramas para &acilitarles el
traba(o a a!uellos !ue le /ar)n mantenimiento despus de t%"
5
Antologa de Programacin
Aprende por lo menos una media docena de lenua(es de
proramacin" Inclu$e uno con soporte para abstracciones de clases
5como <ava o CPP6' uno !ue d soporte a la abstraccin &unctional
5como Lisp o @L6' uno !ue d soporte a la abstraccin sint)ctica 5como
Lisp6' uno !ue d soporte a especi&icaciones declarativas 5como Prolo
o plantillas CPP6' uno !ue d soporte a corrutinas 5como Icon o
#c/eme6' $ uno !ue d soporte al paralelismo 5como #isal6"
,ecuerda !ue /a$ NcomputadorasN en la Nciencia de la computacinN"
Conoce cu)nto le toma a tu computadora e(ecutar una instruccin'
alcan.ar una palabra de la memoria 5con $ sin cac/e6' leer palabras
consecutivas de disco' $ ubicar una nueva locali.acin en disco"
Invol1crate en un plan de estandari.acin de al1n lenua(e" Podr%a
ser en el mismo comit AN#I C' o podr%a ser simplemente decidir si tu
estilo de codi&icacin tendr) niveles de identacin de Q H espacios"
Como sea' averiua lo !ue les usta a otras personas en un lenua(e'
cmo lo perciben' $ !ui.) incluso un poco de por !u lo perciben como
lo /acen"
3l programador y el in4erno
Un programador de Microso"t que muere, y lgicamente
va al in4erno, y all el dia!lo le pregunta(
5 6omo somos colegas te voy a dar a elegir entre el
in4erno normal o el de .indo#s 7ista. 8 lo que el
programador contesta(
5 $ues no se cual elegir, 9por qu' no me los ense%as:
3l dia!lo con un movimiento del tridente le ense%a un
in4erno lleno de calderas con "uego eterno y mucha
gente lamentndose y le dice(
5 3ste es el in4erno normal.
7olviendo a mover el tridente aparece una playa
preciosa llenas de mu0eres "a!ulosas y con gente
divirti'ndose y le dice(
5 3ste es el in4erno de .indo#s 7ista, 9cul eliges:
3l programador sin pensarlo le dice al dia!lo(
5 3l de .indo#s 7ista, por supuesto.
; el dia!lo, moviendo el tridente le manda a una caldera
con el "uego mas candente del in4erno y con un dia!lo
torturando al programador. 3l programador le dice al
dia!lo(
5 <ye, =esto no es lo que me has ense%ado>
; el dia!lo le contesta(
5 9?u' espera!as si era la 7ersin /3M<:
(
Antologa de Programacin
?. 'onclusin
Privilegiar la enseanza de la rogramaci!n so"re los leng#a$es de
rogramaci!n%
Como $a se /a establecido en los p)rra&os anteriores' lo importante es !ue el
estudiante aprenda a construir la lica del prorama $ posterior a esto
codi&i!ue usando un lenua(e de proramacin' adem)s a la par se debe
veri&icar el desarrollo de la /abilidad necesaria para el dise9o $ construccin
de los aloritmos con un estilo disciplinado !ue les d orden $ claridad"
PE1% 1EC6E12A 34 7A3 A E30624A1 C%MP60AC4%/ 8A9
/47ELE3:;
@odos los 0e"es son as

3n una hermosa ma%ana, un jefe de proyecto, un
analista de sistemas y un programador esta!an
paseando por una playa para distraerse del proyecto
que los ha!a tenido de ca!eAa. /e repente, encontraron
una lmpara casi oculta en la arena. <!viamente, uno
de ellos la "rota sin mucha esperanAa y grande "ue su
sorpresa cuando apareci un genio legtimo.
8l verlos, el genio di0o(
5 Bueno, imagino que conocen el procedimiento ha!itual
para estos casos. Ustedes sa!en, eso de los tres deseos.
Bormalmente se los concedo a una -nica persona, pero
en este caso como ustedes son tres, le conceder' un
deseo a cada uno.
3l programador quiso ser primero y di0o(
5 Me gustara pasar el resto de mi vida viviendo en una
gran casa, sin pro!lemas de dinero y rodeado de
hermosas mu0eres que me idolatren.
3l genio le concedi el deseo y lo envo a una lu0osa
casa, con mucho dinero y muchas mu0eres.
/espu's sigui el analista de sistemas(
5 Me gustara pasar el resto de mi vida en un gran y
lu0oso crucero en el Mediterrneo, sin pro!lemas de
dinero y rodeado de hermosas mu0eres que me
idolatren.
3l genio le concedi el deseo y lo envo al crucero en el
Mediterrneo, con mucho dinero y muchas mu0eres.
8l 4nal, le toco el turno al jefe de proyecto.
5 ; cul sera tu deseo:, pregunto el genio.
)'
Antologa de Programacin
5 &os quiero de vuelta despu's del almuerAo...
)I)LI(45A@IA
DEF Levine' G" Guillermo' Computacin $ proramacin moderna" Perspectiva
interal de la In&orm)tica" Pearson +ducacin' @0ico' QRRE" I#BN* JKS:HHH:
HSL:R P)inas*KHR"
DQF <o$anes' A" LUI#' Fundamentos de Proramacin" Aloritmos $
+structura de -atos" @cGra7 Gill' +spa9a EJJS" I#BN* SH:HSE:RKRI:Q
DIF La +sencia de la Lica de Proramacin T
Omar Ivan Tre(os Buritic)
/ttp*UUpsis"utp"edu"coUomartre(osUinde0"p/p?oVlibros4idVE
5,ecomendado para leer todo el libro6
DHF Oviedo G' @ario' Orti. U' Frida G" La ense9an.a de la proramacin IPN:
UPIIC#A"
DLF Aprende a Proramar en die. a9os
/ttp*UU777"damers"com"arUs/o7t/read"p/p?tVEQHSJ
))

También podría gustarte