- Level Professional
- Course by Universidade de São Paulo
-
Offered by
About
Estamos muito felizes de lançar agora este curso que apresenta os conceitos mais importantes em torno do paradigma de desenvolvimento mais comum da indústria de software hoje: a Programação Orientação a Objetos (POO). Oferecido pelo Departamento de Ciência da Computação do Instituto de Matemática e Estatística da USP, o curso é voltado para quem já conhece os conceitos básicos de POO e quer se aprofundar no assunto, tornando-se um excelente programador. Ele funciona bem como uma sequência natural aos 2 cursos anteriores do Prof. Fabio Kon do IME-USP no coursera: Introdução à Ciência da Computação com Python. Se você ainda não sabe programar, deve começar por este outro curso: https://www.coursera.org/learn/ciencia-computacao-python-conceitos Mas, se você já sabe programar em outra linguagem confortavelmente, pode vir direto para este curso sem grandes dificuldades. A maior parte dos exemplos de código serão em Java e Python e apresentamos uma pequena visão geral dessas linguagens no início do curso. O curso é dividido em duas partes de aproximadamente 6 semanas cada. Nesta Parte 1, os tópicos cobertos são: (1) Recapitulação dos conceitos básicos de POO (2) UML (Linguagem Unificada de Modelagem OO) (3) Linguagens interpretadas vs. compiladas (4) Orientação a Objetos em Java e em Python (5) Qualidade de Código e Boas Práticas de Programação OO (6) Bugs, depuração e testes (7) Linguagens dinâmicas vs. estáticas (8) Classes abstratas e interfaces (9) Coleções de Objetos (10) Polimorfismo (11) Tratamento de Exceções (12) Streams (Fluxos de dados) (13) Padrões de Projeto (Design Patterns) - Estratégia, Adaptador, Singleton, Método Fábrica, Fábrica Abstrata, Protótipo, Estado (14) Model-View-Controller (MVC) Matricule-se! Estamos esperando por você! Se tiver alguma dúvida, escreva no fórum! Fabio Kon e equipe do IME-USPModules
Introdução ao curso
1
Assignment
- Introdução ao Curso
2
Videos
- Introdução ao Curso
- Bem-vindos primeiríssimos alunos!
Recapitulação de conceitos básicos de OO
1
Assignment
- Conceitos Básicos de Orientação a Objetos
4
Videos
- Conceitos Básicos de Orientação a Objetos
- Sistemas de objetos
- Variáveis de classe vs. variáveis de objeto
- Herança
Unified Modeling Language (UML)
1
Assignment
- Unified Modeling Language (UML)
2
Videos
- Unified Modeling Language (UML)
- Exemplos UML
Linguagens interpretadas vs. linguagens compiladas
1
Assignment
- Linguagens interpretadas vs. linguagens compiladas
1
Videos
- Linguagens Interpretadas vs. Compiladas
Orientação a Objetos em Java
1
Assignment
- Introdução à Linguagem Java
1
Videos
- Introdução à linguagem Java
1
Readings
- (opcional) Livro Introdução a Ciência da Computação com Java e Orientação a Objetos
Orientação a Objetos em Python
2
Videos
- Orientação a Objetos em Python (Parte 1)
- Orientação a Objetos em Python (Parte2)
Qualidade de código e boas práticas de programação
1
Assignment
- Boas práticas em Orientação a Objetos
1
Videos
- Boas Práticas em Orientação a Objetos
Bugs, depuração e testes
1
Assignment
- Bugs, Depuração e Testes automatizados
4
Videos
- Introdução - Depuração e Teste
- Depuração de código Java no Eclipse
- Teste automatizados - Introdução ao Pytest
- Música "Melô do Teste Automatizado" e Entrevista com Daniel Cukier
2
Readings
- Informações adicionais sobre o Pytest
- (opcional) Artigo "A importância dos testes automatizados"
Linguagens dinâmicas vs. linguagens estáticas
1
Assignment
- Linguagens Dinâmicas vs. Linguagens estáticas
1
Videos
- Linguagens Dinâmicas vs. Linguagens estáticas
1
Readings
- Referências sobre Linguagens Dinâmicas e Estáticas
Coleções de Objetos
1
Assignment
- Coleções de Objetos
1
Videos
- Coleções de Objetos
Classes abstratas e interfaces
1
Assignment
- Classes abstratas e interfaces
1
Videos
- Classes abstratas e interfaces
Polimorfismo
1
Assignment
- Polimorfismo
1
Videos
- Polimorfismo
Tratamento de Exceções
1
Assignment
- Tratamento de Exceções
1
Videos
- Tratamento de Exceções
Streams - Fluxos de dados
1
Assignment
- Fluxos de E/S (I/O Streams)
2
Videos
- I/O Streams
- Network Streams
Opcional: Orientação a Objetos em JavaScript
1
Readings
- POO baseada em Protótipos: o caso de JavaScript
Introdução a Padrões de Projeto e Padrão Estratégia
1
Assignment
- Padrões de projeto e Padrão estratégia
1
Videos
- Padrões de Projeto e Padrão Estratégia
1
Readings
- Exemplos do Padrão Estratégia em Python
Adaptador
1
Assignment
- Padrão Adaptador
1
Videos
- Padrão Adaptador
1
Readings
- Exemplos do Padrão Adaptador em Python
Singleton
1
Assignment
- Padrão Singleton
1
Videos
- Padrão Singleton
1
Readings
- Exemplos do Padrão Singleton em Python.
Fábrica Abstrata / Método Fábrica
1
Assignment
- Padrões Método Fábrica e Fábrica Abstrata
2
Videos
- Padrão Método Fábrica
- Padrão Fábrica Abstrata
1
Readings
- Exemplos dos padrões Método Fábrica e Fábrica Abstrata em Python
Protótipo
1
Assignment
- Padrão Protótipo
1
Videos
- Padrão Protótipo
1
Readings
- Exemplos do Padrão Protótipo em Python
Estado
1
Assignment
- Padrão Estado
1
Videos
- Padrão Estado
1
Readings
- Exemplos do Padrão Estado em C++ e Python
MVC
1
Assignment
- Padrão Model-View-Controller (MVC)
1
Peer Review
- Trabalho Final - Projeto de um Pac-Mac Orientado a Objetos
3
Videos
- Padrão Model-View-Controller (MVC)
- Opcional: MVC na Web (usando SpringBoot) - Parte 1: Prática
- Opcional: MVC na Web (usando SpringBoot) - Parte 2: Reflexão
1
Readings
- Exemplos do Padrão MVC em Python
Auto Summary
Dive into "Laboratório de Programação Orientada a Objetos - Parte 1," a comprehensive IT & Computer Science course by Prof. Fabio Kon from USP. Perfect for those with basic OOP knowledge, this course offers an in-depth exploration of OOP concepts, Java and Python programming, UML, code quality, debugging, and design patterns over 6 weeks. Ideal for aspiring professional programmers, the course is available on Coursera with Starter and Professional subscription options. Join now and enhance your programming skills!

Fabio Kon