Prólogo
La algoritmia es uno de los pilares de la programación y su relevancia se muestra
en el desarrollo de cualquier aplicación, más allá de la mera construcción de
programas. Este es un libro introductorio sobre análisis y diseño de algoritmos que
pretende exponer al lector las técnicas básicas para su diseño e implementación, así
como presentar unas herramientas que le permitan medir su efectividad y
eficiencia.
en el desarrollo de cualquier aplicación, más allá de la mera construcción de
programas. Este es un libro introductorio sobre análisis y diseño de algoritmos que
pretende exponer al lector las técnicas básicas para su diseño e implementación, así
como presentar unas herramientas que le permitan medir su efectividad y
eficiencia.
Objetivos:
Si bien es cierto que es amplia la bibliografía existente sobre algoritmia, no es
menos cierto que casi toda obedece a un mismo esquema general. Se presentan las
técnicas básicas de resolución de problemas en base a unos ejemplos clásicos, para
después dejar propuesta al lector una colección de problemas sobre cada tema. Pero
ocurre que casi todos los autores proponen los mismos problemas y pocos llegan a
resolverlos, lo que hace que los estudiantes de algoritmos pierdan de alguna forma
las enseñanzas que se extraen de ellos.
Esto no sería importante si los problemas propuestos fueran meramente
ejercicios que repiten fielmente los métodos enseñados. Sin embargo éste no es el
caso, pues cada ejercicio proporciona un nuevo enfoque para abordar los problemas
o permite combinar algunas de las técnicas, lo que enriquece el estudio de los
métodos y algoritmos tratados.
Por otro lado, nuestra experiencia en la enseñanza de las asignaturas
relacionadas con la algoritmia nos ha hecho ver la importancia que tiene el
disponer de una metodología de diseño que permita abordar la resolución de los
problemas de una forma unificada y coherente.
Esta obra nace con la intención de llenar un vacío en la bibliografía sobre estos
temas. En primer lugar ofreciendo un método de diseño general aplicable a cada
una de las técnicas, y en segundo lugar proporcionando una amplia selección de
ejemplos y problemas resueltos. A lo largo de todo el texto se ha prestado una
atención especial a la integración del diseño de los algoritmos con el análisis de su
eficiencia.
Recomendaciones de uso:
Hemos pretendido que este libro sea autocontenido, al menos en lo que
concierne a las materias de algoritmia. Sin embargo, no hemos creído necesario
introducir en él conceptos básicos de otras materias como el análisis matemático o
el álgebra, que se utilizan a lo largo del texto. Por otro lado, también se supone que
el lector sabe programar con cierta soltura utilizando un lenguaje imperativo y que
conoce las estructuras y tipos de datos básicos.
El diseño del libro se ha realizado de manera que pueda ser utilizado como base
para cualquiera de las asignaturas introductorias a la algoritmia. De ahí su
estructura y organización, así como la didáctica con la que se desarrollan los temas.
De esta forma, y para un mejor aprovechamiento de la obra, nos gustaría hacer
algunas recomendaciones en cuanto a su uso.
Primero, el alumno ha de asegurarse de que ha comprendido y asimilado los
conceptos teóricos con los que se inicia cada uno de los capítulos. Una vez
comprendido el funcionamiento de la técnica concreta puede comenzar intentando
los problemas propuestos en el capítulo correspondiente. Si un problema no sale,
debe intentarse otro y volver al primero más tarde. Quizá entonces se consiga dar
con la clave para su solución. Tampoco ha de desanimarse con los problemas
complicados. Tan importante es el hecho de encontrar la solución de un problema,
como el camino recorrido hasta encontrarla .
Se recomienda estudiar las técnicas de diseño siguiendo un orden similar al
utilizado en el libro. Este orden no es caprichoso, sino que recorre las distintas
técnicas de acuerdo al tipo de problemas que resuelven y a la complejidad de los
algoritmos resultantes. Ahora bien, los problemas no están ordenados respecto a su
dificultad, así que el alumno es libre de escoger el orden en el que los intenta. Sin
embargo, y con el objeto de racionalizar el trabajo y la comprensión de lo expuesto,
la solución de cada ejercicio va precedida por una clave que indica su clasificación
en cuanto a grado de dificultad:
☺ Problema fácil. Su resolución no debe plantear ninguna dificultad.
Problema de nivel medio. Su resolución no es inmediata, pero puede
solucionarse tras un poco de reflexión.
Problema interesante o bien que supone cierta dificultad. Presenta algún
concepto nuevo o una variación sobre la técnica en cuestión.
Hay que decir que esta clasificación no tiene un carácter absoluto en todo el
libro, sino que es relativa a cada una de las técnicas cubiertas por este trabajo, y al
nivel de conocimientos que se le supone o exige a los alumnos en cada uno de los
temas.
Como última recomendación en cuanto al uso de esta obra, mencionaremos que
es aconsejable el estudio de otros textos dentro de la amplia bibliografía existente
sobre algoritmia, que tratamos de recoger al final del texto. De esta forma se
podrá profundizar en algunos de los aspectos aquí presentados, como pueden ser los
relativos a los fundamentos teóricos de las técnicas y sus aplicaciones reales.
En otro orden de cosas, hemos puesto especial cuidado en la redacción al
emplear términos castellanos correctos dentro de la dificultad que esto representa,
dado que hay muchos términos ingleses que todavía no tienen una traducción
aceptada por todos los autores.
SI DESEA DESCARGAR EL LIBRO HAGA CLICK EN LA IMAGEN