LÓGICA E LINGUAGEM DE PROGRAMAÇÃO

2ª Série – Desenvolvimento de Sistemas

SUMÁRIO

SEMANA 1 – Introdução à estrutura básica de programação

Tema da semana: Introdução à estrutura básica de programação

Aula 1: O que é programar?

Habilidades técnicas: Compreender os fundamentos da lógica de programação, algoritmos, fluxogramas e estruturas de dados simples como variáveis e constantes.
Habilidades socioemocionais: Demonstrar curiosidade ativa e iniciativa para investigar soluções com autonomia.
Objetivo da aula: Compreender o conceito de programação, sua aplicação em diferentes áreas e seu papel no cotidiano digital.

Aula 2: Algoritmos no cotidiano

Habilidades técnicas: Compreender os fundamentos da lógica de programação e algoritmos.
Habilidades socioemocionais: Demonstrar curiosidade ativa e iniciativa.
Objetivo da aula: Compreender a estrutura de algoritmos simples com base em problemas cotidianos.

Aula 3: Fluxogramas e representação visual

Habilidades técnicas: Compreender fundamentos de fluxogramas.
Habilidades socioemocionais: Demonstrar curiosidade ativa e iniciativa.
Objetivo da aula: Traduzir algoritmos simples em fluxogramas utilizando padrões gráficos adequados.

Aula 4: Variáveis e tipos de dados

Habilidades técnicas: Compreender variáveis e tipos de dados.
Habilidades socioemocionais: Demonstrar curiosidade ativa e iniciativa.
Objetivo da aula: Identificar e declarar variáveis, compreendendo seus tipos e uso em algoritmos simples.

SEMANA 2 – Conceitos de entrada, processamento e saída

Tema da semana: Conceitos de entrada, processamento e saída

Aula 1: Entrada de dados

Habilidades técnicas: Aplicar estruturas lógicas para entrada, processamento e saída de dados em pseudocódigo.
Habilidades socioemocionais: Buscar compreender como os dados são manipulados mantendo o foco.
Objetivo da aula: Compreender como os dados são coletados de forma estruturada por meio de comandos de entrada.

Aula 2: Processamento de dados

Habilidades técnicas: Aplicar estruturas lógicas de processamento.
Habilidades socioemocionais: Buscar compreender a manipulação de dados.
Objetivo da aula: Aplicar instruções de processamento que transformam os dados de entrada em resultados úteis.

Aula 3: Saída de dados

Habilidades técnicas: Implementar comandos de saída.
Habilidades socioemocionais: Buscar compreender a manipulação de dados.
Objetivo da aula: Implementar comandos de saída que apresentem os resultados de forma compreensível ao usuário.

Aula 4: Exercícios integrados

Habilidades técnicas: Integrar entrada, processamento e saída.
Habilidades socioemocionais: Buscar compreender a manipulação de dados.
Objetivo da aula: Construir algoritmos simples que integrem entrada, processamento e saída de dados com lógica consistente.

SEMANA 3 – Operadores e expressões

Tema da semana: Operadores e expressões

Aula 1: Condição simples: introdução ao SE

Habilidades técnicas: Implementar estruturas de decisão simples.
Habilidades socioemocionais: Colaborar de forma empática e assertiva em equipes.
Objetivo da aula: Compreender o uso de estruturas condicionais simples em pseudocódigo.

Aula 2: Condição composta: SE…SENÃO

Habilidades técnicas: Implementar estruturas condicionais compostas.
Habilidades socioemocionais: Colaborar de forma empática e assertiva.
Objetivo da aula: Analisar e aplicar estruturas condicionais compostas para diferentes caminhos de execução.

Aula 3: Condições aninhadas: SE dentro de SE

Habilidades técnicas: Implementar decisões aninhadas.
Habilidades socioemocionais: Colaborar de forma empática e assertiva.
Objetivo da aula: Aplicar decisões aninhadas em algoritmos mais complexos.

Aula 4: Exercícios práticos com decisões

Habilidades técnicas: Implementar estruturas de decisão.
Habilidades socioemocionais: Colaborar de forma empática e assertiva.
Objetivo da aula: Aplicar estruturas de decisão em algoritmos integrados, simulando problemas reais.

SEMANA 4 – Atividades práticas – criação de programas

Tema da semana: Atividades práticas – criação de programas

Aula 1: Operadores relacionais

Habilidades técnicas: Aplicar operadores relacionais e lógicos.
Habilidades socioemocionais: Desenvolver concentração e autocontrole.
Objetivo da aula: Identificar e aplicar corretamente os operadores relacionais na tomada de decisão.

Aula 2: Operadores lógicos

Habilidades técnicas: Combinar condições lógicas.
Habilidades socioemocionais: Desenvolver concentração e autocontrole.
Objetivo da aula: Compreender o uso dos operadores lógicos na combinação de condições.

Aula 3: Tabelas-verdade e análise lógica

Habilidades técnicas: Analisar expressões booleanas.
Habilidades socioemocionais: Desenvolver concentração e autocontrole.
Objetivo da aula: Analisar expressões compostas utilizando tabelas-verdade como forma de validação lógica.

Aula 4: Desafios com expressões condicionais

Habilidades técnicas: Resolver problemas com múltiplas condições.
Habilidades socioemocionais: Desenvolver concentração e autocontrole.
Objetivo da aula: Resolver desafios integrando operadores relacionais e lógicos para tomada de decisão eficiente.

SEMANA 5 – Introdução às estruturas de decisão simples

Tema da semana: Introdução às estruturas de decisão simples

Aula 1: Tomada de decisão com SE

Habilidades técnicas: Implementar estruturas de decisão simples.
Habilidades socioemocionais: Refletir com curiosidade e manter persistência.
Objetivo da aula: Compreender a estrutura SE em pseudocódigo e sua importância em decisões automáticas.

Aula 2: Estrutura sequencial + SE

Habilidades técnicas: Integrar SE ao fluxo sequencial.
Habilidades socioemocionais: Refletir com curiosidade e manter persistência.
Objetivo da aula: Integrar a estrutura SE ao fluxo sequencial de algoritmos com entrada e saída de dados.

Aula 3: Fluxograma com decisão simples

Habilidades técnicas: Representar decisões em fluxogramas.
Habilidades socioemocionais: Refletir com curiosidade e manter persistência.
Objetivo da aula: Representar decisões simples por meio de fluxogramas com símbolos apropriados.

Aula 4: Aplicações com SE (atividade prática)

Habilidades técnicas: Criar programas com SE.
Habilidades socioemocionais: Refletir com curiosidade e manter persistência.
Objetivo da aula: Criar programas simples utilizando estrutura SE aplicando condições reais.

SEMANA 6 – Atividades práticas – criação de programas

Tema da semana: Atividades práticas – criação de programas

Aula 1: Projeto guiado – lógica e condição

Habilidades técnicas: Consolidar lógica algorítmica com entrada, decisão e saída.
Habilidades socioemocionais: Colaborar ativamente na construção de soluções lógicas em equipe.
Objetivo da aula: Criar um programa simples guiado com estrutura sequencial + decisão.

Aula 2: Projeto colaborativo – Fluxograma para código

Habilidades técnicas: Traduzir fluxograma em pseudocódigo.
Habilidades socioemocionais: Colaborar ativamente.
Objetivo da aula: Traduzir um fluxograma em pseudocódigo funcional.

Aula 3: Ajustes e depuração

Habilidades técnicas: Aprimorar programas com testes e correções.
Habilidades socioemocionais: Colaborar ativamente.
Objetivo da aula: Aprimorar programas por meio de testes e correções guiadas.

Aula 4: Apresentação e avaliação de programas

Habilidades técnicas: Consolidar lógica algorítmica.
Habilidades socioemocionais: Colaborar ativamente.
Objetivo da aula: Apresentar e justificar a lógica dos programas criados.

SEMANA 7 – Introdução às estruturas de decisão composta

Tema da semana: Introdução às estruturas de decisão composta

Aula 1: Estrutura SE / SENÃO

Habilidades técnicas: Implementar estruturas de decisão composta.
Habilidades socioemocionais: Manter persistência e atenção focada.
Objetivo da aula: Compreender a estrutura composta SE…SENÃO e aplicá-la em problemas básicos.

Aula 2: Variações com comparações encadeadas

Habilidades técnicas: Criar condições compostas.
Habilidades socioemocionais: Manter persistência e atenção focada.
Objetivo da aula: Criar condições compostas com operadores relacionais e lógicos.

Aula 3: Fluxogramas com decisão composta

Habilidades técnicas: Representar visualmente SE…SENÃO.
Habilidades socioemocionais: Manter persistência e atenção focada.
Objetivo da aula: Representar visualmente estruturas SE…SENÃO e suas decisões associadas.

Aula 4: Prática com decisão composta

Habilidades técnicas: Desenvolver algoritmos completos com SE…SENÃO.
Habilidades socioemocionais: Manter persistência e atenção focada.
Objetivo da aula: Desenvolver algoritmos completos com uso de SE…SENÃO e múltiplas verificações.

SEMANA 8 – Estruturas de repetição – loop while

Tema da semana: Estruturas de repetição – loop while

Aula 1: Introdução ao while

Habilidades técnicas: Implementar e depurar loops while.
Habilidades socioemocionais: Manter persistência diante de erros com organização lógica.
Objetivo da aula: Entender sintaxe, fluxo e condição de parada do loop while.

Aula 2: Contadores e loops sentinela

Habilidades técnicas: Utilizar contadores e variável sentinela.
Habilidades socioemocionais: Manter persistência diante de erros.
Objetivo da aula: Utilizar contadores, acumuladores e variável sentinela para controlar iterações.

Aula 3: Depurando laços infinitos

Habilidades técnicas: Corrigir loops mal-formados.
Habilidades socioemocionais: Manter persistência diante de erros.
Objetivo da aula: Corrigir loops mal-formados que entram em repetição infinita.

Aula 4: Desafio prático – média de notas

Habilidades técnicas: Construir programa com loop while.
Habilidades socioemocionais: Manter persistência diante de erros.
Objetivo da aula: Construir programa que lê notas ilimitadas até sentinela e calcula a média.

SEMANA 9 – Estruturas de repetição – loop for

Tema da semana: Estruturas de repetição – loop for

Aula 1: Sintaxe e uso básico do for

Habilidades técnicas: Escrever loops for.
Habilidades socioemocionais: Demonstrar persistência e resiliência.
Objetivo da aula: Reconhecer partes do cabeçalho for e seu fluxo.

Aula 2: Iteração sobre coleções

Habilidades técnicas: Percorrer listas, strings e tuplas.
Habilidades socioemocionais: Demonstrar persistência e resiliência.
Objetivo da aula: Percorrer listas, strings e tuplas com for.

Aula 3: Função range() e passo variável

Habilidades técnicas: Gerar sequências com range.
Habilidades socioemocionais: Demonstrar persistência e resiliência.
Objetivo da aula: Gerar sequências com variações de início, fim e passo.

Aula 4: Desafio – tabelas de multiplicação

Habilidades técnicas: Produzir saída tabular com loops aninhados.
Habilidades socioemocionais: Demonstrar persistência e resiliência.
Objetivo da aula: Produzir saída tabular usando loops aninhados.

SEMANA 10 – Estruturas de repetição aninhadas

Tema da semana: Estruturas de repetição aninhadas

Aula 1: Por que aninhar loops?

Habilidades técnicas: Implementar loops aninhados.
Habilidades socioemocionais: Explorar com curiosidade ativa padrões lógicos.
Objetivo da aula: Identificar situações que exigem repetição dupla.

Aula 2: Controle de variáveis independentes

Habilidades técnicas: Gerir variáveis de cada nível.
Habilidades socioemocionais: Explorar com curiosidade ativa.
Objetivo da aula: Gerir variáveis de cada nível sem conflito de escopo.

Aula 3: Complexidade e otimização

Habilidades técnicas: Calcular custo O(n²).
Habilidades socioemocionais: Explorar com curiosidade ativa.
Objetivo da aula: Calcular custo O(n²) e discutir otimizações.

Aula 4: Laboratório – padrões de asteriscos

Habilidades técnicas: Criar figuras geométricas via loops.
Habilidades socioemocionais: Explorar com curiosidade ativa.
Objetivo da aula: Criar figuras geométricas via loops aninhados.

SEMANA 11 – Vetores (arrays unidimensionais)

Tema da semana: Vetores (arrays unidimensionais)

Aula 1: Declaração e acesso a vetores

Habilidades técnicas: Criar e acessar vetores por índice.
Habilidades socioemocionais: Aplicar análise crítica e foco.
Objetivo da aula: Criar vetores e acessar elementos por índice.

Aula 2: Busca linear

Habilidades técnicas: Implementar algoritmo de busca simples.
Habilidades socioemocionais: Aplicar análise crítica e foco.
Objetivo da aula: Implementar algoritmo de busca simples.

Aula 3: Ordenação Bubble Sort

Habilidades técnicas: Codificar e rastrear trocas adjacentes.
Habilidades socioemocionais: Aplicar análise crítica e foco.
Objetivo da aula: Codificar e rastrear trocas adjacentes.

Aula 4: Desafio – estatísticas de vetor

Habilidades técnicas: Calcular média, máximo e mínimo.
Habilidades socioemocionais: Aplicar análise crítica e foco.
Objetivo da aula: Calcular média, máximo e mínimo de um vetor.

SEMANA 12 – Matrizes (arrays bidimensionais)

Tema da semana: Matrizes (arrays bidimensionais)

Aula 1: Conceito e declaração de matrizes

Habilidades técnicas: Declarar matrizes 2D.
Habilidades socioemocionais: Colaborar de forma ativa e respeitosa.
Objetivo da aula: Entender representação tabular em memória.

Aula 2: Percurso linha a linha

Habilidades técnicas: Iterar matriz por linhas e colunas.
Habilidades socioemocionais: Colaborar de forma ativa e respeitosa.
Objetivo da aula: Iterar matriz por linhas e colunas.

Aula 3: Operações agregadas

Habilidades técnicas: Somar linhas e colunas.
Habilidades socioemocionais: Colaborar de forma ativa e respeitosa.
Objetivo da aula: Extrair informações resumidas de um conjunto tabular.

Aula 4: Desafio – jogo da velha base-texto

Habilidades técnicas: Modelar tabuleiro e validar vitórias.
Habilidades socioemocionais: Colaborar de forma ativa e respeitosa.
Objetivo da aula: Modelar tabuleiro e validar vitórias.

SEMANA 13 – Funções e procedimentos

Tema da semana: Funções e procedimentos

Aula 1: Por que modularizar?

Habilidades técnicas: Criar funções com e sem retorno.
Habilidades socioemocionais: Demonstrar persistência e responsabilidade.
Objetivo da aula: Diferenciar funções e procedimentos na estrutura lógica da aplicação.

Aula 2: Parâmetros e retorno

Habilidades técnicas: Utilizar parâmetros posicionais e valores de retorno.
Habilidades socioemocionais: Demonstrar persistência e responsabilidade.
Objetivo da aula: Utilizar parâmetros posicionais e valores de retorno.

Aula 3: Boas práticas de nomeação

Habilidades técnicas: Nomear funções de forma semântica.
Habilidades socioemocionais: Demonstrar persistência e responsabilidade.
Objetivo da aula: Nomear funções de forma semântica.

Aula 4: Desafio – biblioteca de utilidades

Habilidades técnicas: Refatorar código de vetor usando funções.
Habilidades socioemocionais: Demonstrar persistência e responsabilidade.
Objetivo da aula: Refatorar código de vetor usando funções.

SEMANA 14 – Revisão integrada & modularização

Tema da semana: Revisão integrada & modularização

Aula 1: Revisão de estruturas de dados

Habilidades técnicas: Retomar vetores, matrizes e funções.
Habilidades socioemocionais: Praticar autoavaliação crítica e abertura ao feedback.
Objetivo da aula: Retomar vetores, matrizes e funções em conjunto.

Aula 2: Otimizando código existente

Habilidades técnicas: Refatorar para legibilidade e eficiência.
Habilidades socioemocionais: Praticar autoavaliação crítica.
Objetivo da aula: Refatorar para legibilidade e eficiência.

Aula 3: Miniprojeto guiado

Habilidades técnicas: Planejar módulo principal e funções auxiliares.
Habilidades socioemocionais: Praticar autoavaliação crítica.
Objetivo da aula: Planejar módulo principal e funções auxiliares.

Aula 4: Apresentação e feedback

Habilidades técnicas: Compartilhar código e receber feedback.
Habilidades socioemocionais: Praticar autoavaliação crítica.
Objetivo da aula: Compartilhar código, receber e oferecer feedback.

SEMANA 15 – Vetores (arrays) unidimensionais

Tema da semana: Vetores (arrays) unidimensionais

Aula 1: Declaração e inicialização de vetores

Habilidades técnicas: Criar vetores, definir tamanho e atribuir valores.
Habilidades socioemocionais: Explorar com curiosidade diferentes formas de organizar dados.
Objetivo da aula: Compreender reserva de memória e indexação base 0.

Aula 2: Percurso sequencial de vetores

Habilidades técnicas: Garantir controle correto de índices.
Habilidades socioemocionais: Explorar com curiosidade.
Objetivo da aula: Garantir controle correto de índices e condições de parada.

Aula 3: Busca linear e estatísticas simples

Habilidades técnicas: Resolver problema prático com vetores.
Habilidades socioemocionais: Explorar com curiosidade.
Objetivo da aula: Resolver problema prático (ex.: média de temperaturas) usando vetores.

Aula 4: Oficina prática – "Notas da Turma"

Habilidades técnicas: Produzir solução funcional com vetores.
Habilidades socioemocionais: Explorar com curiosidade.
Objetivo da aula: Produzir solução funcional que leia n notas, calcule média e classifique resultados.

SEMANA 16 – Matrizes bidimensionais

Tema da semana: Matrizes bidimensionais

Aula 1: Conceito, declaração e visualização de matrizes

Habilidades técnicas: Declarar matrizes 2D.
Habilidades socioemocionais: Colaborar com colegas dividindo responsabilidades.
Objetivo da aula: Identificar quando a matriz é mais adequada que o vetor.

Aula 2: Laços aninhados para percorrer matrizes

Habilidades técnicas: Iterar por linha e coluna sem ultrapassar limites.
Habilidades socioemocionais: Colaborar com colegas.
Objetivo da aula: Iterar por linha e coluna sem ultrapassar limites.

Aula 3: Agregação de dados em matrizes

Habilidades técnicas: Extrair informações resumidas.
Habilidades socioemocionais: Colaborar com colegas.
Objetivo da aula: Extrair informações resumidas de um conjunto tabular.

Aula 4: Miniprojeto "Planilha de Vendas"

Habilidades técnicas: Construir aplicativo que leia, processe e exiba resultados.
Habilidades socioemocionais: Colaborar com colegas.
Objetivo da aula: Construir aplicativo básico que leia, processe e exiba resultados.

SEMANA 17 – Funções e procedimentos – modularização I

Tema da semana: Funções e procedimentos – modularização I

Aula 1: Definição e chamada de funções

Habilidades técnicas: Criar funções com parâmetros e retorno.
Habilidades socioemocionais: Exercer autocontrole para seguir o plano de modularização.
Objetivo da aula: Compreender pilha de chamadas e passagem de valores.

Aula 2: Parâmetros e escopo de variáveis

Habilidades técnicas: Evitar efeitos colaterais indesejados.
Habilidades socioemocionais: Exercer autocontrole.
Objetivo da aula: Evitar efeitos colaterais indesejados.

Aula 3: Funções reutilizáveis

Habilidades técnicas: Melhorar legibilidade e manutenção.
Habilidades socioemocionais: Exercer autocontrole.
Objetivo da aula: Melhorar legibilidade e manutenção.

Aula 4: Revisão por pares e feedback assertivo

Habilidades técnicas: Desenvolver olhar crítico e comunicação técnica.
Habilidades socioemocionais: Exercer autocontrole.
Objetivo da aula: Desenvolver olhar crítico e comunicação técnica.

SEMANA 18 – Documentação, testes unitários e depuração

Tema da semana: Documentação, testes unitários e depuração

Aula 1: Docstrings e comentários eficazes

Habilidades técnicas: Criar asserts simples e interpretar falhas.
Habilidades socioemocionais: Gerenciar o estresse ao depurar falhas.
Objetivo da aula: Permitir entendimento rápido do código por terceiros.

Aula 2: Introdução a testes unitários

Habilidades técnicas: Garantir que mudanças não quebrem funcionalidade.
Habilidades socioemocionais: Gerenciar o estresse.
Objetivo da aula: Garantir que mudanças não quebrem funcionalidade.

Aula 3: Técnicas básicas de depuração

Habilidades técnicas: Encontrar causa raiz de erros.
Habilidades socioemocionais: Gerenciar o estresse.
Objetivo da aula: Encontrar causa raiz de erros.

Aula 4: Mini-kata TDD "Calculadora"

Habilidades técnicas: Integrar documentação, teste e depuração.
Habilidades socioemocionais: Gerenciar o estresse.
Objetivo da aula: Integrar documentação, teste e depuração em ciclo completo.

SEMANA 19 – Manipulação de strings

Tema da semana: Manipulação de strings

Aula 1: Revisão do tipo string e imutabilidade

Habilidades técnicas: Reconhecer propriedades essenciais de strings.
Habilidades socioemocionais: Explorar com curiosidade métodos de manipulação.
Objetivo da aula: Evitar erros comuns ao modificar texto.

Aula 2: Métodos de busca e substituição

Habilidades técnicas: Automatizar edição de texto.
Habilidades socioemocionais: Explorar com curiosidade.
Objetivo da aula: Automatizar edição de texto.

Aula 3: Slicing e formatação com f-strings

Habilidades técnicas: Produzir relatórios legíveis.
Habilidades socioemocionais: Explorar com curiosidade.
Objetivo da aula: Produzir relatórios legíveis.

Aula 4: Parsing de logs

Habilidades técnicas: Demonstrar aplicação real de strings.
Habilidades socioemocionais: Explorar com curiosidade.
Objetivo da aula: Demonstrar aplicação real de strings.

SEMANA 20 – Arquivos – entrada e saída

Tema da semana: Arquivos – entrada e saída

Aula 1: open() e context manager

Habilidades técnicas: Processar arquivos grandes sem carregar tudo na memória.
Habilidades socioemocionais: Praticar autocontrole e atenção às boas práticas.
Objetivo da aula: Evitar vazamento de recursos.

Aula 2: Leitura linha-a-linha

Habilidades técnicas: Otimizar uso de recursos.
Habilidades socioemocionais: Praticar autocontrole.
Objetivo da aula: Otimizar uso de recursos.

Aula 3: Escrita de relatórios

Habilidades técnicas: Automatizar geração de arquivos de resultado.
Habilidades socioemocionais: Praticar autocontrole.
Objetivo da aula: Automatizar geração de arquivos de resultado.

Aula 4: Integração com CSV

Habilidades técnicas: Facilitar interoperabilidade com planilhas.
Habilidades socioemocionais: Praticar autocontrole.
Objetivo da aula: Facilitar interoperabilidade com planilhas.

SEMANA 21 – Programação Orientada a Objetos – conceitos básicos

Tema da semana: Programação Orientada a Objetos – conceitos básicos

Aula 1: Paradigma OO e anatomia de uma classe

Habilidades técnicas: Aplicar princípios da POO.
Habilidades socioemocionais: Demonstrar curiosidade ativa na investigação dos fundamentos da POO.
Objetivo da aula: Reconhecer diferenças entre código procedural e OO; criar a primeira classe simples.

Aula 2: Encapsulamento e modificadores de acesso

Habilidades técnicas: Implementar proteção de estado interno.
Habilidades socioemocionais: Demonstrar curiosidade ativa.
Objetivo da aula: Implementar proteção de estado interno usando public/private/protected.

Aula 3: Mensagens entre objetos

Habilidades técnicas: Construir métodos de instância e promover interação entre objetos.
Habilidades socioemocionais: Demonstrar curiosidade ativa.
Objetivo da aula: Construir métodos de instância e promover interação entre objetos.

Aula 4: Exercício guiado – sistema de biblioteca simples

Habilidades técnicas: Modelar classes Livro e Usuário.
Habilidades socioemocionais: Demonstrar curiosidade ativa.
Objetivo da aula: Modelar classes Livro e Usuário e testar operações de empréstimo.

SEMANA 22 – POO – herança e polimorfismo

Tema da semana: POO – herança e polimorfismo

Aula 1: Conceito de herança e hierarquias de classes

Habilidades técnicas: Implementar herança e polimorfismo.
Habilidades socioemocionais: Aplicar imaginação criativa para explorar reutilização de código.
Objetivo da aula: Criar subclasses reutilizando atributos e métodos da superclasse.

Aula 2: Sobrescrita de métodos e late binding

Habilidades técnicas: Usar override/virtual para alterar comportamento.
Habilidades socioemocionais: Aplicar imaginação criativa.
Objetivo da aula: Usar override/virtual para alterar comportamento mantendo contrato.

Aula 3: Polimorfismo de interface e coleções heterogêneas

Habilidades técnicas: Manipular objetos via referência da superclasse.
Habilidades socioemocionais: Aplicar imaginação criativa.
Objetivo da aula: Manipular objetos via referência da superclasse.

Aula 4: Oficina – refatorando código procedural com herança

Habilidades técnicas: Transformar programa de cadastro em hierarquia OO.
Habilidades socioemocionais: Aplicar imaginação criativa.
Objetivo da aula: Transformar programa de cadastro em hierarquia OO.

SEMANA 23 – POO – interfaces e abstração

Tema da semana: POO – interfaces e abstração

Aula 1: Contratos com interfaces

Habilidades técnicas: Modelar sistemas com interfaces e classes abstratas.
Habilidades socioemocionais: Exercitar pensamento crítico na análise de decisões arquiteturais.
Objetivo da aula: Definir interface e implementar em múltiplas classes.

Aula 2: Classes abstratas e método-template

Habilidades técnicas: Criar classes parcialmente implementadas.
Habilidades socioemocionais: Exercitar pensamento crítico.
Objetivo da aula: Criar classes parcialmente implementadas e delegar passos às subclasses.

Aula 3: Composição vs. herança

Habilidades técnicas: Avaliar trade-offs de reuso.
Habilidades socioemocionais: Exercitar pensamento crítico.
Objetivo da aula: Avaliar trade-offs de reuso.

Aula 4: Desafio – API de pagamentos

Habilidades técnicas: Projetar interfaces e classes para vários meios de pagamento.
Habilidades socioemocionais: Exercitar pensamento crítico.
Objetivo da aula: Projetar interfaces e classes para vários meios de pagamento.

SEMANA 24 – Estruturas de dados lineares

Tema da semana: Estruturas de dados lineares

Aula 1: Introdução a listas dinâmicas

Habilidades técnicas: Construir e manipular listas, pilhas e filas.
Habilidades socioemocionais: Colaborar ativamente na implementação de estruturas lineares.
Objetivo da aula: Usar ArrayList para dados sequenciais.

Aula 2: Pilhas – LIFO

Habilidades técnicas: Implementar pilha e resolver parênteses balanceados.
Habilidades socioemocionais: Colaborar ativamente.
Objetivo da aula: Implementar pilha e resolver parênteses balanceados.

Aula 3: Filas – FIFO

Habilidades técnicas: Simular fila de banco.
Habilidades socioemocionais: Colaborar ativamente.
Objetivo da aula: Simular fila de banco.

Aula 4: Oficina – Infixa → Pós-fixa

Habilidades técnicas: Combinar pilha+fila no algoritmo de Shunting-Yard.
Habilidades socioemocionais: Colaborar ativamente.
Objetivo da aula: Combinar pilha+fila no algoritmo de Shunting-Yard.

SEMANA 25 – Estruturas de dados não lineares – árvores e heaps

Tema da semana: Estruturas de dados não lineares – árvores e heaps

Aula 1: Introdução a árvores binárias

Habilidades técnicas: Construir e analisar árvores binárias de busca e heaps.
Habilidades socioemocionais: Demonstrar adaptabilidade ao comparar estruturas não lineares.
Objetivo da aula: Identificar nós, graus e profundidade, criando árvore binária manualmente.

Aula 2: Árvores de busca binária (BST)

Habilidades técnicas: Implementar BST com inserção, busca e remoção ordenada.
Habilidades socioemocionais: Demonstrar adaptabilidade.
Objetivo da aula: Implementar BST com inserção, busca e remoção ordenada.

Aula 3: Heaps e PriorityQueue

Habilidades técnicas: Construir heap binário e utilizar PriorityQueue.
Habilidades socioemocionais: Demonstrar adaptabilidade.
Objetivo da aula: Construir heap binário e utilizar PriorityQueue para escalonamento de tarefas.

Aula 4: Miniprojeto – Catálogo de produtos com busca hierárquica

Habilidades técnicas: Modelar catálogo usando BST para SKU e heap para destaque de ofertas.
Habilidades socioemocionais: Demonstrar adaptabilidade.
Objetivo da aula: Modelar catálogo usando BST para SKU e heap para destaque de ofertas.

SEMANA 26 – Refatoração, Clean Code e padrões simples

Tema da semana: Refatoração, Clean Code e padrões simples

Aula 1: Detecção de code smells

Habilidades técnicas: Diagnosticar "code smells" e refatorar aplicando princípios Clean Code.
Habilidades socioemocionais: Exercer autonomia no diagnóstico de problemas de código.
Objetivo da aula: Reconhecer duplicação, métodos longos e classes com muitas responsabilidades.

Aula 2: Técnicas de refatoração passo a passo

Habilidades técnicas: Aplicar Refactor-Rename, Extract Method e Introduce Parameter Object.
Habilidades socioemocionais: Exercer autonomia.
Objetivo da aula: Aplicar Refactor-Rename, Extract Method e Introduce Parameter Object.

Aula 3: Padrões simples – Singleton, Factory e Strategy

Habilidades técnicas: Incorporar padrões a código legado durante refatoração.
Habilidades socioemocionais: Exercer autonomia.
Objetivo da aula: Incorporar padrões a código legado durante refatoração.

Aula 4: Revisão de código colaborativa & checklist final

Habilidades técnicas: Conduzir peer-review, registrar issues e aprovar merge request.
Habilidades socioemocionais: Exercer autonomia.
Objetivo da aula: Conduzir peer-review, registrar issues e aprovar merge request.