Mostrando entradas con la etiqueta Algoritmos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Algoritmos. Mostrar todas las entradas
sábado, 19 de julio de 2014
Ingeniería del software: Un enfoque práctico, 7ma Edición – Roger S. Pressman [MEGA]
Cuando el software de computadora triunfa (al satisfacer las necesidades de las personas que lo usan, trabajar sin fallos durante largos periodos, será fácil de modificar e incluso más fácil de usar) puede y debe cambiar las cosas a fin de mejorar. Pero cuando el software fracasa (cuando sus usuarios no están satisfechos, es proclive al error, es difícil de cambiar e incluso más difícil de usar) pueden ocurrir, y ocurren, cosas malas. Todo mundo quiere construir software que haga mejor las cosas y que evite las malas que acechan en la sombra de los esfuerzos fallidos. Para triunfar, se necesita disciplina al momento de diseñar y construir el software. Es necesario un enfoque de ingeniería.
lunes, 10 de febrero de 2014
Algoritmos computacionales: Introducción al análisis y diseño, 3ra Edición – Sara Baase y Allen Van Gelder [MEGA]
Este libro fue escrito para un curso completo sobre algoritmos; cuenta con suficiente material como para adoptar diversas orientaciones.
El objetivo del mismo incluye tres aspectos. Pretende enseñar algoritmos que se aplicarán en la resolución de problemas
reales que se presentan a menudo en aplicaciones para computadora,
enseñar principios y técnicas básicos de complejidad computacional
(comportamiento de peor caso y caso promedio, consumo de espacio y cotas
inferiores de la complejidad de un problema), e introducir las áreas de
los problemas NP-completos y los algoritmos paralelos.
Otra de las metas del libro, no menos
importante que enseñar los temas que contiene, es desarrollar en el
lector el hábito de siempre responder a un algoritmo nuevo con
las preguntas: ¿Qué tan bueno es? ¿Hay una manera mejor? Por ello, en
lugar de presentar una serie de algoritmos completos, “sacados de la
manga”, con su análisis, el libro normalmente comenta primero un
problema, considera una o más estrategias para resolverlo (como podría
hacer el lector que enfrenta el problema por primera vez) y luego
comienza a desarrollar un algoritmo, lo analiza y lo modifica o lo
rechaza hasta obtener un resultado satisfactorio. (Los enfoques
alternativos que finalmente se rechazan también se examinan en los
ejercicios; para el lector es útil saber por qué se les rechazó.)
Preguntas del tipo de ¿Cómo puede hacerse esto de forma más eficiente? ¿Qué estructura de datos
sería útil en este caso? ¿En qué operaciones debemos concentrarnos para
analizar este algoritmo? ¿Qué valor inicial debe asignarse a esta
variable (o estructura de datos)?, aparecen a menudo en todo el texto.
Por lo general damos la respuesta inmediatamente después de la pregunta,
pero sugerimos a los lectores hacer una pausa antes de continuar la
lectura y tratar de idear su propia respuesta. El aprendizaje no es un
proceso pasivo.
Tenemos la esperanza de que los lectores
también aprendan a visualizar cómo se comporta en la realidad un
algoritmo con diversas entradas; es decir, ¿Qué ramas sigue? ¿Qué patrón
de crecimiento y encogimiento siguen las pilas? ¿Cómo afecta al
comportamiento presentar las entradas en diferentes formas (por ejemplo,
enumerando los vértices o aristas de un grafo en distintos órdenes)?
Tales preguntas se plantean en algunos de los ejercicios,
pero no hacemos hincapié en ellas en el texto porque requieren un
estudio minucioso de los pormenores de un gran número de ejemplos.
Suscribirse a:
Entradas (Atom)

