#
Guía teórico-práctica sobre Análisis y Diseño de Algoritmos
Delegados 🏗️🧠#
El concepto de algoritmo es fundamental en la ciencia de la computación y su eficiencia es punto central en términos económicos. El análisis y el diseño de algoritmos eficientes es tema fundamental tanto para desarrollar software profesional como para evaluar diversas soluciones a un problema dado. Un ingeniero en computacion debe tener un conocimiento de principios básicos para el diseño de algoritmos eficientes.
Objetivos del curso 🎯#
El curso tiene como finalidad profundizar en el análisis y diseño de algoritmos, centrándose en su eficiencia tanto en términos de tiempo como de espacio. El estudio de algoritmos eficientes es crucial en la computación moderna, ya que no solo impacta en la calidad del software, sino también en los costos de recursos computacionales y de tiempo de ejecución.
A través del curso, se busca que los estudiantes adquieran las habilidades para analizar, diseñar y optimizar algoritmos en diferentes contextos, aplicando técnicas avanzadas y comprendiéndolas desde una perspectiva teórica y práctica.
Los objetivos principales incluyen:
Analizar la complejidad espacial y temporal de algoritmos aplicando notaciones asintóticas, describiendo el orden de crecimiento del tiempo de ejecución en los casos peor, mejor y promedio.
Escribir y analizar algoritmos utilizando diversas estrategias como recursividad, backtracking, divide y vencerás, divide y serás vencido, algoritmos voraces, ramificación y poda, programación dinámica, algoritmos heurísticos y teoría de juegos.
Resolver ecuaciones de recurrencia mediante métodos iterativos, árboles de recursión, sustitución inteligente, el Teorema Maestro y la ecuación característica para determinar el tiempo de ejecución de algoritmos recursivos.
Optimizar soluciones algorítmicas utilizando diferentes estrategias, buscando un equilibrio entre eficiencia y efectividad.
Reconocer, clasificar y analizar problemas P, NP y NP-completos, además de aplicar la corrección de algoritmos mediante el uso de invariantes y pruebas de escritr.
Contenido del curso 📚📖#
Guía del proyecto ☄️🧮
Introducción al problema de partición con mínima pérdida de información
Apuntes estudiantiles 📝📖
Explicación de conceptos básicos en el Análisis y Diseño de Algoritmos
Resultados de aprendizaje 📊📈#
Al finalizar este curso, los estudiantes serán capaces de:
Aplicar análisis de algoritmos: Desarrollar y evaluar algoritmos eficientes que resuelvan problemas computacionales reales, considerando tanto la complejidad temporal como espacial.
Diseñar soluciones algorítmicas óptimas: Abordar problemas complejos utilizando estrategias como recursividad, divide y vencerás, programación dinámica, y algoritmos voraces, optimizando la eficiencia en cada caso.
Evaluar la eficiencia algorítmica: Comparar y medir el rendimiento de diferentes algoritmos a través de pruebas experimentales, utilizando métricas relevantes para determinar la eficiencia y corrección de las soluciones propuestas.
Identificar y clasificar problemas computacionales: Reconocer problemas dentro de las clases P, NP y NP-completos, aplicando técnicas avanzadas para la evaluación y la corrección de algoritmos complejos.
Resolver ecuaciones de recurrencia: Dominar la resolución de ecuaciones de recurrencia utilizando métodos iterativos, el Teorema Maestro, y otras técnicas para analizar algoritmos recursivos.
Estos resultados te prepararán para enfrentar los desafíos del diseño algorítmico en contextos académicos y profesionales, promoviendo una toma de decisiones fundamentada en la eficiencia y efectividad de las soluciones.
Estos resultados de aprendizaje están diseñados para que los estudiantes adquieran una comprensión sólida y profunda sobre el diseño, análisis y optimización de algoritmos, aplicando técnicas teóricas y prácticas para resolver problemas computacionales complejos.
Información relevante ⚠️#
Horarios de monitoría 🕰️#
Día |
Hora |
---|---|
Lunes |
PM 04:00 - 06:00 |
Martes |
PM 02:00 - 04:00 |
Miércoles |
PM 02:00 - 06:00 |
Jueves |
AM 10:00 - 12:00 |
Referencias 🔭📜#
Material bibliográfico con fundamentación teórica usada en la comprensión del curso.