MC458 - Design and Analysis of Algorithms I

MC458 - Projeto e Análise de Algoritmos I

MC458 - Proyecto y Análisis de Algoritmos I

"Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them, and what we find out when we do." "Ciência da computação tem tanto a ver com o computador como a astronomia com o telescópio, a biologia com o microscópio, ou a química com os tubos de ensaio. A Ciência não estuda ferramentas, mas o que fazemos e o que descobrimos com elas." "La ciencia de la computación no trata más sobre computadoras que la astronomía sobre telescopios, la biología sobre microscopios o la química sobre tubos de ensayo. La ciencia no se trata de herramientas. Se trata de cómo las usamos y de lo que descubrimos cuando lo hacemos."
Attributed toAtribuída aAtribuída a Edsger W. Dijkstra

This undergraduate Computer Science course aims to present strategies for the design and analysis of algorithms, as well as the mathematical foundations of algorithm analysis. By the end of the semester, students are expected to be able to solve computational problems by designing algorithms, proving their correctness, and analyzing their complexity.

Esta é uma disciplina de graduação em Ciência da Computação que tem como objetivo apresentar estratégias para o projeto e a análise de algoritmos, bem como os fundamentos matemáticos envolvidos na sua análise. Ao final do semestre, espera-se que o(a) aluno(a) seja capaz de resolver problemas computacionais por meio do desenvolvimento de algoritmos, comprovando sua correção e analisando sua complexidade.

Este es un curso de grado en Ciencias de la Computación cuyo objetivo es presentar estrategias para el diseño y análisis de algoritmos, así como los fundamentos matemáticos involucrados en su análisis. Al final del semestre, se espera que el/la estudiante sea capaz de resolver problemas computacionales mediante el diseño de algoritmos, demostrando su corrección y analizando su complejidad.


Offering: Second semester of 2025, from 04/08/2024 to 29/11/2024 Oferecimento: Segundo semestre de 2025, do 04/08/2024 ao 29/11/2024 Oferta: Segundo semestre de 2025, del 04/08/2024 al 29/11/2024
Schedule: Monday from 7:00PM. to 9:00PM. and Wednesday from 9:00PM. to 11:00PM. Horário: Segunda-feira das 19:00 às 21:00, e quarta-feira das 21:00 às 23:00 Horario: Lunes de las 7:00PM. a las 9:00PM. y miércoles de las 9:00PM. a las 11:00PM.
Location: PB16 Local: PB16 Localización: PB16

Bibliography

Bibliografia

Bibliografía

Main references

Referências principais

Referencias principales


T. Cormen, C. Leiserson, R. Rivest, C. Stein. "Introduction to Algorithms". MIT Press (MA); 3rd ed. (2009).
U. Manber. "Introduction to Algorithms: A Creative Approach". Addison-Wesley. (1989).

Complementary references

Referências complementares

Referencias complementares


J. Kleinberg, E. Tardos. "Algorithm Design". Pearson; 1st ed. (2005).
A. Aho, J. Hopcroft, J. Ullman. "The Design and Analysis of Computer Algorithms". Addison-Wesley. (1974).

Lectures

Aulas

Clases

The slides will be added after each lecture. These can be used as a guide to review the lessons. To study and practice, you should read the main bibliography and solve the suggested exercises.

Os slides serão disponilizados após cada aula. Estes podem ser usados como guia para revisar as aulas. Para estudar e praticar, devem ler a bibliografia principal e resolver os exercícios sugeridos.

Los slides serán disponibilizados después de cada clase. Estos pueden ser utilizados como guía para revisar las lecciones. Para estudiar y practicar, deben leer la bibliografía principal y resolver los ejercicios sugeridos

Topics Tópicos Asuntos
slides (Portuguese only) slides (somente em Português) slides (solo en Portugués)
Lecture 00 - Course presentation Aula 00 - Apresentação da disciplina Aula 00 - Presentación del curso
Lecture 01 - Mathematical proofs: a review Aula 01 - Demonstrações matemáticas: uma revisão Aula 01 - Demostraciones matemáticas: una revisión
Lecture 02 - Asymptotic notation Aula 02 - Notação assintótica Aula 02 - Notación asintótica
Lecture 03 - Asymptotic notation. Properties Aula 03 - Notação assintótica. Propriedades Aula 03 - Notación asintótica. Propiedades
Lecture 04 - Asymptotic notation. Exercises Aula 04 - Notação assintótica. Exercícios Aula 04 - Notación asintótica. Ejercicios
Lecture 05 - Algorithm analysis Aula 05 - Análise de algoritmos Aula 05 - Análisis de algoritmos
Lecture 06 - Algorithm correctness Aula 06 - Correção de algoritmos Aula 06 - Correción de algoritmos
Lecture 07 - Analysis and correctness of algorithms Aula 07 - Análise e correção de algoritmos Aula 07 - Análisis y correción de algoritmos
Lecture 08 - Analysis of recursive algorithms Aula 08 - Análise de algoritmos recursivos Aula 08 - Análisis de algoritmos recursivos
Lecture 09 - Analysis of recursive algorithms. Again?! Aula 09 - Análise de algoritmos recursivos. De novo?! Aula 09 - Análisis de algoritmos recursivos. De nuevo?!
Lecture 10 - Master Theorem Aula 10 - Teorema Master Aula 10 - Teorema Master
Lecture 11 - Correctness and design of recursive algorithms Aula 11 - Correção e projeto de algoritmos recursivos Aula 11 - Corrección y diseño de algoritmos recursivos

Acknowledgment: The slides are based on the material prepared by other professores. The list of professors that kindly provided the material is given below (in alphabetical order): Cândida Nunes da Silva, Cid Carvalho de Souza, Flávio Keidi Miyazawa, Lehilton Lelis Chaves Pedrosa e Orlando Lee. The slides that will be shared has been adapted and modified by me, with possible introduction of errors, which I request to be reported to me.

Agradecimentos: Os slides foram baseados em material didático preparado por outros professores. A lista dos professores que gentilmente cederam o material é dada a seguir (em ordem alfabética): Cândida Nunes da Silva, Cid Carvalho de Souza, Flávio Keidi Miyazawa, Lehilton Lelis Chaves Pedrosa e Orlando Lee. O material que será disponibilizado foi adaptado e modificado por mim, com possível introdução de erros, que solicito sejam reportados a mim.

Agradecimientos: Los slides se basearon en material didáctico preparado por otros profesores. La lista de los profesores que amablemente proporcionaron el material es la siguiente (en orden alfabética): Cândida Nunes da Silva, Cid Carvalho de Souza, Flávio Keidi Miyazawa, Lehilton Lelis Chaves Pedrosa e Orlando Lee. El material que se proporcionará fue adaptado y modificado por mí, con posible introducción de errores, que solicito sean reportados a mí.

Exercises lists

Listas de exercícios

Listas de ejercicios

The files will be added during the course.

Os arquivos serão adicionados durante o curso.

Los archivos serán adicionados durante el curso.

files (Portuguese only) arquivos (somente em Português) archivos (solo en Portugués)
Diagnostic assessment Avaliação diagnóstica Evaluación diagnóstica
List 01 (do not submit) Lista 01 (não entregar) Lista 01 (no entregar)
List 02 (do not submit) Lista 02 (não entregar) Lista 02 (no entregar)
List 03 (do not submit) Lista 03 (não entregar) Lista 03 (no entregar)