Pular para o conteúdo

Fundamentos de ciência da computação

Construa uma base sólida em ciência da computação, passando por algoritmos, sistemas operacionais, redes e teoria, com materiais abertos e referências da comunidade brasileira.

Iniciante 13 etapas

Etapas

Primeiros passos

  1. Um roteiro para a áreaVeja quais disciplinas formam o núcleo da computação e em que ordem estudá-las para não se perder estudando sozinho.
    • Teach Yourself Computer Science teachyourselfcs.comfree

      Guia didático estruturado com roteiro de estudos, livros recomendados e disciplinas fundamentais em computação.

  2. Linux e linha de comandoGanhe intimidade com o terminal, arquivos e processos, pois quase todo o resto do estudo passa por ferramentas de linha de comando.
    • Guia Foca GNU/Linux guiafoca.orgfree

      Um dos mais completos e tradicionais manuais em português para aprendizado e administração de sistemas operacionais Linux.

    • The Linux Command Line linuxcommand.orgfree

      Livro didático aberto ensinando uso da linha de comando shell, pipelines e scripts em sistemas Unix-like.

  3. Controle de versãoUse o Git para guardar exercícios e experimentos, um hábito que facilita qualquer projeto ou trabalho da faculdade.
    • Git git-scm.comfree

      Sistema de controle de versão distribuído de código aberto amplamente utilizado no desenvolvimento de software e projetos acadêmicos.

Algoritmos e estruturas de dados

  1. Estruturas de dados e algoritmos básicosEstude vetores, listas, árvores, ordenação e busca com material didático em português e exemplos de código em C.
    • Projeto de Algoritmos (IME-USP) ime.usp.brfree

      Material didático de referência sobre projeto e análise de algoritmos e estruturas de dados mantido pelo professor Paulo Feofiloff no IME-USP.

    • Algorithms por Jeff Erickson jeffe.cs.illinois.edufree

      Livro didático de acesso aberto com abordagem rigorosa sobre recursão, grafos, algoritmos probabilísticos e problemas NP-difíceis.

  2. GrafosAprenda busca em largura e profundidade, caminhos mínimos e árvores geradoras, que modelam redes, mapas e dependências.
    • Algoritmos para Grafos (IME-USP) ime.usp.brfree

      Notas de aula abertas e implementações em linguagem C cobrindo teoria de grafos, caminhos mínimos e fluxos em rede pelo IME-USP.

  3. Análise e projeto de algoritmosDomine análise assintótica, recursão e programação dinâmica para estimar o custo de uma solução antes de implementá-la.
  4. Treino com problemas (opcional)Resolva desafios em juiz online e conheça as competições brasileiras, ótima forma de fixar algoritmos com prática constante.
    • beecrowd beecrowd.comfreemium

      Plataforma brasileira de juiz online e desafios algorítmicos voltada para prática de estruturas de dados e programação competitiva.

    • Maratona SBC de Programação maratona.sbc.org.brfree

      Competição nacional anual de algoritmos e programação para estudantes universitários, classificatória brasileira do ICPC.

    • Olimpíada Brasileira de Informática (OBI) olimpiada.ic.unicamp.brfree

      Competição anual de programação e lógica para estudantes da educação básica ao ensino superior organizada pela SBC e Unicamp.

Como o computador executa programas

  1. Sistemas computacionaisEntenda representação de dados, código de máquina e hierarquia de memória para saber o que acontece quando um programa roda.
  2. Sistemas operacionaisVeja como o sistema operacional virtualiza CPU e memória, lida com concorrência e guarda dados de forma persistente.
  3. Redes e bancos de dados na práticaCapture tráfego de rede real e consulte um banco embutido para ligar a teoria de protocolos e armazenamento ao que se observa.
    • Wireshark wireshark.orgfree

      Analisador de protocolos de rede de código aberto para diagnóstico de tráfego, análise de infraestrutura e suporte a sistemas.

    • SQLite sqlite.orgfree

      Biblioteca de alta confiabilidade em linguagem C que implementa um motor de banco de dados SQL autocontido.

Teoria e comunidade

  1. Autômatos e linguagens formaisExperimente autômatos, gramáticas e máquinas de Turing para entender os modelos formais por trás de compiladores e da própria computação.
    • JFLAP jflap.orgfree

      Software educacional para experimentação prática com linguagens formais, autômatos finitos, autômatos com pilha e máquinas de Turing.

  2. Complexidade computacional (opcional)Conheça as classes P e NP e por que certos problemas parecem não ter solução eficiente, mesmo com computadores melhores.
    • Complexity Zoo complexityzoo.netfree

      Enciclopédia em formato wiki que cataloga classes de complexidade computacional e suas relações de inclusão e equivalência.

  3. Ciência da computação no BrasilAcompanhe a SBC, sua revista de divulgação e os livros abertos para seguir estudando e conhecer a pesquisa feita no país.
    • SBC Horizontes horizontes.sbc.org.brfree

      Portal de divulgação científica e debates sobre o papel dos dados, inteligência artificial e computação na sociedade brasileira.

    • Livros Abertos da SBC sol.sbc.org.brfree

      Repositório de livros técnicos, didáticos e capítulos das Jornadas de Atualização em Informática disponibilizados gratuitamente pela SBC.

    • Sociedade Brasileira de Computação sbc.org.brfree

      Portal institucional da maior sociedade científica de computação da América Latina com publicações, comissões especiais e notícias.

Veja também

Links externos, de seus respectivos autores. Esta trilha é conteúdo original da IPL.