Disciplina do curso de Engenharia de Software da PUC Minas
- 1°Sem 2024
- Aulas em PDF
- Artigos sugeridos
- Tarefas
- Trabalho
- Projetos em C
- Plano de Ensino
- Maratona de Programação
- 📘 2024 - Algoritmos: Teoria e Prática - Thomas H. Cormen
- 📘 2022 - Algoritmos e Estruturas de Dados em C - André Ricardo Backes
- 🔍 Python Tutor - C (visualizador de código C passo a passo)
- 🔍 VisuAlgo – Animações interativas de algoritmos e estruturas de dados
- 🎯 HackerRank – Desafios por tema (ordenação, busca, recursão, etc.)
- 🚀 LeetCode – Problemas técnicos usados em entrevistas
▶️ Canal YouTube - Programação Descomplicada - André Ricardo Backes- 🏫 Material complementar - UFMG (aulas)
Um roadmap é um guia visual que apresenta etapas, habilidades ou conhecimentos necessários para atingir um objetivo específico. Ele ajuda a organizar o aprendizado ou desenvolvimento ao longo do tempo, mostrando caminhos recomendados e prioridades.
Esta lista reúne artigos clássicos e essenciais para a disciplina de Algoritmos e Estruturas de Dados, abordando desde as origens teóricas da computação até os algoritmos e estruturas que formam a base da ciência da computação moderna. Inclui marcos históricos, fundamentos sobre complexidade computacional, paradigmas de projeto de algoritmos, técnicas de ordenação e estruturas eficientes para manipulação de dados.
1. Alan Turing – "On Computable Numbers, with an Application to the Entscheidungsproblem" (1936)
- Origem da máquina de Turing e da noção de computabilidade.
- Trabalho seminal que fundamenta toda a teoria da computação.
2. Alan Turing – "Computing Machinery and Intelligence" (1950)
- Propõe o "Teste de Turing" e discute a possibilidade de máquinas pensarem.
- Marco inicial na inteligência artificial.
3. Stephen Cook – "The Complexity of Theorem-Proving Procedures" (1971)
- Introduz o conceito de NP-completude, base da teoria da complexidade.
- Fundamenta a distinção entre problemas eficientes e intratáveis.
4. John von Neumann – "First Draft of a Report on the EDVAC" (1945)
-
Documento seminal que apresenta os conceitos iniciais da arquitetura de computadores eletrônicos armazenados, base para a computação moderna.
-
Fundamental para o desenvolvimento dos computadores digitais e dos princípios de funcionamento dos sistemas de processamento.
-
4.1 Versão original (49 páginas)
- Versão concisa e direta, contendo o relatório inicial escrito em 1945.
- Apresenta os conceitos fundamentais e o princípio de von Neumann.
-
4.2 Versão estendida (107 páginas)
- Edição ampliada com explicações detalhadas, comentários e material adicional para facilitar o entendimento.
- Inclui apêndices, notas e figuras que contextualizam o relatório original.
5. Claude Shannon – Contribuições fundamentais à Ciência da Computação
-
Pioneiro na formalização da Teoria da Informação e na aplicação da álgebra booleana a circuitos elétricos.
-
Seus trabalhos lançaram as bases para a codificação digital e a eletrônica digital moderna.
-
5.1 A Mathematical Theory of Communication (1948)
- Estabelece os fundamentos da Teoria da Informação.
- Introduz conceitos como entropia, redundância e capacidade de canal.
- Essencial para codificação, compressão e transmissão de dados.
-
5.2 A Symbolic Analysis of Relay and Switching Circuits (1937)
- Dissertação de mestrado de Shannon, considerada o nascimento dos circuitos digitais.
- Aplica álgebra booleana à análise e projeto de circuitos de relés e comutadores.
- Fundamento para o desenvolvimento da eletrônica digital e dos computadores modernos.
6. C. A. R. Hoare – "Quicksort" (1961)
- Apresenta o algoritmo de ordenação Quicksort, baseado no paradigma de divisão e conquista.
- É um dos algoritmos de ordenação mais eficientes na prática, sendo amplamente utilizado até hoje.
- Introduz ideias que influenciaram fortemente o desenvolvimento de algoritmos modernos.
7. Robert Sedgewick – "Implementing Quicksort Programs" (1978)
- Explora otimizações práticas para o Quicksort, incluindo escolhas de pivô e técnicas de partição.
- Fundamenta implementações eficientes em linguagens modernas.
8. William A. Martin – "Sorting" (1971, MIT)
- Artigo de revisão que apresenta 37 algoritmos de ordenação e referencia 100 livros e artigos publicados nas duas décadas anteriores.
- Resume as ideias centrais da literatura sobre ordenação e destaca os algoritmos mais eficientes para diferentes contextos.
- Apresenta comparações, análises matemáticas e sugestões práticas para escolha do algoritmo mais adequado.