El presente libro está inspirado en el proyecto CUPI2, realizado por la Universidad de los Andes, cuyo principal propósito es encontrar mejores formas de enseñar/aprender a resolver problemas haciendo uso de un lenguaje de programación. En éste, se retoma el concepto de Hoja de trabajo y Casos de Estudio seguido en los libros Introducción a la Programación en Java e Introducción a las Estructuras de datos en Java. Igualmente se agregan actividades que contribuyen a la mejor comprensión de los conceptos plasmados a lo largo de los capítulos.
Para el entendimiento de este libro es necesario contar con conocimientos en algoritmia y programación. Al poseer una estructura sencilla y bien definida, el estudiante podrá navegar a través de él, convirtiéndose en un verdadero actor del proceso de aprendizaje, esto conlleva a que el rol del docente sufra una profunda transformación, se ha migrado hacia la idea de un consultor.
El estudiante desde un principio adquirirá la capacidad de identificar métodos y atributos de las clases. Igualmente estará en capacidad de definir las etapas a seguir para resolver un problema. Se crearán proyectos completos, haciendo uso del ambiente de desarrollo Eclipse.
El libro está estructurado en cuatro capítulos los cuales pretenden de forma progresiva mostrar diferentes temas que son abordados de forma simple y estructurada, a continuación, se muestra un breve resumen de los temas que se analizan:
1) Análisis de Algoritmos: En este capítulo analizamos el tiempo de ejecución de los algoritmos y presentamos su forma de calcularlo. Se muestra una amplia variedad de ejemplos los cuales permitirán al estudiante conocer y entender los diferentes tiempos de ejecución que se pueden obtener de los algoritmos. Los temas más importantes del capítulo son:
• Tiempo de ejecución
• Complejidad computacional
• Análisis de Algoritmos Recursivos
• Análisis de métodos de ordenamiento
• Análisis de Algoritmos de búsqueda.
2) Algoritmos Devoradores: El estudiante en este capítulo trabajará con este tipo de algoritmos que se emplean en problemas de optimización en los cuales se pretende maximizar o minimizar algún valor. Se mostrarán casos concretos en los cuales se aplica el problema de la mochila y el problema del cambio de la devuelta.
3) Programación Dinámica: El lector estará en capacidad de aplicar el concepto de diseño por contrato como una metodología que se basa en la idea de tener claramente definido lo que se tiene en la entrada y lo que se debe proporcionar como resultado. Se mostrará la aplicación de la programación dinámica en la resolución de problemas.
4) Grafos y Juegos: El lector adquirirá habilidad para aplicar la teoría de arboles en problemas computacionales, se explicarán las operaciones fundamentales aplicadas a los arboles. Se conocerá el concepto de árbol n-ário, árbol AVL y la técnica de backtraking.
Para el entendimiento de este libro es necesario contar con conocimientos en algoritmia y programación. Al poseer una estructura sencilla y bien definida, el estudiante podrá navegar a través de él, convirtiéndose en un verdadero actor del proceso de aprendizaje, esto conlleva a que el rol del docente sufra una profunda transformación, se ha migrado hacia la idea de un consultor.
El estudiante desde un principio adquirirá la capacidad de identificar métodos y atributos de las clases. Igualmente estará en capacidad de definir las etapas a seguir para resolver un problema. Se crearán proyectos completos, haciendo uso del ambiente de desarrollo Eclipse.
El libro está estructurado en cuatro capítulos los cuales pretenden de forma progresiva mostrar diferentes temas que son abordados de forma simple y estructurada, a continuación, se muestra un breve resumen de los temas que se analizan:
1) Análisis de Algoritmos: En este capítulo analizamos el tiempo de ejecución de los algoritmos y presentamos su forma de calcularlo. Se muestra una amplia variedad de ejemplos los cuales permitirán al estudiante conocer y entender los diferentes tiempos de ejecución que se pueden obtener de los algoritmos. Los temas más importantes del capítulo son:
• Tiempo de ejecución
• Complejidad computacional
• Análisis de Algoritmos Recursivos
• Análisis de métodos de ordenamiento
• Análisis de Algoritmos de búsqueda.
2) Algoritmos Devoradores: El estudiante en este capítulo trabajará con este tipo de algoritmos que se emplean en problemas de optimización en los cuales se pretende maximizar o minimizar algún valor. Se mostrarán casos concretos en los cuales se aplica el problema de la mochila y el problema del cambio de la devuelta.
3) Programación Dinámica: El lector estará en capacidad de aplicar el concepto de diseño por contrato como una metodología que se basa en la idea de tener claramente definido lo que se tiene en la entrada y lo que se debe proporcionar como resultado. Se mostrará la aplicación de la programación dinámica en la resolución de problemas.
4) Grafos y Juegos: El lector adquirirá habilidad para aplicar la teoría de arboles en problemas computacionales, se explicarán las operaciones fundamentales aplicadas a los arboles. Se conocerá el concepto de árbol n-ário, árbol AVL y la técnica de backtraking.