/ciencia-da-computacao

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

MIT LicenseMIT

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 Discord! Discord Nele, você poderá encontrar e interagir com outros estudantes. Por que não se apresenta lá agora mesmo? Vem para o 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 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.

Curso Conteúdos
Aprendendo a aprender ¹ Memória; Técnicas de estudo; Recursos de estudo.
Como estudar do jeito certo Tempo; 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.

Curso Conteúdos
Git e Github para Iniciantes Git; GitHub; Controle de versão.
Git e GitHub Git; 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.

Dividimos a grade entre disciplinas obrigatórias e eletivas. A lista de eletivas está em constante crescimento, e poderão ser efetuadas nos espaços em branco do semestre.

Obrigatórias

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

1º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
1 Circuitos Digitais - Ronald J. Tocci, Neal S. Widner, Gregory L. Moss.
Sistemas Digitais: Princípios e Aplicações. 11.a edição. 2011. ISBN:
9788576059226.

Tanenbaum, Andrews S. Organização Estruturada de Computadores. Pearson. 5.a edição. 2007. ISBN: 9788576050674.

Floyd, Thomas L. Sistemas Digitais: Fundamentos e Aplicações. 9.a edição.Bookman. 2007. ISBN: 9788577801077.
1 Matemática Discreta - GRAHAM, R.L.; KNUTH, D.E.; PATASHNIK, O.. Matemática Concreta. Fundamentos Para Ciência Da Computação. LTC, 1995. ISBN-13: 978-8521610403.

GERSTING, Judith L. Fundamentos matemáticos para a ciência da computação: um tratamento moderno de matemática discreta . 5. ed. Rio de Janeiro: Livros Técnicos e Científicos, c2004. xiv, 597 p. ISBN 8521614225 (broch.).

SCHEINERMAN, E.R. Matemática Discreta - Uma Introdução. Cengage, 2010. ISBN-13: 9788522107964.
1 Linguagens de Programação - Peter Van Roy & Seif Haridi. Concepts, Techniques, and Models of Computer Programming, MIT Press, 2004. ISBN-13: 978-0262220699.

Benjamin Pierce. Types and Programming Languages. MIT Press, 2002. ISBN-13: 978-0262162098.

Michael L. Scott. Programming Language Pragmatics. Morgan Kaufmann, 2009 (terceira edição). ISBN-13:
978-0123745149.
1 Introdução à Ciência da Computação com Python I - ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ e java. 3. ed. São Paulo: Pearson Education do Brasil, c2012. x, 569 p. ISBN 9788564574168.

CELES, Waldemar; CERQUEIRA, Renato; RANGEL, José Lucas. Introdução a estruturas de dados: com técnicas de programação em C. Rio de Janeiro, RJ: Elsevier: Campus, 2004. xiv, 294 p. ISBN 8535212280.

MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para desenvolvimento de programação de computadores . 27. ed. rev. São Paulo, SP: Érica, 2014. 328 p. ISBN 9788536502212.
1 Geometria Analítica - WINTERLE, P., STEINBRUCH, A., Geometria Analítica, Um tratamento vetorial, Rio de Janeiro: MacGraw- Hill, 1987.

CAROLI, A., CALLIOLI, C.A, FEITOSA, M.O., Matrizes, vetores e geometria analítica, 9 ed, São Paulo: Nobel, 1978.

BOULOS, P., CAMARGO, I., Geometria analítica - um tratamento vetorial, Rio de Janeiro: McGraw-Hill, 1987.

2º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
2 Cálculo I Geometria Analítica STEWART, James. Cálculo. 7. ed. São Paulo, SP: Cengage Learning, 2014. v. 1 ISBN 9780538498876 (broch.).

SIMMONS, George Finley. Cálculo com geometria analítica. São Paulo, SP: Pearson Makron Books, 1988. 2 v. ISBN 8534614689 (broch. : v.

THOMAS, George Brinton; WEIR, Maurice D.; GIORDANO, Frank R.; HASS, Joel. Cálculo. 11. ed. São Paulo, SP: Pearson/Addison Wesley, 2009. 2 v.ISBN 9788588639317 (v. 1).
2 Álgebra Linear I Geometria Analítica BOLDRINI, José Luiz et al. Álgebra linear. 3. ed. ampl. e rev. São Paulo, SP: HARBRA, c1986. 411 p. ISBN 8529402022 (broch.).

LIPSCHUTZ, Seymour; LIPSON, Marc. Álgebra linear. 4. ed. Porto Alegre, RS: Bookman, 2011. 432 p. (Coleção Schaum). ISBN 9788577808335 (broch.).

LANG, Serge. Algebra linear. Rio de Janeiro, RJ: Ciência Moderna, c2003. 405 p. (Coleção Clássicos da Matemática Coleção Clássicos da Matemática) ISBN 8573932538 (broch.).
2 Estruturas de Dados Matemática Discreta

Introdução à Ciência da Computação com Python I
CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Algoritmos - Teoria e Prática. 3o edição, Editora Campus, 2012. ISBN-13: 978-8535236996.

MARKENZON, L.; SZWARCFITER, J. Estruturas de Dados e Seus Algoritmos, LTC, 3a Edição, 2010. ISBN-13: 978-8521610144.

SEDGEWICK, R.; WAYNE, K. Algorithms. Addison-Wesley Professional; 4th edition, 2011. ISBN-13: 978-0321573513.
2 Introdução à Ciência da Computação com Python II Introdução à Ciência da Computação com Python I CORMEN, T.H. et al.: Algoritmos: Teoria e Prática. Elsevier e Campus (tradução). ISBN 853520926-3.

CORMEN, T.H.; LEISERSON, C.E.; RIVEST, R.L.; STEIN, C. Algoritmos: Teoria e Prática. Editora Campus.2002.

KELLEY, A.; POHL, I. A Book on C. 2a. edição, The Benjanmin/Cummings Pub. Co., Inc. 1990.

SCHILDT, H. "C.Completo e Total". MakronBooks, 1997.

TENENBAUM, A.M., e outros Data Structures Using C. Prentice-Hall, 1990.

ZIVIANI, N. Projeto de algoritmos. 2a. edição, Thomson, 2004
2 Laboratório de Programação Orientada a Objetos I Introdução à Ciência da Computação com Python I DEITEL, H. M.; DEITEL, P.J.: Java - Como Programar, Prentice-Hall, 8ª Edição, 2010, ISBN 9788576055631.

DEITEL, H. M.; DEITEL, P.J.: C++ - Como Programar, Prentice-Hall, 5ª Edição, 2006, ISBN 9788576050568.

3º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
3 Algoritmos em Grafos Estruturas de Dados CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Algoritmos - Teoria e
Prática. 3a edição, Editora Campus, 2012. ISBN-13: 978-8535236996.

DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algoritmos. McGraw Hill, 2009. ISBN-13: 978- 8577260324.

GOLDBARG, E.; GOLDBARG, M. Grafos – Conceitos, algoritmos e aplicações. Elsevier Acadêmico, 2012. ISBN-13: 978-8535257168.
3 Arquitetura de Computadores I Circuitos Digitais W. Stallings, Arquitetura e Organização de computadores. 8a edição, Pearson, 2010. ISBN:978-85- 7605-564-8

D. Patterson, J. Hennessy, Organização e Projeto de Computadores: Interface de Hardware/Software, 2013. ISBN-13: 978-85-352-1521-2

A. S. Tanenbaum. Organizacao Estruturada de Computadores, 5ed, Pearson. ISBN: 9788576050674.
3 Probabilidade e Estatística Cálculo I MONTGOMERY, Douglas C.; RUNGER, George C. Estatística aplicada e probabilidade para engenheiros. 5. ed. Rio de Janeiro: LTC, c2012. xiv, 523 p. ISBN 9788521619024 (broch.). MORETTIN, Pedro Alberto; BUSSAB, Wilton de Oliveira. Estatística básica. 8. ed. São Paulo: Saraiva, c2013. xx, 548 p. ISBN 9788502207998.

TRIOLA, Mario F. Introdução à estatística. 10. ed. Rio de Janeiro, RJ: LTC, 2008. 696 p. + 1 CD-ROM ISBN 978 85 216 1586 6 (broch.)
3 Cálculo II Cálculo I STEWART, James. Cálculo. 7. ed. São Paulo, SP: Cengage Learning, 2014. v. 1 ISBN 9780538498876 (broch.).

STEWART, James. Cálculo volume 2. São Paulo, SP: Thomson Learning, 2011. 2 v. ISBN 8521104840 (v.2).

THOMAS, George Brinton; FINNEY, Ross L.; WEIR, Maurice D.; GIORDANO, Frank R. Cálculo: George Brinton Thomas Jr...[et al]; tradução Cláudio Hirofume Asano; revisão técnica Leila Maria Vasconcellos Figueiredo. 10. ed. São Paulo, SP: Prentice Hall, 2003. v.02 ISBN 8588639114 (broc.).
3 Programação Funcional em Haskell - Ford, Neal. Functional Thinking: Paradigm Over Syntax. O’Reilly Media, 2014.

Backfield, Joshua. Functional: Steps for Transforming Into a Functional Programmer. O’ Reilly Media, 2014.

Laurent, Simon St.; Introducing Erlang, 2nd Edition, O’Reilly Media., 2017, ISBN: 9781491973370

Juric, Sasa; Elixir in Action, Second Edition, Manning Publications, 2019, ISBN: 9781617295027

Kurt, Will; Get Programming with Haskell, Manning Publications, 2018

4º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
4 Análise de Algoritmos Algoritmos em Grafos DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algoritmos. McGraw Hill, 2009. ISBN-13: 978- 8577260324.

CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Algoritmos – Teoria e Prática. 3o edição, Editora Campus, 2012. ISBN-13: 978-8535236996.

EDMONDS, J. Como Pensar sobre algoritmos, Editora LTC, 2010. ISBN-13: 978-8521617310
4 Métodos Numéricos I Introdução à Ciência da Computação com Python I

Cálculo I
Ruggiero, M.A.G. e Lopes, V.L.R., Cálculo Numérico. Makron Books, 1996.

Campos, filho, F.F. Algoritmos Numéricos. 2a edição, Rio de Janeiro, LTC, 2012.

Quarteroni, A. and Saleri, F., Scientific Computing with MATLAB and Octave, Springer, 2006.
4 Banco de Dados - Silberschatz, A., Korth, H., Sudarshan, S. “Sistema de Banco de Dados”. 6a Edição, Editora Campus, 2012.

Elsmari, R., Navathe, Shamkant B. “Sistemas de Banco de Dados”. 6a. Edição, Addison-Wesley, 2011.

Ramakrishnan, R. “Sistemas de Gerenciamento de Bancos de Dados”, 3a Edição, McGraw-Hill, 2008.
4 Arquitetura de Computadores II Introdução à Ciência da Computação com Python II

Arquitetura de Computadores I
W. Stallings, Arquitetura e Organização de computadores. 8a edição, Pearson, 2010. ISBN:978-85- 7605-564-8

D. Patterson, J. Hennessy, Organização e Projeto de Computadores: Interface de Hardware/Software, 2013. ISBN-13: 978-85-352-1521-2

A. S. Tanenbaum. Organizacao Estruturada de Computadores, 5ed, Pearson. ISBN: 9788576050674.
4

5º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
5 Redes de Computadores KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: Uma Abordagem Top-down, 6a Edição, Ed. Pearson Education, 2012. ISBN-13: 9788581436777

TANENBAUM, A. S. Redes de Computadores, 5a Edição, Ed. Pearson Education, 2011. ISBN-13: 9788576059240

STALLINGS, W. Data and Computer Communications, 10a Edição, Ed. Pearson Education, 2013. ISBN-13: 9780133506488.
5 Introdução à Engenharia de Software Introdução à Ciência da Computação com Python II SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Education, 2011. 568p. ISBN: 9788579361081

PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre: McGraw Hill, 2011. 771 p. ISBN: 9788563308337.

PÁDUA FILHO, W. Engenharia de Software: Fundamentos, Métodos e Padrões. 3. ed. Rio de Janeiro: LTC, 2009. 1248 p. ISBN 9788521616504.
5 Sistemas Operacionais Arquitetura de Computadores II Abraham Silberschatz. "Fundamentos de Sistemas Operacionais". 8a. Edição, LTC, 2010.

Tanenbaum, Andrew S. "Sistemas Operacionais Modernos". 3a Edição, Pearson, 2010.

Machado, Francis Berenger; Maia, Luiz Paulo. "Arquitetura de Sistemas Operacionais". 5a Edição, LTC, 2013.
5 Programação Matemática Álgebra Linear I ARENALES, M; ARMENTANO, V; MORABITO, R.; YANASSE, H. Pesquisa operacional - Ed. Campus, 2007.


Bazaraa, M. Jarvis, J.J., Sherali, H. D., Linear Programming and Network Flows, Wiley-Interscience, 3a. Edição, 2005.

BERTSIMAS, D. E TSITSIKLIS, J.N. – Introduction to Linear Optimization, Athena Scientific, 1997.

GOLDBARG, M.C. e LUNA, H.P.L – Otimização Combinatória e Programação Linear – Modelos e Algoritmos – Editora CAMPUS, 2ª Edição - 2005..

HILLIER, F.S.; LIEBERMAN, G.J.- Introdução à Pesquisa Operacional, Rio de Janeiro, RJ, Campus, 1988.
5 Fundamentos de Computação Gráfica Geometria Analítica Peter Shirley, Michael Ashikhmin, “Fundamentals of computer graphics,” Edition: 2, Published by A K Peters, Ltd., 2005, ISBN 1568812698, 9781568812694, 623 pages.

Edward Angel, “Interactive Computer Graphics: A Top-Down Approach Using OpenGL,” Edition: 5, Published by Addison-Wesley, 2009, ISBN-10: 0321535863, ISBN-13: 9780321535863, 864 pages.

Hughes, J. F., Van Dam, A., Mcguire, M., Sklar, D. F., Foley, J. D., Feiner, S. K., Akeley, K. “Computer Graphics: Principles and Practice”, 3rd. Edition, Pearson Education, Inc, 2013, ISBN-10: 0321399528, ISBN-13: 978-0321399526.

6º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
6 Linguagens Formais e Autômatos Matemática Discreta SIPSER, M. Introduction to the Theory of Computation. 3a ed. Cengage Learning, 2012. ISBN 9781133187790.

MARTIN, J. Introduction to Languages and the Theory of Computation. 4a ed. McGraw-Hill, 2010. ISBN 9780073191461.

HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introduction to Automata Theory,Languages and Computation. 3a ed. Pearson Education, 2008. ISBN 9788131720479.
6 Inteligência Artificial Estruturas de Dados

Probabilidade e Estatística
Russel, S. & Norvig, P. (2010) Artificial Intelligence – A Modern Approach. Prentice Hall. Third Edition.

Mitchell, Tom. (1997). Machine Learning. McGraw Hill.

Koller. D. (2009). Probabilistic Graphical Models: Principles and Techniques. The MIT Press.
6 Sistemas Distribuídos Redes de Computadores Andrew S. Tanenbaum, Maarten Van Steen. “Distributed Systems: Principles and Paradigms”, 2nd Edition, Pearson, 2006.

George Coulouris, Jean Dollimore, Tim Kindberg and Gordon Blair. “Distributed Systems: Concepts and Design”, 5th Edition, Addison Wesley, 2011.

Randy Chow, Theodore Johnson. Distributed Operating Systems and Algorithms, Addison- Wesley, 1997.
6 Teoria dos Grafos Matemática Discreta WEST, D. Introduction to Graph Theory. Pearson; 2 edition, 2000. ISBN-13: 978-0130144003.

BONDY, J.; MURTY, U. Graph Theory. Springer; 1st Corrected ed. 2008. ISBN-13: 978-1846289699.

DIESTEL, R. Graph Theory. Springer; 4th ed. 2010. ISBN-13: 978-3642142789.

BOAVENTURA NETTO, P. O. Grafos: teoria, modelos, algoritmos. São Paulo, SP: Edgard Blücher, 2003.
6 Cálculo III Cálculo II CARVALHO, A.N.; NUNES, W.V.L.; ZANI, S.L. Notas de Cálculo – ICMC-USP.

GUIDORIZZI, H.L. Um Curso de Cálculo, 5ª Ed., V. 2 e 3, Rio de Janeiro: Livros Técnicos e Científicos Editora, (2002).

STEWART, J. Cálculo, V. 1 e 2, 4ª ed., Pioneira, São Paulo, (2001).

THOMAS, G.B. Cálculo, V. 2, 10ª ed., Addison-Wesley, São Paulo, (2002).

7º Semestre

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
7 Teoria da Computação Linguagens Formais e Autômatos DAVIS, M.; SIGAL, R.; WEYUKER, E. Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science. 2 Edition, Morgan Kaufmann, 1994. ISBN 9780122063824

SIPSER, M. Introduction to the Theory of Computation. 3a ed. Cengage Learning, 2012. ISBN
9781133187790.

MARTIN, J. Introduction to Languages and the Theory of Computation. 4a ed. McGraw-Hill, 2010. ISBN 9780073191461.
7 -
7 -
7 -
7 -

Eletivas

As disciplinas abaixo não estão divididas por semestre, por serem pouco numerosas.

Semestre Curso Conteúdos Pré-requisitos Leitura Recomendada
6 Visão Computacional Fundamentos de Computação Gráfica An Invitation to 3D Vision: From Images to Geometric Models. Yi Ma, Stefano Soatto, Jana Kosecka e S. Shankar Sastry. Springer, ISBN 0-387-00893-4

Multiple View Geometry in Computer Vision. Richard Hartley e Andrew Zisserman. Cambridge University Press, ISBN 0-521-62304-9

Programming Computer Vision with Python: Tools and algorithms for analyzing images Jan Erik Solem, O’Reilly Media, ISBN 978-1449316549
6 Processamento de Imagens Cálculo II

Álgebra Linear I

Análise de Algoritmos

Fundamentos de Computação Gráfica
J. Gomes & L. Velho, Image Processing for Computer Graphics, Springer-Verlag, 1997.

Computer Vision: Algorithms and Applications, Rchard Szeliski

Deep Learning, Ian Goodfellow and Yoshua Bengio and Aaron Courville, MIT Press
7 Computação Quantica Teoria da Computação NIELSEN, Michael A. Computação quântica e informação quântica. Bookman, c2003. xix, 733 p. ISBN 853630554.

STEKLAIN, ADRIANA DO ROCIO LOPES LISBOA. Introdução à mecânica quântica. Editora InterSaberes, 2020, 300 p.

VALADARES, Eduardo de Campos; ALVES, Esdras Garcia; CHAVES, Alaor. Aplicações da física quântica: do transistor à nanotecnologia. São Paulo, SP: Editora Livraria Física da Física, 2005. 90 p. (Coleção Temas atuais de física). ISBN 8588325322.
5 Algoritmos Aproximativos Definições. Algoritmos Aproximativos Determinísticos. Algoritmos Aproximativos Evolutivos. Algoritmos Aleatórios. Complexidade de Problemas e Algoritmos Aproximativos. Análise de Algoritmos VAZIRANI, V. Approximation Algorithms. Springer, 2002. ISBN 978-3540653677.

HOCHBAUM, D. Approximation Algorithms for NP-hard Problems. PWS Publishing Company, 1997. ISBN 978-0534949686.

WILLIAMSON, D.; SHMOYS, D. The Design of Approximation Algorithms, Cambridge, 2011. ISBN 978- 0521195270.
5 Algoritmos Probabilísticos Notação básica, Exemplos básicos, Análise probabilística de algoritmos, Ferramentas de probabilidade, Desigualdades básicas, Desigualdades de grandes desvios, Martingais, Método probabilístico, Cadeias de Markov, Método de Monte-Carlo, Construção de algoritmos probabilísticos, Aplicações para problemas NP-Difíceis, Análise de estruturas de dados em processos aleatórios, Geradores pseudoaleatórios, Classificação de problemas. Análise de Algoritmos Mitzenmacher, M.; Upfal, E. Probability and computing: randomized algorithms and probabilistic analysis. Cambridge: Cambridge University Press, 2005. 370p. ISBN-13: 978-0521835404.

Motwani, R.; Raghavan, P. Randomized Algorithms. Cambridge: Cambridge University Press, 1995. 492p. ISBN-13: 978-0521474658.

Ross, S. Probability models for computer science. London: Academic Press, 2002. 288p. ISBN-13: 978-0125980517.
7 Deep Learning Inteligência Artificial GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep Learning. Cambridge, Massachusetts: The Mit Press, 2016.

Abu-Mostafa, Y. (2012) Learning From Data. AML Book

Haykin, S. O. (2008) Neural Networks and Learning Machines. Prentice Hall. Third Edition

Braga, A. P., Carvalho, A. C. P. L. F. & Ludemir, T. B. (2007). Redes Neurais Artificiais – Teoria e Aplicações. LTC. Segunda Edição.

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 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.

Especialização Duração Dedicação Áreas de Atuação
Computação Gráfica 15+ semanas Média de 4 h/semana softwares gráficos, aplicações 3D, games, fotorrealismo, sistemas gráficos, simuladores, e mais
Embarcados 31 semanas Média de 4 h/semana internet das coisas, controles industriais, coisas inteligentes, wearables, cidades inteligentes, automobilismo, e mais
Desenvolvimento Web 37 semanas Média de 4 h/semana aplicações em servidor, layout de páginas web, sistemas on-line, APIs, computação em nuvem, streaming, e mais
Ciência de Dados 25+ semanas Média de 4 h/semana análise de dados, visualização de dados, machine learning, deep learning, sistemas especialistas, estatística, e mais
CyberSecurity 20+ semanas Média de 4 h/semana segurança, pentest, criptografia, autenticação, análise, estatística, e mais
DevOps 30+ semanas Média de 2 h/semana devops, infraestrutura, container, docker, kubernetes, CI/CD, e mais

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!