[ MAC5711 - ANÁLISE de ALGORITMOS]
"Ao verificar que um dado programa está muito lento,
uma pessoa prática
pede uma máquina mais rápida ao seu chefe.
[...]
Entretanto, o ganho potencial que uma máquina mais rápida pode proporcionar
é tipicamente limitado por um fator de 10,
por razões técnicas ou econômicas.
Para obter um ganho maior de desempenho,
é preciso buscar melhores algoritmos.
Como veremos adiante,
um algoritmo rápido rodando em uma máquina lenta sempre
acaba vencendo
para instâncias grandes do problema.
Sempre."
- S. S. Skiena, The Algorithm Design Manual
Segundo o programa oficial, os objetivos da disciplina MAC5711 são
A justificativa oficial da disciplina MAC5711 é a seguinte:
Ainda segundo o programa oficial, o conteúdo de MAC5711 é o seguinte:
A disciplina tem carga de 4 horas de aulas teóricas por semana durante cerca de 12 semanas e dá direito a 8 créditos.
Os pré-requisitos de MAC5711 são noções básicas de estruturas de dados e teoria dos grafos. Esses pré-requisitos correspondem aos conteúdos das disciplinas MAC5710 (Estruturas de Dados e sua Manipulação) e MAC5770 (Introdução à Teoria dos Grafos).
Também é desejável que os alunos tenham uma certa experiência de programação, particulamente em linguagem C. Familiaridade com a manipulação de ponteiros é especialmente importante.