STARTS

Dec 5th 2016

Orientação a Objetos com Java (Coursera)

Neste curso, assumimos que você já sabe desenvolver programas pequenos em Java, mas você talvez não se sinta ainda confortável em projetar programas mais complexos com método e organização. O objetivo deste curso é fazer você compreender os princípios de orientação a objetos por meio da linguagem Java e saber como eficientemente aplicar esses princípios na prática quando projetando e desenvolvendo software de maneira ágil. Os conceitos discutidos e experimentados por você neste curso serão a base para você poder compreender os novos conceitos apresentados nos cursos seguintes desta especialização.

Os conceitos Java apresentados neste curso incluem o seguinte: revisão de conceitos básicos de orientação a objetos, tais como classes, objetos, métodos e atributos, variáveis de instância e de classe; responsabilidades, colaborações e cartões CRC; testes de unidade, uso de plataforma IDE como o Eclipse; herança, classes concretas e abstratas, interfaces, modificadores de acesso, encapsulamento, métodos de acesso; aprofundamento nos conceitos de polimorfismo, sobrecarga e sobreposição; associação de classes, agregação e composição; exceções, delegação e acoplamento abstrato. Em seguida, vocês serão apresentados aos principais princípios usados para organizar o desenvolvimento de programas orientados a objetos com qualidade, dentre os quais, os princípios "Tell, Don't Ask!" e "Law of Demeter". Sempre que conveniente, cada conceito será representado por meio de diagramas UML. Você será exposto a propriedades e anotações em Java.

Ao final deste curso, você terá amadurecido de tal modo suas habilidades de programação que você será capaz de implementar versões iniciais do componente de gamificação constante do Trabalho de Conclusão da Especialização, com base nas boas práticas exercitadas neste curso.


Syllabus


WEEK 1

Classes na Teoria e em Java

Neste módulo você será capaz de identificar, definir e diferenciar os conceitos básicos de orientação a objetos, tanto em teoria quanto em Java: classes, objetos, atributos de classes, construtores de classes, responsabilidades, colaborações e cartões CRC

Graded: O que você aprendeu sobre classes e objetos?

Graded: Mais sobre CRC


WEEK 2

Classes com Java e Modelagem CRC

Olá! Bem-vindo à semana 2 do curso Orientação a Objetos com Java! Nesta semana você aprofundará seu contato com classes e métodos, bem como com modelagem CRC. Ao final desta semana, você será capaz de: 1) modelar o comportamento de classes com métodos em Java; 2) projetar novas classes para uma aplicação por meio da modelagem CRC

Graded: Você sabe utilizar classes?

Graded: Mais sobre Modelagem CRC

Graded: Qual o preço da pizza?


WEEK 3

Testes de Unidade, Diagramas UML, Colaboração e Dependência

Olá! Bem-vindo à semana 3 do curso Orientação a Objetos com Java! Nesta semana você aprofundará seu contato com Testes de Unidade e Diagramas de Classe da UML, bem como com os conceitos de dependência e contrato de classe. Ao final desta semana, você será capaz de: 1) testar com JUnit o comportamento de classes em Java; 2) projetar e representar classes com diagrama de classes da UML

Graded: O que você aprendeu sobre testes?

Graded: Mais sobre diagrama de classes

Graded: Mais sobre dependência e contrato de classes

Graded: Testes da Classe Pizza e CarrinhoDeCompras


WEEK 4

Herança na Teoria e em Java

Olá! Bem-vindo à semana 4 do curso Orientação a Objetos com Java! Nesta semana você aprofundará seu contato com Herança e Modificadores de Acesso. Ao final desta semana, você será capaz de 1) projetar e estruturar programas Java com base em boas práticas no uso de herança, 2) além de garantir acoplamento baixo entre classes pelo uso adequado de modificadores de acesso

Graded: Como funciona a herança?

Graded: Entendendo modificadores de acesso

Graded: Sabe mesmo sobre herança?

Graded: Diferentes tipos de produto


WEEK 5

Encapsulamento, Acoplamento entre Classes e Interfaces do Java

Olá! Bem-vindo à semana 5 do curso Orientação a Objetos com Java! Nesta semana você aprofundará seu contato com os conceitos de Encapsulamento, Acoplamento entre Classes e Interfaces em Java. Ao final desta semana, você será capaz de 1) projetar e estruturar programas Java evitando quebras de encapsulamento e propiciando acoplamento baixo entre classes, 2) além de garantir acoplamento abstrato entre classes pelo uso adequado de interfaces em Java

Graded: Interfaces e Encapsulamento

Graded: Formas de Tratamento


WEEK 6

Polimorfismo, Law of Demeter e Exceções em Java

Olá! Bem-vindo à semana 6 do curso Orientação a Objetos com Java! Nesta semana você aprofundará seu contato com o conceito de Polimorfismo, princípio "Law of Demeter" e Exceções em Java. Ao final desta semana, você será capaz de 1) projetar e estruturar programas Java mais flexíveis e com acoplamento baixo, 2) além de garantir o tratamento adequado de exceções em Java

Graded: O que você aprendeu sobre exceções?

Graded: Jogo das Palavras Embaralhadas