Curso POO Teoria #01a - O que é Programação Orientada a Objetos
Introdução ao Curso de Programação Orientada a Objetos
Apresentação do Curso
- O curso de programação orientada a objetos é introduzido pelo professor Gustavo Guanabara, que grava o início das aulas no escritório do Google.
- O curso abrange PHP e Java, atendendo a uma demanda crescente dos alunos após cursos anteriores sobre algoritmos e linguagens de programação.
Formato e Acessibilidade
- Um novo formato dinâmico foi implementado, com foco em acessibilidade para alunos com deficiência auditiva, mantendo o professor visível na tela.
- Serão lançados três vídeos por semana, permitindo que os alunos escolham quais conteúdos assistir.
Pré-requisitos para o Curso
Importância do Conhecimento Prévio
- É recomendado ter conhecimento básico em algoritmos antes de iniciar o curso de programação orientada a objetos.
- Os conceitos fundamentais como variáveis e procedimentos serão abordados; portanto, um entendimento prévio é essencial.
Cursos Recomendados
- Para as aulas práticas em PHP e Java, é necessário ter completado os cursos correspondentes dessas linguagens.
- Alunos podem optar por estudar apenas teoria ou praticar em ambas as linguagens conforme desejarem.
Estrutura das Aulas
Organização Semanal
- Cada semana terá uma aula teórica e duas aulas práticas (uma para PHP e outra para Java).
- As aulas práticas focarão na preparação dos ambientes necessários para trabalhar com objetos nas duas linguagens.
Conteúdo da Primeira Aula
- A primeira aula aborda a origem da programação orientada a objetos, um tema recorrente nos cursos oferecidos.
- O curso se concentrará tanto em PHP quanto em Java, permitindo que os alunos pratiquem os conceitos aprendidos na linguagem de sua escolha.
Conceitos Fundamentais da Programação Orientada a Objetos
Definição e Siglas
- A sigla POO (Programação Orientada a Objetos), frequentemente vista nos textos relacionados ao tema, refere-se à abordagem utilizada no desenvolvimento de software.
Objetivos da Programação Orientada a Objetos
A Evolução da Programação: Da Baixo Nível à Orientada a Objetos
Introdução à Programação Orientada a Objetos
- O objetivo da programação orientada a objetos (POO) é aproximar o mundo digital do mundo real, facilitando o aprendizado para novos programadores.
- A nova filosofia de desenvolvimento tem simplificado o processo de aprendizagem para iniciantes, conhecidos como "gafanhotos".
História da Programação
- Antigamente, na década de 40 e 50, a programação era feita em baixo nível, onde as instruções eram dadas em binário e dependiam do tipo de computador.
- Essa abordagem dificultava o aprendizado, pois não havia um padrão; cada computador exigia uma forma diferente de programação.
Evolução das Linguagens de Programação
- Com o tempo, surgiram linguagens de alto nível que tornaram a programação mais compreensível, mas ainda limitadas pela sua linearidade.
- A programação estruturada surgiu como uma evolução da linearidade, permitindo que pequenos pedaços de código fossem executados fora da ordem natural.
Avanços com Programação Modular
- A programação modular permitiu criar módulos estruturados que valorizavam dados e funcionalidades em pequenas cápsulas.
- Apesar dos avanços, a programação modular teve vida curta devido ao surgimento da POO.
O Paradigma da Programação Orientada a Objetos
- A POO representa uma evolução significativa nas linguagens de programação, permitindo maior flexibilidade e organização no desenvolvimento.
- Alan Kay é reconhecido como um dos pais da POO; ele tinha formação em matemática e biologia e focou seus projetos na educação infantil.
Conceitos Fundamentais Criados por Alan Kay
- Alan Kay formulou um postulado sobre computadores funcionarem como organismos vivos, onde cada célula (ou objeto) opera autonomamente mas se relaciona com outras para alcançar objetivos comuns.
- Sua visão integrava conceitos lógicos e biológicos na definição do funcionamento dos sistemas computacionais.
Aplicações Práticas da POO
- Os conceitos criados por Alan Kay podem ser explicados através de objetos cotidianos; qualquer objeto pode ilustrar os princípios fundamentais da POO.
Recado Importante e Oportunidades de Emprego
Introdução ao Curso e Patrocinadores
- O vídeo interrompe a programação normal para um recado importante sobre uma proposta de emprego relacionada ao curso de programação orientada a objetos.
- A Hostnet, uma das maiores empresas de hospedagem do Brasil, é um dos patrocinadores do curso em vídeo, apoiando o projeto desde o início.
- A Hostnet oferece serviços de hospedagem e é recomendada para quem já fez cursos como PHP e HTML, destacando sua qualidade.
Oportunidade com a Hostnet
- A Udinese está buscando representantes que saibam construir sites, oferecendo uma oportunidade de emprego para os alunos do curso.
- Os interessados devem acessar o site da Hostnet para verificar as oportunidades disponíveis.
Sistema Educandos: Preparatório Militar
- O segundo patrocinador mencionado é o Sistema Educandos, conhecido por ser o maior curso preparatório militar no Brasil.
- Resultados significativos foram alcançados pelos alunos do curso, incluindo altas notas na marinha e aeronáutica.
Contribuição dos Gafanhotos
- Muitos gafanhotos estão patrocinando o curso em vídeo; há um convite para que mais pessoas contribuam financeiramente.
- Atualmente existem 124 apoiadores que garantem a continuidade das aulas. Contribuições são bem-vindas independentemente do valor.
Alan Kay e Inovações Tecnológicas
Vida Profissional de Alan Kay
- Alan Kay desenvolveu conceitos inovadores sobre interação educacional utilizando computadores durante sua carreira na Xerox.
Projetos na Xerox
- Na Xerox, ele participou de projetos importantes como o mouse e a interface gráfica no Palo Alto Research Center (PARC).
Dynabook: Um Protótipo Visionário
- Alan Kay idealizou o Dynabook, um dispositivo educativo projetado para crianças com tela interativa e teclado.
- Embora tenha sido criado em papelão nos anos 70, suas ideias previam tecnologias que hoje são comuns como tablets.
Legado do Dynabook
A Importância da Programação Orientada a Objetos
O Legado de Alan Kay
- Alan Kay é reconhecido por seus conceitos que influenciaram o desenvolvimento de tecnologias modernas, mesmo que seu projeto inicial tenha permanecido como protótipo.
- Ele criou uma linguagem de programação para suportar suas ideias, pois as linguagens existentes não eram compatíveis com os conceitos dinâmicos que ele propunha.
- A primeira linguagem de programação orientada a objeto foi desenvolvida sob sua liderança, incorporando conceitos como classes, objetos, atributos e métodos.
A Trajetória Profissional de Alan Kay
- Após seu trabalho na Xerox, Alan Kay colaborou com empresas renomadas como Apple e Disney, além de ter passado pela HP.
- É considerado o "pai da orientação a objeto", sendo fundamental entender a evolução da programação para apreciar sua importância.
Comparação entre Programação Estruturada e Orientada a Objetos
- Na programação estruturada, dados são tratados em massa por procedimentos que nem sempre utilizam todos os dados disponíveis.
- Isso pode resultar em um sistema confuso onde procedimentos filtram dados antes do uso.
- A proposta de Alan Kay foi simplificar isso através do conceito de objetos, onde cada objeto possui seus próprios dados e métodos relevantes.
Vantagens da Programação Orientada a Objetos
- Métodos associados aos objetos utilizam apenas os dados pertinentes ao seu contexto, eliminando a necessidade de filtros adicionais.
- Um exemplo prático é o controle remoto: programá-lo em uma linguagem orientada a objetos foca nas funcionalidades dos botões em vez dos detalhes internos do circuito.
Linguagens Compatíveis com Orientação a Objetos
- Existem várias linguagens no mercado que implementam conceitos de orientação a objetos; algumas não são totalmente compatíveis ou são baseadas em classes.
- Exemplos incluem C++, Java e PHP. C++ é fundamental para orientação a objetos mas não é estritamente orientado; Java exige essa abordagem enquanto PHP permite flexibilidade.
Vantagens da Programação Orientada a Objetos
Introdução à Programação Orientada a Objetos
- A Microsoft e a Apple contribuem para linguagens de programação como C# e Objective-C, respectivamente. A maioria das linguagens modernas é orientada a objetos, o que torna essencial entender esses conceitos.
Principais Vantagens da Programação Orientada a Objetos
- Seis vantagens principais são frequentemente citadas na programação orientada a objetos. É importante memorizar essas vantagens para facilitar o aprendizado e as provas.
Mnemônico "COMER NADA"
- O mnemônico "COMER NADA" ajuda a lembrar as seis vantagens: Confiável, Oportuno, Manutenível, Extensível, Reutilizável e Natural.
Detalhamento das Vantagens
1. Confiabilidade
- A confiabilidade se refere ao isolamento entre partes do software; alterações em uma parte não afetam outras. Por exemplo, um controle remoto pode funcionar com diferentes tipos de pilhas sem necessidade de modificações externas.
2. Oportunidade
- Um software oportuno permite que partes sejam desenvolvidas em paralelo. Isso significa que componentes como o controle remoto e suas pilhas podem ser criados separadamente.
3. Manutenibilidade
- Atualizações em um software são mais fáceis; pequenas modificações beneficiam todas as partes que utilizam um objeto específico, facilitando o processo de manutenção.
4. Extensibilidade
- Softwares devem crescer para permanecer úteis. Um controle remoto pode ser atualizado com novas funcionalidades sem precisar ser recriado do zero.
5. Reutilização
- Objetos podem ser reutilizados em diferentes sistemas; por exemplo, uma classe criada para alunos em uma escola pode ser reaproveitada em um sistema de academia.
6. Naturalidade
- A programação orientada a objetos deve ser intuitiva e fácil de entender, focando mais nas funcionalidades do que nos detalhes técnicos complexos.
Considerações Finais sobre Aprendizado
Aula de Programação Orientada a Objetos
Introdução à Programação Orientada a Objetos
- A programação orientada a objetos (POO) é apresentada como um conceito natural, utilizando exemplos do dia a dia para facilitar o entendimento.
- O acrônimo "COMER NADA" é introduzido para lembrar as vantagens da POO: Confiável, Oportuno, Manutenível, Extensível e Reutilizável.
Preparação do Ambiente de Desenvolvimento
- Para iniciar com PHP, recomenda-se instalar um servidor e um editor de código; o servidor sugerido é o XAMPP e o editor NetBeans.
- O NetBeans será utilizado tanto para PHP quanto para Java, destacando sua compatibilidade com Windows 10.
Escolha do Ambiente
- É importante que os alunos escolham qual linguagem querem aprender: PHP ou Java. As aulas são divididas conforme essa escolha.
- Instruções são dadas sobre como acessar as aulas específicas para configuração dos ambientes de PHP e Java.
Organização das Aulas
- Recomenda-se assistir às aulas através de playlists organizadas para melhor aproveitamento do curso.
- O instrutor enfatiza a importância da inscrição no canal para melhorar o suporte e patrocínios ao projeto.
Agradecimentos aos Colaboradores
- O instrutor agradece aos colaboradores que ajudaram na realização do curso, mencionando que seus nomes serão exibidos nas aulas futuras.
Apresentação de Nomes e Agradecimentos
Lista de Participantes
- O apresentador menciona diversos participantes, incluindo Danilo Pedro de Sousa da Paraíba, Maicon Patrocínio do Espírito Santo e outros, destacando a diversidade geográfica dos colaboradores.
- Continuando a lista, são citados Mário Moreira do Maranhão, Paulo Campos de Minas Gerais e Diego Farias de Pernambuco, entre outros.
- Vítor de Sousa de São Paulo e Jefferson Costa do Distrito Federal também são mencionados, reforçando a ampla participação nacional.
- A lista inclui nomes como Alessi Paiva do Rio de Janeiro e Henrique Barros do Piauí, mostrando a inclusão de diferentes estados brasileiros.
- O apresentador expressa gratidão aos participantes que foram nomeados e reconhece aqueles que não puderam ser mencionados nesta primeira aula.
Reconhecimento e Colaboração
- O apresentador agradece profundamente a todos os colaboradores mencionados, enfatizando que o projeto depende deles para existir.
- Ele destaca que o nome dos participantes será registrado em todas as aulas futuras, mesmo que nem todos sejam citados individualmente em cada sessão.