Curso POO Teoria #01a - O que é Programação Orientada a Objetos

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.

Transforme qualquer vídeo em um resumo como este

Vídeos do YouTube, reuniões, aulas — com transcrição, busca e chat.

Video description

Nessa aula de POO, vamos aprender o que é Programação Orientada a Objetos e quais são as suas principais vantagens em relação a outros tipos de Linguagem de Programação. Gostou da aula? Então torne-se um apoiador do CursoemVídeo acessando o site apoie.me/cursoemvideo Nós do CursoemVideo sempre recomendamos assistir a aula completa, mas se quiser aprender diretamente uma parte específica, clique nos marcadores de tempo a seguir: 0:19 - Qual é o assunto da aula? Aula do Curso de Banco de Dados com MySQL criado pelo professor Gustavo Guanabara para o portal CursoemVideo.com. Curso em Vídeo Site: http://www.cursoemvideo.com YouTube: http://www.youtube.com/cursoemvideo Facebook: http://www.facebook.com/cursosemvideo Twitter: http://twitter.com/cursosemvideo Google+: http://plus.google.com/112666558837414979080 Patrocínio HOSTNET: http://www.hostnet.com.br EDUCANDUS: http://www.sistemaeducandus.com.br GAFANHOTOS: http://apoie.me/cursoemvideo Ask Rufus de Audionautix está licenciada sob uma licença Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/) Artista: http://audionautix.com/