back to home

Universidade-Livre / ciencia-da-computacao

🎓 Um caminho para a educação autodidata em Ciência da Computação!

19,579 stars
1,556 forks
3 issues

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing Universidade-Livre/ciencia-da-computacao in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/Universidade-Livre/ciencia-da-computacao)
Preview:Analyzed by RepoMind

Repository Summary (README)

Preview

Universidade Brasileira Livre

Um caminho para a educação autodidata em Ciência da Computação!

Awesome Open Source Society University - Computer Science

Twitter LinkedIn LinkedIn

Conteúdos

Sumário

O Curso de Ciência da Computação oferecido pela Universidade Livre Brasileira é uma educação completa em Ciência da Computação usando materiais on-line e em Português do Brasil. Este Curso não é pensado para treinamento em tecnologias específicas ou focado em habilidades profissionais direcionadas ao mercado, e sim para aqueles que desejam uma educação própria, com qualidade, fundada nos conceitos fundamentais da computação e é planejada para alunos com disciplina, comprometimento e (o mais importante) bons hábitos de estudo majoritariamente independentes, mas que buscam o suporte de uma comunidade de outros estudantes no Brasil todo.

Este curso contém conteúdos que seriam vistos em um curso de Ciência da Computação organizados de forma estruturada. Os cursos em si são selecionados primariamente do conteúdo aberto de diversas Universidades e Institutos de Educação do Brasil. Entretanto, os cursos presentes na grade seguem os seguintes critérios:

Bases para a criação do Currículo (Guidelines):

Levamos em consideração - apesar de não termos implementado completamente conforme sugerido - os seguintes documentos sobre a formação de um currículo em Ciência da Computação. Continuaremos constantemente trabalhando e aceitando sugestões de melhorias para cada vez mais oferecer uma experiência melhor para todos os estudantes que seguem nosso guia aberto de conteúdos. Além das referências abaixo, também utilizamos como referência as grades curriculares de outras instituições de ensino superior brasileiras.

Os Cursos devem:

  • Ser gratuitos ou de conteúdo que possa ser assistido de forma aberta
  • Possuir método pedagógico
  • Ter reconhecimento de qualidade da Comunidade sobre o tema
  • Estar de acordo com o que se espera do Currículo de Ciências da Computação

Todas as disciplinas possuem uma lista de leituras recomendadas. É de sua responsabilidade escolher a metodologia mais adequada. Note que os livros, em sua maioria, não são gratuitos.

Cursos de qualidade recomendados que não se encaixam na grade serão adicionados em cursos extras. O mesmo ocorrerá quanto aos livros em livros extras.

Todos os cursos podem ser completados de forma gratuita. Porém, alguns cursos têm diplomas, certificados, atividades, ou extras opcionais que são pagos. Observe que o Coursera oferece ajuda financeira.

Os estudantes podem fazer as disciplinas individualmente ou em grupo, seguindo a ordem que estabelecemos ou não, sempre respeitando os pré-requisitos curriculares.

Apenas publique em seu GitHub e espaços públicos os materiais que seu Curso permite que sejam publicados. Nunca desrespeite nenhuma regra do curso em que se matriculou e nunca faça plágios!

Como contribuir

Conseguindo ajuda (Detalhes sobre o FAQ e servidor)

Comunidade

  • Temos um servidor no Telegram! Telegram Nele, você poderá encontrar e interagir com outros estudantes. Por que não se apresenta lá agora mesmo? Vem para o Telegram.
  • Você também pode interagir sobre questões a respeito dos problemas do Curso, propor mudanças de Currículo e outras coisas relacionadas por meio das nossas issues. Sinta-se à vontade para abrir discussões lá.
  • Adicione a Universidade Brasileira Livre no seu perfil do LinkedIn!

Antes de começar

Há tópicos que, apesar de não serem essenciais na formação de Ciência da Computação, podem ser muito úteis na sua jornada de aprendizado. Se desejar, você pode optar por ignorá-los momentaneamente e revisá-los posteriormente.

Técnicas de estudo, organização e aprendizagem

Antes de começar a estudar é importante que você aprenda algumas coisas importantes. Ser autodidata não é sobre aprender sozinho, nem sobre não estar vinculado à uma Instituição de Ensino Superior (IES), mas sobre ser responsável pelo seu próprio ensino e isso é algo que exige saber como estudar, o quanto estudar, e como organizar seus estudos. Para isso, recomendamos os seguintes conteúdos abaixo.

CursoConteúdos
Aprendendo a aprender ¹Memória; Técnicas de estudo; Recursos de estudo.
Como estudar do jeito certoTempo; Técnica; Discussão.

¹ Disponível com legendas em Português.

Git e GitHub

Conhecer ferramentas como o Git o ajudará a organizar seus projetos de estudo. O GitHub - ou outras plataformas como BitBucket ou GitLab - pode ser muito útil para trabalhar remotamente e compartilhar os seus projetos com colegas, além de poder usá-lo como portfólio em futuras oportunidades de trabalho.

CursoConteúdos
Git e Github para IniciantesGit; GitHub; Controle de versão.
Git e GitHubGit; GitHub; Controle de versão.

Currículo

Você pode fazer os cursos na ordem, onde, e como preferir. Este é o maior benefício da liberdade. Entretanto, por fins didáticos e de organização, recomendamos que tente respeitar os pré-requisitos. Você perceberá que não cumprir com estes poderá criar obstáculos em sua jornada.

Dependências entre assuntos

(Clique na imagem para ampliar.)

Obrigatórias

A grade curricular abaixo está dividida em etapas para melhor visualização

1ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
1Circuitos Digitais-Livros sobre Circuitos Digitais
1Matemática Discreta-Livros sobre Matemática Discreta
1Linguagens de Programação-Livros sobre Linguagens de Programação
1Introdução à Ciência da Computação com Python I-Livros sobre Introdução a CC
1Geometria Analítica-Livros sobre Geometria Analítica

2ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
2Cálculo IGeometria AnalíticaLivros de Cálculo I
2Álgebra Linear IGeometria AnalíticaLivros de Álgebra Linear
2Estruturas de DadosMatemática Discreta

Introdução à Ciência da Computação com Python I
Livros de Estruturas de Dados
2Introdução à Ciência da Computação com Python IIIntrodução à Ciência da Computação com Python ILivros de Introdução a Programação
2Laboratório de Programação Orientada a Objetos IIntrodução à Ciência da Computação com Python ILivros sobre Orientação a Objetos

3ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
3Algoritmos em GrafosEstruturas de DadosLivros sobre Algoritmos em Grafos
3Arquitetura de Computadores ICircuitos DigitaisLivros sobre Arquitetura de Computadores I
3Probabilidade e EstatísticaCálculo ILivros sobre Probabilidade e Estatística
3Cálculo IICálculo ILivros sobre Cálculo II
3Programação Funcional em Haskell-Livros sobre Programação Funcional

4ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
4Análise de AlgoritmosAlgoritmos em GrafosLivros sobre Análise de Algoritmos
4Métodos Numéricos IIntrodução à Ciência da Computação com Python I

Cálculo I
Livros sobre Métodos Numéricos
4Banco de Dados-Livros sobre Bancos de Dados
4Arquitetura de Computadores IIIntrodução à Ciência da Computação com Python II

Arquitetura de Computadores I
Livros sobre Arquitetura de Computadores
4Programação Lógica-Livros sobre Programação Lógica

5ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
5Redes de Computadores-Livros sobre Rede de Computadores
5Introdução à Engenharia de SoftwareIntrodução à Ciência da Computação com Python IILivros sobre Engenharia de Software
5Sistemas OperacionaisArquitetura de Computadores IILivros sobre Sistemas Operacionais
5Programação MatemáticaÁlgebra Linear ILivros sobre Programação Matemática/Pesquisa Operacional
5Fundamentos de Computação GráficaGeometria AnalíticaLivros sobre Computação Gráfica

6ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
6Linguagens Formais e AutômatosMatemática DiscretaLivros sobre Linguagens Formais e Autômatos
6Inteligência ArtificialEstruturas de Dados

Probabilidade e Estatística
Livros sobre Inteligência Artificial
6Sistemas DistribuídosRedes de ComputadoresLivros sobre Sistemas Distríbuidos
6Teoria dos GrafosMatemática DiscretaLivros sobre Teoria dos Grafos
6Cálculo IIICálculo IILivros sobre Cálculo III

7ª Etapa

EtapaAulas em VídeoPré-requisitosLeitura Recomendada
7Teoria da ComputaçãoLinguagens Formais e AutômatosLivros sobre Teoria da Computação
7Deep LearningInteligência ArtificialLivros sobre Deep Learning
7CompiladoresEstruturas de Dados

Teoria dos Grafos
Livros sobre Compiladores
7Computação QuanticaCálculo III

Arquitetura de Computadores II
Livros sobre Computação Quântica
7Metodologia da Pesquisa-Livros sobre Metodologia de Pesquisa

Especializações

Após ter concluído a formação geral, você já deve ter uma ampla visão sobre Ciência da Computação, seus fundamentos, e suas aplicações. Além disso, você deve estar mais preparado para escolher uma área de especialidade. Abaixo disponibilizamos algumas "carreiras" que o estudante pode escolher para seguir com sua especialização em Ciência da Computação. Sua estrutura deverá ser similar ao disposto na grade principal da UBL. Note que o termo "especialização" não é empregado no mesmo sentido de pós-graduação lato sensu, e ao invés disso se refere a uma gama de conteúdos que, se empregados na grade principal, a tornariam menos geral no que diz respeito aos conteúdos base que espera-se de todo cientista da computação.

EspecializaçãoÁreas de Atuação
Computação Gráficasoftwares gráficos, aplicações 3D, games, fotorrealismo, sistemas gráficos, simuladores, e mais
Embarcadosinternet das coisas, controles industriais, coisas inteligentes, wearables, cidades inteligentes, automobilismo, e mais
Desenvolvimento Webaplicações em servidor, layout de páginas web, sistemas on-line, APIs, computação em nuvem, streaming, e mais
Ciência de Dadosanálise de dados, visualização de dados, machine learning, deep learning, sistemas especialistas, estatística, e mais
CyberSecuritysegurança, pentest, criptografia, autenticação, análise, estatística, e mais
DevOpsdevops, infraestrutura, container, docker, kubernetes, CI/CD, e mais
Design de Algoritmosem breve

Ferramentas para auxiliar a praticar

As ferramentas abaixo ajudam a acelerar seu aprendizado com exercícios e trilhas, mas o que mais fortalece seu portfólio e empregabilidade é criar projetos próprios que resolvam problemas reais.

PlataformaConteúdos
freeCodeCampTrilhas com projetos práticos de Web, JS, APIs e dados para montar portfólio.
ExercismExercícios em dezenas de linguagens com mentoria e CLI para feedback estruturado.
KaggleProjetos práticos de Data Science e IA. Oferece cursos, competições e notebooks interativos com Python e SQL.
HackerRankPreparação para entrevistas técnicas. Focado em desafios de algoritmos, estruturas de dados e diversas linguagens como Java e SQL.
LeetCodeTreinamento intensivo para entrevistas de emprego em big techs. Oferece um vasto banco de problemas, planos de estudo e discussões em fóruns.
SadServersSolução de problemas em servidores Linux. Simula cenários reais de erros para praticar administração de sistemas, infraestrutura e análise de logs.
SQLZooExercícios progressivos de SQL direto no navegador, ideais para fixar consultas e joins.

Como demonstrar o meu progresso?

A melhor forma de demonstrar sua evolução e maturidade ao longo do currículo é por meio de exercícios. Estes exercícios podem ser os encontrados nas leituras recomendadas ou, em caso de disciplinas mais aplicadas, projetos práticos. Compartilhar sobre os projetos que tem feito ao longo do Curso, seja por meio de redes sociais, blogues, tutoriais, streaming... vai demonstrar para as pessoas do meio técnico e de outros meios o quanto você aprendeu e evoluiu ao longo dessa jornada.

Não deixe de hospedar todos os seus códigos em seu perfil do GitHub, mesmo que sejam pequenos projetos ou apenas exercícios eles podem demonstrar muito sobre o que você tem estudado, como você resolve problemas e o quanto você melhorou ao longo do tempo.

Parabéns!

Após completar todos os requisitos do currículo acima e aprender ao menos uma especialização você já viu todo o conteúdo equivalente a um Bacharelado completo em Ciência da Computação. Parabéns!

O que fazer após isso? Bem, na verdade as possibilidades são sem limites e interconectadas:

  • Procurar um trabalho como Desenvolvedor em sua especialidade.
  • Aprender mais lendo livros clássicos de Ciência da Computação em um Clube do Livro para melhorar suas habilidades e expandir seu conhecimento (além de fazer muitos amigos)!
  • Participar ou organizar meetups de tecnologia.
  • Encontrar novas tecnologias que estão crescendo:
    • Explorar o modelo de atores (actor model) com Elixir ou Scala, que são linguagens modernas com ferramental e bibliotecas muito interessantes para Desenvolvimento Web e que utilizam VM's muito poderosas!
    • Explorar empréstimo (borrowing) e tempo de vida (lifetimes) em Rust, uma linguagem que tem segurança de memória e de fio de execução sem um coletor de lixo!
    • Aprender mais sobre tipos e inferência de tipos com OCaml, uma linguagem multiparadigma com inferência estática de tipos!

Time

Contribuidores

Nosso muito obrigado a todas essas pessoas!


Fabio Kon

📹

professordouglasmaioli

📹

Gabriel Guimaraes

📹

Pedro Thiago Valério de Souza

📹

Rodolfo Azevedo

📹

Eduardo Guerra

📹

Fábio dos Reis

📹

Matheus Felipe

👀

João Paulo Carvalho

🤔

Wellington Silva

🤔

Hallison Paz

📹 🤔

Fernando Mercês

📹 🚧

Fernando Masanori

📹

Emilio Francesquini

📹

Fabricio Olivetti de Franca

📹

Professor Isidro

📹

Fabio Levy Siqueira

📹

Luiz Velho

📹

Geofisicando

📹

WR Kits

📹

Bruno Miranda

📹

Gustavo Guanabara

📹

Victor Lima

📹

Lucas Nhimi

📹

oliveira-michel

📹

Willian Justen

📹

Kizzy Terra

📹

Andrew Rosário

📹

E a todos os outros educadores, produtores de conteúdo e pessoas que contribuíram com esse projeto, mas não possuem perfil ou ainda não os encontramos!