Repository: Universidade-Livre/ciencia-da-computacao Branch: main Commit: 0c9aec2b25d3 Files: 54 Total size: 216.0 KB Directory structure: gitextract_8jkg2j4b/ ├── .all-contributorsrc ├── .github/ │ └── FUNDING.yml ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── FAQ.md ├── HELP.md ├── LICENSE ├── README.md ├── extras/ │ ├── bibliography/ │ │ ├── 01_digital_circuits.md │ │ ├── 02_discrete_mathematics.md │ │ ├── 03_programming_languages.md │ │ ├── 04_intro_python.md │ │ ├── 05_analytic_geometry.md │ │ ├── 06_intro_calculus.md │ │ ├── 07_intro_linear_algebra.md │ │ ├── 08_data_structure.md │ │ ├── 09_python.md │ │ ├── 10_object_orientation.md │ │ ├── 11_graph_algorithms.md │ │ ├── 12_computer_architecture.md │ │ ├── 13_statistics_probability.md │ │ ├── 14_advanced_calculus.md │ │ ├── 15_haskell.md │ │ ├── 16_analysis_of_algorithms.md │ │ ├── 17_numeric_methods.md │ │ ├── 18_database.md │ │ ├── 19_computer_architecture_II.md │ │ ├── 20_logical_programming.md │ │ ├── 21_computer_network.md │ │ ├── 22_software_engineering.md │ │ ├── 23_operating_system.md │ │ ├── 24_math_optimization.md │ │ ├── 25_fundamentals_computer_graphics.md │ │ ├── 26_automata_theory.md │ │ ├── 27_artificial_intelligence.md │ │ ├── 28_distributed_computing.md │ │ ├── 29_graphs.md │ │ ├── 30_multivariable_calculus.md │ │ ├── 31_theory_of_computation.md │ │ ├── 32_deep_learning.md │ │ ├── 33_compilers.md │ │ ├── 34_quantum_computing.md │ │ └── 35_methodology.md │ ├── books.md │ ├── courses.md │ └── softskills.md └── specializations/ ├── computer_graphics.md ├── cybersecurity.md ├── data_science.md ├── database_administration.md ├── devops.md ├── embedded_systems.md ├── mobile_development.md └── web_development.md ================================================ FILE CONTENTS ================================================ ================================================ FILE: .all-contributorsrc ================================================ { "projectName": "ciencia da computacao", "projectOwner": "Camilotk", "repoType": "github", "repoHost": "https://github.com", "files": [ "README.md" ], "imageSize": 100, "commit": false, "commitConvention": "none", "contributors": [ { "login": "fabiokon", "name": "Fabio Kon", "avatar_url": "https://avatars.githubusercontent.com/u/1528912?v=4", "profile": "https://github.com/fabiokon", "contributions": [ "video" ] }, { "login": "professordouglasmaioli", "name": "professordouglasmaioli", "avatar_url": "https://avatars.githubusercontent.com/u/76759425?v=4", "profile": "https://github.com/professordouglasmaioli", "contributions": [ "video" ] }, { "login": "gablg1", "name": "Gabriel Guimaraes", "avatar_url": "https://avatars.githubusercontent.com/u/5253695?v=4", "profile": "https://github.com/gablg1", "contributions": [ "video" ] }, { "login": "pedrothiag", "name": "Pedro Thiago Valério de Souza", "avatar_url": "https://avatars.githubusercontent.com/u/5923790?v=4", "profile": "http://dca.ufrn.br/~souza", "contributions": [ "video" ] }, { "login": "rjazevedo", "name": "Rodolfo Azevedo", "avatar_url": "https://avatars.githubusercontent.com/u/691525?v=4", "profile": "http://www.ic.unicamp.br/~rodolfo", "contributions": [ "video" ] }, { "login": "guerraem", "name": "Eduardo Guerra", "avatar_url": "https://avatars.githubusercontent.com/u/907905?v=4", "profile": "https://github.com/guerraem", "contributions": [ "video" ] }, { "login": "bosontreinamentos", "name": "Fábio dos Reis", "avatar_url": "https://avatars.githubusercontent.com/u/22084794?v=4", "profile": "https://github.com/bosontreinamentos", "contributions": [ "video" ] }, { "login": "matheusfelipeog", "name": "Matheus Felipe", "avatar_url": "https://avatars.githubusercontent.com/u/50463866?v=4", "profile": "https://github.com/matheusfelipeog", "contributions": [ "review" ] }, { "login": "jjpaulo2", "name": "João Paulo Carvalho", "avatar_url": "https://avatars.githubusercontent.com/u/22819523?v=4", "profile": "https://jjpaulo2.github.io/", "contributions": [ "ideas" ] }, { "login": "sswellington", "name": "Wellington Silva", "avatar_url": "https://avatars.githubusercontent.com/u/45939490?v=4", "profile": "https://sswellington.github.io/", "contributions": [ "ideas" ] }, { "login": "hallpaz", "name": "Hallison Paz", "avatar_url": "https://avatars.githubusercontent.com/u/5713977?v=4", "profile": "https://youtube.com/programacaodinamica", "contributions": [ "video", "ideas" ] }, { "login": "merces", "name": "Fernando Mercês", "avatar_url": "https://avatars.githubusercontent.com/u/1429647?v=4", "profile": "http://menteb.in/", "contributions": [ "video", "maintenance" ] }, { "login": "fmasanori", "name": "Fernando Masanori", "avatar_url": "https://avatars.githubusercontent.com/u/977887?v=4", "profile": "https://linktr.ee/fmasanori", "contributions": [ "video" ] }, { "login": "francesquini", "name": "Emilio Francesquini", "avatar_url": "https://avatars.githubusercontent.com/u/730414?v=4", "profile": "http://professor.ufabc.edu.br/~e.francesquini", "contributions": [ "video" ] }, { "login": "folivetti", "name": "Fabricio Olivetti de Franca", "avatar_url": "https://avatars.githubusercontent.com/u/3751284?v=4", "profile": "https://github.com/folivetti", "contributions": [ "video" ] }, { "login": "professorisidro", "name": "Professor Isidro", "avatar_url": "https://avatars.githubusercontent.com/u/6184696?v=4", "profile": "http://www.professorisidro.com.br/", "contributions": [ "video" ] }, { "login": "levysiqueira", "name": "Fabio Levy Siqueira", "avatar_url": "https://avatars.githubusercontent.com/u/1347668?v=4", "profile": "https://levysiqueira.com.br/", "contributions": [ "video" ] }, { "login": "lvelho", "name": "Luiz Velho", "avatar_url": "https://avatars.githubusercontent.com/u/3164819?v=4", "profile": "http://lvelho.impa.br/", "contributions": [ "video" ] }, { "login": "Geofisicando", "name": "Geofisicando", "avatar_url": "https://avatars.githubusercontent.com/u/39841723?v=4", "profile": "https://dirack.github.io/", "contributions": [ "video" ] }, { "login": "wagner-rambo", "name": "WR Kits", "avatar_url": "https://avatars.githubusercontent.com/u/18622371?v=4", "profile": "http://wrkits.com.br/", "contributions": [ "video" ] }, { "login": "bdouram", "name": "Bruno Miranda", "avatar_url": "https://avatars.githubusercontent.com/u/31232196?v=4", "profile": "https://bdouram.github.io/", "contributions": [ "video" ] }, { "login": "professorguanabara", "name": "Gustavo Guanabara", "avatar_url": "https://avatars.githubusercontent.com/u/66076428?v=4", "profile": "https://github.com/professorguanabara", "contributions": [ "video" ] }, { "login": "techtuxbr", "name": "Victor Lima", "avatar_url": "https://avatars.githubusercontent.com/u/25886341?v=4", "profile": "https://github.com/techtuxbr", "contributions": [ "video" ] }, { "login": "lucasnhimi", "name": "Lucas Nhimi", "avatar_url": "https://avatars.githubusercontent.com/u/54808138?v=4", "profile": "https://github.com/lucasnhimi", "contributions": [ "video" ] }, { "login": "oliveira-michel", "name": "oliveira-michel", "avatar_url": "https://avatars.githubusercontent.com/u/48107652?v=4", "profile": "https://github.com/oliveira-michel", "contributions": [ "video" ] }, { "login": "willianjusten", "name": "Willian Justen ", "avatar_url": "https://avatars.githubusercontent.com/u/3991845?v=4", "profile": "http://willianjusten.com.br/", "contributions": [ "video" ] }, { "login": "kterra", "name": "Kizzy Terra ", "avatar_url": "https://avatars.githubusercontent.com/u/6809851?v=4", "profile": "https://youtube.com/programacaodinamica", "contributions": [ "video" ] }, { "login": "andrewarosario", "name": "Andrew Rosário", "avatar_url": "https://avatars.githubusercontent.com/u/21269337?v=4", "profile": "https://andrewrosario.medium.com/", "contributions": [ "video" ] } ], "contributorsPerLine": 7 } ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: [@Universidade-Livre, @Camilotk] ================================================ FILE: CODE_OF_CONDUCT.md ================================================ # Código de Conduta A UBL é um ambiente onde todos os que aprendem e contribuem podem se sentir seguros e acolhidos. Este documento define as políticas e valores da nossa comunidade. # Regras * Aprenda e ajude os outros a aprenderem. * Seja gentil e educado com os seus colegas. * Critique ideias, não pessoas. * Discuta de forma pública. Evite mandar mensagens diretas para as pessoas, a menos que elas peçam. * Faça perguntas; não pergunte se pode perguntar. Não precisa escrever "Tem alguém que pode me ajudar com X?" Simplesmente pergunte sobre X. # Proibições * Nenhuma violência ou ameaça de violência de qualquer tipo. * Nenhuma linguagem ou ação sexista, racista, homofóbica, transfóbica, ou qualquer outra que seja preconceituosa ou discriminatória; isso inclui piadas. * Nenhum assédio sexual, incluindo avanços sexuais indesejados ou comentários ofensivos sobre o sexo de alguém. * Nenhum palavrão ou xingamento contra outras pessoas (mas pode usar palavrões e xingamentos sobre o código, IDE, linguagem, hardware ou física). * Nenhum material impróprio para menores. Isso inclui nudez, gore, ou qualquer outra imagem que possa ser perturbadora. * Nenhuma divulgação de informações privadas de outra pessoa sem a sua permissão (doxxing). * Nenhum assédio ou intimidação, online ou fora da internet. * Nenhum spam, trollagem, provocação, ou qualquer outra coisa que atrapalhe a paz. * Nenhum nome de usuário inadequado. Os moderadores irão mudar o seu nome se ele for considerado impróprio para menores ou ofensivo. * Nenhuma defesa ou ameaça de qualquer um dos comportamentos proibidos. # Denúncia e Moderação No servidor da UBL no Discord, os usuários podem usar @Moderação e @Admin para alertar a equipe de moderação sobre algum problema em um canal. No GitHub você pode nos marcar diretamente em qualquer issue ou PR sobre uma violação. Se você vir algum comportamento que viole o Código de Conduta, denuncie-o à equipe de moderação o mais rápido possível, seja de forma privada ou pública. A violação dos termos deste Código de Conduta terá consequências que dependerão de a) a gravidade da violação, e b) o histórico de violações. As possíveis consequências são: silenciamento temporário, expulsão da participação, banimento temporário ou permanente de toda a participação futura na comunidade. Se você se sentir injustiçado, você pode contatar um moderador ou organizador da comunidade e explicar o seu problema. O seu problema será resolvido por consenso dos moderadores. # Atribuição Partes deste Código de Conduta foram inspiradas pelos seguintes: * [Contributor Covenant](https://www.contributor-covenant.org/version/2/0/code_of_conduct/) * [Rust Lang Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/) * O Código de Conduta do OSSU, derivado do [Código de Conduta do Fórum FrontEnd BR](https://www.contributor-covenant.org/version/2/0/code_of_conduct/) ================================================ FILE: CONTRIBUTING.md ================================================ # Como contribuir ## Ajudar outros estudantes O aprendizado sempre é catalisado por ter pessoas engajadas no mesmo objetivo. Você pode ser a pessoa que pode fazer a diferença para alguém que está começando a estudar agora. Quando alguém novo chegar no Discord, pergunte quem ela é... interaja e dê incentivo para outros estudantes. Quando outra pessoa estiver começando a estudar ou fazendo um curso, porque não estudar junto? Colaborando e ajudando outros estudantes você está ajudando a criar uma experiência de aprendizado melhor para todos, incluindo você. ## Feedback Se você está seguindo o Curso é de grande valor para nós saber como está sendo a sua experiência, estamos abertos a saber os pontos positivos, negativos e como podemos melhorar para cada vez mais conseguir entregar um trabalho de excelência para todos os estudantes. Para fazer isso, a melhor forma é através do nosso servidor no Discord. ## Revisão de texto Todos os textos inclusive esse podem conter erros, frases que podem ser escritas de forma mais compreensível ou mal formadas, com erros de apresentação... quando encontrar um erro como esses você pode corrigi-lo e então abrir uma Pull Request ou então abrir uma issue para que outra pessoa possa corrigir. ## Divulgação Ajudar esse projeto a chegar em mais pessoas é parte essencial para que possamos ajudar a oferecer a oportunidade de acesso ao maior número de pessoas possível. Toda a forma de divulgação é importante e valorizamos muito que apresente o projeto para outras pessoas seja através de grupos, redes sociais, palestras, eventos... enfim, como tiver oportunidade. ## Conteúdo Caso você conheça conteúdos relevantes e gratuitos em Português que ainda não consta na nossa grade, abra uma issue falando mais a respeito. Caso seja criador de conteúdo sobre temas relacionados à Ciência da Computação e deseja produzir algum conteúdo que pode ser relevante para a grade, abra uma issue nos informando como podemos ajudar. ## Revisão de PR Opinar e revisar em PRs é importante para que possamos ter mais opiniões sobre as mudanças que estão sendo submetidas. Caso deseje fazer a revisão de uma Pull Request em aberto, basta participar da discussão na mesma. ## Mudanças Pedagógicas Qualquer pessoa que tenha interesse em educação e deseja propor melhorias e mudanças pedagógicas no currículo é bem-vinda a abrir uma issue a respeito. ================================================ FILE: FAQ.md ================================================ # Perguntas Frequentes Esta página tem como objetivo responder perguntas que frequentemente recebemos. Caso a sua dúvida não foi respondida aqui você pode tentar nos enviá-la pelo [Discord](https://discord.gg/wymGhmf7BT). Caso consideramos importante para muitas pessoas a sua pergunta ou então ela já tenha sido perguntada outras vezes podemos adicionála aqui. ## Sumário 1. [Haverão mais cursos além de Ciência da Computação?](#haver%C3%A3o-mais-cursos-al%C3%A9m-de-ci%C3%AAncia-da-computa%C3%A7%C3%A3o) 2. [A UBL oferece algum diploma?](#a-ubl-oferece-algum-diploma) 3. [O Camilo comanda a UBL?](#o-camilo-comanda-a-ubl) ## Questões ### Haverão mais cursos além de Ciência da Computação? Sim, a ideia é que existam mais cursos além de Ciência da Computação. Futuramente, estamos pensando em experimentar expandir também para outras áreas além de TI. Mas estamos estudando as possibilidades com calma. ### A UBL oferece algum diploma? Não. UBL é um guia de recursos educacionais que tem como objetivo auxiliar para que você aprenda os assuntos que normalmente são estudados em um curso universitário. Algumas pessoas envolvidas com a UBL podem estar trabalhando em outras empresas que podem oferecer algum tipo de certificação, mas a Universidade Livre Brasileira não está envolvida com qualquer emissão de certificado ou certificação. ### O [Camilo](https://github.com/Camilotk) comanda a UBL? Não. A UBL tem 5 pessoas na Administração com igual poder de decisão; não é uma ditadura. ================================================ FILE: HELP.md ================================================ # Conseguindo Ajuda ### Procure nas Perguntas Frequentes (FAQ) Por favor, cheque se sua dúvida já não foi respondida nas [Perguntas Frequentes](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/FAQ.md). ### Pergunte no Discord [![Discord](https://img.shields.io/discord/866378348368625704.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/wymGhmf7BT) Discord é um serviço online de chat entre comunidades, muito similar a outras ferramentas como o IRC e o Slack. Lá você pode encontrar outros estudantes da UBL que podem te ajudar. #### Problemas Específicos Se você precisa de ajuda em algum conteúdo de um curso ou está tendo problemas técnicos com a plataforma, primeiro tente encontrar os recursos de dúvidas que o curso e/ou a plataforma oferece (por exemplo: os fóruns de discussão no Coursera e etc). Caso isso não resolva ou você precise de ajuda após isso, poste no nosso Discord. Em seu post sobre o problema, por favor informe todas as soluções que você tentou previamente para solucionar o problema e como podemos encontrá-lo. #### Problemas Gerais Se você tem problemas com o conteúdo ou o material de qualquer um dos cursos, talvez deseje buscar uma alternativa de curso para o mesmo conteúdo, ou prefere livros sobre o assunto ao invés de vídeos, o nosso Discord é o lugar certo para encontrar as pessoas que podem ter boas sugestões. Seu problema pode justamente ser a próxima melhoria na nossa grade! ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2021 Universidade Brasileira Livre Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.md ================================================

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](#sum%C3%A1rio) - [Comunidade](#comunidade) - [Técnicas de estudo, organização e aprendizagem](#t%C3%A9cnicas-de-estudo-organiza%C3%A7%C3%A3o-e-aprendizagem) - [Currículo](#curr%C3%ADculo) - [Código de Conduta](CODE_OF_CONDUCT.md) - [Time](#time) # 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. - [Referenciais de Formação para os Cursos de Graduação em Computação 2017 (SBC)](https://books-sol.sbc.org.br/index.php/sbc/catalog/view/134/586/904) - [Diretrizes Curriculares de Cursos da Área de Computação e Informática (UFRGS)](https://www.inf.ufrgs.br/site/wp-content/uploads/2016/05/diretrizes_curriculares.pdf) **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](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/extras/courses.md). O mesmo ocorrerá quanto aos livros em [livros extras](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/extras/books.md). **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](https://learner.coursera.help/hc/en-us/articles/209819033-Apply-for-Financial-Aid) 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](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/CONTRIBUTING.md)** **[Conseguindo ajuda](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/HELP.md)** (Detalhes sobre o FAQ e servidor) # Comunidade - Temos um servidor no Telegram! [![Telegram](https://telegram-badge.vercel.app/api/telegram-badge?channelId=%40universidadebrasileiralivre&style=social&label=Telegram&color=2AABEE)](https://t.me/universidadebrasileiralivre) Nele, você poderá encontrar e interagir com outros estudantes. Por que não se apresenta lá agora mesmo? [Vem para o Telegram](https://t.me/universidadebrasileiralivre). - 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](https://github.com/Universidade-Livre/ciencia-da-computacao/issues). Sinta-se à vontade para abrir discussões lá. - Adicione a Universidade Brasileira Livre no seu perfil do [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:6889534067805605889)! # 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](https://pt.coursera.org/learn/aprender) ¹ | Memória; Técnicas de estudo; Recursos de estudo. [Como estudar do jeito certo](https://www.youtube.com/playlist?list=PL5TJqBvpXQv7Q2lT7L7BrTrh6tgZY872s) | 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](https://www.youtube.com/playlist?list=PLlAbYrWSYTiPA2iEiQ2PF_A9j__C4hi0A) | Git; GitHub; Controle de versão. [Git e GitHub](https://www.cursoemvideo.com/curso/curso-de-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. ### 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 | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | |---|---|---|---| | 1 | [Circuitos Digitais](https://www.youtube.com/playlist?list=PLXyWBo_coJnMYO9Na3t-oYsc2X4kPJBWf) | - | [Livros sobre Circuitos Digitais](extras/bibliography/01_digital_circuits.md) | | 1 | [Matemática Discreta](https://www.youtube.com/watch?v=KGoSTh1sgyM&list=PL6mfjjCaO1WrEJ0JKRyXO3QjaPkJaSvAS) | - | [Livros sobre Matemática Discreta](extras/bibliography/02_discrete_mathematics.md) | | 1 | [Linguagens de Programação](https://www.youtube.com/watch?v=xfDdxqbkiSQ&list=PLnzT8EWpmbka4KukGR184tifzqcuq_ZDv) | - | [Livros sobre Linguagens de Programação](extras/bibliography/03_programming_languages.md) | | 1 | [Introdução à Ciência da Computação com Python I](https://youtube.com/playlist?list=PLcoJJSvnDgcKpOi_UeneTNTIVOigRQwcn&si=RT7FxhHXAYGUuYJD) | - | [Livros sobre Introdução a CC](extras/bibliography/04_intro_python.md) | | 1 | [Geometria Analítica](https://www.youtube.com/watch?v=ijkDjQT7UPM&list=PL82Svt6JAgOH3M6TCELx8oegTVCriUg3L) | - | [Livros sobre Geometria Analítica](extras/bibliography/05_analytic_geometry.md) | --- ### 2ª Etapa | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | | -------- | --------------- | --------------- | -------------------- | | 2 | [Cálculo I](https://www.youtube.com/watch?v=WgHUHPlJETs&list=PLAudUnJeNg4tr-aiNyYCXE46L3qEZ2Nzx) | [Geometria Analítica](https://www.youtube.com/watch?v=ijkDjQT7UPM&list=PL82Svt6JAgOH3M6TCELx8oegTVCriUg3L) | [Livros de Cálculo I](extras/bibliography/06_intro_calculus.md) | | 2 | [Álgebra Linear I](https://www.youtube.com/playlist?list=PLIEzh1OveCVczEZAjhVIVd7Qs-X8ILgnI) | [Geometria Analítica](https://www.youtube.com/watch?v=ijkDjQT7UPM&list=PL82Svt6JAgOH3M6TCELx8oegTVCriUg3L) | [Livros de Álgebra Linear](extras/bibliography/07_intro_linear_algebra.md) | | 2 | [Estruturas de Dados](https://www.youtube.com/watch?v=0hT3EKGhbpI&list=PLndfcZyvAqbofQl2kLLdeWWjCcPlOPnrW) | [Matemática Discreta](https://www.youtube.com/watch?v=KGoSTh1sgyM&list=PL6mfjjCaO1WrEJ0JKRyXO3QjaPkJaSvAS)

[Introdução à Ciência da Computação com Python I](https://youtube.com/playlist?list=PLcoJJSvnDgcKpOi_UeneTNTIVOigRQwcn&si=RT7FxhHXAYGUuYJD) | [Livros de Estruturas de Dados](extras/bibliography/08_data_structure.md) | | 2 | [Introdução à Ciência da Computação com Python II](https://youtube.com/playlist?list=PLcoJJSvnDgcKpOi_UeneTNTIVOigRQwcn&si=RT7FxhHXAYGUuYJD) | [Introdução à Ciência da Computação com Python I](https://youtube.com/playlist?list=PLcoJJSvnDgcKpOi_UeneTNTIVOigRQwcn&si=RT7FxhHXAYGUuYJD) | [Livros de Introdução a Programação](extras/bibliography/09_python.md) | | 2 | [Laboratório de Programação Orientada a Objetos I](https://www.youtube.com/playlist?list=PLTeQ2u81sjqfsFNWrUCIoqJZBSJrai8M7) | [Introdução à Ciência da Computação com Python I](https://youtube.com/playlist?list=PLcoJJSvnDgcKpOi_UeneTNTIVOigRQwcn&si=RT7FxhHXAYGUuYJD) | [Livros sobre Orientação a Objetos](extras/bibliography/10_object_orientation.md) | --- ### 3ª Etapa | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | | -------- | --------------- | --------------- | -------------------- | | 3 | [Algoritmos em Grafos](https://www.youtube.com/watch?v=fjOiu6CD5pc&list=PLrPn-zKAOzUzKdPqFNF52g-i9p1f-vmsk) | [Estruturas de Dados](https://www.youtube.com/watch?v=0hT3EKGhbpI&list=PLndfcZyvAqbofQl2kLLdeWWjCcPlOPnrW) | [Livros sobre Algoritmos em Grafos](extras/bibliography/11_graph_algorithms.md) | | 3 | [Arquitetura de Computadores I](https://www.youtube.com/playlist?list=PLEUHFTHcrJmswfeq7QEHskgkT6HER3gK6) | [Circuitos Digitais](https://www.youtube.com/playlist?list=PLXyWBo_coJnMYO9Na3t-oYsc2X4kPJBWf) | [Livros sobre Arquitetura de Computadores I](extras/bibliography/12_computer_architecture.md) | | 3 | [Probabilidade e Estatística](https://www.youtube.com/watch?v=snXf8YT7L3U&list=PLrOyM49ctTx8HWnxWRBtKrfcuf7ew_3nm) | [Cálculo I](https://www.youtube.com/watch?v=WgHUHPlJETs&list=PLAudUnJeNg4tr-aiNyYCXE46L3qEZ2Nzx) | [Livros sobre Probabilidade e Estatística](extras/bibliography/13_statistics_probability.md) | | 3 | [Cálculo II](https://www.youtube.com/watch?v=lQdzRBRL9Tw&list=PLAudUnJeNg4sd0TEJ9EG6hr-3d3jqrddN) | [Cálculo I](https://www.youtube.com/watch?v=WgHUHPlJETs&list=PLAudUnJeNg4tr-aiNyYCXE46L3qEZ2Nzx) | [Livros sobre Cálculo II](extras/bibliography/14_advanced_calculus.md) | | 3 | [Programação Funcional em Haskell](https://www.youtube.com/watch?v=eTisiy5FB7k&list=PLYItvall0TqJ25sVTLcMhxsE0Hci58mpQ&index=1) | \- | [Livros sobre Programação Funcional](extras/bibliography/15_haskell.md) | --- ### 4ª Etapa | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | |----------|----------------|----------------|---------------------| | 4 | [Análise de Algoritmos](https://www.youtube.com/watch?v=_HBTCUNPxOg&list=PLncEdvQ20-mgGanwuFczm-4IwIdIcIiha) | [Algoritmos em Grafos](https://www.youtube.com/watch?v=fjOiu6CD5pc&list=PLrPn-zKAOzUzKdPqFNF52g-i9p1f-vmsk) | [Livros sobre Análise de Algoritmos](extras/bibliography/16_analysis_of_algorithms.md) | | 4 | [Métodos Numéricos I](https://www.youtube.com/watch?v=a6nNQ6qKgiY&list=PLI9WiBCz67cPTTRER4CrsN0wpRN-NmjGA) | [Introdução à Ciência da Computação com Python I](https://www.coursera.org/learn/ciencia-computacao-python-conceitos)

[Cálculo I](https://www.youtube.com/watch?v=WgHUHPlJETs&list=PLAudUnJeNg4tr-aiNyYCXE46L3qEZ2Nzx) | [Livros sobre Métodos Numéricos](extras/bibliography/17_numeric_methods.md) | | 4 | [Banco de Dados](https://www.youtube.com/watch?v=pmAxIs5U1KI&list=PLxI8Can9yAHeHQr2McJ01e-ANyh3K0Lfq) | \- | [Livros sobre Bancos de Dados](extras/bibliography/18_database.md) | | 4 | [Arquitetura de Computadores II](https://www.youtube.com/playlist?list=PLEUHFTHcrJmsqKX-GDD-hBvkF8h2_BfKJ) | [Introdução à Ciência da Computação com Python II](https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2)

[Arquitetura de Computadores I](https://www.youtube.com/playlist?list=PLEUHFTHcrJmswfeq7QEHskgkT6HER3gK6) | [Livros sobre Arquitetura de Computadores](extras/bibliography/19_computer_architecture_II.md) | | 4 | [Programação Lógica](https://youtube.com/playlist?list=PLZ-Bk6jzsb-OScKa7vhpcQXoU2uxYGaFx&si=Y52_w6CQPYEE2fLN) | \- | [Livros sobre Programação Lógica](extras/bibliography/20_logical_programming.md) | --- ### 5ª Etapa | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | |-------|----------------|----------------|---------------------| | 5 | [Redes de Computadores](https://www.youtube.com/playlist?list=PLvHXLbw-JSPfKp65psX5C9tyNLHHC4uoR) | \- | [Livros sobre Rede de Computadores](extras/bibliography/21_computer_network.md) | | 5 | [Introdução à Engenharia de Software](https://www.youtube.com/watch?v=h_hEI1Kfm2U&list=PLhBaeEzs3d7lsn_Mq2n3R4_api16Wkp1Q) | [Introdução à Ciência da Computação com Python II](https://www.coursera.org/learn/ciencia-computacao-python-conceitos-2) | [Livros sobre Engenharia de Software](extras/bibliography/22_software_engineering.md) | | 5 | [Sistemas Operacionais](https://www.youtube.com/watch?v=EGn8fOf7zE0&list=PLSmh8AKk_aUn9HxFs5FnjQupdQnV56MXV) | [Arquitetura de Computadores II](https://www.youtube.com/playlist?list=PLEUHFTHcrJmsqKX-GDD-hBvkF8h2_BfKJ) | [Livros sobre Sistemas Operacionais](extras/bibliography/23_operating_system.md) | | 5 | [Programação Matemática](https://www.youtube.com/watch?v=8rrgnFCL9LM&list=PL2peXovwG2kuqXC6sECjFSiG-MT1yXMQ-) | [Álgebra Linear I](https://www.youtube.com/playlist?list=PLIEzh1OveCVczEZAjhVIVd7Qs-X8ILgnI) | [Livros sobre Programação Matemática/Pesquisa Operacional](extras/bibliography/24_math_optimization.md) | | 5 | [Fundamentos de Computação Gráfica](https://www.youtube.com/watch?v=AVSAesOiKYY&list=PLE51fUFkeIwLXwe4rvG4EMgw7zgjP-tDx) | [Geometria Analítica](https://www.youtube.com/watch?v=ijkDjQT7UPM&list=PL82Svt6JAgOH3M6TCELx8oegTVCriUg3L) | [Livros sobre Computação Gráfica](extras/bibliography/25_fundamentals_computer_graphics.md) | --- ### 6ª Etapa | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | |-------|----------------|----------------|---------------------| | 6 | [Linguagens Formais e Autômatos](https://www.youtube.com/watch?v=4zMwOozUt9U&list=PLncEdvQ20-mhD_qMeLHtLnA3XDT1Fr_k4&pp=iAQB) | [Matemática Discreta](https://www.youtube.com/watch?v=KGoSTh1sgyM&list=PL6mfjjCaO1WrEJ0JKRyXO3QjaPkJaSvAS) | [Livros sobre Linguagens Formais e Autômatos](extras/bibliography/26_automata_theory.md) | | 6 | [Inteligência Artificial](https://www.youtube.com/watch?v=-T3zDFxngf4&list=PLeejGOroKw_txh7j7S3etF5eudI2WvMx0) | [Estruturas de Dados](https://www.youtube.com/watch?v=0hT3EKGhbpI&list=PLndfcZyvAqbofQl2kLLdeWWjCcPlOPnrW)

[Probabilidade e Estatística](https://www.youtube.com/watch?v=snXf8YT7L3U&list=PLrOyM49ctTx8HWnxWRBtKrfcuf7ew_3nm) | [Livros sobre Inteligência Artificial](extras/bibliography/27_artificial_intelligence.md) | | 6 | [Sistemas Distribuídos](https://www.youtube.com/watch?v=TEEy5f46h_Q&list=PLP0bYj2MTFcuXa4-EbBKhvehr-rkxpeR8&index=1) | [Redes de Computadores](https://www.youtube.com/playlist?list=PLvHXLbw-JSPfKp65psX5C9tyNLHHC4uoR) | [Livros sobre Sistemas Distríbuidos](extras/bibliography/28_distributed_computing.md) | | 6 | [Teoria dos Grafos](https://www.youtube.com/watch?v=kfHqZLYHfHU&list=PLndfcZyvAqbr2MLCOLEvBNX6FgD8UNWfX) | [Matemática Discreta](https://www.youtube.com/watch?v=KGoSTh1sgyM&list=PL6mfjjCaO1WrEJ0JKRyXO3QjaPkJaSvAS) | [Livros sobre Teoria dos Grafos](extras/bibliography/29_graphs.md) | | 6 | [Cálculo III](https://www.youtube.com/watch?v=8mBTfk7s63s&list=PLAudUnJeNg4ugGUJo52dtgFZ_tCm1Ds5W) | [Cálculo II](https://www.youtube.com/watch?v=lQdzRBRL9Tw&list=PLAudUnJeNg4sd0TEJ9EG6hr-3d3jqrddN) | [Livros sobre Cálculo III](extras/bibliography/30_multivariable_calculus.md) | --- ### 7ª Etapa | Etapa | Aulas em Vídeo | Pré-requisitos | Leitura Recomendada | |-------|----------------|----------------|---------------------| | 7 | [Teoria da Computação](https://www.youtube.com/watch?v=dWRxL30aoes&list=PLYLYA7XrlskNgCeSpJf9PQHHb8Z4WpRm4) | [Linguagens Formais e Autômatos](https://www.youtube.com/watch?v=4zMwOozUt9U&list=PLncEdvQ20-mhD_qMeLHtLnA3XDT1Fr_k4&pp=iAQB) | [Livros sobre Teoria da Computação](extras/bibliography/31_theory_of_computation.md) | | 7 | [Deep Learning](https://www.youtube.com/watch?v=0VD_2t6EdS4&list=PL9At2PVRU0ZqVArhU9QMyI3jSe113_m2-) | [Inteligência Artificial](https://www.youtube.com/watch?v=-T3zDFxngf4&list=PLeejGOroKw_txh7j7S3etF5eudI2WvMx0) | [Livros sobre Deep Learning](extras/bibliography/32_deep_learning.md) | | 7 | [Compiladores](https://youtube.com/playlist?list=PLX6Nyaq0ebfhI396WlWN6WlBm-tp7vDtV&si=LoaU9lzLMuSVikgi) | [Estruturas de Dados](https://www.youtube.com/watch?v=0hT3EKGhbpI&list=PLndfcZyvAqbofQl2kLLdeWWjCcPlOPnrW)

[Teoria dos Grafos](https://www.youtube.com/watch?v=kfHqZLYHfHU&list=PLndfcZyvAqbr2MLCOLEvBNX6FgD8UNWfX) | [Livros sobre Compiladores](extras/bibliography/33_compilers.md) | | 7 | [Computação Quantica](https://youtube.com/playlist?list=PLUFcRbu9t-v4peHdmDy4rtG3EnbZNS86R&si=hLYHhS2BTKRgNwMJ) | [Cálculo III](https://www.youtube.com/watch?v=8mBTfk7s63s&list=PLAudUnJeNg4ugGUJo52dtgFZ_tCm1Ds5W)

[Arquitetura de Computadores II](https://www.youtube.com/playlist?list=PLEUHFTHcrJmsqKX-GDD-hBvkF8h2_BfKJ) | [Livros sobre Computação Quântica](extras/bibliography/34_quantum_computing.md) | | 7 | [Metodologia da Pesquisa](https://youtube.com/playlist?list=PLclUQno6PMpQO0-XrDwWsPzRzEvjwp1__&si=0dXojlZV5EisMB6s) | \- | [Livros sobre Metodologia de Pesquisa](extras/bibliography/35_methodology.md) | ## 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áfica](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/specializations/computer_graphics.md) | `softwares gráficos`, `aplicações 3D`, `games`, `fotorrealismo`, `sistemas gráficos`, `simuladores`, `e mais` [Embarcados](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/specializations/embedded_systems.md) | `internet das coisas`, `controles industriais`, `coisas inteligentes`, `wearables`, `cidades inteligentes`, `automobilismo`, `e mais` [Desenvolvimento Web](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/specializations/web_development.md) | `aplicações em servidor`, `layout de páginas web`, `sistemas on-line`, `APIs`, `computação em nuvem`, `streaming`, `e mais` [Ciência de Dados](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/specializations/data_science.md) | `análise de dados`, `visualização de dados`, `machine learning`, `deep learning`, `sistemas especialistas`, `estatística`, `e mais` [CyberSecurity](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/specializations/cybersecurity.md) | `segurança`, `pentest`, `criptografia`, `autenticação`, `análise`, `estatística`, `e mais` [DevOps](https://github.com/Universidade-Livre/ciencia-da-computacao/blob/main/specializations/devops.md) | `devops`, `infraestrutura`, `container`, `docker`, `kubernetes`, `CI/CD`, `e mais` [Design de Algoritmos](#) | `em 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. Plataforma | Conteúdos :-- | --: [freeCodeCamp](https://www.freecodecamp.org/learn) | Trilhas com projetos práticos de Web, JS, APIs e dados para montar portfólio. [Exercism](https://exercism.org/) | Exercícios em dezenas de linguagens com mentoria e CLI para feedback estruturado. [Kaggle](https://www.kaggle.com/learn) | Projetos práticos de Data Science e IA. Oferece cursos, competições e notebooks interativos com Python e SQL. [HackerRank](https://www.hackerrank.com/) | Preparação para entrevistas técnicas. Focado em desafios de algoritmos, estruturas de dados e diversas linguagens como Java e SQL. [LeetCode](https://leetcode.com/) | Treinamento intensivo para entrevistas de emprego em big techs. Oferece um vasto banco de problemas, planos de estudo e discussões em fóruns. [SadServers](https://sadservers.com/) | Solução de problemas em servidores Linux. Simula cenários reais de erros para praticar administração de sistemas, infraestrutura e análise de logs. [SQLZoo](https://sqlzoo.net/) | Exercí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](https://github.com/pilhacheia/clube-do-livro-dev) 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](https://elixirschool.com/pt) ou [Scala](https://www.coursera.org/specializations/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](https://rust-br.github.io/rust-book-pt-br/), uma linguagem que tem [segurança de memória](https://pt.wikipedia.org/wiki/Seguran%C3%A7a_de_mem%C3%B3ria) e de [fio de execução](https://pt.wikipedia.org/wiki/Thread_safety) sem um [coletor de lixo](https://pt.wikipedia.org/wiki/Coletor_de_lixo_(inform%C3%A1tica))! - Aprender mais sobre **tipos** e **inferência de tipos** com [OCaml](https://github.com/Camilotk/ocaml4noobs), uma linguagem multiparadigma com inferência estática de tipos!

## Time - [Camilo Cunha de Azevedo](https://github.com/Camilotk): Fundador da ULivre - [Mateus Roveda](https://github.com/mateusrovedaa): Líder de Comunidade - [Rotfuchs von Vulpes](https://github.com/Rotfuchs-von-Vulpes): Admin da Comunidade - [Emanuel Castelo](https://github.com/elvcastelo): Admin da Comunidade - [Igor Vinoski](https://github.com/igorvinoski): Admin da Comunidade - [Leonardo Fiedler](https://github.com/leonardoFiedler): Moderador da Comunidade - [Jefferson Quesado](https://github.com/jeffque): Moderador da Comunidade - [Aldair Meneses](https://github.com/aldair-meneses): Moderador da Comunidade - [Gabriel Carvalho](https://github.com/GabrielCASilva): Moderador da Comunidade - [Diego Lucas](https://github.com/DiegoBreeg): Moderador da Comunidade ## 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!* ================================================ FILE: extras/bibliography/01_digital_circuits.md ================================================ # Livros: Circuitos Digitais
## Sistemas Digitais: Princípios e Aplicações

Título Sistemas Digitais: Princípios e Aplicações
Autores Ronald J. Tocci, Neal S. Widner, Gregory L. Moss.
Ano de Publicação 2019
Edição 12.a edição.
ISBN 9788543025018
### Descrição

Este livro promove um estudo abrangente dos princípios e técnicas de sistemas digitais modernos. Além de ensinar os fundamentos do tema, cobre em detalhes tanto métodos modernos quanto tradicionais de aplicação de projetos digitais e técnicas de desenvolvimento, inclusive como gerenciar um projeto em nível de sistema. Nesta 12ª edição tecnologias obsoletas foram substituídas ou abreviadas para oferecer somente conteúdo apropriado aos sistemas modernos. O Capítulo 1 foi extensivamente revisado e atualizado e novos problemas e exemplos foram adicionados em todo o livro. Sistemas digitais é leitura fundamental para cursos de engenharia, assim como para disciplinas ministradas nos cursos de automação, ciência da computação e eletrônica, entre outros.


## Organização Estruturada de Computadores

Título Organização Estruturada de Computadores
Autores Tanenbaum, Andrews S.
Ano de Publicação 2013
Edição 6.a edição.
ISBN 9788581435398
### Descrição

Esta sexta edição traz o que há de mais moderno em termos de organização estruturada de computadores, apresentando as terminologias, tecnologias e tendências mais recentes em organização e arquitetura de computadores. Com novos exemplos e discussões sobre x86, microcontroladores AVR e arquitetura ARM, ''Organização estruturada de computadores'' é uma obra indispensável para estudantes de ciência da computação, engenharia da computação, análise e desenvolvimento de sistemas e sistemas de informação, bem como para profissionais da área.


## Sistemas Digitais: Fundamentos e Aplicações

Título Sistemas Digitais: Fundamentos e Aplicações
Autores Floyd, Thomas L.
Ano de Publicação 2007
Edição 9.a edição.
ISBN 9788577801077
### Descrição

Best-seller que, ao longo de 25 anos, vem proporcionando ao estudante o desenvolvimento de habilidades práticas. É uma obra completa e seu ponto forte são as inúmeras aplicações reais dos sistemas digitais nas indústrias. Conta também com material de apoio para os professores em português e em inglês. O livro inclui dois CD-ROMs.

================================================ FILE: extras/bibliography/02_discrete_mathematics.md ================================================ # Livros: Matemática Discreta
## Matemática Concreta: Fundamentos Para Ciência Da Computação

Título Matemática Concreta. Fundamentos Para Ciência Da Computação
Autores RGRAHAM, R.L.; KNUTH, D.E.; PATASHNIK, O.
Ano de Publicação 1995
Edição 2.a edição.
ISBN 9788521610403
### Descrição

Segunda edição revisada e atualizada. Introduz a matemática para suporte de programação e análise de algoritmos. Apresenta teoria para resolução de problemas complexos. O livro contém 500 exercícios divididos em seis categorias. Aborda, entre outros tópicos, funções dos números inteiros, teoria elementar dos números e probabilidade.


## Fundamentos Matemáticos para a Ciência da Computação: Matemática Discreta e suas aplicações

Título Fundamentos matemáticos para a ciência da computação: matemática discreta e suas aplicações
Autores GERSTING, Judith L.
Ano de Publicação 2016
Edição 7.a edição.
ISBN 9788521632597
### Descrição

Assim como a representação binária é o fundamento matemático do próprio computador, as ideias da matemática discreta são os fundamentos matemáticos da ciência da computação. Esta sétima edição continua a abordagem amigável das edições anteriores dirigida ao estudante, com explicações claras, muitos exemplos e auxílios para sua aprendizagem, como problemas práticos, lembretes, objetivos dos capítulos, revisões das seções e revisões dos capítulos. Foram adicionadas muitas características novas, e uma lista completa delas pode ser encontrada no prefácio deste livro. Uma inovação desta edição de Fundamentos Matemáticos para a Ciência da Computação – Matemática Discreta e Suas Aplicações é que, no final do livro, são dadas as respostas de todos os exercícios ímpares, em vez de apenas as respostas de alguns exercícios selecionados. Quando o exercício pede uma demonstração, é dada a demonstração completa. Em outros casos, é dada apenas uma resposta, não necessariamente a solução. O Guia de Estudos Online, disponível no site da LTC Editora – GEN | Grupo Editorial Nacional, mediante cadastro, contém amostras de problemas com soluções passo a passo que correspondem a muitas das técnicas nos finais das seções do livro. Cada técnica que tem uma página correspondente na internet está marcada com um ícone no texto.


## Matemática Discreta: Uma Introdução

Título Matemática Discreta: Uma Introdução
Autores SCHEINERMAN, E.R.
Ano de Publicação 2016
Edição 3.a edição.
ISBN 9788522125340
### Descrição

Dirigida a interessados em matemática discreta de maneira geral, esta obra apresenta uma visão geral de toda a matemática a partir da perspectiva da matemática discreta. O livro cobre desde a natureza da matemática (definições, teoremas, provas e contraexemplos), lógica, conjuntos e relações, até técnica avançadas de prova, probabilidades discretas, teoria dos números, teoria dos grafos e álgebra abstrata, incluindo aplicações em criptografia. Esta terceira edição conta com muitos problemas e exercícios que exploram as interligações entre os diversos temas tratados.

================================================ FILE: extras/bibliography/03_programming_languages.md ================================================ # Livros: Linguagens de Programação > #### ⚠️ Infelizmente, nessa seção a bibliografia está em inglês. Caso conheça materiais de qualidade sobre o assunto em Português, abra um PR.
## Concepts, Techniques, and Models of Computer Programming

Título Concepts, Techniques, and Models of Computer Programming
Autores Peter Van Roy & Seif Haridi
Ano de Publicação 2004
Edição 2.a edição.
ISBN 9780262220699
### Descrição

"This is a fascinating book. It's been almost 20 years since Abelson and Sussman revolutionized the teaching of computer science with their Structure and Interpretation of Computer Programs. In all that time, there have been several books (some of them quite good) following SICP's ideas pretty closely, and of course many books following the old pedagogy in which the details of a programming language are the focus, with few deep ideas. But this is the first book I've seen that focuses on big ideas and multiple paradigms, as SICP does, but chooses a very different core model (declarative programming) the first real intellectual competition to Abelson and Sussman. I wouldn't have made all the choices Van Roy and Haridi have made, but I learned a lot from reading this book, and I hope it gets a wide audience." --Brian Harvey, Lecturer, Computer Science Division, University of California, Berkeley


## Types and Programming Languages

Título Types and Programming Languages
Autores Benjamin Pierce
Ano de Publicação 2009
Edição 3.a edição.
ISBN 9780123745149
### Descrição

--Robin Milner, Computer Laboratory, University of Cambridge

" Types are the leaven of computer programming; they make it digestible. This excellent book uses types to navigate the rich variety of programming languages, bringing a new kind of unity to their usage, theory, and implementation. Its author writes with the authority of experience in all three of these aspects." --Robin Milner, Computer Laboratory, University of Cambridge

" Types are the leaven of computer programming; they make it digestible. This excellent book uses types to navigate the rich variety of programming languages, bringing a new kind of unity to their usage, theory, and implementation. Its author writes with the authority of experience in all three of these aspects. " --Robin Milner, Computer Laboratory, University of Cambridge

"Types are the leaven of computer programming; they make it digestible. This excellent book uses types to navigate the rich variety of programming languages, bringing a new kind of unity to their usage, theory, and implementation. Its author writes with the authority of experience in all three of these aspects."--Robin Milner, Computer Laboratory, University of Cambridge


## Programming Language Pragmatics

Título Programming Language Pragmatics
Autores Michael L. Scott
Ano de Publicação 2015
Edição 4.a edição.
ISBN 9788522125340
### Descrição

Programming Language Pragmatics, Fourth Edition, is the most comprehensive programming language textbook available today. It is distinguished and acclaimed for its integrated treatment of language design and implementation, with an emphasis on the fundamental tradeoffs that continue to drive software development.

The book provides readers with a solid foundation in the syntax, semantics, and pragmatics of the full range of programming languages, from traditional languages like C to the latest in functional, scripting, and object-oriented programming. This fourth edition has been heavily revised throughout, with expanded coverage of type systems and functional programming, a unified treatment of polymorphism, highlights of the newest language standards, and examples featuring the ARM and x86 64-bit architectures.

================================================ FILE: extras/bibliography/04_intro_python.md ================================================ # Livros: Introdução a Programação
## Pense em Python: Pense como um Cientista da Computação

Título Pense em Python: Pense como um Cientista da Computação
Autores DOWNEY, B.A.
Ano de Publicação 2016
Edição 2.a edição.
ISBN 9788575225080
### Descrição Disponível gratuitamente on-line em Português aqui

Se você quer aprender como programar, usar Python é uma ótima forma de começar. Este guia prático apresenta a linguagem passo a passo, começando com conceitos de programação básicos antes de chegar a funções, recursividade, estruturas de dados e design orientado a objeto. Esta edição e seu código de apoio foram atualizados para o Python 3. Com os exercícios em cada capítulo, você testará conceitos de programação conforme os aprende. ''Pense em Python'' é ideal para estudantes de ensino médio e universitários ou para autodidatas, estudantes educados em casa e profissionais que precisam aprender fundamentos de programação. Os principiantes que queiram apenas ter uma noção básica, podem começar a usar Python em um navegador. Comece com o básico, incluindo sintaxe e semântica da linguagem. Tenha uma definição clara de cada conceito de programação. Aprenda sobre valores, variáveis, instruções, funções e estruturas de dados em uma progressão lógica. Descubra como trabalhar com arquivos e bancos de dados. Entenda objetos, métodos e programação orientada a objeto. Use técnicas de depuração para corrigir erros de sintaxe, tempo de execução e semânticos. Explore funções, estruturas de dados e algoritmos com uma série de estudos de caso. O código de exemplo deste livro é mantido em um repositório GitHub público, no qual os usuários podem carregá-lo e modificá-lo facilmente.


## Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ e Java

Título Fundamentos da programação de computadores: algoritmos, Pascal, C/C++ e Java
Autores ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.
Ano de Publicação 2012
Edição 3.a edição.
ISBN 9788564574168
### Descrição

Referência na área, Fundamentos da programação de computadores: algoritmos, PASCAL, C/C++ (padrão ANSI) e JAVA traz em sua nova edição muitas novidades. Mantendo a estrutura lógica que o consagrou, o livro revisa as classes JAVA e trata de vetores e matrizes dinâmicas, bem como aborda o padrão ANSI para as resoluções em C/C++. Além disso, apresenta dois capítulos inéditos: Introdução à programação orientada a objetos e Desafios. Tudo isso somado aos diversos exemplos, problemas e analogias apresentados fazem desta obra ideal para alunos de ciência da computação, engenharia da computação, sistemas de informação, análise de sistemas e desenvolvimento de sistemas.


## Introdução a Estruturas de Dados: com técnicas de programação em C

Título Introdução a Estruturas de Dados: com técnicas de programação em C
Autores CELES, Waldemar; CERQUEIRA, Renato; RANGEL, José Lucas.
Ano de Publicação 2016
Edição 2.a edição.
ISBN 9788535283457
### Descrição

A primeira edição do livro introduz programação em C e apresenta as seguintes estruturas de dados: vetor, matriz, lista encadeada, pilha, fila, árvore binária, árvore binária de busca, árvore com número variável de filhos e tabela de dispersão (hash). A 2ª edição propõe-se a ideia de estender a obra, apresentando estruturas de dados mais avançadas, a saber: vetor dinâmico, vetor de bits, lista de prioridade (heap), árvore AVL, árvore B, união-busca e grafo. Apresentação das estruturas de dados de forma bem objetiva, pragmática, para a construção de soluções de problemas diversos; Introdução das estruturas de dados mais utilizadas para o desenvolvimento de programas.

================================================ FILE: extras/bibliography/05_analytic_geometry.md ================================================ # Livros: Geometria Analítica
## Geometria Analítica: Um Tratamento Vetorial

Título Geometria Analítica: Um Tratamento Vetorial
Autores BOULOS, P., CAMARGO, I.
Ano de Publicação 2004
Edição 3.a edição.
ISBN 9788587918918
### Descrição

Nova edição de Geometria Analítica - Um Tratamento Vetorial confirma sua posição como um clássico das ciências exatas. Ampliado e completamente revisto pelos autores, o livro traz centenas de novos exemplos e exercícios, além de ilustrações totalmente refeitas. Possui novo layout que proporciona uma leitura mais agradável e facilita a compreensão e a localização de tópicos e exercícios, mas a estrutura didática bem-sucedida das edições anteriores foi cuidadosamente mantida. Escrita em linguagem clara e objetiva, este livro traz respostas para os exercícios e estratégias de solução, o que o torna um guia essencial para o estudo da Geometria.


## Matrizes, vetores : Geometria analítica

Título Matrizes, vetores : Geometria analítica
Autores CAROLI, A., CALLIOLI, C.A, FEITOSA, M.O..
Ano de Publicação 1984
Edição 17.a edição.
ISBN 9788521304067
### Descrição

O presente trabalho destina-se principalmente aos alunos das Faculdades de Engenharia e Filosofia, e de outras Faculdades de cujo currículo constem cursos de Geometria Analítica e Cálculo Vetorial.

================================================ FILE: extras/bibliography/06_intro_calculus.md ================================================ # Livros: Cálculo I
## Cálculo: Volume I

Título Cálculo: Volume I
Autores STEWART, James.
Ano de Publicação 2021
Edição 9.a edição.
ISBN 9786555584011
### Descrição

Nesta 9ª edição, assim como em todas as anteriores, os autores mantêm a tradição de escrever um livro que auxilie os estudantes a descobrir o cálculo – tanto por sua utilidade prática, como por sua surpreendente beleza. O intuito é transmitir ao leitor uma ideia da utilidade do cálculo, assim como promover o desenvolvimento de sua habilidade técnica. Ao mesmo tempo, os autores empenharam-se em valorizar a beleza intrínseca do assunto. Não há dúvida de que Newton experimentou uma sensação de triunfo quando fez suas grandes descobertas. O objetivo desta obra é fazer que os estudantes compartilhem um pouco desse entusiasmo.


## Um Curso de Cálculo - Vol. 1

Título Um Curso de Cálculo - Vol. 1
Autores GUIDORIZZI, H.
Ano de Publicação 2018
Edição 6.a edição.
ISBN 9788521635437
### Descrição

Guidorizzi, o conteúdo integral para o seu diferencial! De Hamilton Luiz Guidorizzi, Um Curso de Cálculo apresenta recursos pedagógicos digitais que aprofundam e fixam a aprendizagem dos estudantes de Cálculo e auxiliam aulas de professores da disciplina. Este primeiro volume aborda temas como limite, derivada, integral de funções, entre outros. É indicado para alunos de graduação de Matemática, Engenharia e Ciências Exatas que cursam Cálculo Diferencial e Integral e disciplinas de Cálculo relacionadas


## Cálculo com Geometria Analítica

Título Cálculo com Geometria Analítica
Autores SWOKOWSKI, E.
Ano de Publicação 1988
Edição 2.a edição.
ISBN ‎9780074504116
### Descrição

O objetivo desta obra é servir a todos os cursos superiores em qualquer nível. Foi projetado particularmente para o curso-padrão de três semestres para estudantes de Ciências, Engenharia ou Matemática. O pré-requisito requerido é Álgebra e Geometria do 2º grau.

================================================ FILE: extras/bibliography/07_intro_linear_algebra.md ================================================ # Livros: Álgebra Linear I
## Álgebra Linear

Título Álgebra Linear
Autores BOLDRINI, José Luiz et al.
Ano de Publicação 1984
Edição 3.a edição.
ISBN 9788529402024
### Descrição

Visto que os alunos que cursam pela primeira vez esta disciplina freqüentemente a julgam muito abstrata e não vêem como podem utilizar os conceitos básicos, os autores do livro, experientes professores da UNICAMP, preocuparam-se em enfatizar o uso dos conceitos no decorrer de todo o texto. Por ser um curso introdutório, os pré-requisitos para a utilização deste livro são os tópicos de Matemática normalmente estudados no Ensino Médio.


## Álgebra Linear

Título Álgebra Linear
Autores LIPSCHUTZ, Seymour; LIPSON, Marc.
Ano de Publicação 2011
Edição 4.a edição.
ISBN 9788577808335
### Descrição

Este livro traz uma introdução à Álgebra Linear. Segue a didática da Coleção Schaum: cada capítulo inicia com definições, princípios e teoremas, e com material descritivo e ilustrativo, avança para um conjunto de exercícios graduais resolvidos e termina com problemas complementares para uma revisão completa. Inclui Apêndices com módulos e polinômios sobre um corpo, produtos tensorial e exterior de espaços vetoriais e ainda a inversa generalizada de Moore-Penrose.


## Álgebra Linear

Título Álgebra Linear
Autores LANG, S.
Ano de Publicação 2003
Edição 1.a edição.
ISBN ‎9788573932539
### Descrição

Àlgebra linear é direcionado a um curso de um único período ltivo em nível junior ou sênior. Inicia com uma exposição da teoria básica de espaços vetoriais e prossegue explicando os toremas fundamentais para aplicações lineares, incluindo autovetores e autovalores, formas hermitianas e quadráticas, diagonalização de matrizes e aplicações lineares unitárias, hermetianas e simátricas, triangulação e forma canônica de jordan. O livro inclui ainda um capitulo útil sobre conjuntos convexos e o teorema de dimensão finita de krein-milman. A apresentação é voltada ao estudante que já teve algum contato com a teoria elementar de matrizes, determinantes e aplicações lineares. Contudo, o livro é, obviamente, auto-suficiente. Nesta nova edição, vários trechos do livro foram reescritos, reorganizados e novos exercícios foram acrescentados.

================================================ FILE: extras/bibliography/08_data_structure.md ================================================ # Livros: Estruturas de Dados
## Algoritmos - Teoria e Prática

Título Algoritmos - Teoria e Prática
Autores CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C.
Ano de Publicação 2024
Edição 4.a edição.
ISBN 9788595159907
### Descrição

Best-seller mundial sobre o tema, Algoritmos – Teoria e Prática chega à nova edição! Com o desenvolvimento tecnológico cada vez mais avançado, saber trabalhar com algoritmos tem se tornado um importante diferencial para estudantes e profissionais, isso porque, atualmente, os algoritmos são aplicáveis em diversas situações – nas áreas de tecnologia, engenharia, saúde, finanças, educação, entre outras –, das tarefas mais simples às mais complexas. Dessa forma, com sua didática e combinação única de rigor e abrangência, a proposta deste livro é tornar os algoritmos uma ferramenta acessível a leitores de todos os níveis de conhecimento. A obra combina teoria e prática para fornecer uma compreensão sólida dos princípios fundamentais dos algoritmos, ao mesmo tempo que fornece exemplos práticos e análises de complexidade.

Além disso, abrange uma variedade de algoritmos, estruturas de dados e técnicas de design de algoritmos. Totalmente atualizada, esta quarta edição apresenta as seguintes novidades:

Os capítulos são relativamente independentes, e cada um apresenta um algoritmo, uma técnica de projeto, uma área de aplicação ou um tópico relacionado. Além disso, os algoritmos são descritos de maneira simples, bastante objetiva e em um pseudocódigo projetado para ser lido por qualquer usuário com conhecimento básico de programação, independentemente da linguagem de programação utilizada. O conteúdo foi planejado para cursos de graduação e pós-graduação em algoritmos ou estruturas de dados, bem como para especialização e atualização de profissionais da área.


## Estruturas de Dados e Seus Algoritmos

Título Estruturas de Dados e Seus Algoritmos
Autores MARKENZON, L.; SZWARCFITER, J.
Ano de Publicação 2010
Edição 3.a edição.
ISBN 9788521617501
### Descrição

“Um algoritmo é um processo sistemático para a resolução de um problema.” Com essa frase clara e direta inicia-se este Estruturas de Dados e Seus Algoritmos, que chega à terceira edição com um texto expandido, revisado e acrescido de dois novos capítulos. O objetivo primeiro da dupla de autores, porém, permanece: de forma amigável, mostrar diferentes estruturas de dados, dando ênfase aos seus algoritmos de manipulação e a alguns de seus aspectos matemáticos. Tendo em vista que este livro destina-se não somente a cursos de graduação, mas também a profissionais da área de desenvolvimento de software, as estruturas de dados que aparecem aqui estão entre as mais empregadas atualmente. Os temas dos novos capítulos introduzidos são ordenação e listas de prioridades avançadas. O novo capítulo de listas de prioridades avançadas inclui o estudo de estruturas como os heaps binomiais e os heaps de Fibonacci, entre outros. As listas de prioridades descritas nesse novo capítulo requerem tratamento matemático um pouco mais avançado do que as tradicionais. Contudo, elas apresentam resultados bastante satisfatórios, razão pela qual foram selecionadas para inclusão no livro. Além disso, o conhecimento de tais estruturas é relevante no contexto de cursos de pós-graduação. Estrutura de Dados e Seus Algoritmos nasceu de notas de aulas ministradas em mais de trinta anos de docência dos autores, e é hoje considerada obra de referência nos cursos a que se destina.


## Algorithms

Título Algorithms
Autores SEDGEWICK, R.; WAYNE, K.
Ano de Publicação 2011
Edição 4.a edição.
ISBN 9780321573513
### Descrição

This fourth edition of Robert Sedgewick and Kevin Wayne’s Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing--including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.

The algorithms in this book represent a body of knowledge developed over the last 50 years that has become indispensable, not just for professional programmers and computer science students but for any student with interests in science, mathematics, and engineering, not to mention students who use computation in the liberal arts.

The companion web site, algs4.cs.princeton.edu, contains

The MOOC related to this book is accessible via the "Online Course" link at algs4.cs.princeton.edu. The course offers more than 100 video lecture segments that are integrated with the text, extensive online assessments, and the large-scale discussion forums that have proven so valuable. Offered each fall and spring, this course regularly attracts tens of thousands of registrants.

Robert Sedgewick and Kevin Wayne are developing a modern approach to disseminating knowledge that fully embraces technology, enabling people all around the world to discover new ways of learning and teaching. By integrating their textbook, online content, and MOOC, all at the state of the art, they have built a unique resource that greatly expands the breadth and depth of the educational experience.

================================================ FILE: extras/bibliography/09_python.md ================================================ # Livros: Introdução a Programação II
## Programação Orientada a Objetos com Java: Uma Introdução Prática Usando o BlueJ

Título Programação Orientada a Objetos com Java: Uma Introdução Prática Usando o BlueJ
Autores KÖLLING, M.
Ano de Publicação 2008
Edição 4.a edição.
ISBN 9788576051879
### Descrição

Com uma abordagem baseada na apresentação e no aprofundamento contínuo dos conceitos, "Programação orientada a objetos com Java" permite a transição natural para a prática da programação com o uso do ambiente BlueJ. Assim, ao mesmo tempo em que apresenta os conceitos fundamentais aos programadores iniciantes e conduz seu avanço para a programação avançada, torna-se também um guia para programadores mais avançados que querem migrar para a orientação a objetos.


## Python Fluente: Programação Clara, Concisa e Eficaz

Título Python Fluente: Programação Clara, Concisa e Eficaz
Autores RAMALHO, L.
Ano de Publicação 2023
Edição 2.a edição.
ISBN 9781492056355
### Descrição Disponível gratuitamente on-line em Português aqui

A simplicidade de Python permite que você se torne produtivo rapidamente, porém isso muitas vezes significa que você não estará usando tudo que ela tem a oferecer. Com este guia prático, você aprenderá a escrever um código Python eficiente e idiomático aproveitando seus melhores recursos – alguns deles, pouco conhecidos. O autor Luciano Ramalho apresenta os recursos essenciais da linguagem e bibliotecas de Python mostrando como você pode tornar o seu código mais conciso, mais rápido e mais legível ao mesmo tempo.

Muitos programadores experientes tentam dobrar o Python para que ele se enquadre em padrões aprendidos com outras linguagens e jamais descobrem os recursos do Python que estão além de sua experiência. Com este livro, esses programadores Python aprenderão a ser totalmente proficientes em Python 3.


## Introduction to Computation and Programming Using Python, Third Edition: With Application to Computational Modeling and Understanding Data

Título Introduction to Computation and Programming Using Python, Third Edition: With Application to Computational Modeling and Understanding Data
Autores GUTTAG, J. V.
Ano de Publicação 2021
Edição 3.a edição.
ISBN 9780262542364
### Descrição

This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including numpy, matplotlib, random, pandas, and sklearn. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of data science for using computation to model and interpret data as well as substantial material on machine learning.

================================================ FILE: extras/bibliography/10_object_orientation.md ================================================ # Livros: Orientação a Objetos
## Java: como programar

Título Java: como programar
Autores DEITEL, P; DEITEL, H.
Ano de Publicação 2016
Edição 10.a edição.
ISBN 9788543004792
### Descrição

Milhões de alunos e profissionais aprenderam programação e desenvolvimento de software com os livros Deitel®. Java: como programar, 10ª edição, fornece uma introdução clara, simples, envolvente e divertida à programação Java com ênfase inicial em objetos. Destaques incluem: rica cobertura dos fundamentos com exemplos reais; apresentação com ênfase inicial em classes e objetos; uso com Java™ SE 7, Java™ SE 8 ou ambos; Java™ SE 8 abordado em seções modulares opcionais; lambdas, fluxos e interfaces funcionais usando métodos padrão e estáticos do Java SE 8; Swing e GUI do JavaFX: elementos gráficos e multimídia; conjunto de exercícios ''Fazendo a diferença''; tratamento de exceções integrado; arquivos, fluxos e serialização de objetos; concorrência para melhor desempenho com multiprocessamento; o livro contém o conteúdo principal para cursos introdutórios; outros tópicos: recursão, pesquisa, classificação, coleções genéricas, estruturas de dados, multithreading, banco de dados (JDBC ™ e JPA).


## Princípios, Padrões e Práticas Ágeis em C#

Título Princípios, Padrões e Práticas Ágeis em C#
Autores MARTIN, Robert C.
Ano de Publicação 2011
Edição 1.a edição.
ISBN 9788577808410
### Descrição

Destinado a programadores, gerentes de desenvolvimento de software e analistas de negócios, contém diversos estudos de caso que ilustram os fundamentos do desenvolvimento e do projeto ágil, e mostram a evolução de modelos UML em códigos C# reais. Esta obra fornece uma visão completa sobre os princípios ágeis e as práticas da Programação Extrema; o desenvolvimento baseado em testes; a refatoração com testes de unidade; a programação em pares; e muito mais.

================================================ FILE: extras/bibliography/11_graph_algorithms.md ================================================ # Livros: Algoritimos em Grafos
## Algoritmos - Teoria e Prática

Título Algoritmos - Teoria e Prática
Autores CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C.
Ano de Publicação 2024
Edição 4.a edição.
ISBN 9788595159907
### Descrição

Best-seller mundial sobre o tema, Algoritmos – Teoria e Prática chega à nova edição! Com o desenvolvimento tecnológico cada vez mais avançado, saber trabalhar com algoritmos tem se tornado um importante diferencial para estudantes e profissionais, isso porque, atualmente, os algoritmos são aplicáveis em diversas situações – nas áreas de tecnologia, engenharia, saúde, finanças, educação, entre outras –, das tarefas mais simples às mais complexas. Dessa forma, com sua didática e combinação única de rigor e abrangência, a proposta deste livro é tornar os algoritmos uma ferramenta acessível a leitores de todos os níveis de conhecimento. A obra combina teoria e prática para fornecer uma compreensão sólida dos princípios fundamentais dos algoritmos, ao mesmo tempo que fornece exemplos práticos e análises de complexidade.

Além disso, abrange uma variedade de algoritmos, estruturas de dados e técnicas de design de algoritmos. Totalmente atualizada, esta quarta edição apresenta as seguintes novidades:

Os capítulos são relativamente independentes, e cada um apresenta um algoritmo, uma técnica de projeto, uma área de aplicação ou um tópico relacionado. Além disso, os algoritmos são descritos de maneira simples, bastante objetiva e em um pseudocódigo projetado para ser lido por qualquer usuário com conhecimento básico de programação, independentemente da linguagem de programação utilizada. O conteúdo foi planejado para cursos de graduação e pós-graduação em algoritmos ou estruturas de dados, bem como para especialização e atualização de profissionais da área.


## Algoritmos

Título Algoritmos
Autores DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U.
Ano de Publicação 2010
Edição 1.a edição.
ISBN 9788577260324
### Descrição

Extensivamente testado por cerca de uma década em cursos universitários, e adaptado às necessidades dos estudantes, Algoritmos explica os fundamentos de algoritmos em uma linha histórical, de fácil leitura e assimilação. A ênfase está na compreensão da idéia matemática por trás de cada algoritmo, de uma forma intuitiva, rigorosa, sem ser formal.


## Grafos: Conceitos, algoritmos e aplicações

Título Grafos: Conceitos, algoritmos e aplicações
Autores GOLDBARG, E.; GOLDBARG, M.
Ano de Publicação 2012
Edição 1.a edição.
ISBN 9788535257168
### Descrição

Este livro busca auxiliar o ensino e o estudo de grafos e algoritmos, especialmente visando equilibrar três focos de ensino: Conceitos básicos, o estudo de algoritmos em grafos e o desenvolvimento de aplicações reais. O texto pretende suportar principalmente o ensino de ciência da computação, das engenharias e de outras áreas em que a modelagem via grafos pode ser bastante útil como administração, economia, ciências contábeis etc.Visando os alunos de graduação, são propostos exemplos, ilustrações e mais de quatrocentos exercícios, dos quais cerca de cem são solucionados. Atendendo aos alunos com interesses pesquisa, são relatadas, em temas específicos, diversas revisões sumárias da literatura de forma a disponibilizar citações bibliográficas para um eventual aprofundamento nos temas abordados.

================================================ FILE: extras/bibliography/12_computer_architecture.md ================================================ # Livros: Arquitetura de Computadores
## Arquitetura e Organização de Computadores

Título Arquitetura e Organização de Computadores
Autores W. Stallings
Ano de Publicação 2024
Edição 11.a edição.
ISBN 9788582606360
### Descrição

Desde a última edição deste livro, a área de arquitetura e organização de computadores passou por inovações e melhorias contínuas. Esta nova edição dedica-se a capturar esse movimento sem perder a visão da área como um todo.Apesar da variedade e do ritmo de mudança no campo da computação, certos conceitos fundamentais se aplicam a toda a área de modo consistente. A aplicação desses conceitos depende do estado atual da tecnologia e dos objetivos de preço/desempenho do projetista. Esta nova edição discute de modo aprofundado os fundamentos da arquitetura e organização de computadores, relacionando-os a questões de projeto contemporâneas.Sempre foi importante projetar sistemas computacionais para que alcancem alto desempenho, mas nunca esse requisito foi tão relevante ou difícil de satisfazer quanto hoje. Arquitetura e organização de computadores auxiliará acadêmicos e profissionais na busca pelos melhores resultados.


## Organização e Projeto de Computadores: a Interface Hardware/Software

Título Organização e Projeto de Computadores: a Interface Hardware/Software
Autores D. Patterson; J. Hennessy.
Ano de Publicação 2017
Edição 5.a edição.
ISBN 9788535287936
### Descrição

A quinta edição da Organização de Computadores traz novos exemplos, exercícios e materiais destacando o surgimento da computação móvel e a nuvem. Esta mudança geracional é enfatizada e explorou com computadores conteúdo atualizado caracterizam tablet, infra-estrutura de nuvem, ea (computação em nuvem) arquiteturas ARM (dispositivos de computação móvel) e x86. A compreensão de hardware moderno é essencial para alcançar um bom desempenho e eficiência energética, esta edição inclui um novo exemplo concreto indo mais rápido, usado em todo o texto para demonstrar técnicas de otimização extremamente eficazes. Outra novidade para esta edição é a discussão dos Oito Grandes Ideias de arquitetura de computadores. Como nas edições anteriores, um processador MIPS é o núcleo usado para apresentar os fundamentos de tecnologias de hardware, a linguagem assembly, aritméticas computador, canalização, hierarquias de memória e I/O.


## Organização Estruturada de Computadores

Título Organização Estruturada de Computadores
Autores A. S. Tanenbaum.
Ano de Publicação 2013
Edição 6.a edição.
ISBN 9788581435398
### Descrição

Esta sexta edição traz o que há de mais moderno em termos de organização estruturada de computadores, apresentando as terminologias, tecnologias e tendências mais recentes em organização e arquitetura de computadores. Com novos exemplos e discussões sobre x86, microcontroladores AVR e arquitetura ARM, ""Organização estruturada de computadores"" é uma obra indispensável para estudantes de ciência da computação, engenharia da computação, análise e desenvolvimento de sistemas e sistemas de informação, bem como para profissionais da área.

================================================ FILE: extras/bibliography/13_statistics_probability.md ================================================ # Livros: Probabilidade e Estatística
## Estatística Aplicada e Probabilidade para Engenheiros

Título Estatística Aplicada e Probabilidade para Engenheiros
Autores MONTGOMERY, Douglas C.; RUNGER, George C.
Ano de Publicação 2021
Edição 7.a edição.
ISBN 9788521637332
### Descrição

Escrita pelos renomados professores Douglas C. Montgomery e George C. Runger, esta sétima edição de Estatística Aplicada e Probabilidade para Engenheiros inclui o conteúdo essencial da disciplina, comum às diversas habilitações em Engenharia. Os autores tiveram como premissa realizar uma ampla pesquisa junto a professores para que que o livro englobasse a teoria necessária para atender às demandas de sala de aula. Com isso, houve a inclusão da técnica bootstrap, além dos métodos descritivos e analíticos, necessários para quem lida com a variabilidade na observação de dados.Esta sétima edição inclui exercícios inéditos, criados a partir de situações reais e cotidianas dos engenheiros, que estão disponíveis online, bem como novos capítulos, exemplos, gráficos, interpretações práticas e métodos computacionais intensivos.Como destaque, no início de todos os capítulos, Montgomery e Runger criaram o tópico “Objetivos da aprendizagem”, explicando ao leitor o que ele deve esperar do capítulo e o que ele estará apto a compreender e realizar ao fi nal do estudo. Embora a matemática seja fundamental em Estatística e Probabilidade, os autores não pretendem apenas fornecer a teoria, mas ampliar a metodologia e mostrar como aplicá-la.


## Estatística Básica

Título Estatística Básica
Autores MORETTIN, Pedro Alberto; BUSSAB, Wilton de Oliveira.
Ano de Publicação 2024
Edição 10.a edição.
ISBN 9786587958491
### Descrição

Livro mais vendido da área, a 10ª edição de Estatística Básica confirma seu grande sucesso com extenso trabalho de revisão, atualização e ampliação, que contou com sugestões enriquecedoras de professores e leitores. Novidades desta edição: Novo capítulo sobre diversos tópicos de séries temporais. Introdução à regressão linear múltipla no Capítulo 16. Modificações pontuais ao decorrer da obra.O livro é dividido em três partes. A primeira trata da análise de dados unidimensionais e bidimensionais, com atenção especial para métodos gráficos. A segunda parte traz os conceitos básicos de probabilidades e variáveis aleatórias. Por fim, a terceira parte estuda os tópicos principais da inferência estatística, além de alguns temas especiais, como modelos de regressão.Completo e didático, Estatística Básica é o livro mais adequado para alunos e profissionais de diversas áreas do conhecimento e se destaca por ser a única obra com uma seção em todos os capítulos que ensina a aplicar a teoria por meio dos pacotes computacionais Minitab®, Excel®, Splus® e pacotes do Repositório livre R®.No final do livro, os autores disponibilizam vários conjuntos de dados para download na plataforma Saraiva Conecta.


## Introdução à Estatística

Título Introdução à Estatística
Autores TRIOLA, Mario F.
Ano de Publicação 2017
Edição 12.a edição.
ISBN 9788521633747
### Descrição

A nova e atualizada edição de Introdução à Estatística tem o objetivo de fornecer o melhor e mais amplo conteúdo para o ensino e a aprendizagem do tema. Obra clássica na área, traz desde aspectos conceituais até exercícios práticos, incluindo dicas de métodos de procura de emprego e de como evitar equívocos na elaboraçãode currículos.Cada capítulo começa com uma lista das seções que o compõem - incluindo uma breve revisão do conteúdo apresentado no capítulo anterior - e um problema proposto. Ao final, há uma revisão e um teste rápido sobre os temas abordados, além de exercícios e propostas de atividades.

================================================ FILE: extras/bibliography/14_advanced_calculus.md ================================================ # Livros: Cálculo II
## Cálculo: Volume II

Título Cálculo: Volume II
Autores STEWART, James.
Ano de Publicação 2022
Edição 9.a edição.
ISBN 9786555584028
### Descrição

Nesta 9ª edição, assim como em todas as anteriores, os autores mantêm a tradição de escrever um livro que auxilie os estudantes a descobrir o cálculo – tanto por sua utilidade prática, como por sua surpreendente beleza. O intuito é transmitir ao leitor uma ideia da utilidade do cálculo, assim como promover o desenvolvimento de sua habilidade técnica. Ao mesmo tempo, os autores empenharam-se em valorizar a beleza intrínseca do assunto. Não há dúvida de que Newton experimentou uma sensação de triunfo quando fez suas grandes descobertas. O objetivo desta obra é fazer que os estudantes compartilhem um pouco desse entusiasmo.


## Um Curso de Cálculo - Vol. 2

Título Um Curso de Cálculo - Vol. 2
Autores GUIDORIZZI, H.
Ano de Publicação 2018
Edição 6.a edição.
ISBN 9788521635444
### Descrição

Guidorizzi, o conteúdo integral para o seu diferencial! De Hamilton Luiz Guidorizzi, Um Curso de Cálculo apresenta recursos pedagógicos digitais que aprofundam e fixam a aprendizagem dos estudantes de Cálculo e auxiliam aulas de professores da disciplina. Este primeiro volume aborda temas como limite, derivada, integral de funções, entre outros. É indicado para alunos de graduação de Matemática, Engenharia e Ciências Exatas que cursam Cálculo Diferencial e Integral e disciplinas de Cálculo relacionadas

================================================ FILE: extras/bibliography/15_haskell.md ================================================ # Livros: Programação Funcional
## Aprender Haskell será um Grande Bem para Você

Título Aprender Haskell será um Grande Bem para Você
Autores Miran Lipovača
Ano de Publicação 2011
Edição 1.a edição.
ISBN 9781593272838
Versão online https://haskell.tailorfontela.com.br
### Descrição

Bem-vindo ao Aprender Haskell será um grande bem para você! Se você já está lendo isto, existem boas chances de você querer aprender Haskell. Muito bem, você já esta no lugar certo, mas antes vamos conversar um pouco sobre este tutorial. Este tutorial é destinado a pessoas que tenham experiência em linguagens de programação imperativa (C, C++, Java, Python …) sem terem programado antes em uma linguagem funcional (Haskell, ML, OCaml …). Apesar de que eu aposto que se você não tiver uma larga experiência em programação, um rápido capítulo como o que você irá acompanhar vai habilitá-lo a aprender Haskell.


## An Introduction to Functional Programming Through Lambda Calculus

Título An Introduction to Functional Programming Through Lambda Calculus
Autores MICHAELSON, Greg.
Ano de Publicação 2011
Edição 9.a edição.
ISBN 9780486478838
Última versão de rascunho (late draft) https://www.macs.hw.ac.uk/~greg/books/gjm.lambook88.pdf
### Descrição

Functional programming is rooted in lambda calculus, which constitutes the world's smallest programming language. This well-respected text offers an accessible introduction to functional programming concepts and techniques for students of mathematics and computer science. The treatment is as nontechnical as possible, and it assumes no prior knowledge of mathematics or functional programming. Cogent examples illuminate the central ideas, and numerous exercises appear throughout the text, offering reinforcement of key concepts. All problems feature complete solutions.


## Structure and Interpretation of Computer Programs

Título Structure and Interpretation of Computer Programs
Autores Harold Abelson, Gerald Jay Sussman.
Ano de Publicação 1996
Edição 2.a edição.
ISBN 9780262510875
Versão online https://web.mit.edu/6.001/6.037/sicp.pdf
### Descrição

Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.

================================================ FILE: extras/bibliography/16_analysis_of_algorithms.md ================================================ # Livros: Análise de Algoritmos
## Algoritmos

Título Algoritmos
Autores DASGUPTA, S.; PAPADIMITRIOU, C.; VAZIRANI, U.
Ano de Publicação 2010
Edição 1.a edição.
ISBN 9788577260324
### Descrição

Extensivamente testado por cerca de uma década em cursos universitários, e adaptado às necessidades dos estudantes, Algoritmos explica os fundamentos de algoritmos em uma linha histórical, de fácil leitura e assimilação. A ênfase está na compreensão da idéia matemática por trás de cada algoritmo, de uma forma intuitiva, rigorosa, sem ser formal.


## Algoritmos - Teoria e Prática

Título Algoritmos - Teoria e Prática
Autores CORMEN, T.; LEISERSON, C.; RIVEST, R.; STEIN, C.
Ano de Publicação 2024
Edição 4.a edição.
ISBN 9788595159907
### Descrição

Best-seller mundial sobre o tema, Algoritmos – Teoria e Prática chega à nova edição! Com o desenvolvimento tecnológico cada vez mais avançado, saber trabalhar com algoritmos tem se tornado um importante diferencial para estudantes e profissionais, isso porque, atualmente, os algoritmos são aplicáveis em diversas situações – nas áreas de tecnologia, engenharia, saúde, finanças, educação, entre outras –, das tarefas mais simples às mais complexas. Dessa forma, com sua didática e combinação única de rigor e abrangência, a proposta deste livro é tornar os algoritmos uma ferramenta acessível a leitores de todos os níveis de conhecimento. A obra combina teoria e prática para fornecer uma compreensão sólida dos princípios fundamentais dos algoritmos, ao mesmo tempo que fornece exemplos práticos e análises de complexidade.

Além disso, abrange uma variedade de algoritmos, estruturas de dados e técnicas de design de algoritmos. Totalmente atualizada, esta quarta edição apresenta as seguintes novidades:

Os capítulos são relativamente independentes, e cada um apresenta um algoritmo, uma técnica de projeto, uma área de aplicação ou um tópico relacionado. Além disso, os algoritmos são descritos de maneira simples, bastante objetiva e em um pseudocódigo projetado para ser lido por qualquer usuário com conhecimento básico de programação, independentemente da linguagem de programação utilizada. O conteúdo foi planejado para cursos de graduação e pós-graduação em algoritmos ou estruturas de dados, bem como para especialização e atualização de profissionais da área.


## Como Pensar Sobre Algoritmos

Título Como Pensar Sobre Algoritmos
Autores Jeff Edmonds
Ano de Publicação 2010
Edição 1.a edição.
ISBN 9788521617310
### Descrição

O objetivo nesta obra não é apresentar o pacote completo, bem embrulhadinho e limpo, mas percorrer vagarosamente e com profundidade cada etapa do desenvolvimento dos algoritmos. Foram adicionados muitos inícios falsos, na esperança de que isso ajudará os estudantes a desenvolverem algoritmos por conta própria. As pessoas que desenvolvem algoritmos têm diferentes maneiras de pensar, além de uma intuição que, de modo geral, não é ensinada. A premissa básica de Como Pensar sobre Algoritmos é que isso não pode ser ensinado, mas tem que ser descoberto individualmente. Este livro tenta ensinar os estudantes a pensar como quem projeta algoritmos. Jeff Edmonds escreveu um livro divertido, organizado em blocos, cada um contendo um título e um único pensamento. O autor concentra-se na estrutura e na demonstração de correção de meta-algoritmos iterativos e recursivos e, dentro desses, de meta-algoritmos gulosos e de programação dinâmica. Ao aprender esses e suas demonstrações de correção, pode-se compreender facilmente a maioria dos algoritmos. O desafio é que pensar sobre meta-algoritmos exige bastante abstração. São apresentados analogias, paradigmas e diferentes notações, dentro dos quais é possível desenvolver e pensar sobre algoritmos.

================================================ FILE: extras/bibliography/17_numeric_methods.md ================================================ # Livros: Métodos Numéricos
## Métodos Numéricos para Engenharia

Título Métodos Numéricos para Engenharia
Autores Steven C. Chapra (Autor) e Raymond P. Canale
Ano de Publicação 2016
Edição 7.a edição.
ISBN 9788580555684
### Descrição

Escrito por autores renomados, Métodos Numéricos para Engenharia apresenta uma extensa gama de métodos numéricos, como o tratamento de otimização e de equações diferenciais. Com explicações simples e voltadas para a prática, conta com exemplos, estudos de caso e problemas elaborados de acordo com a prática da engenharia, incluindo áreas emergentes como bioengenharia.Esta edição mantém seu foco no uso apropridado de ferramentas computacionais, trazendo discussões meticulosas sobre seus alicerces matemáticos. Também fornece pseudocódigos para os algoritmos dos métodos numéricos e uma visão geral de pacotes de software populares, como MATLAB, Excel e MathCAD.Ganhador do prêmio de melhor livro-texto da American Society for Engineering Education, este é um recurso indispensável para os cursos de Engenharia e outros da área de Ciências Exatas, como Química, Física, Matemática e Computação.


## Cálculo Numérico

Título Cálculo Numérico
Autores Décio Sperandio, João Teixeira Mendes e Luiz Henry Monken
Ano de Publicação 2014
Edição 2.a edição.
ISBN 9788543006536
### Descrição

Com os atuais recursos computacionais, os métodos numéricos tornaram-se imprescindíveis na formação de cientistas e engenheiros. Atendendo a essa necessidade, Cálculo numérico apresenta os procedimentos matemáticos mais importantes para a análise de complexos modelos matemáticos, provenientes das mais variadas áreas de conhecimento. Na obra, os assuntos são descritos de maneira a terem sempre uma clara base matemática. A disposição dos tópicos facilita um entendimento crescente das abordagens mais frequentes em problemas numéricos, e muitos exemplos resolvidos passo a passo auxiliam o aprendizado dos esquemas numéricos. Para completar, exercícios ao final de cada capítulo permitem ao leitor testar seus conhecimentos e explorar o conteúdo teórico desenvolvido.


## Cálculo Numérico: Aspectos Teóricos e Computacionais

Título Cálculo Numérico: Aspectos Teóricos e Computacionais
Autores Ruggiero, M.A.G. e Lopes, V.L.R.
Ano de Publicação 2000
Edição 2.a edição.
ISBN 9788534602044
### Descrição

O objetivo principal do texto é a apresentação de métodos numéricos com sua fundamentação teórica, suas vantagens e dificuldades computacionais. Em todos os capítulos - lista de exercícios, com respostas no apêndice. Na maioria dos capítulos, proposta de projetos.

================================================ FILE: extras/bibliography/18_database.md ================================================ # Livros: Banco de Dados
## Sistema de Banco de Dados

Título Sistema de Banco de Dados
Autores Silberschatz, A., Korth, H., Sudarshan, S.
Ano de Publicação 2020
Edição 7.a edição.
ISBN 9788595157330
### Descrição

Tudo sobre sistema de banco de dados: dos fundamentos aos novos conceitos. Com questões práticas e teóricas, este livro apresenta aplicação, gerenciamento e implementação de banco de dados e inclui os assuntos recentes da área, como Big Data e blockchain. Como diferencial, Sistema de Banco de Dados apresenta conceitos e algoritmos em um ambiente geral, não ligados a um sistema de dados específico, o que flexibiliza a aplicação da teoria a cenários diversos. Além disso, oferece variedade de exercícios em diferentes níveis de complexidade e ferramentas de suporte ao aprendizado.Esta edição de Sistema de Banco de Dados é necessária porque traz:Extensa cobertura dos sistemas Big Data, do ponto de vista do usuário, além de uma perspectiva interna;Atualizações (em todos os capítulos) sobre aspectos internos do banco de dados, para refletir a tecnologia de última geração, como discos em estado sólido (SSD), bancos de dados na memória principal, sistemas de múltiplos núcleos e bancos de dados paralelos e distribuídos;Cobertura avançada do gerenciamento de dados semiestruturados usando JSON, RDF e SPARQL;Cobertura atualizada de dados temporais, análise de dados e técnicas de indexação avançadas, como índices otimizados para escrita;Reorganização e atualização dos capítulos para dar melhor suporte aos cursos, com um componente prático significativo, incluindo o uso de ferramentas de última geração para desenvolvimento de aplicações e sistemas Big Data, como Apache Hadoop e Spark;Novo capítulo sobre Bancos de Dados de Blockchain, que introduz a tecnologia e sua função cada vez mais importante nas aplicações corporativas.


## Sistemas de Banco de Dados

Título Sistemas de Banco de Dados
Autores Elsmari, R., Navathe, Shamkant B.
Ano de Publicação 2019
Edição 7.a edição.
ISBN 9788543025001
### Descrição

Sistemas de banco de dados apresenta de forma profunda e atualizada os aspectos mais importantes dos sistemas e aplicações de banco de dados, bem como das tecnologias relacionadas. Esta obra de referência introduz os conceitos fundamentais necessários para projetar, usar e implementar sistemas de banco de dados, enfatizando fundamentos de modelagem, projeto, linguagens e modelos fornecidos pelos sistemas de gerenciamento e técnicas de implementação. Nesta edição, foram introduzidos capítulos novos sobre os avanços recentes em sistemas de banco de dados e processamento Big Data, introdução a bancos de dados NOSQL e tecnologias para processamento de big data. Além disso, foram incluídos novos exemplos e o conteúdo sobre processamento e otimização de consulta e suas técnicas, estratégias e algoritmos para processamento foi expandido, e foram acrescentadas novas construções SQL. Com conteúdo atualizado, esta obra é ideal para estudantes de análise de redes, análise de sistemas processamento de dados e engenharia da computação que queiram dominar o assunto e destacar-se na área.


## Sistemas de Gerenciamento de Bancos de Dados

Título Sistemas de Gerenciamento de Bancos de Dados
Autores Ramakrishnan, R.
Ano de Publicação 2008
Edição 3.a edição.
ISBN 9788577260270
### Descrição

Este livro apresenta uma abordagem clara e atualizada dos fundamentos dos sistemas de banco de dados. Os professores podem optar por dar ênfase a aplicações de bancos de dados ou a sistemas. O livro traz muitos exemplos e aplicações, incluindo SQL e Oracle, e aplicações para a Internet. Além disso, são introduzidos padrões atuais, como JDBC e XML, e desenvolvimento de aplicações em três camadas.

================================================ FILE: extras/bibliography/19_computer_architecture_II.md ================================================ # Livros: Arquitetura de Computadores
## Arquitetura e Organização de Computadores

Título Arquitetura e Organização de Computadores
Autores W. Stallings
Ano de Publicação 2024
Edição 11.a edição.
ISBN 9788582606360
### Descrição

Desde a última edição deste livro, a área de arquitetura e organização de computadores passou por inovações e melhorias contínuas. Esta nova edição dedica-se a capturar esse movimento sem perder a visão da área como um todo.Apesar da variedade e do ritmo de mudança no campo da computação, certos conceitos fundamentais se aplicam a toda a área de modo consistente. A aplicação desses conceitos depende do estado atual da tecnologia e dos objetivos de preço/desempenho do projetista. Esta nova edição discute de modo aprofundado os fundamentos da arquitetura e organização de computadores, relacionando-os a questões de projeto contemporâneas.Sempre foi importante projetar sistemas computacionais para que alcancem alto desempenho, mas nunca esse requisito foi tão relevante ou difícil de satisfazer quanto hoje. Arquitetura e organização de computadores auxiliará acadêmicos e profissionais na busca pelos melhores resultados.


## Organização e Projeto de Computadores: a Interface Hardware/Software

Título Organização e Projeto de Computadores: a Interface Hardware/Software
Autores D. Patterson; J. Hennessy.
Ano de Publicação 2017
Edição 5.a edição.
ISBN 9788535287936
### Descrição

A quinta edição da Organização de Computadores traz novos exemplos, exercícios e materiais destacando o surgimento da computação móvel e a nuvem. Esta mudança geracional é enfatizada e explorou com computadores conteúdo atualizado caracterizam tablet, infra-estrutura de nuvem, ea (computação em nuvem) arquiteturas ARM (dispositivos de computação móvel) e x86. A compreensão de hardware moderno é essencial para alcançar um bom desempenho e eficiência energética, esta edição inclui um novo exemplo concreto indo mais rápido, usado em todo o texto para demonstrar técnicas de otimização extremamente eficazes. Outra novidade para esta edição é a discussão dos Oito Grandes Ideias de arquitetura de computadores. Como nas edições anteriores, um processador MIPS é o núcleo usado para apresentar os fundamentos de tecnologias de hardware, a linguagem assembly, aritméticas computador, canalização, hierarquias de memória e I/O.


## Organização Estruturada de Computadores

Título Organização Estruturada de Computadores
Autores A. S. Tanenbaum.
Ano de Publicação 2013
Edição 6.a edição.
ISBN 9788581435398
### Descrição

Esta sexta edição traz o que há de mais moderno em termos de organização estruturada de computadores, apresentando as terminologias, tecnologias e tendências mais recentes em organização e arquitetura de computadores. Com novos exemplos e discussões sobre x86, microcontroladores AVR e arquitetura ARM, ""Organização estruturada de computadores"" é uma obra indispensável para estudantes de ciência da computação, engenharia da computação, análise e desenvolvimento de sistemas e sistemas de informação, bem como para profissionais da área.

================================================ FILE: extras/bibliography/20_logical_programming.md ================================================ # Livros: Programação Lógica
## Aprenda PROLOG Já!

Título Aprenda PROLOG Já!
Autores BLACKBURN, P; BOSS, J; STRIEGNITZ, K.
Ano de Publicação 2014
Edição 1.a edição.
ISBN 9781848901551
### Descrição

A Série Apontamentos tem por objetivo explorar preferencialmente textos de apoio didático a cursos de graduação ou pós-graduação. Sinopse Apresenta a linguagem de programação lógica Prolog, adequada para resolver problemas que envolvem objetos e relações entre objetos. Apresenta e discute um vasto conjunto de predicados Prolog para o tratamento de listas, árvores e grafos.


## A cartilha PROLOG

Título A cartilha PROLOG
Autores Maria do Carmo Nicoletti
Ano de Publicação 2021
Edição 1.a edição.
ISBN 9788576000112
### Descrição

A Série Apontamentos tem por objetivo explorar preferencialmente textos de apoio didático a cursos de graduação ou pós-graduação. Sinopse Apresenta a linguagem de programação lógica Prolog, adequada para resolver problemas que envolvem objetos e relações entre objetos. Apresenta e discute um vasto conjunto de predicados Prolog para o tratamento de listas, árvores e grafos.

================================================ FILE: extras/bibliography/21_computer_network.md ================================================ # Livros: Redes de Computadores
## Redes de Computadores e a Internet: Uma Abordagem Top-Down

Título Redes de Computadores e a Internet: Uma Abordagem Top-Down
Autores KUROSE, J. F.; ROSS, K. W.
Ano de Publicação 2021
Edição 8.a edição.
ISBN 9788582605585
### Descrição

Seguindo o sucesso da abordagem top-down de suas edições anteriores, "Redes de computadores e a Internet" tem como foco camadas de aplicação e interfaces de programação, propondo ao leitor uma experiência prática com os conceitos de protocolo e redes de computadores antes de trabalhar com mecanismos de transmissão de informação das camadas inferiores das pilhas de protocolos.


## Redes de Computadores

Título Redes de Computadores
Autores TANENBAUM, A. S.
Ano de Publicação 2021
Edição 6.a edição.
ISBN 9788582605608
### Descrição

Nesta que é a bíblia de redes de computadores, Tanenbaum, Feamster & Wetherall explicam o funcionamento das redes de dentro para fora. Isto é, começam com a camada física das redes, dos computadores e dos sistemas de transmissão e vão até às aplicações. Os capítulos apresentam os conceitos-chave e são ilustrados por exemplos de redes reais: Internet, redes sem fio, incluindo LANs sem fio; banda larga sem fio e Bluetooth. Esta 6ª edição de Redes de computadores traz muitas mudanças. Todos os capítulos foram atualizados e o Capítulo 8, que trata de segurança, foi completamente reformulado, priorizando a segurança de redes.

================================================ FILE: extras/bibliography/22_software_engineering.md ================================================ # Livros: Engenharia de Software
## Engenharia de Software

Título Engenharia de Software
Autores SOMMERVILLE, I.
Ano de Publicação 2019
Edição 10.a edição.
ISBN 9788543024974
### Descrição

A 10ª edição de Engenharia de software foi extensivamente atualizada para refletir a adoção crescente de métodos ágeis na engenharia de software. Um dos destaques da nova edição é o acréscimo de conteúdo sobre a metodologia do Scrum. A divisão em quatro partes do livro foi significativamente reformulada para acomodar novos capítulos sobre engenharia de resiliência, engenharia de sistemas e sistemas de sistemas. Além disso, capítulos sobre tópicos como confiança, segurança e proteção foram completamente reorganizados.Todas essas mudanças se justificam por compreenderem questões essenciais para a engenharia de software moderna ― gerenciamento da complexidade, integração da agilidade a outros métodos e garantia de que os sistemas sejam seguros e resilientes. Obra de referência para estudantes de ciência da computação, engenharia da computação e sistemas de informação, e para qualquer profissional que deseje atualizar seus conhecimentos sobre reúso de software, arquitetura de projetos, confiabilidade e segurança e engenharia de sistemas.


## Engenharia de Software: Uma abordagem profissional

Título Engenharia de Software: Uma abordagem profissional
Autores PRESSMAN, Roger S..
Ano de Publicação 2021
Edição 9.a edição.
ISBN 9786558040101
### Descrição

A nova edição do livro-texto líder de mercado em engenharia de software traz uma série de novidades. O livro foi totalmente revisado e reestruturado para melhorar seu fluxo pedagógico.Traz novos e importantes processos e práticas da área, dentre eles o uso de inteligência artificial e machine learning para garantir velocidade e qualidade nas entregas. O autor enfatiza aspectos de qualidade de software, principalmente no uso de métodos ágeis. Segurança é outro item que ganhou destaque.


## Engenharia de Software - Produtos - Vol.1 e 2

Título Engenharia de Software - Produtos - Vol.1 e 2
Autores PÁDUA FILHO, W.
Ano de Publicação 2019
Edição 4.a edição.
ISBN 9788521636687 e 9788521636694
### Descrição

Referência para cursos de Computação e afins. De Wilson de Pádua Paula Filho, o livro Engenharia de Software – Produtos é uma ferramenta para estudantes e profissionais por apresentar conteúdos relevantes sobre a manutenção e desenvolvimento de software. Agora em dois volumes, esta primeira parte está ligada à área de Produtos e traz uma introdução ao assunto, mantendo um perfil mais técnico. Concentra capítulos de embasamento, apresentando temas como UML básica, requisitos, análise, desenho, testes e implementação, além dos padrões mais relevantes e detalhados dos métodos técnicos do processo Praxis “clássico” (SPraxis) e da respectiva versão “ágil” (XPraxis). O tratamento tem por base a tecnologia orientada a objetos. Sua notação de análise e desenho é a UML 2.0 e os padrões seguem os estabelecidos pela Engenharia de Software do Instituto de Engenheiros Eletricistas e Eletrônicos (IEEE), acompanhando todas as atualizações realizadas. Com material suplementar para professores, Engenharia de Software abrange tópicos requeridos por cursos de graduação diversos, como Informática, Engenharia da Computação, Ciência da Computação, Análise de Sistemas, Processamento de Dados, entre outros. Por que ler Engenharia de Software? Os sistemas informatizados têm enorme potencial de trazer benefícios, bem como prejuízos quando elaborados de maneira errada. Uma vez que o software é a alma dos sistemas informatizados, a Engenharia de Software é a disciplina que ensina a construir produtos reais a partir dos conceitos fundamentais da Informática. Assim, este livro apresenta as práticas mais consagradas dessa disciplina.

================================================ FILE: extras/bibliography/23_operating_system.md ================================================ # Livros: Sistemas Operacionais
## Sistemas Operacionais Modernos

Título Sistemas Operacionais Modernos
Autores Tanenbaum, Andrew S.
Ano de Publicação 2024
Edição 5.a edição.
ISBN 9788582606162
### Descrição

Esta nova edição aborda os mais recentes desenvolvimentos em tecnologias de sistemas operacionais. Os estudos de caso exploram sistemas operacionais populares, sempre contextualizados à nossa realidade.De forma clara e divertida, os autores descrevem os conceitos que designers de sistema operacional precisam dominar, tais como processos, threads, gerenciamento de memória, sistemas de arquivos, E/S (entrada/saída), impasses, design de interface, multimídia, compensações de desempenho e tendências em design de sistema operacional. Vale destacar, ainda, um novo capítulo, sobre o Windows 11, a atualização do capítulo sobre segurança, com mais foco em tópicos que são diretamente relevantes aos sistemas operacionais e a ênfase dos solid state drives (SSDs) baseados em memória flash.


## Fundamentos de Sistemas Operacionais

Título Fundamentos de Sistemas Operacionais
Autores Abraham Silberschatz
Ano de Publicação 2015
Edição 9.a edição.
ISBN 9788521629399
### Descrição

Fundamentos de Sistemas Operacionais, já em sua 9a edição, está dividido em 20 capítulos, compostos por registros de experiências vivenciadas pelos autores em um universo em transformação constante. Neste livro, é possível ter uma abordagem aprofundada de assuntos como os sistemas móveis e a computação em nuvem.O sucesso da obra acontece já em sua concepção, quando os autores entendem que os sistemas operacionais são parte essencial de qualquer sistema de computação. Assim, o conteúdo foi pensado para oferecer uma ampla base teórica a estudantes e profissionais da área.O fato de os autores trabalharem detalhadamente com Linux e Windows – sistemas nos quais parte dos usuários ainda tem muitas dúvidas –, torna a obra ainda mais peculiar, única e interessante. Ela também faz uma análise apurada dos sistemas utilizados em smartphones, que são o grande destaque do momento no setor.Os conteúdos são abordados de maneira singular. Além da conceituação concreta, ainda há dezenas de exercícios e mais 20 novos problemas e projetos de programação. Quem deseja ampliar os conhecimentos nessa área irá encontrar em Fundamentos de Sistemas Operacionais uma excelente ferramenta.


## Arquitetura de Sistemas Operacionais: Incluindo Exercícios com o Simulador SOSIM e Questões do ENADE

Título Arquitetura de Sistemas Operacionais: Incluindo Exercícios com o Simulador SOSIM e Questões do ENADE
Autores Machado, Francis Berenger; Maia, Luiz Paulo.
Ano de Publicação 2013
Edição 5.a edição.
ISBN 9788521622109
### Descrição

O estudo de sistemas operacionais ganha importância à medida que diversos profissionais da área de computação necessitam deste conhecimento para exercer suas atividades, como administradores de sistemas, programadores de aplicações concorrentes e gerentes de segurança. Outro fator importante é o relacionamento dos sistemas operacionais nas redes de comunicação de dados, o que faz seu estudo necessário para os administradores de rede. Arquitetura de Sistemas Operacionais aborda a arquitetura e funcionamento dos sistemas operacionais multiprogramáveis, de forma atual, abrangente e didática. Seu conteúdo é direcionado a estudantes e a profissionais de informática de todas as áreas. Como pré-requisito básico para sua leitura, é necessário apena s algum conhecimento de organização de computadores e estrutura de dados. Sempre que for necessário o uso de programas será utilizada a linguagem de programação Pascal, por sua clareza e fluência no meio acadêmico, assim como a linguagem Java, por sua ampla aceitação no mercado.

================================================ FILE: extras/bibliography/24_math_optimization.md ================================================ # Livros: Programação Matemática
## Introdução à Pesquisa Operacional

Título Introdução à Pesquisa Operacional
Autores HILLIER, F.S.; LIEBERMAN, G.J.
Ano de Publicação 2013
Edição 9.a edição.
ISBN 9788580551181
### Descrição

Por mais de quatro décadas, Introdução à Pesquisa Operacional tem sido um clássico na investigação de operações. Com os fundamentos mais atuais da área e maior cobertura de aplicativos de negócios, essa nova edição mantém a tradição de um texto com conceitos claros e abrangentes, extenso conjunto de problemas interessantes e casos para análise e prática, com uso de softwares de pesquisa operacional. Um extenso material de apoio encontra-se disponível no site do livro. O ponto forte da 9ª edição é a nova parceria entre a Introdução à Pesquisa Operacional (PO) e o Institute of Operations Research and the Management Sciences (INFORMS). Esses dois pilares da PO se uniram para demonstrar algumas aplicações de pesquisa de operações.


## Pesquisa Operacional

Título Pesquisa Operacional
Autores ARENALES, M; ARMENTANO, V; MORABITO, R.; YANASSE, H.
Ano de Publicação 2007
Edição 1.a edição.
ISBN 9788535214543
### Descrição

Livro-texto base para disciplinas de introdução à Pesquisa Operacional e suas aplicações na graduação em Engenharia de Produção. O material é suficiente para dois cursos semestrais, ou um curso anual, e pretende ilustrar o uso das modelagens e as aplicações dos algoritmos em problemas da realidade brasileira, em particular, nos sistemas de produção e logística.


## Otimização Combinatória e Programação Linear

Título Otimização Combinatória e Programação Linear
Autores GOLDBARG, M.C. e LUNA, H.P.L
Ano de Publicação 2005
Edição 2.a edição.
ISBN 9788535215205
### Descrição

Esta obra tem por objetivo propiciar subsídios técnicos, descrever modelos matemáticos, debater algoritmos de solução e sugerir temas de aplicação, dentro da visão quantitativa de análise do fenômeno de tomada de decisão, principalmente aos alunos de graduação das engenharias, cursos de administração e de ciência da computação.

O conteúdo programático coberto pelos capítulos 1 a 5 engloba o que é exigido em disciplinas como “Pesquisa Operacional”, “Otimização de Sistemas de Engenharia”, “Programação Linear” e outras. O conteúdo dos capítulos 6 a 10 aborda temas que são objeto de disciplinas como “Otimização Combinatória”, “Algoritmos em Grafos”, “Fluxos em Redes”, entre outras. Essa segunda parte do livro contém material um pouco mais avançado, servindo a disciplinas optativas de nossos cursos de graduação ou a disciplinas de pós-graduação.

Uma outra característica marcante deste trabalho são as várias aplicações práticas retiradas da realidade brasileira, o que permite aproximar a disciplina ao dia-a-dia do estudante, aumentando o incentivo à motivação. No âmbito da programação linear, o livro é caracterizado pelo uso intensivo de interpretação econômica do método simplex e das relações de dualidade e sensibilidade. A ideia é lembrar que as ferramentas de otimização indicam as atividades de maior produtividade nas empresas e que o uso dessas ferramentas também indica os preços de maior competitividade.

No âmbito da otimização combinatória, como o próprio nome indica, o livro se caracteriza pela apresentação dos problemas através do uso deliberado de formulações de programação linear inteira mista. Além do interesse teórico, a formulação de problemas combinatórios através da programação inteira abre caminho para o uso dos eficientes pacotes comerciais de programação matemática, cujo avanço na solução exata de importantes problemas práticos tem sido marcante. Mesmo para heurísticas que dispensam a formulação de programação linear inteira, muitas vezes podem ser feitas avaliações de qualidade de solução mediante o uso de relaxação do problema de programação linear.

Constituindo uma versão atualizada que preserva o conteúdo original e melhora a forma de apresentação, esta segunda edição contempla uma significativa inclusão de referências à produção científica do primeiro lustre do novo milênio. A atualização resultou em um saldo positivo de dezenas de páginas, com a supressão de algumas páginas do apêndice que não eram referenciadas no texto principal da primeira edição. A rica ilustração do livro foi reorganizada com a numeração restrita ao escopo de cada capítulo, abrangendo as referências a figuras, equações, quadros e tabelas, que, por sua vez, tiveram apresentação padronizada. Esta segunda edição surge numa época em que se consolida a ligação entre otimização combinatória e programação linear, o que ratifica o acerto do nome do livro e a importância da matéria nele ensinada.

================================================ FILE: extras/bibliography/25_fundamentals_computer_graphics.md ================================================ # Livros: Fundamentos de Computação Gráfica
## Fundamentos de Computação Gráfica

Título Introdução à Pesquisa Operacional
Autores Luiz Velho e Jonas Gomes
Ano de Publicação 2015
Edição 1.a edição.
ISBN 9788524402005
### Descrição

Este livro se originou das notas de aula de um curso introdutório de Computação Gráfica, lecionado no IMPA há 10 anos como parte do programa de Computação Gráfica IMPA/PUC-Rio. O livro enfoca aspectos conceituais da área de Computação Gráfica, estudando os diversos modelos matemáticos utilizados, bem como os problemas inerentes à discretização desses modelos. A abordagem do livro é feita de forma elementar, abrangendo todo o programa de um curso introdutório, exigindo como pré-requisitos apenas conhecimentos de Cálculo Diferencial, Álgebra Linear e noções de algoritmos.


## Computer Graphics: Principles and Practice

Título Computer Graphics: Principles and Practice
Autores Hughes, J. F., Van Dam, A., Mcguire, M., Sklar, D. F., Foley, J. D., Feiner, S. K., Akeley, K.
Ano de Publicação 2013
Edição 3.a edição.
ISBN 9780321399526
### Descrição

Computer Graphics: Principles and Practice, Third Edition, remains the most authoritative introduction to the field. The first edition, the original “Foley and van Dam,” helped to define computer graphics and how it could be taught. The second edition became an even more comprehensive resource for practitioners and students alike. This third edition has been completely rewritten to provide detailed and up-to-date coverage of key concepts, algorithms, technologies, and applications.

The authors explain the principles, as well as the mathematics, underlying computer graphics–knowledge that is essential for successful work both now and in the future. Early chapters show how to create 2D and 3D pictures right away, supporting experimentation. Later chapters, covering a broad range of topics, demonstrate more sophisticated approaches. Sections on current computer graphics practice show how to apply given principles in common situations, such as how to approximate an ideal solution on available hardware, or how to represent a data structure more efficiently. Topics are reinforced by exercises, program­ming problems, and hands-on projects.

================================================ FILE: extras/bibliography/26_automata_theory.md ================================================ # Livros: Linguagens Formais e Autômatos
## Linguagens Formais e Autômatos

Título Linguagens Formais e Autômatos
Autores MENEZES, P. B.
Ano de Publicação 2010
Edição 6.a edição.
ISBN 9788577807659
### Descrição

A Teoria das Linguagens Formais foi originalmente desenvolvida na década de 1950 com o objetivo de desenvolver teorias relacionadas com as linguagens naturais. Entretanto, logo foi verificado que esta teoria era importante para o estudo das linguagens artificiais e, em especial, para as linguagens originárias na Ciência da Computação. Desde então, o estudo das Linguagens Formais desenvolveu-se significativamente e com diversos enfoques, com destaque para aplicações em análise léxica e sintática de linguagens de programação, modelos de sistemas biológicos, desenho de hardware e relacionamentos com linguagens naturais. Recentemente, inclui-se a ênfase no tratamento de linguagens não-lineares, como planares, espaciais e n-dimensionais.

Linguagens Formais e Autômatos visa apresentar os conceitos básicos da Teoria das Linguagens Formais. É baseado em experiências letivas no Curso de Bacharelado em Ciência da Computação da UFRGS. É delineado, principalmente, como um primeiro curso de Linguagens Formais, sendo auto-contido e podendo ser adotado como bibliografia básica. Possui um texto simples, exemplos detalhados e exercícios em níveis crescentes de raciocínio.


## Linguagens Formais: Teorias e Conceitos

Título Linguagens Formais: Teorias e Conceitos
Autores RAMOS, M.; NETO, J. J; VEGA, I.
Ano de Publicação 2023
Edição 1.a edição.
ISBN 9786555067163
### Descrição

Concebido como referência para cursos superiores da área de computação, este livro explora tópicos sobre as linguagens definidas pela Hierarquia de Chomsky. Contudo, seu alcance foi expressivamente ampliado pela inclusão de introduções à matemática discreta, aos conceitos básicos de linguagens, à classe das linguagens recursivas, à análise sintática descendente, à decidibilidade e à complexidade.Fruto de diversos anos da experiência docente e dedicação dos autores, em diversas instituições de ensino, à disciplina Linguagens Formais e Autômatos, esta obra, repleta de exemplos e exercícios, mitiga a aridez intrínseca dos muitos assuntos estudados, tornando-os mais acessíveis a um público-alvo amplo e diversificado.


## Linguagens Formais: Exercícios e Soluções

Título Linguagens Formais: Exercícios e Soluçõess
Autores RAMOS, M.
Ano de Publicação 2021
Edição 1.a edição.
ISBN 9786586057591
### Descrição

Fazer exercícios é a maneira mais eficaz de aprender linguagens formais e autômatos. É importante estudar exercícios resolvidos para melhorar o entendimento acerca das estratégias mais usadas e reduzir o tempo de resolução de problemas novos. Ainda assim, é raro que a solução de problemas novos não faça uso, pelo menos em parte, de estratégias consagradas utilizadas em problemas conhecidos. Em vez de teoria e conceitos abstratos, este livro é composto de 601 exercícios resolvidos sobre as temáticas dos capítulos. A ideia é que, a partir do enunciado, da solução e também das explicações que fundamentam as estratégias apresentadas, o leitor entenda como certas soluções são obtidas e se capacite mais rapidamente na resolução de novos problemas.

Esta obra é uma grande coletânea, devidamente revisada e estendida, do material que foi sendo acumulado ao longo de mais de uma década de dedicação ao ensino da disciplina Linguagens Formais e Autômatos na Universidade Federal do Vale do São Francisco. Em cada capítulo, uma pequena introdução traz um resumo das principais definições e resultados relevantes para o estudo do assunto, o que não dispensa o uso de uma boa referência teórica complementar sobre essa importante matéria.

================================================ FILE: extras/bibliography/27_artificial_intelligence.md ================================================ # Livros: Inteligência Artificial
## Inteligência Artificial - Uma Abordagem de Aprendizado de Máquina

Título Inteligência Artificial - Uma Abordagem de Aprendizado de Máquina
Autores André Carlos Ponce de Leon Ferreira et al.
Ano de Publicação 2021
Edição 2.a edição.
ISBN 9788521637349
### Descrição

Inteligência Artificial sob novos olhares. Com abordagem equilibrada de tópicos básicos e avançados desenvolvidos por renomados pesquisadores da área, esta nova edição traz exemplos de implemen­tações dos métodos abordados e exercícios teóricos e práticos.Vencedor do Prêmio Jabuti 2012 (Categoria Tecnologia e Informática) quando foi lançado, Inteligência Artificial – Uma Abordagem de Aprendizado de Máquina aborda os principais conceitos e algoritmos de aprendizado de máquina e aponta caminhos para transformar esse conhecimento em aplicações práticas, como:auxílio ao diagnóstico de doenças e descoberta de tratamentos mais eficazes;monitoramento da qualidade da água;prevenção de incêndios florestais;detecção e localização de falhas em linhas de transmissão de energia;reconhecimento de imagens para prover segurança em eventos;bloqueio de mensagens fraudulentas que impõem riscos aos usuários, entre outras.Por que ter Inteligência Artificial?Há algum tempo, a área de inteligência artificial deixou de ser vista apenas como teórica – destinada à aplicação em pequenos problemas “curiosos” – para se tornar um campo de pesquisa crescente, em busca de soluções de problemas reais da sociedade.Katti Faceli, Ana Carolina Lorena, João Gama, Tiago Agostinho Almeida e André Carlos Ponce Carvalho preenchem, com sucesso, a lacuna de livros abrangentes e atualizados voltados ao público nacional.


## Inteligência Artificial

Título Inteligência Artificial
Autores LUGGER, G.
Ano de Publicação 2015
Edição 2.a edição.
ISBN 9788581435503
### Descrição

Com uma abordagem clara e objetiva, George F. Luger reúne nesta sexta edição as práticas mais recentes do mercado e os tópicos importantes relacionados à inteligência artificial, como computação emergente, representação da incerteza e processamento probabilístico de linguagem natural, entre outros. Muito rica em exemplos práticos, esta obra é ideal para estudantes de ciência da computação, engenharia da computação e sistemas de informação, pois apresenta equilíbrio entre teoria e prática e os conceitos fundamentais da área, com detalhes e informações necessárias para a implementação dos algoritmos e estratégias discutidos no livro.


## Inteligência Artificial

Título Inteligência Artificial
Autores COPPIN, B.
Ano de Publicação 2010
Edição 1.a edição.
ISBN 9788521617297
### Descrição

O livro cobre uma variedade de técnicas de Inteligência Artificial, algoritmos e metodologias, incluindo playing game, agentes inteligentes, aprendizado de máquinas, algoritmos genéticos e vida artificial. Com texto descomplicado e acessível, o autor concentra-se em explicar como técnicas de Inteligência Artificial se relacionam e são derivadas de sistemas naturais, tais como o cérebro humano e a própria evolução das espécies, explicando como os equivalentes artificiais são utilizados no mundo real. Cada capítulo inclui uma introdução, explicando o que será abordado, um resumo do capítulo, alguns exercícios e questões para revisão, bem como sugestões para leitura adicional. Há uma bibliografia completa no final do livro, além de um glossário incluindo breves definições da maioria dos termos importantes.

================================================ FILE: extras/bibliography/28_distributed_computing.md ================================================ # Livros: Computação Distribuída
## Sistemas Distribuídos: Conceitos e Projeto

Título Sistemas Distribuídos: Conceitos e Projeto
Autores COULOURIS, G; DOLLIMORE, J; KINDBERG, T; BLAIR, G.
Ano de Publicação 2013
Edição 5.a edição.
### Descrição

A Internet e a Web não param de crescer e têm impacto cada vez maior em diversos aspectos da nossa sociedade. Do ponto de vista do desenvolvimento de sistemas distribuídos, que interligam computadores e outros dispositivos, esse crescimento impõe novas demandas em termos de arquitetura, algoritmos, requisitos de projeto, variedade de aplicações e de cargas de trabalho. A 5ª edição deste best-seller continua a ser uma fonte de conhecimento abrangente sobre os princípios e a prática de sistemas distribuídos, com estudos de caso modernos que ilustram seu projeto e desenvolvimento e exercícios ao final de cada capítulo que ajudam a fixar o conteúdo abordado.Destaques da 5ª edição:• Novos capítulos: comunicação indireta, objetos e componentes distribuídos e projeto de sistemas distribuídos.• Novos tópicos: computação em nuvem, virtualização de rede e de sistemas operacionais, sistemas peer-to-peer não estruturados, espaços de tupla, baixo acoplamento em serviços Web e computação móvel e ubíqua.• Novos estudos de caso: JavaSpaces, JMS, WebSphere, Messa Queues, Entreprise JavaBeans,Skype, Gnutella, TOTA, L2imbo, BitTorrent, End System Multicast, infraestrutura Google.


## Sistemas Distribuídos: Princípios e Paradigmas

Título Sistemas Distribuídos: Princípios e Paradigmas
Autores Andrew S. Tanenbaum, Maarten Van Steen.
Ano de Publicação 2007
Edição 2.a edição.
ISBN 9788576051428
### Descrição

Nesta segunda edição, melhorada e atualizada, Tanenbaum e Van Steen apresentam os detalhes de funcionamento dos sistemas distribuídos, bem como as tecnologias subjacentes. Ao separar princípios de paradigmas, os autores mostram como os princípios se relacionam uns com os outros, discutindo quatro classes diferentes de sistemas distribuídos, o que permite uma percepção ainda mais abrangente do conteúdo apresentado.

================================================ FILE: extras/bibliography/29_graphs.md ================================================ # Livros: Teoria dos Grafos > #### ⚠️ Infelizmente, nessa seção a bibliografia está em inglês. Caso conheça materiais de qualidade sobre o assunto em Português, abra um PR.
## Introduction to Graph Theory

Título Introduction to Graph Theory
Autor Douglas B. West
Ano de Publicação 2000
Edição 2.a edição.
ISBN 9780130144003
### Descrição

This book fills a need for a thorough introduction to graph theory that features both the understanding and writing of proofs about graphs. Verification that algorithms work is emphasized more than their complexity. An effective use of examples, and huge number of interesting exercises, demonstrate the topics of trees and distance, matchings and factors, connectivity and paths, graph coloring, edges and cycles, and planar graphs. For those who need to learn to make coherent arguments in the fields of mathematics and computer science.


## Graph Theory

Título Graph Theory
Autor Reinhard Diestel
Ano de Publicação 2025
Edição 6.a edição.
ISBN 9783662701065
### Descrição

This standard textbook on modern graph theory combines the authority of a classic with the engaging freshness of style that is the hallmark of active mathematics. It covers the core material of the subject, with concise yet complete proofs, while offering glimpses of more advanced methods in each field via one or two deeper results.

This is a major new edition. Among many other improvements, it offers additional tools for applying the regularity lemma, brings the tangle theory of graph minors up to the cutting edge of current research, and addresses new topics such as chi-boundedness in perfect graph theory.

The book can be used as a reliable text for an introductory graduate course and is also suitable for self-study.


## Graph Theory

Título Graph Theory
Autores Adrian Bondy e U.S.R. Murty
Ano de Publicação 2008
Edição 1.a edição.
ISBN 9781846289699
### Descrição

Graph theory is a flourishing discipline containing a body of beautiful and powerful theorems of wide applicability. Its explosive growth in recent years is mainly due to its role as an essential structure underpinning modern applied mathematics – computer science, combinatorial optimization, and operations research in particular – but also to its increasing application in the more applied sciences. The versatility of graphs makes them indispensable tools in the design and analysis of communication networks, for instance.

The primary aim of this book is to present a coherent introduction to the subject, suitable as a textbook for advanced undergraduate and beginning graduate students in mathematics and computer science. It provides a systematic treatment of the theory of graphs without sacrificing its intuitive and aesthetic appeal. Commonly used proof techniques are described and illustrated, and a wealth of exercises - of varying levels of difficulty - are provided tohelp the reader master the techniques and reinforce their grasp of the material.

A second objective is to serve as an introduction to research in graph theory. To this end, sections on more advanced topics are included, and a number of interesting and challenging open problems are highlighted and discussed in some detail. Despite this more advanced material, the book has been organized in such a way that an introductory course on graph theory can be based on the first few sections of selected chapters.

================================================ FILE: extras/bibliography/30_multivariable_calculus.md ================================================ # Livros: Cálculo III
## Um Curso de Cálculo - Vol. 3

Título Um Curso de Cálculo - Vol. 3
Autores GUIDORIZZI, H.
Ano de Publicação 2022
Edição 6.a edição.
ISBN 9788521635451
### Descrição

Guidorizzi, o conteúdo integral para o seu diferencial! De Hamilton Luiz Guidorizzi, Um Curso de Cálculo apresenta recursos pedagógicos digitais que aprofundam e fixam a aprendizagem dos estudantes de Cálculo e auxiliam aulas de professores da disciplina. Este terceiro volume aborda temas como integrais duplas, integrais triplas, integrais de linha, entre outros. É indicado para alunos de graduação de Matemática, Engenharia e Ciências Exatas que cursam Cálculo Diferencial e Integral e disciplinas de Cálculo relacionadas.


## Cálculo III

Título Cálculo III
Autores CARVALHO, A.N.; NUNES, W.V.L.; ZANI, S.L.
Ano de Publicação 2001
### Descrição

Notas de Aula do ICMC - USP.

Disponível aqui. ================================================ FILE: extras/bibliography/31_theory_of_computation.md ================================================ # Livros: Teoria da Computação
## Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science (Computer Science and Scientific Computing)

Titulo Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science (Computer Science and Scientific Computing)
Autores Martin Davis; Ron Sigal; Elaine J. Weyuker
Ano de Publicação 1994
Edição 2.a edição.
### Descrição

Computability, Complexity, and Languages is an introductory text that covers the key areas of computer science, including recursive function theory, formal languages, and automata. It assumes a minimal background in formal mathematics. The book is divided into five parts: Computability, Grammars and Automata, Logic, Complexity, and Unsolvability. Computability theory is introduced in a manner that makes maximum use of previous programming experience, including a "universal" program that takes up less than a page. The number of exercises included has more than tripled. Automata theory, computational logic, and complexity theory are presented in a flexible manner, and can be covered in a variety of different arrangements.


## Introdução á Teoria da Computação

Titulo Introdução á teoria da computação
Autor Michael Sipser
Ano de Publicação 2005
Edição 2.a edição.
### Descrição

Esta obra apresenta a teoria da computação por meio de teoremas e provas, sempre com a preocupação do autor em mostrar a intuição por trás de cada resultado e em amenizar a leitura destas últimas, apresentando, para cada teorema, uma ideia da prova. Com este livro, através da prática de resolução de problemas, os alunos, nos exercícios, revisarão definições e conceitos da área e, nos problemas, irão se deparar com atividades que exigem maior engenhosidade. Os três últimos capítulos são novos, e esta 2ª edição incorpora as sugestões de professores e alunos enviadas ao autor ao longo dos anos. Contém material para mais de um semestre de curso, propiciando flexibilidade para escolha de tópicos a serem mais ou menos explorados.


## Introduction to the Theory of Computation

Titulo Introduction to the Theory of Computation
Autor Michael Sipser
Ano de Publicação 2012
Edição 3.a edição.
### Descrição

Gain a clear understanding of even the most complex, highly theoretical computational theory topics in the approachable presentation found only in the market-leading INTRODUCTION TO THE THEORY OF COMPUTATION, 3E. The number one choice for today's computational theory course, this revision continues the book's well-know, approachable style with timely revisions, additional practice, and more memorable examples in key areas. A new first-of-its-kind theoretical treatment of deterministic context-free languages is ideal for a better understanding of parsing and LR(k) grammars. You gain a solid understanding of the fundamental mathematical properties of computer hardware, software, and applications with a blend of practical and philosophical coverage and mathematical treatments, including advanced theorems and proofs. INTRODUCTION TO THE THEORY OF COMPUTATION, 3E's comprehensive coverage makes this a valuable reference for your continued studies in theoretical computing.


## Introduction to Languages and the Theory of Computation

Titulo Introduction to Languages and the Theory of Computation
Autor John Martin
Ano de Publicação 2010
Edição 4.a edição.
### Descrição

Introduction to Languages and the Theory of Computation helps students make the connection between the practice of computing and an understanding of the profound ideas that defines it. The book's organization and the author's ability to explain complex topics clearly make this introduction to the theory of computation an excellent resource for a broad range of upper level students. The author has learned through many years of teaching that the best way to present theoretical concepts is to take advantage of the precision and clarity of mathematical language. In a way that is accessible to students still learning this language, he presents the necessary mathematical tools gently and gradually which provides discussion and examples that make the language intelligible.

================================================ FILE: extras/bibliography/32_deep_learning.md ================================================ # Livros: Deep Learning 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. ================================================ FILE: extras/bibliography/33_compilers.md ================================================ # Livros: Compiladores
## Compiladores: Princípios, Técnicas e Ferramentas
Título Compiladores: Princípios, Técnias, e Ferramentas
Autores Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman
Ano de Publicação 2007
Edição 2.a edição.
ISBN 9788588639249
### Descrição

Abrangendo desde análise léxica e sintática (com técnicas como parsing LL e LR) até otimização e geração de código, o livro integra teoria (autômatos, gramáticas) e prática (exemplos implementáveis e estudos de caso), além de explorar tópicos modernos como compilação just-in-time e paralelismo. Sua abordagem equilibra rigor técnico e clareza, ensinando não só sobre compiladores, mas também desenvolvendo habilidades em algoritmos e design de sistemas, sendo relevante para estudantes, engenheiros e entusiastas de linguagens de programação.


================================================ FILE: extras/bibliography/34_quantum_computing.md ================================================ # Livros: Computação Quântica 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. ================================================ FILE: extras/bibliography/35_methodology.md ================================================ # Livros: Metodologia da Pesquisa Metodologia de Pesquisa para Ciência da Computação - Raul Sidnei WAZLAWICK Bases Teóricas para Redação Científica - Gilson Volpato ================================================ FILE: extras/books.md ================================================ # Livros Sobre a Área de Computação: - Entendendo Algoritmos: Um Guia Ilustrado Para Programadores e Outros Curiosos. A venda na [Amazon](https://www.amazon.com.br/Entendendo-Algoritmos-Ilustrado-Programadores-Curiosos/dp/8575225634) - Algoritmos - Teoria e Prática. A venda na [Amazon](https://www.amazon.com.br/Algoritmos-Teoria-Pr%C3%A1tica-Thomas-Cormen/dp/8535236996/) - Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientados a Objetos e ao Desenvolvimento Iterativo. A venda na [Amazon](https://www.amazon.com.br/Utilizando-UML-Padr%C3%B5es-Introdu%C3%A7%C3%A3o-Desenvolvimento-ebook/dp/B016V9PZXA) - Código limpo: Habilidades práticas do Agile Software. A venda na [Amazon](https://www.amazon.com.br/C%C3%B3digo-limpo-Robert-C-Martin/dp/8576082675) - Engenharia de Software: Uma Abordagem Profissional. A venda na [Amazon](https://www.amazon.com.br/Engenharia-Software-Uma-Abordagem-Profissional/dp/8580555337) - Redes de computadores e a Internet. A venda na [Amazon](https://www.amazon.com.br/Redes-computadores-Internet-James-Kurose/dp/8582605587) - Introdução à ciência da computação. A venda na [Amazon](https://www.amazon.com.br/Introdu%C3%A7%C3%A3o-ci%C3%AAncia-computa%C3%A7%C3%A3o-Ricardo-Fedeli/dp/8522108455) - Matemática Discreta e Suas Aplicações. A venda na [Amazon](https://www.amazon.com.br/Matem%C3%A1tica-Discreta-Aplica%C3%A7%C3%B5es-Kenneth-Rosen/dp/8577260364) - Introdução à Programação com Python: Algoritmos e Lógica de Programação Para Iniciantes. A venda na [Amazon](https://www.amazon.com.br/Introdu%C3%A7%C3%A3o-Programa%C3%A7%C3%A3o-com-Python-Algoritmos/dp/8575227181) - Pense em Python: Pense Como um Cientista da Computação. A venda na [Amazon](https://www.amazon.com.br/Pense-Python-Como-Cientista-Computa%C3%A7%C3%A3o/dp/8575225081) - Artificial Intelligence: A Modern Approach. A venda na [Amazon](https://www.amazon.com.br/Artificial-Intelligence-Approach-Stuart-Russell/dp/0134610997) - Data science para negócios: O que você precisa saber sobre mineração de dados e pensamento analítico de dados. A venda na [Amazon](https://www.amazon.com.br/Data-Science-para-neg%C3%B3cios-Fawcett/dp/8576089726) - Grafos: Teoria, Modelos, Algoritmos. A venda na [Amazon](https://www.amazon.com.br/Grafos-Paulo-Oswaldo-Boaventura-Netto/dp/8521206801) - Problemas Clássicos de Ciência da Computação com Python. A venda na [Amazon](https://www.amazon.com.br/Problemas-Cl%C3%A1ssicos-Ci%C3%AAncia-Computa%C3%A7%C3%A3o-Python/dp/8575228056) - O codificador limpo: Um código de conduta para programadores profissionais. A venda na [Amazon](https://www.amazon.com.br/dp/8576086476) ================================================ FILE: extras/courses.md ================================================ # Ciência da Computação - Ótimos Cursos Essa é uma lista de cursos de excelente qualidade que por uma razão ou outra acabaram não entrando no currículo. Na maior parte dos casos o curso simplesmente não faz parte do currículo porque trata de um assunto que normalmente não faz parte dos conceitos essenciais de ciência da computação ou há algum outro que trata do mesmo conteúdo e decidimos adicioná-lo na grade. ## Programação Curso | Duração | Dedicação :-- | :--: | :--: [Programação Linear](https://www.youtube.com/channel/UCYe-qV12CP64BewDy2-BY5A/playlists) | 3 semanas | 8 horas/semana [Desenvolvimento Orientado a Tipos](https://www.youtube.com/playlist?list=PLYItvall0TqKaY6qObQMlZ45Bo94xq9Ym) | 3 semanas | 8 horas/semana [Engenharia Reversa do Zero](https://www.youtube.com/watch?v=IkUfXfnnKH4&list=PLIfZMtpPYFP6zLKlnyAeWY1I85VpyshAA) | -- | -- ## Ferramentas Curso | Duração | Dedicação :-- | :--: | :--: [O semestre que falta na sua faculdade em ciência da computação](https://missing-semester-pt.github.io/) | 2 semanas | 12 horas/semana [Introdução ao LaTeX](https://www.youtube.com/playlist?list=PLa_2246N48_p9ndUHlO255uvKtSR8mshE) | 1 semanas | 3 horas/semana [LaTeX para Iniciantes](https://www.youtube.com/playlist?list=PLF6ZF9NW0Wmq0cgsPVX_mEhB0Kk81qAeF) | 2 semanas | 9 horas/semana ## Especialização Web Curso | Duração | Dedicação :-- | :--: | :--: [Curso de Vue.js 3](https://www.youtube.com/playlist?list=PLnDvRpP8BnezDglaAvtWgQXzsOmXUuRHL) | -- | -- ## Outros Curso | Duração | Dedicação :-- | :--: | :--: [Pensamento Crítico, Lógica e Argumentação](https://www.coursera.org/learn/pensamento-critico-argumentacao) | 2 semanas | 12 horas/semana ================================================ FILE: extras/softskills.md ================================================ ================================================ FILE: specializations/computer_graphics.md ================================================ ## Computação Gráfica A computação gráfica é a área da computação destinada à geração de imagens em geral — em forma de representação de dados e informação, ou em forma de recriação do mundo real. Ela pode possuir uma infinidade de aplicações para diversas áreas, desde a própria informática, ao produzir interfaces gráficas para software, sistemas operacionais e sites na Internet, quanto para produzir animações e jogos. Curso | Duração | Dedicação | Conteúdos :-- | :--: | :--: | :--: [Pixar in a Box](https://pt.khanacademy.org/partner-content/pixar-latam) | 2 Semanas | 3 horas/semana | Renderização; Animação; Curvas; 3D. [Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) ¹ | 2 semanas | 4 horas/semana | Vetores; Matrizes; Tensores; Espaços; Bases; Transformações. [Programação em Julia](https://www.youtube.com/playlist?list=PL5TJqBvpXQv4TO4Y_JZExBCBzNXDLYUCj) ² | ? Semanas | ? horas/semana | Algoritmos; Julia; Algebra Linear. [Tópicos de Computação Gráfica](https://www.youtube.com/playlist?list=PL5TJqBvpXQv5zNlgvgH2HGuhZHpnkT3oo) | ? Semanas | ? horas/semana | Ray Tracing; Reflexos; Imagens; Reconstrução de Imagens. [Conceitos Básicos de Computação Gráfica](https://www.youtube.com/playlist?list=PLo4jXE-LdDTRGoEarRQXBIalJkjSP-aGA) | 4 Semanas | 8 horas/semana | Objetos gráficos; Modelagem geométrica; Fundamentos de sistemas gráficos. [Processamento de Imagens](https://www.youtube.com/playlist?list=PLo4jXE-LdDTRaFa39TdNN3FgPAKkcuHvj) | 4 Semanas | 8 horas/semana | Imagem digital; Quantização; Operações com imagens; Dithering; warping de imagens; Aplicações [Processamento de Imagens em Python](https://www.youtube.com/playlist?list=PL5TJqBvpXQv54i_HWjd7s70vbP4Is7sK_) | ? Semanas | ? horas/semana | Redimensionamento; Efeitos; Animação; Detecção. [Programação em C++](https://www.youtube.com/playlist?list=PLIUc9-A-aPpqrzY3YuWDUOyQLOBCb5lck) | 3 Semanas | 4 horas/semana | OOP; Smart Pointers; Biblioteca padrão. [OpenGL C++ - Gráficos 3D](https://www.youtube.com/playlist?list=PLVRDPs83ZhmcXYuktF3r2hfyoabg_EVPO) | 3 Semanas | 3 horas/semana | OpenGL; C++; Iluminação; Câmera; Modelagem de giguras geométricas; Prática ¹ Áudio em Inglês, mas legendas em Português do Brasil. ² Esse curso está disponível apoiando a partir de R$ 2,99/mês o Canal. ================================================ FILE: specializations/cybersecurity.md ================================================ ## CyberSecurity A área da segurança da informação vem crescendo cada vez mais com a ascenção da Internet e dos negócios digitais. Além disso, a LGPD bateu a nossa porta e muitos profissionais precisaram se adaptar e adptar seus softwares. Ou seja, a área de segurança da informação não é voltada somente para usuários finais, mas também para desenvolvedores escrevem códigos mais seguros. Curso | Duração | Dedicação | Conteúdos :-- | :--: | :--: | :--: [Introdução a CiberSegurança*](https://www.edx.org/learn/cybersecurity/harvard-university-cs50-s-introduction-to-cybersecurity) | 6 semanas | 3 horas/semana | Segurança; Introdução [Fundamentos CiberSegurança*](https://www.udemy.com/course/certified-secure-netizen/) | 2 semanas | 2 horas/semana | Nomenclaturas; Encriptação; Fundamentos [Cybersecurity](https://www.eucapacito.com.br/curso-ec/cybersecurity) | 6 semanas | 3 horas/semana | Segurança; Introdução [OWASP do início*](https://www.udemy.com/course/owasp-zap-from-scratch/) | 2 semanas | 2 horas/semana | OWASP; Força bruta [Introdução ao Hacking e Pentest](https://solyd.com.br/treinamentos/introducao-ao-hacking-e-pentest-2/) | 4 semanas | 2 horas/semana | Pentest; Vulnerabilidades [Forense Digital*](https://acaditi.com.br/essentials-series/#dfe) | 8 semanas | 5 horas/semana | Essencial de Forense Digital [Sistema de SIEM*](https://www.elastic.co/training/elastic-security-fundamentals-siem) | 1 dia | 4 horas/dia | Exemplo e Introdução à SIEM [O que é SAST?](https://www.microfocus.com/pt-br/what-is/sast) | 1 semana | 2 horas/semana | Estático; Análise [O que é DAST?](https://www.microfocus.com/pt-br/what-is/dast) | 1 semana | 2 horas/semana | Dinâmico; Análise [O que é IAST?](https://www.nova8.com.br/2020/01/17/o-que-e-iast/) | 1 semana | 2 horas/semana | SAST; DAST; IAST [O que é RASP?](https://blog.convisoappsec.com/rasp-no-cenario-de-appsec/) | 1 semana | 2 horas/semana | RASP [Introdução a LGPD](https://www.escolavirtual.gov.br/curso/603) | 2 semanas | 7 horas/semana | Fundamentos da Lei Geral de Proteção de Dados [Criptografia Parte 1](https://www.youtube.com/watch?v=CcU5Kc_FN_4) | 1 semana | 2 horas/semana | Criptografia [Criptografia Parte 2](https://www.youtube.com/watch?v=HCHqtpipwu4) | 1 semana | 2 horas/semana | Criptografia [Configurar chaves públicas e privadas](https://www.youtube.com/watch?v=7BEsfupYngE) | 1 semana | 2 horas/semana | Chaves de autenticação [Curso de Engenharia Reversa Online](https://hackaflag.com.br/academy.html) | 6 semanas | 2 horas/semana | Introduçao Engenharia Reversa [Teoría e Ferramentas de Comando e Controle](https://www.youtube.com/watch?v=bUqu8fh7xUg) | 4 dias | 2 horas/dia | Hacking - Ferramentas de Comando e Controle [Curso Python para Pentesters](https://www.youtube.com/watch?v=KsUTiurSGJM&list=PLY-Tw02f5SDIP3CRtcaenRQc8Yz52m6XZ) | 12 semanas | 3 horas/semana | Python; Programação paralela e concorrente; Redes de computadores; Segurança ofensiva Observações: * Material em inglês Especialização em construção. ================================================ FILE: specializations/data_science.md ================================================ ### Ciência de Dados Ciência de dados (Data science) é uma área interdisciplinar voltada para o estudo e a análise de dados econômicos, financeiros e sociais, estruturados e não-estruturados, que visa a extração de conhecimento, detecção de padrões e/ou obtenção de insights para possíveis tomadas de decisão. Ciência de dados enquanto campo existe há 30 anos, porém ganhou mais destaque nos últimos anos devido a alguns fatores como o surgimento e popularização de grandes bancos de dados e o desenvolvimento de áreas como machine learning. Cientistas de Dados podem trabalhar no setor privado, por exemplo, transformando grande quantidade de dados brutos em insights de negócios, auxiliando empresas em tomadas de decisões para atingir melhores resultados ou na academia e terceiro setor como pesquisadores quantitativos interdisciplinares. > Esse é a primeira trilha de especialização a conter material que não é nativamente produzido em Português (legendado), isso ainda é um experimento e está sendo discutido e votado através [desta issue](https://github.com/Universidade-Livre/ciencia-da-computacao/issues/6), sua opinião é muito importante para nós. Caso faça uso do mesmo e queira fazer algum feedback apreciaremos muito saber sobre sua experiência! **Áreas de aplicação**: Curso | Duração | Dedicação | Conteúdos :-- | :--: | :--: | :--: [The Data Scientist’s Toolbox](https://www.coursera.org/learn/data-scientists-tools?specialization=data-science-foundations-r) ¹ | 4 semanas | 4 horas / semana | Git; RMarkdown; Básico de R; Básico de Análise de Dados. [Análise de Dados em Linguagem R](https://www.escolavirtual.gov.br/curso/325) | 5 semanas | 4 horas / semana | R; RStudio; ML; Análise de Dados. [Estatística Descritiva Básica](https://www.youtube.com/playlist?list=PLw9ZE443YE45QSRr576gk6ZfhbWVjiIbr) | 2 horas | 1 semana | Associações; Tipos de Variáveis; Variância e Desvio; Tipos de Gráficos. [Essence of Linear Algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab) ¹ | 2 semanas | 4 horas/semana | Vetores; Matrizes; Tensores; Espaços; Bases; Transformações. [Getting and Cleaning Data](https://www.coursera.org/learn/data-cleaning?specialization=data-science-foundations-r) ¹ | 4 semanas | 8 horas / semana | Manipulaçao de Dados; Limpeza de Dados; Expressões Regulares; APIs. [Exploratory Data Analysis](https://www.coursera.org/learn/exploratory-data-analysis?specialization=data-science-foundations-r) ¹ | 4 semanas | 15 horas / semana | Plotagem de Dados; Sistemas avançados; Padrões de Dados. [Reproducible Research](https://www.coursera.org/learn/reproducible-research?specialization=data-science-foundations-r) ¹ | 4 semanas | 2 horas/semana | Organização de Dados; Pesquisa. [Estatística computacional](https://www.youtube.com/playlist?list=PLUUx2DlFul6LjL3K9AZT2nTlyZ4o38tE7) | 5 semanas | 4 horas / semana | Razão e Distribuição; Geração de Variáveis; Monte Carlo; Jacknife; AIC e BIC; DIC. (*Em construção*) ¹ Áudio em Inglês, mas legendas em Português do Brasil. ================================================ FILE: specializations/database_administration.md ================================================ ### Database Administrator (DBA) **Áreas de aplicação**: `administração de banco de dados` `organização de tabelas de dados` `otimização de querys` `segurança de dados` `criação de rotinas de bd` `big data` `e mais` (*Em construção*) ================================================ FILE: specializations/devops.md ================================================ ## DevOps A metodologia DevOps é uma abordagem de cultura, automação e design de plataforma que tem como objetivo agregar mais valor aos negócios e aumentar sua capacidade de resposta às mudanças por meio de entregas de serviços rápidas e de alta qualidade. Isso tudo é possível por meio da disponibilização de serviços de TI iterativa e rápida. Adotar o DevOps significa conectar aplicações legadas a uma infraestrutura e aplicações modernas e nativas em nuvem. A palavra "DevOps" é a combinação dos termos "desenvolvimento" e "operações". No entanto, ela representa um conjunto de ideias e práticas que ultrapassam o significado desses dois termos. O DevOps inclui segurança, maneiras colaborativas de trabalhar, análise de dados e muitas outras práticas e conceitos. Mas do que se trata exatamente? A metodologia DevOps descreve abordagens que ajudam a acelerar os processos necessários para levar uma ideia do desenvolvimento à implantação em um ambiente de produção no qual ela seja capaz de gerar valor para o usuário. Essas ideias podem ser um novo recurso de software, uma solicitação de aprimoramento ou uma correção de bug, entre outros. Essas abordagens exigem comunicação frequente entre as equipes de desenvolvimento e operações, trabalho colaborativo e empatia com os demais membros das equipes. Também são necessários provisionamento flexível e escalabilidade. Texto retirado do: https://www.redhat.com/pt-br/topics/devops Curso | Duração | Dedicação | Conteúdos :-- | :--: | :--: | :--: [Curso de Linux](https://www.youtube.com/playlist?list=PLucm8g_ezqNp92MmkF9p_cj4yhT-fCTl7) | 6 semanas | 2 horas/semana | Curso Completo para LPIC-1 Linux, dando base para entendimento do sistema [Linux Essentials](https://4linux.com.br/cursos/treinamento/linux-essentials/) | 12 semanas | 2 horas/semana | GNU/Linux; Conhecimentos para a Linux Essentials [Curso Básico de Bash](https://www.youtube.com/playlist?list=PLXoSGejyuQGpf4X-NdGjvSlEFZhn2f2H7) | 4 semanas | 2 horas/semana | Básico de Bash [Curso de Shell Scripting](https://www.youtube.com/playlist?list=PLucm8g_ezqNrYgjXC8_CgbvHbvI7dDfhs) | 2 semanas | 2 horas/semana | Shell Scripting [DevOps Essentials](https://4linux.com.br/cursos/treinamento/devops-essentials/) | 12 semanas | 2 horas/semana | Entender a cultura DevOps; Ferramentas; Pipeline [Cloud Essentials](https://4linux.com.br/cursos/treinamento/cloud-fundamentals/) | 12 semanas | 2 horas/semana | IaaS, PaaS e SaaS; GCP/AWS/Azure; SSH [Curso de Introdução ao Vagrant](https://www.youtube.com/playlist?list=PLmSWX0ePcw4j6xaMvvTuYI0BgKadati5L) | 1 semana | 2 horas/semana | Introdução ao Vagrant e seus conceitos [Curso Docker Completo](https://www.youtube.com/playlist?list=PLg7nVxv7fa6dxsV1ftKI8FAm4YD6iZuI4) | 1 semana | 2 horas/semana | Docker Básico e CLI Docker [Descomplicando o Docker](https://www.youtube.com/playlist?list=PLf-O3X2-mxDn1VpyU2q3fuI6YYeIWp5rR) | 4 semanas | 2 horas/semana | Docker; Containers; Docker Swarm; Docker Hub [Docker e Docker Compose do zero ao Deploy](https://www.youtube.com/watch?v=yb2udL9GG2U) | 1 semana | 2 horas/semana | Docker em produção; Docker Compose; Conceitos de Deploy [Curso de Introdução ao Kubernetes](https://www.youtube.com/playlist?list=PLXzx948cNtr8XI5JBemHT9OWuYSPNUtXs) | 2 semanas | 2 horas/semana | Introdução ao Kubernetes e seus conceitos [Intensivo Kubernetes: O mínimo que um dev precisa saber](https://www.youtube.com/watch?v=5unI7VPnASM) | 1 semana | 2 horas/semana | Kubernetes essencial para desenvolvimento [Intensivo Gitflow](https://www.youtube.com/watch?v=dJjVr6Ya7B8) | 1 semana | 2 horas/semana | Gitflow e seus conceitos [Desbravando CI/CD](https://www.youtube.com/playlist?list=PL7ScB28KYHhGTTHA2PFe0DmHmt3qU4YgM) | 2 semanas | 2 horas/semana | Conceitos práticos de CI/CD Especialização em construção. ================================================ FILE: specializations/embedded_systems.md ================================================ ## Embarcados Um sistema embarcado (ou sistema embutido) é um sistema microprocessado no qual o computador é completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferentemente de computadores de propósito geral, como o computador pessoal, um sistema embarcado realiza um conjunto de tarefas predefinidas, geralmente com requisitos específicos. Sistemas embarcados são utilizados para o desenvolvimento de veículos, eletrodomésticos, hardware de dispositivos computacionais e muitas outras coisas que usamos no nosso dia-a-dia. Curso | Duração | Dedicação | Conteúdos :-- | :--: | :--: | :--: [Microeletrônica](https://integra.univesp.br/courses/2344) | 7 Semanas | 4 horas / semana | Física; Fotolitografia; Oxidação; Deposição; Epitaxia; CMOS. [Curso de C moderno](https://www.youtube.com/playlist?list=PLIfZMtpPYFP5qaS2RFQxcNVkmJLGQwyKE) | 4 Semanas | 3 horas/semana | C; GDB; Tooling; Unix. [Curso de Makefile](https://www.youtube.com/playlist?list=PLLCFxfe9wkl-tCZvSCbzQGcNv9nSN5ZAP) | 4 Semanas | 3 horas/semana | Make; Makefile. [Conceitos de Eletrônica](https://www.youtube.com/playlist?list=PLfdR3_dt2rbcv2CmrbeT8wu50Yga0fjE8) | 4 Semanas | 3 horas/semana | Sinais; Circuitos; Energia; Polaridade. [Eletrônica Embarcada](https://integra.univesp.br/courses/2710) | 7 Semanas | 4 horas / semana | Embarcados em Veículos; GNSS; Instrumentação; Implementação. [Eletrônica para Iniciantes](https://www.youtube.com/playlist?list=PLZ8dBTV2_5HQpKzBt3nJex3Mbk7hmhFHl) | 5 Semanas | 8 horas/semana | Esquemáticos; Portas Lógicas; Circuitos; Carga. [Curso de AVR-C](https://www.youtube.com/playlist?list=PLMdNWywlSE5QPsEeT_cXisUT366NS3U8R) | 2 Semanas | 4 horas/semana | C para Microcontroladores; Operações bit-a-bit; Datasheets. [Curso de AVR Periféricos](https://www.youtube.com/playlist?list=PLMdNWywlSE5TtOxRm6frvH_om1NOyj33H) | 2 Semanas | 3 horas/semana | Displays; Timers; Conversores; Comunicação. [Curso de Assembly para ATMega328](https://www.youtube.com/watch?v=JEE9RvwEDuo&list=PLw-GnG0Kv5F7UM9y-FUmw7sI5sjdbaSpe) | 2 Semanas | 2 horas/semana | ASM; IO; Portas; Endereços. [Curso de C++](https://www.youtube.com/playlist?list=PLIUc9-A-aPpqrzY3YuWDUOyQLOBCb5lck) | 3 Semanas | 4 horas/semana | OOP; Smart Pointers; Biblioteca padrão. [Curso de FreeRTOS](https://www.youtube.com/playlist?list=PLU15eSNTfwrnlzgvMmb1NK7l0qNo8UMKr) | 2 Semanas | 2 horas/semana | Filas; Tasks; Timers; Async. [Curso de MQTT](https://www.youtube.com/watch?v=WqHIFSYMHy0) | 2 Semanas | 2 horas/semana | Broker; Publisher; QoS; Mensagens. [Curso de LoRaWan](https://www.youtube.com/watch?v=iPGXyeHv5JQ&list=PLU15eSNTfwrnd1I835eFA124rd4CVGq3e) | 1 Semana | 3 horas/semana | Protocolo; Camadas; ADR; AU915. [Curso de FPGA](https://www.youtube.com/playlist?list=PLZ8dBTV2_5HS79fVexGTtCMDUp7kjnumS) | 4 Semanas | 4 horas/semana | VHDL; Verilog; ASIC. ================================================ FILE: specializations/mobile_development.md ================================================ ### Desenvolvimento Mobile **Áreas de aplicação**: `jogos mobile` `aplicativos para smartphone` `desenvolvimento para tablets` `iOS && Android` `aplicativos comerciais` `redes sociais` `e mais` (*Em construção*) ================================================ FILE: specializations/web_development.md ================================================ ## Desenvolvimento Web Desenvolvimento web é o termo utilizado para descrever o desenvolvimento de sites, na Internet ou na intranet. O profissional que trabalha desenvolvendo websites pode ser um web designer (desenvolvedor do layout) ou um web developer (desenvolvedor de sistemas). O desenvolvimento refere-se a um processo de construção e testes do software específico para a web, com a finalidade de se obter um conjunto de programas, que satisfazem as funções pretendidas, quer em termos de usabilidade dos usuários ou compatibilidade com outros programas existentes. O desenvolvimento web pode variar desde simples páginas estáticas a aplicações ricas, comércios eletrônicos ou redes sociais. Curso | Duração | Dedicação | Conteúdos :-- | :--: | :--: | :--: [HTML e CSS, Parte I](https://www.cursoemvideo.com/curso/html5-css3-modulo1/) | 5 Semanas | 8 horas/semana | Tags; Hierarquias; Semântica. [HTML e CSS, Parte II](https://www.cursoemvideo.com/curso/curso-html5-e-css3-modulo-2-de-5-40-horas/) | 5 Semanas | 8 horas/semana | Elementos; IDs; Variáveis. [JavaScript Básico](https://www.cursoemvideo.com/curso/javascript/) | 5 Semanas | 8 horas/semana | Sintaxe; DOM; Funções. [Curso de JavaScript ES6](https://www.youtube.com/playlist?list=PLWhiA_CuQkbCX9nHuk4rolDYxlLUwXpNI) | 4 Semanas | 2 horas/semana | Módulos; Async/Await; Promisses; Estrutura de Dados. [Debuggando JavaScript](https://www.youtube.com/playlist?list=PLg2lQYZDBwORqALpRkVPXEdgOloQz8sux) | - | 30 minutos | Logs; DEV Tools. [Curso de SASS](https://www.youtube.com/watch?v=XwPSWKnZIg4&list=PL97KElaimHeGRtfkksKwxg6IGVZi_cR7J) | 2 Semanas | 2 horas/semana | Preprocessamento CSS; Mixin; Output. [Node.js (Express)](https://www.youtube.com/playlist?list=PLJ_KhUnlXUPtbtLwaxxUxHqvcNQndmI4B) | 4 Semanas | 4 horas/semana | Handlebars; Middlewares; Sequelize; MVC. [ESLint + Prettier + editorconfig](https://www.youtube.com/watch?v=9UJYaAt7v2o) | - | 30 minutos | Formatação de Código; Padronização de Código; Linters. [Curso Básico REST APIs](https://www.youtube.com/playlist?list=PL3B-OV5dZTqbaLi1f2UmXEWbcx9WyYaTX) | 4 Semanas | 4 horas/semana | Modelos de Maturidade; Verbos e Status; Recursos; Modelagem. [Curso de React](https://www.youtube.com/playlist?list=PLx4x_zx8csUh752BVDGZkxYpY9lS40fyC) | 4 Semanas | 4 horas/semana | Componentes; Estado; Hooks; API; Navegação. [Mini-curso de TypeScript](https://www.youtube.com/playlist?list=PLlAbYrWSYTiPanrzauGa7vMuve7_vnXG_) | 2 Semanas | 2 horas/semana | Tipos; Compilador; Classes; Generics. [Node (Express) com TypeScript](https://www.youtube.com/playlist?list=PLn3kOoc0oI2cQDdUEQxj75sxgRH53DmSc) | 2 Semanas | 2 horas/semana | Rotas; JWT; Tipos; Optionals.