Um caminho para a educação autodidata em Ciência da Computação!
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. Esse Curso não é pensado para treinamento em tecnologias especificas ou focado em habilidades profissionais direcionadas ao mercado. Esse Curso é pensado para aqueles que desejam uma educação própria, com qualidade, fundada nos conceitos fundamentais da computação e é planejada para alunos com disciplina, cometimento 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.
Esse curso contêm conteúdos que seriam vistos em um curso de Ciência da Computação organizados de forma estruturada e que contêm disciplinas relacionadas computação e também disciplinas de formação geral (acreditamos que uma formação completa abranja mais do que simplesmente CC). Os cursos em si são selecionados primariamente do conteúdo aberto de diversas Universidades e Institutos de Educação do Brasil, mas no geral os cursos presentes na grade seguem os seguintes critérios:
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 espera-se do Currículo de Ciências da Computação
Os cursos tem como suplementação sempre que possível livros. Quando um livro ou curso de qualidade for recomendável a leitura, mas não encaixar-se com o currículo ele deverá ser adicionado nas listas de cursos extra e livros extra respectivamente.
Organização. O Currículo é organizado da seguinte forma:
- Introdução a Computação: Contêm os conteúdos de introdução, é onde você pode começar e ver se quer fazer CS.
- Aprofundamento de Conceitos Introdutórios: Contêm os conteúdos que começam a aprofundar os conceitos introdutórios.
- Desenvolvimento Teórico: Contêm os conteúdos que servem como base para a construção de bases teóricas.
- Desenvolvimento Técnico: Contêm os conteúdos que começam a desenvolver bases técnicas.
- Aprofundamento Técnico: Contêm os conteúdos que utilizam as bases teóricas e técnicas para contruir fundamentos práticos.
- Tópicos Finais: Conteúdos que utilizam-se de todo conhecimento adquirido nos tópicos anteriores para técnicas avançadas de computação.
Duração. É possível terminar o curso em x anos, dedicando x horas por dia. Os estudantes podem utilizar a planilha que ainda vamos disponibilizar para estimar o tempo de curso que ainda falta para a conclusão.
Custo. Todos os cursos podem ser completados de forma gratuita. Porém, alguns cursos tem diplomas/certificados/atividades/extras opcionais que são pagos. Observe que o Coursera oferece ajuda financeira.
Decida quanto tempo de curso e quanto quer gastar em seus estudos nesse curso por sua própria conta, apenas tenha sempre em mente que você não pode comprar o sucesso!
Processo. Os estudantes podem fazer as disciplinas individualmente ou em grupo, seguindo a ordem que estabelecemos ou não.
Política de Conteúdo. 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!
- Temos um servidor no Discord!
Nele você pode encontrar e interagir com outros estudantes. Por que não se apresenta lá agora mesmo? Vem pro Discord.
- Você também pode interagir sobre questões a respeito dos problemas do Curso, propor mudanças de Currículo e outras coisas relacionadas atráves das nossas issues, sinta-se a vontade para abrir discussões lá.
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, como organizar seus estudos... e para isso recomendamos os seguintes conteúdos abaixo.
Curso | Duração | Dedicação | Conteúdos |
---|---|---|---|
Aprendendo a aprender ¹ | 3 Semanas | 5 horas/semana | Memória; Técnicas de estudo; Recursos de estudo. |
Como estudar do jeito certo | 3 Semanas | 2 horas/semana | Tempo; Técnica; Discussão. |
¹ Disponível com legendas em Português.
O currículo deste Curso se divide em duas categorias: a das Disciplinas de Formação Geral e as Disciplinas de Especialização. As disciplinas de formação geral são essenciais na formação de todos os alunos independente de qual área ou especialização desejam seguir e são a base para o conteúdo técnico-teórico para os cursos de especialização. Você pode fazer os cursos na ordem, onde e como preferir e esse é o maior benefício da liberdade, mas por fins didáticos e de organização recomendamos que tente respeitar os pré-requisitos e que conclua todas as disciplinas de formação geral antes de prosseguir nas de especialização.
Curso | Duração | Dedicação | Conteúdos | Pré-requisitos |
---|---|---|---|---|
Introdução à Ciência da Computação com Python I | 9 Semanas | 4 horas/semana | Algoritmos; Lógica de Programação; Python; Testes. | - |
Matemática Básica | 9 Semanas | 4 horas/semana | Números Primos; Bases Numéricas; Módulo; Gráficos. | - |
Ciência da Computação 50 (CC50) | 9 semanas | 4 horas/semana | Sistemas Operacionais; Redes; Arquivos; C; JS. | - |
Leitura e Produção de Textos | 4 semanas | 2 horas/semana | Língua Portuguesa; Escrita; Gramática; Argumentação. | - |
Circuitos Digitais | 9 semanas | 4 horas/semana | Portas Lógicas; Diagramas; Máquinas de Estado; Projeto de Circuitos. | - |
Curso | Duração | Dedicação | Conteúdos | Pré-requisitos |
---|---|---|---|---|
Introdução à Ciência da Computação com Python II | 6 Semanas | 4 horas/semana | Matrizes; POO; Recursão; Complexidade de Algoritmos. | Introdução à Ciência da Computação com Python I |
Fundamentos Matemáticos para Computação | 9 Semanas | 4 horas/semana | Lógica Formal; PROLOG; Recursão; Matrizes; Booleanos; Grafos. | Matemática Básica |
Arquitetura de Computadores I | 9 Semanas | 4 horas/semana | Memória; Booleans; Arquitetura; RISC-V. | Circuitos Digitais |
Noções de Ingês | 9 Semanas | 4 horas/semana | Inglês básico; Técnicas de Leitura; Escrita. | - |
Noções de Direitos Autorais, parte I | 9 Semanas | 4 horas/semana | Direito Autoral; Direito do Autor; Limitação do Direito do Autor. | - |
Noções de Direitos Autorais, parte II | 9 Semanas | 4 horas/semana | Patentes Digitais; Registro de Programas de Computador. | Noções de Direitos Autorais, parte I |
Novos item em CONCEITOS INTRODUTÓRIOS parte II | 9 Semanas | 4 horas/semana | Patentes Digitais; Registro de Programas de Computador. | Novo item em CONCEITOS INTRODUTÓRIOS |
Curso | Duração | Dedicação | Conteúdos | Pré-requisitos |
---|---|---|---|---|
Programação Orientada a Objetos I | 6 Semanas | 4 horas/semana | OOP; Streams; MVC; Design Patterns. | Introdução à Ciência da Computação com Python II |
Bancos de Dados | 4 Semanas | 3 horas/semana | MER; Projeto de Banco de Dados; Normalização; SQL. | - |
Arquitetura de Computadores II | 9 Semanas | 4 horas/semana | Cache; Paralelismo; ASM; RISC-V. | Arquitetura de Computadores I |
Estatística e Probabilidade | 9 Semanas | 4 horas/semana | Espaços Discretos; Bayes; Distribuições; Variância; Regressão. | Matemática Básica |
Princípios de Desenvolvimento Ágil de Software | 9 Semanas | 4 horas/semana | XP; User Stories; Taks; Sprint; Diagramas. | - |
Curso | Duração | Dedicação | Conteúdos | Pré-requisitos |
---|---|---|---|---|
Desenvolvimento Ágil com Java Avançado | 4 Semanas | 3 horas/semana | JDBC; Servlets; Web; Lambda Calculus. | Princípios de Desenvolvimento Ágil de Software, Programação Orientada a Objetos I |
Cálculo I | 4 Semanas | 3 horas/semana | Funçõpes; Limite; Derivada; Trigonometria; Mat. Espacial. | Matemática Básica |
Teoria dos Grafos | 4 Semanas | 3 horas/semana | Grafos; Representações; Listas; Árvores. | Fundamentos Matemáticos para Computação, Programação Orientada a Objetos I |
Sistemas Operacionais | 4 Semanas | 3 horas/semana | Processos; Threads; Calls; I/O. | Arquitetura de Computadores II |
Banco de Dados MySQL | 3 Semanas | 4 horas/semana | CRUD; Consultas; Tabelas. | Introdução à Ciência da Computação com Python II, Bancos de Dados |
Curso | Duração | Dedicação | Conteúdos | Pré-requisitos |
---|---|---|---|---|
Interfaces Humano-Computador | 3 Semanas | 3 horas/semana | Estudos de Usuário; Design; Avaliação de Interfaces. | - |
Estrutura de Dados | 2 Semanas | 3 horas/semana | Filas; Pilhas; Árvores; Ordenação. | Teoria dos Grafos |
Redes de Computadores | 2 Semanas | 3 horas/semana | Protocolos; UDP; TCP; Comunicação. | - |
Criação de Startups | 2 Semanas | 3 horas/semana | Canvas; MVP; Modelo de Negócio; Pitch. | - |
Introdução ao Desenvolvimento de Aplicativos Android | 2 Semanas | 3 horas/semana | Aplicativos; Android Studio; Views. | Desenvolvimento Ágil com Java Avançado |
Curso | Duração | Dedicação | Conteúdos | Pré-requisitos |
---|---|---|---|---|
Paradigmas de Programação | 2 Semanas | 3 horas/semana | Programação Funcional; Cálculo Lambda; Haskell; Monads. | Estrutura de Dados |
Compiladores | 2 Semanas | 3 horas/semana | Lexers; Parsers; AST; Generators. | Teoria dos Grafos |
Gerência da Qualidade de Software | 2 Semanas | 3 horas/semana | Testes; Estimativas; Processos. | - |
Fundamentos da Inteligência Artificial | 2 Semanas | 3 horas/semana | Regressão Linear; Gradientes; Redes Neurais; Perceptons. | Teoria dos Grafos |
Metodologia da Pesquisa em Computação | 8 Semanas | 5 horas/semana | Pesquisa; Artigos; Métodos; Publicação. | - |
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 aplicações e estará mais que preparado para escolher uma área de especialidade dentro de suas aplicações para se tornar especialista. A partir daqui não vamos mais elencar pré-requisitos, pois entendemos que com a bagagem da formação geral o aluno já consegue ter pleno conhecimento sobre como estudar temas complexos e decidir como e quando fazer cada curso sem necessitar de recomendação.
Áreas de aplicação:
softwares gráficos
aplicações 3D
games
fotorealismo
sistemas gráficos
simuladores
e mais
Curso | Duração | Dedicação | Conteúdos |
---|---|---|---|
Pixar in a Box | 2 Semanas | 3 horas/semana | Renderização; Animação; Curvas; 3D. |
Algebra Linear I | 4 Semanas | 3 horas/semana | Sistemas lineares; Vetores; Espaços Vetoriais. |
Programação em Julia ¹ | ? Semanas | ? horas/semana | Algoritmos; Julia; Algebra Linear. |
Tópicos de Computação Gráfica | ? Semanas | ? horas/semana | Ray Tracing; Reflexos; Imagens; Reconstrução de Imagens. |
Conceitos Básicos de Computação Gráfica | 4 Semanas | 8 horas/semana | Objetos gráficos; Modelagem geométrica; Fundamentos de sistemas gráficos. |
Processamento de Imagens | 4 Semanas | 8 horas/semana | Imagem digital; Quantização; Operações com imagens; Dithering; warping de imagens; Aplicações |
Processamento de Imagens em Python | ? Semanas | ? horas/semana | Redimensionamento; Efeitos; Animação; Detecção. |
(Em construção) |
¹ Esse curso está dísponível apoiando a partir de R$ 2,99/mês o Canal.
Áreas de aplicação:
internet das coisas
controles industriais
coisas inteligentes
wearables
cidades inteligentes
automobilismo
e mais
Curso | Duração | Dedicação | Conteúdos |
---|---|---|---|
Curso de C moderno | 4 Semanas | 3 horas/semana | C; GDB; Tooling; Unix. |
Curso de Makefile | 4 Semanas | 3 horas/semana | Make; Makefile. |
Conceitos de Eletrônica | 4 Semanas | 3 horas/semana | Sinais; Circuitos; Energia; Polaridade. |
Eletrônica para Iniciantes | 5 Semanas | 8 horas/semana | Esquemáticos; Portas Lógicas; Circuitos; Carga. |
Curso de AVR-C | 2 Semanas | 4 horas/semana | C para Microcontroladores; Operações bit-a-bit; Datasheets. |
Curso de AVR Periféricos | 2 Semanas | 3 horas/semana | Displays; Timers; Conversores; Comunicação. |
Curso de Assembly para ATMega328 | 2 Semanas | 2 horas/semana | ASM; IO; Portas; Endereços. |
Curso de C++ | 3 Semanas | 4 horas/semana | OOP; Smart Pointers; Biblioteca padrão. |
Cuso de FreeRTOS | 2 Semanas | 2 horas/semana | Filas; Tasks; Timers; Async. |
Cuso de MQTT | 2 Semanas | 2 horas/semana | Broker; Publisher; QoS; Mensagens. |
Cuso de LoRaWan | 1 Semana | 3 horas/semana | Protocolo; Camadas; ADR; AU915. |
Curso de FPGA | 4 Semanas | 4 horas/semana | VHDL; Verilog; ASIC. |
Áreas de aplicação:
aplicações em servidor
layout de páginas web
sistemas on-line
APIs
computação em nuvem
streaming
e mais
Curso | Duração | Dedicação | Conteúdos |
---|---|---|---|
HTML e CSS, Parte I | 5 Semanas | 8 horas/semana | Tags; Hierarquias; Semântica. |
HTML e CSS, Parte II | 5 Semanas | 8 horas/semana | Elementos; IDs; Variáveis. |
JavaScript Básico | 5 Semanas | 8 horas/semana | Sintaxe; DOM; Funções. |
Curso de JavaScript ES6 | 4 Semanas | 2 horas/semana | Módulos; Async/Await; Promisses; Estrutura de Dados. |
Debuggando JavaScript | - | 30 minutos | Logs; DEV Tools. |
Curso de SASS | 2 Semanas | 2 horas/semana | Preprocessamento CSS; Mixin; Output. |
Node.js (Express) | 4 Semanas | 4 horas/semana | Handlebars; Middlewares; Sequelize; MVC. |
ESLint + Prettier + editorconfig | - | 30 minutos | Formatação de Código; Padronização de Código; Linters. |
Curso Básico REST APIs | 4 Semanas | 4 horas/semana | Modelos de Maturidade; Verbos e Status; Recursos; Modelagem. |
Curso de React | 4 Semanas | 4 horas/semana | Componentes; Estado; Hooks; API; Navegação. |
Mini-curso de TypeScript | 2 Semanas | 2 horas/semana | Tipos; Compilador; Classes; Generics. |
Node (Express) com TypeScript | 2 Semanas | 2 horas/semana | Rotas; JWT; Tipos; Optionals. |
Áreas de aplicação:
jogos mobile
aplicativos para smartphone
desenvolvimento para tablets
iOS && Android
aplicativos comerciais
redes sociais
e mais
(Em construção)
Áreas de aplicação:
administração de banco de dados
organização de tabelas de dados
optimização de querys
segurança de dados
criação de rotinas de bd
big data
e mais
(Em construção)
Áreas de aplicação:
análise de dados
visualização de dados
machine learning
deep learning
sistemas especialistas
estatística
e mais
(Em construção)