Laboratório de Programação Orientada a Objetos - Parte 1 (Coursera)

Laboratório de Programação Orientada a Objetos - Parte 1 (Coursera)

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.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

Se você ainda não sabe programar, deve começar por este outro curso: Introdução à Ciência da Computação com Python Parte 1

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ê!

Syllabus

WEEK 1
Recapitulação de Orientação a Objetos
Seja bem-vindo ao curso! Nesta primeira semana, vamos apresentar a ideia geral do curso, recapitular os conceitos básicos de Orientação a Objetos (OO), apresentar a linguagem UML de modelagem de sistemas OO e discutir a diferença entre linguagens compiladas, interpretadas e híbridas.
Caso você tenha alguma dúvida ou queira discutir algum assunto de OO, não deixe de postar sua mensagem no Fórum de discussão!

WEEK 2
Nesta semana, vamos iniciar aprendendo a sintaxe das linguagens Java e Python para orientação a objetos. A maioria dos exemplos de código deste curso serão em Java e Python, portanto, você deve ser capaz de compreender código escrito em ambas as linguagens. Caso você já tenha feito o nosso curso anterior do Coursera "Introdução à Ciência da Computação com Python", você já conhece bem a sintaxe de Python e pode pular, sem problema, os dois vídeos de OO em Python. Caso você já conheça bem Java, pode pular o vídeo de introdução à Java e ir diretamente para o Quiz correspondente. Se tiver alguma dúvida, pode postá-la no fórum de discussão.

WEEK 3
Nesta semana, vamos falar de conceitos importantes de Orientação a Objetos como Polimorfismo, Classes Abstratas, Interfaces e Coleções de objetos. Além disso, vamos também pontuar as principais diferenças entre linguagens dinâmicas e estáticas e suas principais características. Se tiver alguma dúvida, pode postá-la no fórum de discussão.

WEEK 4
Nesta semana, aprenderemos dois mecanismos úteis em linguagens orientadas a objetos: Tratamento de Exceções e Streams (Fluxos de Dados). Se tiver alguma dúvida, não se esqueça de postá-la no fórum de discussão.

WEEK 5
Os Padrões de Projeto de Software Orientado a Objetos (Design Patterns) são uma ferramenta poderosa para a transmissão de conhecimento em desenvolvimento de software. Nesta semana, aprenderemos o que são esses padrões e começaremos a ver alguns exemplos deles.

WEEK 6
Nesta semana aprenderemos os padrões de projeto Protótipo e Estado. Além disso, veremos um outro tipo de padrão: os Padrões Arquiteturais; neste caso o padrão arquitetural que estudaremos é o Model-View-Controller (MVC) que é muito usado na indústria de software.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Developing AI Applications on Azure (Coursera) Coursera
LearnQuest

Developing AI Applications on Azure (Coursera)

This course introduces the concepts of Artificial Intelligence and Machine learning. We'll discuss machine learning types and tasks, and machine learning algorithms. You'll explore Python as a popular programming language for machine learning solutions, including using some scientific ecosystem packages which will help you implement machine learning.

Oct 19th 2026
5-12 Weeks
An Introduction to Programming using Python (Coursera) Coursera
University of Leeds

An Introduction to Programming using Python (Coursera)

Maximise your employability, by learning the basics of coding in Python. Python is a versatile programming language used for developing websites and software, task automation, data analysis and more. In this course, you'll embark on an exciting journey into the world of Python and gain valuable skills that will enable you to start thinking about a career in programming.

Oct 19th 2026
2 Weeks
Visualización de Datos con Python (Coursera) Coursera
IBM

Visualización de Datos con Python (Coursera)

"Una imagen vale mas que mil palabras". Todos estamos familiarizados con esta expresión. Se aplica especialmente cuando se trata de explicar la información obtenida del análisis de conjuntos de datos cada vez más grandes. La visualización de datos juega un papel esencial en la representación de datos tanto a pequeña como a gran escala. Una de las habilidades clave de un científico de datos es la capacidad de contar una historia convincente, visualizando datos y hallazgos de una manera accesible y estimulante

Oct 26th 2026
3 Weeks
Java程序设计 (Coursera) Coursera
Peking University

Java程序设计 (Coursera)

《Java程序设计》课程是使用Java语言进行应用程序设计的课程,针对各专业的大学本科生开设。课程的主要目标有三: 一、掌握Java语言的语法,能够较为深入理解Java语言机制,掌握Java语言面向对象的特点。 二、掌握JavaSE中基本的API,掌握在集合、线程、输入输出、图形用户界面、网络等方面的应用。三、能够编写有一定规模的应用程序,养成良好的编程习惯,会使用重构、设计模式、单元测试、日志、质量管理工具提高代码的质量。 对于学过“计算机基础、计算概论或C语言的学生”尤为适用。

Oct 19th 2026
5-12 Weeks
Programação para todos (Conceitos básicos de Python) (Coursera) Coursera
University of Michigan

Programação para todos (Conceitos básicos de Python) (Coursera)

Este curso tem como objetivo ensinar a todos os conceitos básicos de programação de computadores usando Python. Abordamos o básico de como criar um programa a partir de uma série de instruções simples em Python. O curso não tem pré-requisitos e evita tudo, exceto a matemática mais simples. Qualquer pessoa com experiência moderada em computadores deve ser capaz de dominar os materiais deste curso. Este curso abordará os capítulos 1 ao 5 do livro “Python para Todos”.

Oct 19th 2026
5-12 Weeks
Machine Learning: Concepts and Applications (Coursera) Coursera
University of Chicago

Machine Learning: Concepts and Applications (Coursera)

This course gives you a comprehensive introduction to both the theory and practice of machine learning. You will learn to use Python along with industry-standard libraries and tools, including Pandas, Scikit-learn, and Tensorflow, to ingest, explore, and prepare data for modeling and then train and evaluate models using a wide variety of techniques. Those techniques include linear regression with ordinary least squares, logistic regression, support vector machines, decision trees and ensembles, clustering, principal component analysis, hidden Markov models, and deep learning.

Oct 19th 2026
5-12 Weeks
Machine Learning for Accounting with Python (Coursera) Coursera
University of Illinois at Urbana-Champaign

Machine Learning for Accounting with Python (Coursera)

This course, Machine Learning for Accounting with Python, introduces machine learning algorithms (models) and their applications in accounting problems. It covers classification, regression, clustering, text analysis, time series analysis. It also discusses model evaluation and model optimization. This course provides an entry point for students to be able to apply proper machine learning models on business related datasets with Python to solve various problems.

Oct 19th 2026
5-12 Weeks
Programación en Python (Coursera) Coursera
Universidad de los Andes

Programación en Python (Coursera)

¡Te damos la bienvenida al curso de Programación en Python de la Universidad de los Andes! El propósito de este curso es ofrecerte un ambiente interactivo para que desarrolles tus habilidades de pensamiento computacional, aprendas a programar en el lenguaje Python y te entrenes en la resolución de problemas utilizando un computador. La estrategia pedagógica empleada es el aprendizaje activo basado en casos.

Oct 26th 2026
4 Weeks
Orientação a Objetos com Java (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

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.

Oct 26th 2026
5-12 Weeks
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Oct 19th 2026
5-12 Weeks
Analíticas de Datos con Pandas (Coursera) Coursera
Tecnológico de Monterrey

Analíticas de Datos con Pandas (Coursera)

La analítica de datos ha avanzado considerablemente en los últimos años y ahora existen diversas herramientas que nos permiten realizar tareas o procesos que antes eran complicados de realizar. Gracias a su versatilidad, el lenguaje de programación Python posee una serie de librerías que permiten realizar proyectos de analítica de datos de una forma muy sencilla y una de las librerías más populares es Pandas.

Oct 19th 2026
4 Weeks
Data Processing Using Python (Coursera) Coursera
Nanjing University

Data Processing Using Python (Coursera)

This course is mainly for non-computer majors. It starts with the basic syntax of Python, to how to acquire data in Python locally and from network, to how to present data, then to how to conduct basic and advanced statistic analysis and visualization of data, and finally to how to design a simple GUI to present and process data, advancing level by level.

Oct 19th 2026
5-12 Weeks