We may earn an affiliate commission when you visit our partners.
Course image
Fabio Kon

Esta é a segunda parte do curso avançado de Programação Orientada a Objetos oferecido pelo Departamento de Ciência da Computação do IME-USP. O curso é voltado para profissionais ou estudantes interessados em Desenvolvimento de Software Avançado e que já dominam uma linguagem de programação e já conhecem os fundamentos básicos da orientação a objetos.

Nesta 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.

Read more

Esta é a segunda parte do curso avançado de Programação Orientada a Objetos oferecido pelo Departamento de Ciência da Computação do IME-USP. O curso é voltado para profissionais ou estudantes interessados em Desenvolvimento de Software Avançado e que já dominam uma linguagem de programação e já conhecem os fundamentos básicos da orientação a objetos.

Nesta 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.

Nós nos divertimos bastante (e suamos um pouquinho) para montar esse curso prá você! Espero que você também se divirta bastante (e sue um pouquinho :-) para cursá-lo!

Fabio Kon e a equipe de Ciência da Computação do IME-USP

Enroll now

What's inside

Syllabus

Semana 1
Bem-vindo à segunda parte do curso de Laboratório de Programação Orientada a Objetos! Vamos começar a segunda parte vendo 3 padrões de projeto nesta semana: Decorator, Template Method e Façade.
Read more
Semana 2
Semana 3
Semana 4
Semana 5

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Desenvolve habilidades avançadas de arquitetura de software, essenciais para profissionais de Desenvolvimento de Software
Fortalece a base de estudantes experientes em orientação a objetos
É ministrado por Fabio Kon, um renomado professor do Departamento de Ciência da Computação do IME-USP
Explora padrões de projeto avançados e os princípios SOLID, amplamente utilizados na indústria de desenvolvimento de software
Oferece uma visão abrangente sobre frameworks e injeção de dependências, técnicas essenciais para o desenvolvimento de sistemas complexos
Exige que os alunos possuam conhecimentos básicos de programação e orientação a objetos

Save this course

Save Laboratório de Programação Orientada a Objetos - Parte 2 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Laboratório de Programação Orientada a Objetos - Parte 2 with these activities:
Assistir a tutoriais sobre Frameworks
Assistir a tutoriais sobre Frameworks fornecerá uma compreensão prática de como eles funcionam e como podem ser usados em projetos de software.
Browse courses on Frameworks
Show steps
  • Identifique um Framework para aprender
  • Encontre tutoriais sobre o Framework
  • Assista aos tutoriais
  • Pratique usar o Framework
Resolver exercícios do Decorator Pattern
A prática de exercícios do Decorator Pattern solidificará sua compreensão deste padrão de projeto e seus benefícios.
Browse courses on Decorator Pattern
Show steps
  • Entenda o conceito do Decorator Pattern
  • Resolva exercícios simples do Decorator Pattern
  • Resolva exercícios complexos do Decorator Pattern
Participar de grupo de estudo sobre Padrões SOLID
Participar de um grupo de estudo ajudará você a aprender sobre os princípios SOLID e como aplicá-los em projetos reais de software.
Show steps
  • Encontre um grupo de estudo
  • Prepare-se para as reuniões do grupo de estudo
  • Participe ativamente das discussões do grupo de estudo
Seven other activities
Expand to see all activities and additional details
Show all ten activities
Criar um resumo dos padrões de projeto estudados
Criar um resumo dos padrões de projeto ajudará a consolidar o entendimento e a fixar os conceitos.
Browse courses on OOP
Show steps
  • Ler sobre os padrões de projeto
  • Identificar os principais conceitos de cada padrão
  • Escrever um resumo resumindo os conceitos
Participar de workshops sobre os princípios SOLID
Participar de workshops sobre os princípios SOLID ajudará a entender e aplicar esses princípios no desenvolvimento de software.
Browse courses on OOP
Show steps
Implementar um sistema usando Injeção de Dependências
Implementar um sistema usando Injeção de Dependências melhorará sua compreensão sobre como desacoplar componentes e melhorar a testabilidade.
Show steps
  • Defina os requisitos do sistema
  • Projete a arquitetura do sistema
  • Implemente o sistema usando Injeção de Dependências
  • Teste o sistema
Contribuir para projetos open-source relacionados aos padrões de projeto
Contribuir para projetos open-source relacionados aos padrões de projeto ajudará a entender o uso prático desses padrões e a contribuir para a comunidade de software.
Browse courses on Open-Source
Show steps
  • Encontrar um projeto open-source relacionado aos padrões de projeto
  • Entender o código-fonte do projeto
  • Fazer uma contribuição para o projeto
Criar um artigo sobre Padrões de Projeto
Criar um artigo sobre Padrões de Projeto ajudará você a revisar os conceitos e reforçar seu aprendizado.
Show steps
  • Pesquise diferentes Padrões de Projeto
  • Escolha um Padrão de Projeto para se concentrar
  • Escreva um rascunho do artigo
  • Revise e edite seu artigo
  • Publique seu artigo
Contribuir com um projeto Open Source relacionado a Orientação a Objetos
Contribuir com um projeto Open Source fornecerá experiência prática com conceitos de Orientação a Objetos e desenvolvimento colaborativo.
Browse courses on Open Source
Show steps
  • Encontre um projeto Open Source para contribuir
  • Entenda a base de código do projeto
  • Faça uma pequena contribuição para o projeto
  • Revise e teste sua contribuição
  • Envie sua contribuição para o repositório
Desenvolver um projeto de software utilizando os padrões de projeto aprendidos
Desenvolver um projeto utilizando os padrões de projeto estudados permitirá aplicar os conceitos na prática e fortalecer o aprendizado.
Browse courses on OOP
Show steps
  • Escolher um projeto de software para desenvolver
  • Projetar a arquitetura do software utilizando os padrões de projeto
  • Implementar o projeto de software
  • Testar e depurar o projeto de software

Career center

Learners who complete Laboratório de Programação Orientada a Objetos - Parte 2 will develop knowledge and skills that may be useful to these careers:
Mobile Developer
Mobile Developers design and develop mobile applications. This course may be useful for Mobile Developers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Mobile Developers to create more efficient and maintainable mobile applications.
Software Engineer
Software Engineers design, develop, and maintain software systems. This course may be useful for Software Engineers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Software Engineers to write more efficient and maintainable code.
Web Developer
Web Developers design and develop websites and web applications. This course may be useful for Web Developers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Web Developers to create more efficient and maintainable web applications.
Database Administrator
Database Administrators manage and maintain databases. This course may be useful for Database Administrators, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Database Administrators to create more efficient and maintainable databases.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams. This course may be useful for DevOps Engineers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help DevOps Engineers to create more efficient and maintainable software systems.
Cloud Engineer
Cloud Engineers design and develop cloud-based systems. This course may be useful for Cloud Engineers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Cloud Engineers to create more efficient and maintainable cloud-based systems.
Technical Writer
Technical Writers create documentation for software systems. This course may be useful for Technical Writers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Technical Writers to better understand the software systems they are documenting.
Security Engineer
Security Engineers design and implement security measures to protect software systems. This course may be useful for Security Engineers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Security Engineers to create more secure software systems.
Systems Analyst
Systems Analysts analyze and design business systems. This course may be useful for Systems Analysts, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Systems Analysts to create more efficient and maintainable business systems.
Software Architect
Software Architects are responsible for designing and developing the architecture of software systems. This course may be useful for Software Architects, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Software Architects to create more efficient and maintainable software systems.
Software Tester
Software Testers test software systems to find defects. This course may be useful for Software Testers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Software Testers to better understand the software systems they are testing.
Project Manager
Project Managers plan and execute software development projects. This course may be useful for Project Managers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Project Managers to better understand the technical aspects of software development projects.
Computer Science Teacher
Computer Science Teachers teach computer science concepts to students. This course may be useful for Computer Science Teachers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Computer Science Teachers to better understand the computer science concepts they are teaching.
Data Scientist
Data Scientists analyze data to extract insights and make predictions. This course may be useful for Data Scientists, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Data Scientists to develop more efficient and maintainable data analysis pipelines.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. This course may be useful for Machine Learning Engineers, as it teaches advanced programming concepts such as design patterns and frameworks. These concepts can help Machine Learning Engineers to develop more efficient and maintainable machine learning models.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Laboratório de Programação Orientada a Objetos - Parte 2.
Classic in the field of software design and provides a comprehensive overview of 23 common design patterns. It valuable reference for anyone who wants to learn more about object-oriented design and how to apply it in their own projects.
More accessible introduction to design patterns than the previous one. It uses a lot of humor and real-world examples to explain the concepts in a way that is easy to understand.
Seminal work on domain-driven design, a software development approach that focuses on modeling the domain of the problem being solved. It valuable resource for anyone who wants to learn how to design systems that are both flexible and maintainable.
Este livro cobre os princípios SOLID, uma série de princípios orientadores para o desenvolvimento de software. Os princípios SOLID ajudam a tornar o software mais fácil de manter e estender.
Este livro é uma introdução aos padrões de design usando a linguagem de programação Ruby. Ele fornece uma grande variedade de exemplos de como aplicar padrões de design em projetos Ruby.
Este livro é uma introdução ao design orientado a objetos usando a linguagem de programação Ruby. Ele cobre os conceitos básicos do design orientado a objetos e fornece muitos exemplos de como aplicar esses conceitos em projetos Ruby.
Este livro cobre os fundamentos da linguagem de programação Ruby. É uma ótima referência para aprender mais sobre os recursos da linguagem e como usá-la de forma eficaz.
Este livro é uma referência completa à linguagem de programação Ruby. É um ótimo recurso para aprender mais sobre os recursos da linguagem e como usá-la de forma eficaz.
Este livro cobre a filosofia por trás da linguagem de programação Ruby. É um ótimo recurso para aprender mais sobre os valores e princípios que orientam o desenvolvimento de Ruby.
Este livro é uma introdução muito básica à linguagem de programação Ruby. É um ótimo recurso para iniciantes que desejam começar a aprender Ruby.
Este livro é um tutorial prático para aprender a linguagem de programação Ruby. Ele é voltado para iniciantes e fornece muitos exercícios para ajudá-lo a aprender o básico do Ruby.
Este livro é uma introdução muito básica à linguagem de programação Ruby. É um ótimo recurso para iniciantes que desejam começar a aprender Ruby.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Laboratório de Programação Orientada a Objetos - Parte 2.
Laboratório de Programação Orientada a Objetos - Parte 1
Most relevant
Introdução à Ciência da Computação com Python Parte 1
Most relevant
Introdução à Ciência da Computação com Python Parte 2
Most relevant
Processamento Neural de Linguagem Natural em Português I
Most relevant
Criar wireframes e protótipos de baixa fidelidade
Most relevant
Curso de Python: Apps para Android, iOS, Linx, Win, e Mac
Most relevant
Projeto final: Aplicação do gerenciamento de projetos no...
Most relevant
Google Cloud Product Fundamentals em Português Brasileiro
Most relevant
Metodologia de Ciência de Dados
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser