Está en la página 1de 7

Prefacio La transmisin de un pensamiento tan abstracto como lo es la

programacin requiere de la propuesta de nuevas estrategias en las que se


involucren de forma equilibrada la teora, los ejemplos y la prctica. En este
libro presentamos un mtodo de enseanza de la programacin basado en el
constructivismo cuyo objetivo principal es ayudar a aquellos que se enfrentan a
la programacin por primera vez. La habilidad para programar es una
necesidad actual de los profesionales que les permite ser competitivos. Y no
hablamos solamente de los profesionales de la informtica, sino tambin de
otros especialistas que requieren de la programacin para poner en prctica
sus conocimientos y hacerlos de utilidad tales como ingenieros, matemticos,
fsicos, entre muchos otros. Hemos detectado a lo largo de doce aos de
experiencia impartiendo cursos de programacin estructurada, que a muchos
de los alumnos que se enfrentan por primera vez al reto de programar una
computadora se les dificulta entender en qu consiste, puesto que requiere de
un conocimiento abstracto que no tiene similitudes con el de otras disciplinas.
Algunas veces tienden a memorizar y a mecanizar los problemas, lo que les
impide adquirir la habilidad de solucionar problemas de diversa ndole. Los
programas de ejemplo son una rica fuente de informacin para presentar,
analizar y discutir un lenguaje de programacin, sin embargo, transmitir las
estrategias para crear estos programas es mucho ms complicado. Hemos
notado la necesidad de que los alumnos cuenten con un libro que contenga,
adems de la descripcin del tema, varios ejemplos resueltos sobre el mismo,
con el fin de aprender de la observacin de los ejemplos, y de la resolucin de
problemas similares a problemas previos. Procuramos que los ejercicios
incluidos apoyen el aprendizaje de manera que sean un reto, pero situados en
una zona asequible de acuerdo con el nivel de conocimientos y habilidades
adquiridos. Con fundamento en la zona de desarrollo prximo planteada por
Vygotsky, propusimos los ejercicios de tal forma que se conviertan en un
andamiaje para el alumno de acuerdo con su nivel de avance. Este andamiaje
le permite sostenerse y se puede ir quitando una vez que se han adquirido las
habilidades y conocimientos necesarios para la resolucin autnoma de los
problemas. La metodologa de este libro tiene el objetivo de guiar al estudiante
en su aprendizaje de la programacin estructurada y le llamamos Solucin por
Etapas porque consiste en mostrar una o varias etapas de la solucin de cada
ejercicio hasta llegar a la solucin completa. Queremos lograr que el alumno
resuelva los problemas sin necesidad de ver la solucin, sin embargo, en caso
de que necesite una ayuda para continuar o para empezar a resolverlo, puede
consultar la siguiente etapa sin necesidad de ver la solucin completa.
Pretendemos motivar a los estudiantes a que resuelvan los ejercicios dndoles
la confianza de que no estn solos, ya que saben que en el momento en el que
no puedan continuar, pueden consultar la ayuda que se les brinda por etapas.
De esta forma todos los ejercicios son realmente ejemplos y es el alumno el
que decide cuanto estudia la solucin planteada y cuanto se esfuerza en
solucionar el problema por su cuenta. Esto permite al estudiante 6 tener una
sensacin de control de la tarea y aumentar su eficacia lo cual es un requisito
fundamental para ejercer un esfuerzo constante en el aprendizaje. La
comparacin de los ejercicios resueltos con la solucin propia del alumno,

brinda tres beneficios importantes: i) el alumno adquiere el conocimiento de


cmo se escribe un programa con el formato adecuado, es decir, el uso
correcto de sangras, espacios, comentarios, nombres de variables, etc., ii) por
medio de la observacin consciente, promovida de forma explcita, adquiere
experiencia en cuanto a la optimizacin de los algoritmos, y iii) demostracin
en la prctica de que existen diferentes alternativas para resolver un problema.
Si el alumno resolvi correctamente el ejercicio, profundizar su conocimiento
al observar y entender otra manera de resolverlo. Por otra parte, al observar
las soluciones el alumno practica la lectura de cdigo con lo cual adquiere
familiaridad con los programas y con la forma en la que posiblemente lo
escribira un programador con experiencia. Dedicamos el captulo II Estructuras
de control a la iniciacin en la programacin. En este captulo pretendemos que
el alumno se sienta capaz de resolver el siguiente problema, proporcionando
varios problemas del mismo tipo, aunque al principio slo sea por imitacin.
Resolver varios problemas de un mismo tipo le brinda seguridad y confianza en
el tema. Adems, adquiere un mayor nivel de abstraccin al ver cmo un
mismo concepto puede aplicarse en diferentes contextos. Se pretende
estimular al estudiante a que aprenda haciendo y que tenga disponibles
ejemplos suficientes para aprender los temas que le ofrezcan dificultad. Esto
permite que los materiales se ajusten al marco de referencia que posee el
alumno de manera que se aduee de ellos y use la informacin de modo
compatible con lo que ya sabe. Con los ejercicios resueltos por etapas
pretendemos que el alumno practique y se autoevale de dos formas
opcionales: la primera es que vaya comparando su solucin parcial con cada
una de las etapas que van solucionando el problema, esto se recomienda al
principio, cuando el tema es nuevo; y la segunda manera es resolver el
problema por completo y autoevaluarse con la solucin final, esto es
recomendable cuando ya se ha comprendido mejor el tema o cuando el alumno
decide asumir un reto mayor. En el resto de los captulos se presentan con
ejemplos y se dedica una seccin a los ejercicios, Es importante mencionar que
lo que se pretende con los ejercicios en los que se aplica la metodologa de
Solucin por Etapas, no es una mecanizacin de la programacin, sino ms
bien la comprensin de los ejemplos y la abstraccin de las ideas importantes.
Por ello consideramos que unos cuantos problemas hechos de manera
razonada darn una buena base para la programacin. Los ejercicios incluidos
en la literatura actual pueden servir para reafirmar los conocimientos
adquiridos. Los programadores novatos no slo deben aprender a resolver los
problemas y convertir la solucin en un programa, sino que deben tener
habilidad para dar seguimiento y depurar sus programas. Por lo tanto es
indispensable que la enseanza se complemente con el laboratorio. Por qu
elegimos C++ para la enseanza de la programacin estructurada? Hay
lenguajes de programacin muy populares para este propsito, tales como
Pascal, Fortran, Basic, C, etc., y hay buenas razones para elegir a cada uno de
ellos, pero tambin hay buenas razones para elegir C++. Optamos por C++
porque es un lenguaje poderoso, que, en caso de que el alumno decida avanzar
a niveles ms altos de la programacin, tiene todo para desarrollar programas
con las tcnicas ms avanzadas. Tambin hemos podido observar entre

nuestros alumnos, que existe una cierta predileccin por el primer lenguaje de
programacin aprendido. Si el alumno tiene C++ como primer lenguaje de
programacin, no le ser nada difcil aprender Java o C, los cuales tienen una
sintaxis muy parecida y son lenguajes muy usados en la industria del software.
Adems le ser ms fcil aprender lenguajes de alto nivel como Pascal o Basic.
La capacidad reducida para retener y procesar informacin a corto plazo, es
uno de los principales lmites de la mente, por lo que es importante optimizar
el uso de la memoria a corto plazo durante el proceso de enseanzaaprendizaje. La informacin nueva que se le presenta a los alumnos debe ser
concisa, breve y lo ms objetiva posible. Un curso sobre cualquier materia,
debe 7 Inicialzate en la programacin con C++ concentrarse en unas pocas
ideas centrales o generales y adentrarse en otras de menor importancia segn
se disponga de tiempo. A nivel bsico, trabajar con algunas de las instrucciones
del lenguaje C++, es mucho ms sencillo que trabajar con las instrucciones
equivalentes del lenguaje C, por ejemplo, las instrucciones de entrada y salida
de datos. Las operaciones de entrada/salida en lenguaje C requieren de ms
tiempo y memoria a corto plazo de lo que se requiere con C++. A nuestro
juicio, no vale la pena invertir mucho esfuerzo en el aprendizaje de las
operaciones bsicas de entrada/salida de datos, ya que, en la prctica, una vez
que alguien domina la programacin, trabaja con ambientes de desarrollo en
los que el programador puede generar rpidamente interfaces de usuario
grficas avanzadas sin necesidad de recurrir a las instrucciones bsicas. Es
decir, las instrucciones para operaciones de entrada y salida de datos del
usuario que se exponen en los libros para principiantes, tienen un fin
nicamente didctico y, por lo tanto, temporal. As que debemos usar el menor
tiempo posible en este tema. Otro ejemplo es, el manejo de archivos con C++
que tambin es muy simple. Con C++ es posible abordar el tema desde los
primeros captulos y despus hacer ejercicios de entrada/salida tanto en
pantalla como en archivos a lo largo de todo el curso. Creemos que es
importante que los estudiantes se familiaricen bien con el acceso a la
informacin en disco, pues esto les ser muy til en el futuro. En general, C++
nos permite avanzar rpidamente en el tema de entrada/salida de datos que, a
nivel bsico no requiere de entrar en muchos detalles, mientras que en C se le
exige al estudiante un esfuerzo mayor y, a nuestro juicio, intil. Esperamos que
este libro sea de utilidad a todos aquellos que deseen aprender a programar.
Mara del Carmen Gmez. Jorge Cervantes 8 9 Inicialzate en la programacin
con C++ Agradecimiento Agradecemos profundamente la valiosa colaboracin
del Dr. Pedro Pablo Gonzlez Prez en el captulo I "Introduccin" y en el
captulo VII "Bsqueda y ordenamiento" la cual enriqueci considerablemente
el contenido de estos captulos. Mara del Carmen Gmez. Jorge Cervantes. 10
11 Inicialzate en la programacin con C++ Introduccin Objetivos Captulo I
Introduccin Pedro Pablo Gonza lez Pe rez Mar a del Carmen Go mez Fuentes
Jorge Cervantes Ojeda Objetivos Proporcionar una visin panormica de las
estructuras y de los conceptos bsicos de la programacin estructurada
Introducir al lector al lenguaje de programacin C++ I.1 Concepto de Algoritmo
y sus propiedades Un algoritmo es un procedimiento para resolver un problema

dado. Un algoritmo se describe con un conjunto finito y ordenado de pasos que


deben llevarse a cabo para producir la solucin a dicho problema (ver Figura I1). Prefacio La transmisin de un pensamiento tan abstracto como lo es la
programacin requiere de la propuesta de nuevas estrategias en las que se
involucren de forma equilibrada la teora, los ejemplos y la prctica. En este
libro presentamos un mtodo de enseanza de la programacin basado en el
constructivismo cuyo objetivo principal es ayudar a aquellos que se enfrentan a
la programacin por primera vez. La habilidad para programar es una
necesidad actual de los profesionales que les permite ser competitivos. Y no
hablamos solamente de los profesionales de la informtica, sino tambin de
otros especialistas que requieren de la programacin para poner en prctica
sus conocimientos y hacerlos de utilidad tales como ingenieros, matemticos,
fsicos, entre muchos otros. Hemos detectado a lo largo de doce aos de
experiencia impartiendo cursos de programacin estructurada, que a muchos
de los alumnos que se enfrentan por primera vez al reto de programar una
computadora se les dificulta entender en qu consiste, puesto que requiere de
un conocimiento abstracto que no tiene similitudes con el de otras disciplinas.
Algunas veces tienden a memorizar y a mecanizar los problemas, lo que les
impide adquirir la habilidad de solucionar problemas de diversa ndole. Los
programas de ejemplo son una rica fuente de informacin para presentar,
analizar y discutir un lenguaje de programacin, sin embargo, transmitir las
estrategias para crear estos programas es mucho ms complicado. Hemos
notado la necesidad de que los alumnos cuenten con un libro que contenga,
adems de la descripcin del tema, varios ejemplos resueltos sobre el mismo,
con el fin de aprender de la observacin de los ejemplos, y de la resolucin de
problemas similares a problemas previos. Procuramos que los ejercicios
incluidos apoyen el aprendizaje de manera que sean un reto, pero situados en
una zona asequible de acuerdo con el nivel de conocimientos y habilidades
adquiridos. Con fundamento en la zona de desarrollo prximo planteada por
Vygotsky, propusimos los ejercicios de tal forma que se conviertan en un
andamiaje para el alumno de acuerdo con su nivel de avance. Este andamiaje
le permite sostenerse y se puede ir quitando una vez que se han adquirido las
habilidades y conocimientos necesarios para la resolucin autnoma de los
problemas. La metodologa de este libro tiene el objetivo de guiar al estudiante
en su aprendizaje de la programacin estructurada y le llamamos Solucin por
Etapas porque consiste en mostrar una o varias etapas de la solucin de cada
ejercicio hasta llegar a la solucin completa. Queremos lograr que el alumno
resuelva los problemas sin necesidad de ver la solucin, sin embargo, en caso
de que necesite una ayuda para continuar o para empezar a resolverlo, puede
consultar la siguiente etapa sin necesidad de ver la solucin completa.
Pretendemos motivar a los estudiantes a que resuelvan los ejercicios dndoles
la confianza de que no estn solos, ya que saben que en el momento en el que
no puedan continuar, pueden consultar la ayuda que se les brinda por etapas.
De esta forma todos los ejercicios son realmente ejemplos y es el alumno el
que decide cuanto estudia la solucin planteada y cuanto se esfuerza en
solucionar el problema por su cuenta. Esto permite al estudiante 6 tener una
sensacin de control de la tarea y aumentar su eficacia lo cual es un requisito

fundamental para ejercer un esfuerzo constante en el aprendizaje. La


comparacin de los ejercicios resueltos con la solucin propia del alumno,
brinda tres beneficios importantes: i) el alumno adquiere el conocimiento de
cmo se escribe un programa con el formato adecuado, es decir, el uso
correcto de sangras, espacios, comentarios, nombres de variables, etc., ii) por
medio de la observacin consciente, promovida de forma explcita, adquiere
experiencia en cuanto a la optimizacin de los algoritmos, y iii) demostracin
en la prctica de que existen diferentes alternativas para resolver un problema.
Si el alumno resolvi correctamente el ejercicio, profundizar su conocimiento
al observar y entender otra manera de resolverlo. Por otra parte, al observar
las soluciones el alumno practica la lectura de cdigo con lo cual adquiere
familiaridad con los programas y con la forma en la que posiblemente lo
escribira un programador con experiencia. Dedicamos el captulo II Estructuras
de control a la iniciacin en la programacin. En este captulo pretendemos que
el alumno se sienta capaz de resolver el siguiente problema, proporcionando
varios problemas del mismo tipo, aunque al principio slo sea por imitacin.
Resolver varios problemas de un mismo tipo le brinda seguridad y confianza en
el tema. Adems, adquiere un mayor nivel de abstraccin al ver cmo un
mismo concepto puede aplicarse en diferentes contextos. Se pretende
estimular al estudiante a que aprenda haciendo y que tenga disponibles
ejemplos suficientes para aprender los temas que le ofrezcan dificultad. Esto
permite que los materiales se ajusten al marco de referencia que posee el
alumno de manera que se aduee de ellos y use la informacin de modo
compatible con lo que ya sabe. Con los ejercicios resueltos por etapas
pretendemos que el alumno practique y se autoevale de dos formas
opcionales: la primera es que vaya comparando su solucin parcial con cada
una de las etapas que van solucionando el problema, esto se recomienda al
principio, cuando el tema es nuevo; y la segunda manera es resolver el
problema por completo y autoevaluarse con la solucin final, esto es
recomendable cuando ya se ha comprendido mejor el tema o cuando el alumno
decide asumir un reto mayor. En el resto de los captulos se presentan con
ejemplos y se dedica una seccin a los ejercicios, Es importante mencionar que
lo que se pretende con los ejercicios en los que se aplica la metodologa de
Solucin por Etapas, no es una mecanizacin de la programacin, sino ms
bien la comprensin de los ejemplos y la abstraccin de las ideas importantes.
Por ello consideramos que unos cuantos problemas hechos de manera
razonada darn una buena base para la programacin. Los ejercicios incluidos
en la literatura actual pueden servir para reafirmar los conocimientos
adquiridos. Los programadores novatos no slo deben aprender a resolver los
problemas y convertir la solucin en un programa, sino que deben tener
habilidad para dar seguimiento y depurar sus programas. Por lo tanto es
indispensable que la enseanza se complemente con el laboratorio. Por qu
elegimos C++ para la enseanza de la programacin estructurada? Hay
lenguajes de programacin muy populares para este propsito, tales como
Pascal, Fortran, Basic, C, etc., y hay buenas razones para elegir a cada uno de
ellos, pero tambin hay buenas razones para elegir C++. Optamos por C++
porque es un lenguaje poderoso, que, en caso de que el alumno decida avanzar

a niveles ms altos de la programacin, tiene todo para desarrollar programas


con las tcnicas ms avanzadas. Tambin hemos podido observar entre
nuestros alumnos, que existe una cierta predileccin por el primer lenguaje de
programacin aprendido. Si el alumno tiene C++ como primer lenguaje de
programacin, no le ser nada difcil aprender Java o C, los cuales tienen una
sintaxis muy parecida y son lenguajes muy usados en la industria del software.
Adems le ser ms fcil aprender lenguajes de alto nivel como Pascal o Basic.
La capacidad reducida para retener y procesar informacin a corto plazo, es
uno de los principales lmites de la mente, por lo que es importante optimizar
el uso de la memoria a corto plazo durante el proceso de enseanzaaprendizaje. La informacin nueva que se le presenta a los alumnos debe ser
concisa, breve y lo ms objetiva posible. Un curso sobre cualquier materia,
debe 7 Inicialzate en la programacin con C++ concentrarse en unas pocas
ideas centrales o generales y adentrarse en otras de menor importancia segn
se disponga de tiempo. A nivel bsico, trabajar con algunas de las instrucciones
del lenguaje C++, es mucho ms sencillo que trabajar con las instrucciones
equivalentes del lenguaje C, por ejemplo, las instrucciones de entrada y salida
de datos. Las operaciones de entrada/salida en lenguaje C requieren de ms
tiempo y memoria a corto plazo de lo que se requiere con C++. A nuestro
juicio, no vale la pena invertir mucho esfuerzo en el aprendizaje de las
operaciones bsicas de entrada/salida de datos, ya que, en la prctica, una vez
que alguien domina la programacin, trabaja con ambientes de desarrollo en
los que el programador puede generar rpidamente interfaces de usuario
grficas avanzadas sin necesidad de recurrir a las instrucciones bsicas. Es
decir, las instrucciones para operaciones de entrada y salida de datos del
usuario que se exponen en los libros para principiantes, tienen un fin
nicamente didctico y, por lo tanto, temporal. As que debemos usar el menor
tiempo posible en este tema. Otro ejemplo es, el manejo de archivos con C++
que tambin es muy simple. Con C++ es posible abordar el tema desde los
primeros captulos y despus hacer ejercicios de entrada/salida tanto en
pantalla como en archivos a lo largo de todo el curso. Creemos que es
importante que los estudiantes se familiaricen bien con el acceso a la
informacin en disco, pues esto les ser muy til en el futuro. En general, C++
nos permite avanzar rpidamente en el tema de entrada/salida de datos que, a
nivel bsico no requiere de entrar en muchos detalles, mientras que en C se le
exige al estudiante un esfuerzo mayor y, a nuestro juicio, intil. Esperamos que
este libro sea de utilidad a todos aquellos que deseen aprender a programar.
Mara del Carmen Gmez. Jorge Cervantes 8 9 Inicialzate en la programacin
con C++ Agradecimiento Agradecemos profundamente la valiosa colaboracin
del Dr. Pedro Pablo Gonzlez Prez en el captulo I "Introduccin" y en el
captulo VII "Bsqueda y ordenamiento" la cual enriqueci considerablemente
el contenido de estos captulos. Mara del Carmen Gmez. Jorge Cervantes. 10
11 Inicialzate en la programacin con C++ Introduccin Objetivos Captulo I
Introduccin Pedro Pablo Gonza lez Pe rez Mar a del Carmen Go mez Fuentes
Jorge Cervantes Ojeda Objetivos Proporcionar una visin panormica de las
estructuras y de los conceptos bsicos de la programacin estructurada

Introducir al lector al lenguaje de programacin C++ I.1 Concepto de Algoritmo


y sus propiedades Un algoritmo es un procedimiento para resolver un problema
dado. Un algoritmo se describe con un conjunto finito y ordenado de pasos que
deben llevarse a cabo para producir la solucin a dicho problema (ver Figura I1).

También podría gustarte