Seja bem-vindo(a)! 🤗
Este repositório reúne materiais, tarefas, projetos, leituras e referências bibliográficas da disciplina Programação Orientada a Objetos, oferecida no Instituto Brasileiro de Ensino, Desenvolvimento e Pesquisa e ministrada pelo professor Fabricio Santana.
Durante o curso, serão abordados tópicos fundamentais, como introdução à programação, classes, objetos, herança, polimorfismo, encapsulamento e persistência, além de outros conceitos essenciais para a construção de aplicações robustas e escaláveis.
Utilize este material como um recurso adicional para fortalecer seus conhecimentos e aprimorar suas habilidades na linguagem Java.
Nesta página você encontra:
- Links importantes
- Informações iniciais
- Livros de referência
- Artigos
- Slides apresentados em sala
- Cursos de outras universidades
- Plano de ensino (oficial)
- Atividades
- Como fazer?
Para executar os códigos de exemplo, realizar as atividades práticas e desenvolver o projeto, é essencial ter um computador e configurá-lo com as ferramentas apropriadas.
A escolha do computador e do sistema operacional pode impactar significativamente sua experiência no desenvolvimento de softwares.
Para programar em Java, não é necessário um computador de alto desempenho, mas recomenda-se um processador moderno, com pelo menos 16 GB de RAM e um SSD para garantir melhor desempenho na compilação e execução dos programas.
Quanto ao sistema operacional, o Linux é amplamente utilizado por desenvolvedores devido à sua compatibilidade com ferramentas open-source e ambientes de desenvolvimento, mas o Windows e macOS também oferecem suporte completo para Java.
Independentemente do sistema operacional escolhido, seu código poderá ser executado em qualquer outro sistema operacional que possua um ambiente Java devidamente configurado com a Java Virtual Machine geralmente por meio do Java Development Kit (JDK). Isso ocorre porque o Java é uma linguagem multiplataforma, permitindo que programas escritos em Java sejam executados sem modificações em diferentes sistemas operacionais.
Caso esteja utilizando o Windows, uma alternativa prática para desenvolver em um ambiente Linux é o Windows Subsystem for Linux (WSL), que permite rodar distribuições Linux diretamente no Windows com desempenho quase nativo. Outra opção é utilizar um container de desenvolvimento na nuvem, como o GitHub Codespaces, garantindo um ambiente isolado, portátil e fácil de configurar, sem a necessidade de instalar todas as dependências no sistema operacional principal.
Além de um computador e um sistema operacional, para desenvolver software em Java, é necessário instalar uma distribuição do Java Development Kit (JDK). Há várias distribuições do JDK disponíveis, este repositório utiliza OpenJDK, versão 21.
Embora seja possível desenvolver programas em Java utilizando qualquer editor de texto e um terminal, recomenda-se o uso de um Ambiente de Desenvolvimento Integrado (Integrated Development Environment - IDE). As IDEs tornam o desenvolvimento mais eficiente ao oferecer funcionalidades como edição avançada de código, compilação, testes, depuração, geração de pacotes e uma interface gráfica intuitiva.
Existem diversas IDEs para programação em Java no mercado, todas compatíveis com o código deste repositório. No entanto, recomenda-se a utilização do Visual Studio Code (VS Code) devido à sua simplicidade, flexibilidade, extensibilidade e possibilidade de execução online, sem necessidade de instalação. Além disso, o VS Code oferece integração nativa com o GitHub Codespaces, tornando o ambiente de desenvolvimento ainda mais acessível e eficiente.
Desenvolver software é um processo contínuo que exige colaboração e organização, frequentemente envolvendo vários desenvolvedores ao longo do tempo. Para gerenciar versões do código, facilitar o trabalho em equipe e manter um histórico estruturado das alterações, este repositório adota o Git, um sistema de controle de versão distribuído amplamente utilizado. O Git permite acompanhar mudanças no código, trabalhar em diferentes ramificações e sincronizar o projeto com repositórios remotos, como o GitHub.
Em síntese, para aproveitar todo o conteúdo e praticar muito você precisa de no mínimo:
- Um computador com o sistema operacional de sua escolha, recomenda-se utilizar Linux (Ubuntu), Windows com WSL ou o Github Codespaces
- Instalar uma das distribuições do Java Development Kit (JDK), recomenda-se o OpenJDK 21
- Instalar uma IDE, recomenda-se o VS Code com os plugins para Java e Git
Se tudo isso é muito novo para você, invista um tempo em fortalecer sua base de conhecimento com os seguintes recursos:
- Introduction to Linux
- Getting started with Visual Studio Code
- Intro to GitHub
- GitHub Foundations (Microsoft)
- BUDD, Timothy. An Introduction to Object-Oriented Programming. 3. ed. Boston: Addison-Wesley, 2002. ISBN 0-201-76031-2.
- DEITEL, Paul; DEITEL, Harvey. Java: How to Program, Early Objects. 11. ed. Boston: Pearson, 2017. ISBN 978-0-13-474335-6.
- SCHILDT, Herbert. Java: The Complete Reference: Comprehensive Coverage of the Java Language. 12. ed. New York: McGraw Hill, 2021. ISBN 978-1-26-046342-2.
- SEGEWICK, Robert; WAYNE, Kevin. Computer Science: An Interdisciplinary Approach. Boston: Addison-Wesley, 2016. ISBN 978-0-13-407642-3.
- WEISFELD, Matt. The Object-Oriented Thought Process. 5. ed. Boston: Addison-Wesley, 2019. ISBN 978-0-13-476872-4.
- The End of Programming as We Know It
- The Impact of AI on Computer Science Education
- English will become the most popular development language in 6 years
- Why Writing by Hand Is Better for Memory and Learning
- Prompt Engineering
Além dos links na tabela acima, os slides também ficam disponíveis para download em PDF.
Use o padrão de URL:
https://fabriciosantana.github.io/poo/exports/<nome-do-slide>.pdf
Exemplos:
https://fabriciosantana.github.io/poo/exports/01-introduction.pdfhttps://fabriciosantana.github.io/poo/exports/02-platform.pdf
https://www.cs.cornell.edu/courses/JavaAndDS/definitions.html https://www.cs.cornell.edu/info/people/tt/Principled_Programming.html https://andrewcmyers.github.io/oodds/