Este curso provee una introducción al modelamiento matemático de los problemas computaciones. Este cubre algoritmos comunes, paradigmas algorítmicos, y estructuras de datos utilizadas para resolver estos problemas. El curso enfatiza la relación entre algoritmos y programación, e introduce técnicas básicas de análisis y medida de la eficiencia.
Módulo | Tema | Contenido |
---|---|---|
I | Preliminares | ➡️ Fueza bruta ➡️ Recursión ➡️ Divide y vencerás ➡️ Backtracking |
II | Estructuras de datos | ➡️ Pilas ➡️ Colas ➡️ Listas ➡️ Árboles binarios |
III | Algoritmos de ordenamiento | ➡️ Selection sort ➡️ Insertion sort ➡️ Merge sort |
IV | Técnicas algorítmicas | ➡️ Búsqueda binaria ➡️ Programación dinámica |
Nota: Como pueden observar, el contenido del curso dictado en la PUCP es muy elemental y puede ser aprendido en menos de dos semanas puesto que se centra en la implementación de los algoritmos y no en la teoría detrás de estos. En caso quieran aprender el tema con mayor profundidad, recomiendo lo siguiente:
- Bibliografía:
- Introduction to Algorithms. Thomas Cormen, Charles Leiserson, Ronald Rivest, Clifford Stein.
- Guide to Competitive Programming. Antti Laaksonen.
- Competitive Programming. Felix Halim, Steven Halim.
- Resolución de problemas:
- LeetCode, HackerRank: Dificultad fácil. Plataformas orientadas a preguntas de entrevistas en compañías tecnológicas.
- Codeforces, AtCoder, CodeChef: Todos los niveles de dificultad. Plataformas orientadas a la programación competitiva.
Asimismo, adjunto mi otro repositorio con mayor variedad de temas y problemas resueltos.
examenes
- contiene los enunciados y soluciones del examen parcial y final del curso.
laboratorios
- contiene los enunciados y soluciones de los laboratorios.
problemas
- contiene ejercicios agrupados por temas.
tarea-academica
- contiene el informe final del curso, el cual lo basé en Segment Tree,
mi estructura de datos favorita en programación competitiva.
Curso | Universidad |
---|---|
Algorithms and Data Structures | ITMO University |
Introduction to Algorithms | Massachusetts Institute of Technology |
Design and Analysis of Algorithms | Stanford University |
Data Structures | University of California, Berkeley |