Skip to content

joaopauloaramuni/algoritmos-e-estruturas-de-dados-i

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


pucminas


Repo Algoritmos e Estruturas de Dados I

Disciplina do curso de Engenharia de Software da PUC Minas

  • 1°Sem 2024

Sumário:

Links úteis:

📖 Livros recomendados
📖 Leituras recomendadas
💻 IDEs e ambientes de desenvolvimento
🏠 IDEs de desenvolvimento local
🌐 IDEs online
🧪 Ferramentas para análise e inspeção de código
🧠 Visualização e simulação
🔧 Compiladores e ferramentas
📄 Documentação da Linguagem C
🌐 Plataformas para praticar algoritmos
🎥 Vídeos e aulas complementares
🏗️ Roadmaps Computer Science e Data Structures & Algorithms

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.


📖 Leituras fundamentais e clássicas

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.


📜 Artigos históricos e fundacionais

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.

📘 Algoritmos de ordenação

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.

pucminas

Releases

No releases published

Sponsor this project

 

Packages

No packages published