Skip to content
TIC · 9.º Ano

Ideias de aprendizagem ativa

Introdução à Programação Orientada a Objetos

A programação orientada a objetos exige que os alunos transitem do pensamento concreto para o abstrato. Atividades práticas, especialmente aquelas que envolvem manipulação de código visível e comparável, facilitam esta transição ao tornarem tangíveis conceitos como classes e objetos. Ao construir e observar exemplos simples, os alunos desenvolvem uma compreensão intuitiva antes de avançarem para cenários mais complexos.

Aprendizagens EssenciaisDGE: 3o Ciclo - Algoritmia e Programação
25–50 minPares → Turma inteira4 atividades

Atividade 01

Ensino pelos Pares30 min · Pares

Ensino pelos Pares: Construir Classes Básicas

Em pares, os alunos definem uma classe 'Estudante' com atributos nome e idade, e métodos para apresentar-se. Criam dois objetos e testam interações. Partilham código com a turma para feedback mútuo.

O que distingue fundamentalmente uma classe de um objeto, e por que razão essa distinção é central na programação orientada a objetos?

Sugestão de FacilitaçãoDurante a atividade 'Construir Classes Básicas', circule entre os pares para garantir que ambos os alunos interagem com o código, evitando que um domine a atividade enquanto o outro observa passivamente.

O que observarEntregue a cada aluno um pequeno excerto de código. Peça-lhes para identificarem se o código representa uma classe ou um objeto e para explicarem, numa frase, qual a sua função principal no contexto da POO.

CompreenderAplicarAnalisarCriarAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 02

Mapeamento Concetual45 min · Pequenos grupos

Grupos Pequenos: Explorar Herança

Grupos criam uma classe base 'Veículo' e subclasses 'Carro' e 'Bicicleta' que herdam e adicionam atributos. Executam simulações de movimento e discutem vantagens da herança.

Como é que a herança pode tanto simplificar como complicar a estrutura de um programa, consoante a forma como é aplicada?

Sugestão de FacilitaçãoNa atividade 'Explorar Herança', desafie os grupos a preverem o comportamento de subclasses antes de executarem o código, fomentando o raciocínio abstrato.

O que observarApresente um cenário simples, como 'gerir uma coleção de livros numa biblioteca'. Pergunte aos alunos: 'Que atributos e métodos poderiam definir uma classe 'Livro'? Dê dois exemplos de objetos 'Livro' que poderiam ser criados.'

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Atividade 03

Mapeamento Concetual50 min · Turma inteira

Turma Inteira: Debate e Codificação Coletiva

A turma discute diferenças entre classes e objetos, depois codifica coletivamente um programa com herança num projetor. Cada aluno contribui com uma parte e testa o todo.

Em que contextos a programação orientada a objetos oferece vantagens claras sobre abordagens procedurais, e quando essas vantagens se dissipam?

Sugestão de FacilitaçãoNo debate coletivo, reserve tempo para que alunos com diferentes níveis de confiança partilhem as suas ideias, usando o código projetado como suporte visual para todos.

O que observarColoque a seguinte questão para discussão em pequenos grupos: 'Quando é que a herança simplifica o código e quando é que pode torná-lo mais difícil de gerir? Dê um exemplo concreto para cada situação.'

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Atividade 04

Mapeamento Concetual25 min · Individual

Individual: Modificar Código Existente

Cada aluno recebe código de uma classe simples e adiciona herança para expandir funcionalidades. Testa e documenta mudanças num relatório curto.

O que distingue fundamentalmente uma classe de um objeto, e por que razão essa distinção é central na programação orientada a objetos?

Sugestão de FacilitaçãoNa atividade 'Modificar Código Existente', forneça feedback imediato e específico a cada aluno, destacando não apenas erros sintáticos, mas também decisões de design.

O que observarEntregue a cada aluno um pequeno excerto de código. Peça-lhes para identificarem se o código representa uma classe ou um objeto e para explicarem, numa frase, qual a sua função principal no contexto da POO.

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

Comece com exemplos físicos familiares, como moldes de bolos ou plantas de casas, para introduzir a noção de classe como um 'molde'. Evite explicar herança antes de os alunos dominarem a criação de objetos e classes básicas. A pesquisa mostra que a prática guiada, com feedback imediato, reduz significativamente as concepções erradas sobre POO, especialmente a confusão entre classes e objetos. Priorize a discussão sobre quando usar POO versus programação procedural, usando exemplos contrastantes para desenvolver o pensamento crítico.

No final destas atividades, espera-se que os alunos consigam distinguir claramente entre classes e objetos, explicar o papel da herança na reutilização de código e modularizar problemas simples usando POO. A participação ativa em debates e a capacidade de justificar escolhas de design mostram a consolidação destes conceitos.


Atenção a estes erros comuns

  • During 'Construir Classes Básicas', watch for students who refer to a class as if it were a concrete thing. Redirect them by asking: 'Se este fosse um molde de bolo, já temos o bolo feito? Mostre-me onde está o objeto concreto criado a partir desta classe.'

    Peça aos alunos que adicionem uma linha de código para instanciar um objeto e comparem o seu código com as definições da classe, destacando as diferenças visuais e conceptuais.

  • During 'Explorar Herança', watch for students who believe subclasses 'copiam' todo o código da classe pai. Redirect them by asking: 'Se apagarmos a classe 'Carro' agora, a classe 'CarroDesportivo' ainda funciona? Porquê?'

    Peça aos alunos para comentarem o código da classe pai e observarem que apenas os métodos herdados são executáveis, enquanto os novos métodos da subclasse permanecem intactos.

  • During 'Debate e Codificação Coletiva', watch for students who claim POO is always better than programação procedural. Redirect them by asking: 'Imagine que só precisa de calcular a média de 100 números. Qual abordagem torna o código mais simples e direto?'

    Peça aos alunos para compararem dois trechos de código: um procedural que calcula a média e outro POO que modela o problema com uma classe. Discutam a complexidade em cada caso.


Metodologias usadas neste resumo