/LabOOP

Oferecido pelo Departamento de Ciência da Computação do Instituto de Matemática e Estatística da USP. Este curso 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)

Primary LanguageJavaMIT LicenseMIT

Laboratório de Programação Orientada a Objetos

Este curso 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. Na 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)

Na segunda parte do curso, aprenderemos mais padrões de projeto, os princípios SOLID, o que são arcabouços (frameworks), injeção de dependências, veremos aplicações de padrões em sistemas reais e discutiremos desafios para a OO no futuro.

Ao final do curso, o estudante será capaz de refletir sobre aspectos avançados de arquitetura de software e conhecerá técnicas para desenvolver sistemas de qualidade. Com esse curso, você poderá começar a construir um espaço diferenciado entre os profissionais do Desenvolvimento de Software, tanto trabalhando no meio empresarial quanto na academia.