Teoria
Prática
Projeto
Avaliação
Revisão
Abril 7 aulas · 28h · segundas, quartas e sextas
Aula 01 Qua, 01/04 Apresentação + Fundamentos de Python TeoriaPrática 4h

Conteúdo teórico

  • O que é POO e por que usar?
  • Revisão de Python: variáveis, tipos, funções
  • Ambiente de desenvolvimento (VS Code + Python)

Exercícios / prática

  • Instalação e configuração do ambiente
  • Primeiros scripts: entrada/saída de dados
  • Exercício: calculadora em Python puro
40% teoria · 60% prática
Carga acumulada após esta aula: 4h de 120h  ·  abrir página da aula →
Aula 02 Seg, 06/04 Classes e objetos — conceitos e sintaxe TeoriaPrática 4h

Conteúdo teórico

  • O que é um objeto?
  • Definindo classes em Python (class)
  • Atributos de instância e de classe
  • Criando objetos na prática

Exercícios / prática

  • Exercício: classe Pessoa com atributos
  • Exercício: criar e imprimir múltiplos objetos
  • Desafio: classe Produto com métodos simples
35% teoria · 65% prática
Carga acumulada após esta aula: 8h de 120h  ·  abrir página da aula →
Aula 03 Qua, 08/04 Métodos e o parâmetro self TeoriaPrática 4h

Conteúdo teórico

  • O parâmetro self: entendendo a referência
  • Métodos de instância vs métodos de classe
  • Método __str__ e representação do objeto

Exercícios / prática

  • Exercício: classe Conta Bancária (saldo, depósito, saque)
  • Exercício: formatar saída com __str__
  • Desafio: classe Retângulo com área e perímetro
30% teoria · 70% prática
Carga acumulada após esta aula: 12h de 120h  ·  abrir página da aula →
Aula 04 Sex, 10/04 Encapsulamento e modificadores de acesso TeoriaPrática 4h

Conteúdo teórico

  • O conceito de encapsulamento
  • Atributos privados com _ e __ em Python
  • Properties: @property e @setter
  • Boas práticas de encapsulamento

Exercícios / prática

  • Exercício: refatorar classe Conta com encapsulamento
  • Exercício: validação no setter (saldo não negativo)
  • Desafio: classe Pessoa com CPF protegido
35% teoria · 65% prática
Carga acumulada após esta aula: 16h de 120h  ·  abrir página da aula →
Aula 05 Qua, 15/04 Construtor __init__, destrutores e composição TeoriaPrática 4h

Conteúdo teórico

  • O método __init__ em detalhes
  • Parâmetros obrigatórios e opcionais no construtor
  • Composição: objetos dentro de objetos
  • Agregação: relacionamento fraco

Exercícios / prática

  • Exercício: classes com construtores variados
  • Exercício: Pedido > ItensPedido (composição)
  • Desafio: modelar sistema com composição e agregação
35% teoria · 65% prática
Carga acumulada após esta aula: 20h de 120h  ·  abrir página da aula →
Aula 06 Sex, 22/04 Herança — parte 1 TeoriaPrática 4h

Conteúdo teórico

  • O conceito de herança e reuso de código
  • Sintaxe em Python: class Filho(Pai)
  • Atributos e métodos herdados
  • super() e como chamar o construtor pai

Exercícios / prática

  • Exercício: hierarquia Veículo > Carro > Moto
  • Exercício: herdar e estender comportamentos
  • Desafio: classe Funcionário > Gerente
35% teoria · 65% prática
Carga acumulada após esta aula: 24h de 120h  ·  abrir página da aula →
Aula 07 Qua, 29/04 Herança — parte 2 + Sobrescrita de métodos TeoriaPrática 4h

Conteúdo teórico

  • Sobrescrita (override) de métodos
  • Quando usar super() na sobrescrita
  • Herança múltipla em Python
  • MRO — Method Resolution Order

Exercícios / prática

  • Exercício: sobrescrever __str__ em subclasses
  • Exercício: hierarquia Animal > Cachorro/Gato com som()
  • Desafio: herança múltipla com mixins
35% teoria · 65% prática
Carga acumulada após esta aula: 28h de 120h  ·  abrir página da aula →
Maio 7 aulas · 28h · segundas, quartas e sextas
Aula 08 Seg, 04/05 Polimorfismo TeoriaPrática 4h

Conteúdo teórico

  • O que é polimorfismo?
  • Polimorfismo por herança em Python
  • Duck typing: o estilo Python de polimorfismo
  • Função que aceita múltiplos tipos

Exercícios / prática

  • Exercício: lista de formas com área()
  • Exercício: duck typing com objetos distintos
  • Desafio: polimorfismo em sistema de pagamentos
30% teoria · 70% prática
Carga acumulada após esta aula: 32h de 120h  ·  abrir página da aula →
Aula 09 Qua, 06/05 Classes abstratas e interfaces TeoriaPrática 4h

Conteúdo teórico

  • Módulo abc: ABC e @abstractmethod
  • Diferença entre classe abstrata e interface
  • Forçando contratos em subclasses
  • Quando usar abstração

Exercícios / prática

  • Exercício: hierarquia com classe abstrata Forma
  • Exercício: interface Serializavel
  • Desafio: sistema com múltiplas abstrações
35% teoria · 65% prática
Carga acumulada após esta aula: 36h de 120h  ·  abrir página da aula →
Aula 10 Sex, 15/05 Sobrecarga de métodos e operadores TeoriaPrática 4h

Conteúdo teórico

  • Sobrecarga em Python: é realmente suportada — como simular?
  • Parâmetros opcionais e *args, **kwargs
  • Dunder methods: __add__, __eq__, __lt__...
  • Operator overloading na prática

Exercícios / prática

  • Exercício: classe Vetor com operações matemáticas
  • Exercício: __eq__ em classe Produto
  • Desafio: classe Fração com +, -, *, /
30% teoria · 70% prática
Carga acumulada após esta aula: 40h de 120h  ·  abrir página da aula →
Aula 11 Qua, 20/05 Tratamento de exceções TeoriaPrática 4h

Conteúdo teórico

  • Tratando exceções: try, except, finally, else
  • Criando exceções customizadas
  • Hierarquia de exceções em Python
  • Boas práticas: não engolir erros

Exercícios / prática

  • Exercício: validar entradas com exceções
  • Exercício: criar SaldoInsuficienteError
  • Desafio: refatorar projetos anteriores com exceções
30% teoria · 70% prática
Carga acumulada após esta aula: 44h de 120h  ·  abrir página da aula →
Aula 12 Sex, 22/05 Manipulação de arquivos TeoriaPrática 4h

Conteúdo teórico

  • Leitura e escrita de arquivos .txt e .csv
  • Context manager: with open(...)
  • Módulo json: serializar/deserializar objetos
  • Persistência de dados simples

Exercícios / prática

  • Exercício: salvar/carregar lista de objetos em JSON
  • Exercício: log de operações em arquivo .txt
  • Desafio: CRUD com persistência em arquivo
30% teoria · 70% prática
Carga acumulada após esta aula: 48h de 120h  ·  abrir página da aula →
Aula 13 Qua, 27/05 Coleções e POO — listas, dicionários e sets TeoriaPrática 4h

Conteúdo teórico

  • Trabalhando com listas de objetos
  • Dicionários como repositórios simples
  • Iteração e filtragem de coleções de objetos
  • List comprehension com objetos

Exercícios / prática

  • Exercício: repositório de Produtos em lista
  • Exercício: busca e filtragem por atributo
  • Desafio: ordenar objetos com key=lambda
25% teoria · 75% prática
Carga acumulada após esta aula: 52h de 120h  ·  abrir página da aula →
Aula 14 Sex, 29/05 Revisão geral + Mini projeto 1 Revisão 4h

Conteúdo teórico

  • Revisão: herança, polimorfismo, abstração, exceções
  • Tire dúvidas antes da 1ª VA

Exercícios / prática

  • Mini projeto: Sistema de Biblioteca
  • Persistência em JSON, exceções tratadas
  • Apresentação rápida no final da aula
20% teoria · 80% prática
Carga acumulada após esta aula: 56h de 120h  ·  abrir página da aula →
Junho 6 aulas · 24h · quartas e sextas · 1ª VA em 03/06
Aula 15 Qua, 03/06 1ª VA — Avaliação Avaliação 4h

Conteúdo teórico

  • Orientações e critérios da avaliação

Exercícios / prática

  • Prova prática: implementar sistema com POO
  • Foco em herança, polimorfismo, abstração e exceções
  • Entrega e correção comentada
10% teoria · 90% prática
Carga acumulada após esta aula: 60h de 120h  ·  abrir página da aula →
Aula 16 Qua, 10/06 Introdução à UML aplicada ao Python TeoriaPrática 4h

Conteúdo teórico

  • Conceitos de UML: atributos, métodos, relações
  • Diagrama de classes (class diagram) básica
  • Como ler e escrever diagramas UML simples
  • UML > código Python: prática de implementação
  • Ferramentas: draw.io, PlantUML

Exercícios / prática

  • Exercício: criar diagrama de classes de projeto anterior
  • Exercício: implementar código a partir de UML
  • Desafio: modelar mini sistema antes de codificar
40% teoria · 60% prática
Carga acumulada após esta aula: 64h de 120h  ·  abrir página da aula →
Aula 17 Qua, 17/06 Padrões de projeto — Singleton e Factory TeoriaPrática 4h

Conteúdo teórico

  • O que são padrões de projeto?
  • Categorias: Criacionais, Estruturais, Comportamentais
  • Singleton: quando e como usar
  • Factory Method: criação flexível de objetos

Exercícios / prática

  • Exercício: implementar Singleton em Python
  • Exercício: Factory para formas geométricas
  • Desafio: refatorar código anterior usando Singleton
40% teoria · 60% prática
Carga acumulada após esta aula: 68h de 120h  ·  abrir página da aula →
Aula 18 Sex, 19/06 Padrões de projeto — Observer e Strategy TeoriaPrática 4h

Conteúdo teórico

  • Observer: comunicação entre objetos
  • Strategy: trocar algoritmo em tempo de execução
  • Quando cada padrão se aplica
  • Exemplos reais no ecossistema Python

Exercícios / prática

  • Exercício: Observer para sistema de notificações
  • Exercício: Strategy para diferentes descontos
  • Desafio: combinar dois padrões em um sistema
35% teoria · 65% prática
Carga acumulada após esta aula: 72h de 120h  ·  abrir página da aula →
Aula 19 Qua, 24/06 Interface gráfica com Tkinter — parte 1 TeoriaPrática 4h

Conteúdo teórico

  • Introdução ao Tkinter
  • Widgets básicos: Label, Button, Entry, Frame
  • Layout: pack, grid, place
  • Eventos e callbacks

Exercícios / prática

  • Exercício: janela de cadastro simples
  • Exercício: conectar Entry a um objeto Python
  • Desafio: tela de login com validação
35% teoria · 65% prática
Carga acumulada após esta aula: 76h de 120h  ·  abrir página da aula →
Aula 20 Seg, 29/06 Interface gráfica com Tkinter — parte 2 Prática 4h

Conteúdo teórico

  • Listbox e exibição de coleções
  • Menu e navegação entre janelas
  • MessageBox: erros e confirmações

Exercícios / prática

  • Exercício: listar objetos em Listbox
  • Exercício: tela principal com menu funcional
  • Desafio: CRUD visual completo com Tkinter
25% teoria · 75% prática
Carga acumulada após esta aula: 80h de 120h  ·  abrir página da aula →
Julho 10 aulas · 40h · semana de recuperação
Aula 21 Qua, 01/07 POO + Banco de dados (SQLite) TeoriaPrática 4h

Conteúdo teórico

  • Conceitos de banco de dados relacional
  • SQL: SELECT, INSERT, UPDATE, DELETE
  • Mapear classe para tabela: conceito de ORM manual
  • CRUD com SQLite: INSERT, SELECT, UPDATE, DELETE
  • Tratamento de erros com banco de dados

Exercícios / prática

  • Exercício: persistir objetos Produto no SQLite
  • Exercício: classe RepositorioProduto
  • Desafio: substituir JSON por SQLite no projeto anterior
35% teoria · 65% prática
Carga acumulada após esta aula: 84h de 120h  ·  abrir página da aula →
Aula 22 Seg, 06/07 Projeto final — briefing e planejamento Projeto 4h

Conteúdo teórico

  • Apresentação dos requisitos do projeto final
  • Formação de grupos e escolha de tema
  • Como montar o diagrama UML antes de codificar
  • Boas práticas de organização de código

Exercícios / prática

  • Modelagem UML do projeto (draw.io)
  • Definição das classes, atributos e relacionamentos
  • Início da implementação: estrutura base
25% teoria · 75% prática
Carga acumulada após esta aula: 88h de 120h  ·  abrir página da aula →
Aula 23 Ter, 07/07 Projeto final — desenvolvimento 1 Projeto 4h

Conteúdo teórico

  • Acompanhamento individual dos grupos
  • Dúvidas técnicas: POO, arquivos, padrões

Exercícios / prática

  • Desenvolvimento orientado pelo professor
  • Foco: implementar classes e relacionamentos
  • Checkpoint: revisão do diagrama vs código
10% teoria · 90% prática
Carga acumulada após esta aula: 92h de 120h  ·  abrir página da aula →
Aula 24 Qua, 08/07 Projeto final — desenvolvimento 2 Projeto 4h

Conteúdo teórico

  • Acompanhamento e resolução de problemas
  • Revisão de código em tempo real

Exercícios / prática

  • Desenvolvimento: exceções e persistência
  • Integração com banco de dados ou arquivos
  • Testes básicos e correção de bugs
10% teoria · 90% prática
Carga acumulada após esta aula: 96h de 120h  ·  abrir página da aula →
Aula 25 Qui, 09/07 Projeto final — desenvolvimento 3 Projeto 4h

Conteúdo teórico

  • Resolução de problemas específicos dos grupos

Exercícios / prática

  • Desenvolvimento: interface gráfica com Tkinter
  • Integração completa das camadas
  • Testes funcionais parciais
10% teoria · 90% prática
Carga acumulada após esta aula: 100h de 120h  ·  abrir página da aula →
Aula 26 Sex, 10/07 Projeto final — finalização Projeto 4h

Conteúdo teórico

  • Orientações para apresentação
  • Documentação mínima do projeto

Exercícios / prática

  • Finalização e polimento do sistema
  • Testes funcionais completos
  • Preparação da apresentação
10% teoria · 90% prática
Carga acumulada após esta aula: 104h de 120h  ·  abrir página da aula →
Aula 27 Seg, 13/07 Apresentação do projeto final — parte 1 Avaliação 4h

Conteúdo teórico

  • Critérios de avaliação: funcionamento, POO, código

Exercícios / prática

  • Apresentação dos grupos (10–15 min cada)
  • Demonstração ao vivo do sistema
  • Avaliação por rubrica
10% teoria · 90% prática
Carga acumulada após esta aula: 108h de 120h  ·  abrir página da aula →
Aula 28 Ter, 14/07 2ª VA — Avaliação Avaliação 4h

Conteúdo teórico

  • Orientações da avaliação

Exercícios / prática

  • Prova prática individual: implementar sistema completo
  • Foco em UML, padrões, Tkinter e SQLite
  • Entrega e feedback
10% teoria · 90% prática
Carga acumulada após esta aula: 112h de 120h  ·  abrir página da aula →
Aula 29 Qui, 16/07 Apresentação do projeto final — parte 2 Avaliação 4h

Conteúdo teórico

  • Continuação das apresentações

Exercícios / prática

  • Apresentação dos grupos restantes
  • Avaliação por rubrica
  • Discussão coletiva sobre os projetos
10% teoria · 90% prática
Carga acumulada após esta aula: 116h de 120h  ·  abrir página da aula →
Aula 30 Sex, 17/07 Encerramento + retrospectiva Revisão 4h

Conteúdo teórico

  • O que aprendemos? Linha do tempo da disciplina
  • Próximos passos: Django, FastAPI, Python avançado

Exercícios / prática

  • Feedback aberto dos alunos
  • Entrega das notas e documentação
  • Dicas de portfólio e carreira
30% teoria · 70% prática
Carga acumulada após esta aula: 120h de 120h  ·  abrir página da aula →