Skip to content

Latest commit

 

History

History
308 lines (239 loc) · 71 KB

File metadata and controls

308 lines (239 loc) · 71 KB

Free Brazilian University

A path to self-taught education in Computer Science!

Awesome Open Source Society University - Computer Science

Twitter LinkedIn LinkedIn

Contents

Summary

The Computer Science course offered by the Free Brazilian University is a complete education in Computer Science using online materials in Brazilian Portuguese. This Course is not intended for training in specific technologies or focused on professional skills for the market, but for those who want a quality self-education, founded on the fundamental concepts of computing and is planned for students with discipline, commitment, and (most importantly) good study habits, mostly independent, but who seek the support of a community of other students across Brazil.

This course contains content that would be seen in a Computer Science course organized in a structured way. The courses themselves are selected primarily from the open content of various Universities and Educational Institutes in Brazil. However, the courses included in the program follow the following criteria:

Bases for Curriculum Creation (Guidelines):

We consider - although we have not fully implemented it as suggested - the following documents on the formation of a curriculum in Computer Science. We will continuously work and accept suggestions for improvements to increasingly offer a better experience for all students who follow our open content guide. In addition to the references below, we also use as reference the curricular grids of other higher education institutions in Brazil.

Courses must:

  • Be free or have content that can be watched openly
  • Have a pedagogical method
  • Have quality recognition from the Community on the topic
  • Comply with what is expected from the Computer Science Curriculum

All disciplines have a list of recommended readings. It is your responsibility to choose the most appropriate methodology. Note that books, for the most part, are not free.

Recommended quality courses that do not fit in the grid will be added in extra courses. The same will happen with books in extra books.

All courses can be completed for free. However, some courses have diplomas, certificates, activities, or optional extras that are paid. Note that Coursera offers financial aid.

Students can take the disciplines individually or in groups, following the order we have established or not, always respecting the curricular prerequisites.

Only publish on your GitHub and public spaces the materials that your Course allows to be published. Never disrespect any rules of the course you are enrolled in and never plagiarize!

How to contribute

Getting help (Details about the FAQ and server)

Community

  • We have a server on Discord! Discord There, you can find and interact with other students. Why not introduce yourself there right now? Join Discord.
  • You can also interact on issues regarding the problems of the Course, propose curriculum changes, and other related matters through our issues. Feel free to open discussions there.
  • Add the Free Brazilian University to your profile on LinkedIn!

Before You Start

There are topics that, although not essential in the formation of Computer Science, can be very useful in your learning journey. If you wish, you can opt to ignore them momentarily and review them later.

Study Techniques, Organization, and Learning

Before you start studying, it is important that you learn some important things. Being self-taught is not about learning alone, nor about not being linked to a Higher Education Institution (IES), but about being responsible for your own education and this is something that requires knowing how to study, how much to study, and how to organize your studies. For this, we recommend the following contents below.

Course Contents
Learning How to Learn ¹ Memory; Study techniques; Study resources.
How to Study the Right Way Time; Technique; Discussion.

¹ Available with Portuguese subtitles.

Git and GitHub

Knowing tools like Git will help you organize your study projects. GitHub - or other platforms like BitBucket or GitLab - can be very useful for working remotely and sharing your projects with colleagues, as well as using it as a portfolio in future job opportunities.

Course Contents
Git and Github for Beginners Git; GitHub; Version control.
Git and GitHub Git; GitHub; Version control.

Curriculum

You can take the courses in the order, where, and how you prefer. This is the greatest benefit of freedom. However, for didactic and organizational purposes, we recommend that you try to respect the

prerequisites. You will notice that not complying with these may create obstacles in your journey.

We have divided the curriculum into mandatory and elective subjects. The list of electives is constantly growing, and they can be taken in the free spaces of the semester.

Mandatory

The curriculum below is divided into semesters for better visualization

1st Semester

Semester Course Contents Prerequisites Recommended Reading
1 Digital Circuits - Ronald J. Tocci, Neal S. Widner, Gregory L. Moss.
Digital Systems: Principles and Applications. 11th edition. 2011. ISBN:
9788576059226.

Tanenbaum, Andrews S. Structured Computer Organization. Pearson. 5th edition. 2007. ISBN: 9788576050674.

Floyd, Thomas L. Digital Systems: Fundamentals and Applications. 9th edition. Bookman. 2007. ISBN: 9788577801077.
1 Discrete Mathematics - GRAHAM, R.L.; KNUTH, D.E.; PATASHNIK, O.. Concrete Mathematics. Fundamentals For Computer Science. LTC, 1995. ISBN-13: 978-8521610403.

GERSTING, Judith L. Mathematical Foundations for Computer Science: a modern treatment of discrete mathematics. 5th ed. Rio de Janeiro: Livros Técnicos e Científicos, c2004. xiv, 597 p. ISBN 8521614225 (softcover).

SCHEINERMAN, E.R. Discrete Mathematics - An Introduction. Cengage, 2010. ISBN-13: 9788522107964.
1 Programming Languages - 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 (third edition). ISBN-13:
978-0123745149.
1 Introduction to Computer Science with Python I - ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Fundamentals of Computer Programming: algorithms, Pascal, C/C++ and Java. 3rd ed. São Paulo: Pearson Education do Brasil, c2012. x, 569 p. ISBN 9788564574168.

CELES, Waldemar; CERQUEIRA, Renato; RANGEL, José Lucas. Introduction to Data Structures: with programming techniques in C. Rio de Janeiro, RJ: Elsevier: Campus, 2004. xiv, 294 p. ISBN 8535212280.

MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algorithms: logic for computer programming development. 27th ed. revised. São Paulo, SP: Érica, 2014. 328 p. ISBN 9788536502212.
1 Analytical Geometry - WINTERLE, P., STEINBRUCH, A., Analytical Geometry, A vector treatment, Rio de Janeiro: MacGraw- Hill, 1987.

CAROLI, A., CALLIOLI, C.A, FEITOSA, M.O., Matrices, vectors and analytical geometry, 9th ed, São Paulo: Nobel, 1978.

BOULOS, P., CAMARGO, I., Analytical Geometry - a vector treatment, Rio de Janeiro: McGraw-Hill, 1987.

2nd Semester

Semester Course Contents Prerequisites Recommended Reading
2 Calculus I Analytical Geometry STEWART, James. Calculus. 7th ed. São Paulo, SP: Cengage Learning, 2014. v. 1 ISBN 9780538498876 (softcover).

SIMMONS, George Finley. Calculus with Analytical Geometry. São Paulo, SP: Pearson Makron Books, 1988. 2 v. ISBN 8534614689 (softcover : v.

THOMAS, George Brinton; WEIR, Maurice D.; GIORDANO, Frank R.; HASS, Joel. Calculus. 11th ed. São Paulo, SP: Pearson/Addison Wesley, 2009. 2 v.ISBN 9788588639317 (v. 1).
2 Linear Algebra I Analytical Geometry BOLDRINI, José Luiz et al. Linear Algebra. 3rd ed. expanded and revised. São Paulo, SP: HARBRA, c1986. 411 p. ISBN 8529402022 (softcover).

LIPSCHUTZ, Seymour; LIPSON, Marc. Linear Algebra. 4th ed. Porto Alegre, RS: Bookman, 2011. 432 p. (Schaum's Collection). ISBN 9788577808335 (softcover).

LANG, Serge. Linear Algebra. Rio de Janeiro, RJ: Modern Science, c2003. 405 p. (Mathematics Classics Collection) ISBN 8573932538 (softcover).
2 Data Structures Discrete Mathematics

Introduction to Computer Science with Python I
CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Algorithms - Theory and Practice. 3rd edition, Campus Publishing, 2012. ISBN-13: 978-8535236996.

MARKENZON, L.; SZWARCFITER, J. Data Structures and Their Algorithms, LTC, 3rd Edition, 2010. ISBN-13: 978-8521610144.

SEDGEWICK, R.; WAYNE, K. Algorithms. Addison-Wesley Professional; 4th edition, 2011. ISBN-13: 978-0321573513.
2 Introduction to Computer Science with Python II Introduction to Computer Science with Python I CORMEN, T.H. et al.: Algorithms: Theory and Practice. Elsevier and Campus (translation). ISBN 853520926-3.

CORMEN, T.H.; LEISERSON, C.E.; RIVEST, R.L.; STEIN, C. Algorithms: Theory and Practice. Campus Publishing.2002.

KELLEY, A.; POHL, I. A Book on C. 2nd edition, The Benjanmin/Cummings Pub. Co., Inc. 1990.

SCHILDT, H. "C.Complete and Total". MakronBooks, 1997.

TENENBAUM, A.M., and others Data Structures Using C. Prentice-Hall, 1990.

ZIVIANI, N. Project of algorithms. 2nd edition, Thomson, 2004
2 Object-Oriented Programming Laboratory I Introduction to Computer Science with Python I DEITEL, H. M.; DEITEL, P.J.: Java - How to Program, Prentice-Hall, 8th Edition, 2010, ISBN 9788576055631.

DEITEL, H. M.; DEITEL, P.J.: C++ - How to Program, Prentice-Hall, 5th Edition, 2006, ISBN 9788576050568.

3rd Semester

Semester Course Contents Prerequisites Recommended Reading
3 Graph Algorithms Data Structures CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Algorithms - Theory and
Practice. 3rd edition, Campus Publishing, 2012. ISBN-13: 978-8535236996.

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

GOLDBARG, E.; GOLDBARG, M. Graphs – Concepts, algorithms and applications. Elsevier Acadêmico, 2012. ISBN-13: 978-8535257168.
3 Computer Architecture I Digital Circuits W. Stallings, Computer Architecture and Organization. 8th edition, Pearson, 2010. ISBN:978-85- 7605-564-8

D. Patterson, J. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 2013. ISBN-13: 978-85-352-1521-2

A. S. Tanenbaum. Structured Computer Organization, 5th ed, Pearson. ISBN: 9788576050674.
3 Probability and Statistics Calculus I MONTGOMERY, Douglas C.; RUNGER, George C. Applied Statistics and Probability for Engineers.5th ed. Rio de Janeiro: LTC, c2012. xiv, 523 p. ISBN 9788521619024 (softcover). MORETTIN, Pedro Alberto; BUSSAB, Wilton de Oliveira. Basic Statistics. 8th ed. São Paulo: Saraiva, c2013. xx, 548 p. ISBN 9788502207998.

TRIOLA, Mario F. Introduction to Statistics. 10th ed. Rio de Janeiro, RJ: LTC, 2008. 696 p. + 1 CD-ROM ISBN 978 85 216 1586 6 (softcover)
3 Calculus II Calculus I STEWART, James. Calculus. 7th ed. São Paulo, SP: Cengage Learning, 2014. v. 1 ISBN 9780538498876 (softcover).<br
STEWART, James. Calculus 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. Calculus: George Brinton Thomas Jr...[et al]; translated by Cláudio Hirofume Asano; technical revision by Leila Maria Vasconcellos Figueiredo. 10th ed. São Paulo, SP: Prentice Hall, 2003. v.02 ISBN8588639114 (softcover).
3 Functional Programming in 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

4th Semester

Semester Course Contents Prerequisites Recommended Reading
4 Algorithm Analysis Graph Algorithms DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U. Algorithms. McGraw Hill, 2009. ISBN-13: 978- 8577260324.

CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C. Algorithms – Theory and Practice. 3rd edition, Campus Publishing, 2012. ISBN-13: 978-8535236996.

EDMONDS, J. How to Think about Algorithms, LTC Publishing, 2010. ISBN-13: 978-8521617310
4 Numerical Methods I Introduction to Computer Science with Python I

Calculus I
Ruggiero, M.A.G. and Lopes, V.L.R., Numerical Calculus. Makron Books, 1996.

Campos, son, F.F. Numerical Algorithms. 2nd edition, Rio de Janeiro, LTC, 2012.

Quarteroni, A. and Saleri, F., Scientific Computing with MATLAB and Octave, Springer, 2006.
4 Database Systems - Silberschatz, A., Korth, H., Sudarshan, S. “Database Systems”. 6th Edition, Campus Publishing, 2012.

Elsmari, R., Navathe, Shamkant B. “Database Systems”. 6th Edition, Addison-Wesley, 2011.

Ramakrishnan, R. “Database Management Systems”, 3rd Edition, McGraw-Hill, 2008.
4 Computer Architecture II Introduction to Computer Science with Python II

Computer Architecture I
W. Stallings, Computer Architecture and Organization. 8th edition, Pearson, 2010. ISBN:978-85- 7605-564-8

D. Patterson, J. Hennessy, Computer Organization and Design: The Hardware/SoftwareInterface, 2013. ISBN-13: 978-85-352-1521-2

A. S. Tanenbaum. Structured Computer Organization, 5th ed, Pearson. ISBN: 9788576050674.
4

5th Semester

Semester Course Contents Prerequisites Recommended Reading
5 Computer Networks KUROSE, J. F.; ROSS, K. W. Computer Networks and the Internet: A Top-down Approach, 6th Edition, Ed. Pearson Education, 2012. ISBN-13:9788581436777

TANENBAUM, A. S. Computer Networks, 5th Edition, Ed. Pearson Education, 2011. ISBN-13: 9788576059240

STALLINGS, W. Data and Computer Communications, 10th Edition, Ed. PearsonEducation, 2013. ISBN-13: 9780133506488.
5 Introduction to Software Engineering Introduction to Computer Science with Python II SOMMERVILLE, I. Software Engineering. 9th ed. São Paulo: Pearson Education, 2011. 568p. ISBN: 9788579361081

PRESSMAN, Roger S. Software Engineering: a professional approach. 7th ed. Porto Alegre: McGraw Hill, 2011. 771 p. ISBN: 9788563308337.

PÁDUA FILHO, W. Software Engineering: Fundamentals, Methods, and Patterns. 3rd ed.Rio de Janeiro: LTC, 2009. 1248 p. ISBN 9788521616504.
5 Operating Systems Computer Architecture II Abraham Silberschatz. "Foundations of Operating Systems". 8th. Edition, LTC, 2010.

Tanenbaum, Andrew S. "Modern Operating Systems". 3rd Edition, Pearson, 2010.<br
Machado, Francis Berenger; Maia, Luiz Paulo. "Architecture of Operating Systems". 5th Edition, LTC, 2013.
5 Mathematical Programming Linear Algebra I ARENALES, M; ARMENTANO, V; MORABITO, R.; YANASSE, H. Operations Research -CampusEd.,2007<br<br
Bazaraa, M. Jarvis, J.J., Sherali, H. D., Linear Programming and Network Flows, Wiley-Interscience, 3rd. Edition, 2005.

BERTSIMAS, D. E TSITSIKLIS, J.N. –IntroductiontoLinearOptimization,AthenaScientific, 1997<br
GOLDBARG, M.C. and LUNA, H.P.L – Combinatorial Optimization and Linear Programming – Models and Algorithms – CAMPUS Publishing, 2nd Edition - 2005.<br
HILLIER,F.S.;LIEBERMAN,G.J.- IntroductiontoOperations Research, Rio de Janeiro, RJ, Campus, 1988.
5 Foundations of Computer Graphics [AnalyticalGeometry(https://www.youtube.com/watchv=ijkDjQT7UPM&list=PL82Svt6JAgOH3M6TCELx8oegTVCriUg3L) PeterShirley,MichaelAshikhmin,“Fundamentalsofcomputergraphics,”Edition:2,PublishedbyAKPeters,Ltd.,2005,ISBN1568812698,9781568812694,623pages<br
EdwardAngel,“InteractiveComputerGraphics:ATopDownApproachUsingOpenGL,”Edition:5,PublishedbyAddisonWesley,2009,ISBN10:0321535863,ISBN13:9780321535863,864pages<br
Hughes,J.F.,VanDam,A.,Mcguire,M.,Sklar,D.F.,Foley,J.D.,Feiner,S.K.,Akeley,K.“ComputerGraphics:PrinciplesandPractice”,3rd.Edition,PearsonEducation,Inc,23,ISBN10: 0321399528, ISBN-13: 978-0321399526.

6th Semester

Semester Course Contents Prerequisites Recommended Reading
6 Formal Languages and Automata [DiscreteMathematics(https://www.youtube.com/watchv=KGoSTh1sgyM&list=PL6mfjjCaO1WrEJ0JKRyXO3QjaPkJaSvAS) SIPSER, M. Introduction to the Theory of Computation. 3rd ed. Cengage Learning, 2012. ISBN 9781133187790.

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

HOPCROFT, J. E.; MOTWANI, R.; ULLMAN, J. D. Introduction to Automata Theory,Languages and Computation. 3rd ed. Pearson Education, 2008. ISBN 9788131720479.
6 Artificial Intelligence [DataStructures(https://www.youtube.com/watchv=0hT3EKGhbpI&list=PLndfcZyvAqbofQl2kLLdeWWjCcPlOPnrW)

Probability and Statistics
Russel, S. & Norvig, P. (2010) Artificial Intelligence – A Modern Approach. Prentice Hall. Third Edition.

Mitchell, Tom. (1997). MachineLearning.McGrawHill<br
Koller. D. (2009). Probabilistic Graphical Models: Principles and Techniques. The MIT Press.
6 Distributed Systems [ComputerNetworks(https://www.youtube.com/playlistlist=PLvHXLbw-JSPfKp65psX5C9tyNLHHC4uoR) Andrew S. Tanenbaum, Maarten Van Steen. “Distributed Systems: Principles and Paradigms”, 2nd Edition, Pearson, 2006.<br
GeorgeCoulouris, Jean Dollimore, Tim Kindberg and Gordon Blair. “Distributed Systems: Concepts and Design”, 5th Edition, Addison Wesley, 2011.<br
RandyChow,TheodoreJohnson.DistributedOperatingSystemsandAlgorithms, Addison- Wesley, 1997.
6 Graph Theory [Discrete Mathematics(https://www.youtube.com/watchv=KGoSTh1sgyM&list=PL6mfjjCaO1WrEJ0JKRyXO3QjaPkJaSvAS) 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. Graphs: theory, models, algorithms.São Paulo, SP: Edgard Blücher, 2003.
6 Calculus III [CalculusII(https://www.youtube.com/watchv=lQdzRBRL9Tw&list=PLAudUnJeNg4sd0TEJ9EG6hr-3d3jqrddN) CARVALHO, A.N.; NUNES, W.V.L.; ZANI, S.L. Calculus Notes – ICMC-USP.

GUIDORIZZI, H.L. A Calculus Course, 5th Ed., V. 2and 3, Rio de Janeiro: Livros Técnicos e Científicos Editora, (2002).

STEWART, J. Calculus, V. 1 and 2, 4th ed., Pioneer, São Paulo, (2001).

THOMAS, G.B. Calculus, V. 2, 10th ed., Addison-Wesley,São Paulo, (2002).

7th Semester

Semester Course Contents Prerequisites Recommended Reading
7 Theory of Computation Formal Languages and Automata 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. 3rd ed. Cengage Learning, 2012. ISBN
9781133187790.

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

Electives

The subjects below are not divided by semester, as they are few in number.

Semester Course Contents Prerequisites Recommended Reading
6 Computer Vision Foundations of Computer Graphics 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 Image Processing [CalculusII(https://www.youtube.com/watchv=lQdzRBRL9Tw&list=PLAudUnJeNg4sd0TEJ9EG6hr-3d3jqrddN)

Linear Algebra I

Algorithm Analysis

Foundations of Computer Graphics
J.Gomes&L.Velho,ImageProcessingforComputerGraphics,SpringerVerlag,1997<br
ComputerVision:AlgorithmsandApplications,RchardSzeliski<br
DeepLearning,IanGoodfellowandYoshuaBengio and Aaron Courville, MIT Press
7 Quantum Computing Theory of Computation NIELSEN, Michael A. Quantum Computing and Quantum Information. Bookman, c2003. xix, 733 p. ISBN 853630554.

STEKLAIN, ADRIANA DO ROCIO LOPES LISBOA. Introduction to Quantum Mechanics.EditoraInterSaberes, 2020, 300 p.

VALADARES, Eduardo de Campos; ALVES, Esdras Garcia; CHAVES, Alaor. Applications of Quantum Physics: from transistors to nanotechnology. São Paulo, SP: Editora Livraria Físicada Física, 2005. 90 p. (Current Topics in Physics Series). ISBN 8588325322.
5 Approximate Algorithms Definitions. Deterministic Approximate Algorithms. Evolutionary ApproximateAlgorithms. Random Algorithms. Complexity of Problems and Approximate Algorithms. [AlgorithmAnalysis(https://www.youtube.com/watchv=_HBTCUNPxOg&list=PLncEdvQ20mgGanwuFczm-4IwIdIcIiha) VAZIRANI, V. Approximation Algorithms. Springer, 2002. ISBN 978-3540653677.

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

WILLIAMSON, D.; SHMOYS, D. The Design of Approximation Algorithms, Cambridge, 2011. ISBN 978- 0521195270.
5 Probabilistic Algorithms Basic notation, Basic examples, Probabilistic analysis of algorithms,Probability tools, Basic inequalities, Large deviations inequalities, Martingales, Probabilistic method, Markov chains, Monte-Carlo method, Construction of probabilistic algorithms, Applications to NPHardproblems, Analysis of data structures in random processes, Pseudorandom generators, Problem classification. Algorithm Analysis Mitzenmacher, M.; Upfal, E. Probability and Computing: Randomized Algorithms and Probabilistic Analysis. Cambridge: Cambridge University Press, 2005. 370p. ISBN-13: 978-0521835404.<br
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 Artificial Intelligence GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep Learning. Cambridge, Massachusetts: The Mit Press, 2016.

Abu-Mostafa, Y. (2012) LearningFrom 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). Neural NetworksArtificial – Theory and Applications. LTC. Second Edition.

Specializations

After completing the general training, you should have a broad vision of Computer Science, its foundations and applications, and be more than prepared to choose a specialty area within its applications to become a specialist. From here, we will no longer list prerequisites, as we understand that with the baggage of general training, the student is already able to fully understand how to study complex topics and decide how and when to take each course without needing a recommendation.

Specialization Duration Dedication Areas of Practice
Computer Graphics 15+ weeks Average of 4 h/week graphic software, 3D applications, games, photorealism, graphic systems, simulators, and more
Embedded Systems 31 weeks Average of 4 h/week internet of things, industrial controls, smart things, wearables, smart cities, automotive, and more
Web Development 37 weeks Average of 4 h/week server applications, web page layout, online systems, APIs, cloud computing, streaming, and more
Data Science 25+ weeks Average of 4 h/week data analysis, data visualization, machine learning, deep learning, expert systems, statistics, and more
CyberSecurity 20+ weeks Average of 4 h/week security, pentest, cryptography, authentication, analysis, statistics, and more
DevOps 30+ weeks Average of 2 h/week devops, infrastructure, container, docker, kubernetes, CI/CD, and more

How to demonstrate my progress?

The best way to demonstrate your evolution and maturity throughout the curriculum is through exercises. These exercises can be those found in the recommended readings or, in the case of more applied subjects, practical projects. Sharing about the projects you have been doing throughout the Course, whether through social networks, blogs, tutorials, streaming... will show people in the technical field and other fields how much you have learned and evolved throughout this journey.

Do not forget to host all your codes on your GitHub profile, even if they are small projects or just exercises they can show a lot about what you have been studying, how you solve problems, and how much you have improved over time.

Congratulations!

After completing all the requirements of the curriculum above and learning at least one specialization, you have seen all the content equivalent to a complete Bachelor's degree in Computer Science. Congratulations!

What to do after that? Well, actually the possibilities are limitless and interconnected:

  • Look for a job as a Developer in your specialty.
  • Learn more by reading classic Computer Science books in a Book Club to improve your skills and expand your knowledge (and make lots of friends)!
  • Participate in or organize technology meetups.
  • Find new technologies that are growing:
    • Explore the actor model with Elixir or Scala, which are modern languages with very interesting tools and libraries for Web Development and that use very powerful VMs!
    • Explore borrowing and lifetimes in Rust, a language that has memory safety and thread safety without a garbage collector!
    • Learn more about types and type inference

with OCaml, a multi-paradigm language with static type inference!

Team

Contributors

Thank you so much to all these people!


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

📹td>

Geofisicando

📹

WR Kits

📹

Bruno Miranda

📹

Gustavo Guanabara

📹

Victor Lima

📹

Lucas Nhimi

📹

oliveira-michel

📹

Willian Justen

📹

Kizzy Terra

📹

Andrew Rosário

📹

And to all the other educators, content producers, and people who contributed to this project, but don't have a profile or we haven't found them yet!