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

GitHub repo size GitHub directory file count GitHub stars GitHub forks GitHub language count GitHub license GitHub commit activity GitHub last commit Views Counter

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