Skip to content
Informática · 11.º Ano

Ideias de aprendizagem ativa

Introdução à Programação Orientada a Objetos (POO)

A Programação Orientada a Objetos exige que os alunos passem do abstrato ao concreto, algo que só se concretiza quando interagem diretamente com o código. Trabalhar em pares, grupos ou individualmente força-os a questionar, testar e refinar as suas ideias, transformando conceitos teóricos em estruturas funcionais que entendem verdadeiramente.

Aprendizagens EssenciaisDGE: Secundário - ProgramaçãoDGE: Secundário - Engenharia de Software
25–45 minPares → Turma inteira4 atividades

Atividade 01

Mapeamento Concetual30 min · Pares

Pair Programming: Criar Classe Animal

Em pares, os alunos definem uma classe Animal com atributos como nome e idade, e métodos como emitir_som e mover. Cada par instancia dois objetos e testa os métodos no código. Partilhem resultados com a turma para comparar implementações.

Como é que a abstração nos permite modelar objetos do mundo real em código?

Sugestão de FacilitaçãoDurante a atividade de pair programming, peça aos pares para alternarem entre quem escreve o código e quem explica cada linha, garantindo que ambos compreendem a criação da classe e dos objetos.

O que observarEntregue a cada aluno um pequeno cartão. Peça-lhes para escreverem o nome de um objeto do mundo real (ex: um livro, um telemóvel) e, em seguida, listarem 2 atributos e 1 método que esse objeto poderia ter se fosse representado numa classe em POO.

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Atividade 02

Mapeamento Concetual45 min · Pequenos grupos

Small Groups: Modelar Biblioteca

Grupos de quatro criam classes Livro e Utilizador, com atributos relevantes e métodos como emprestar e devolver. Instanciem objetos para simular transações. Apresentem um fluxograma da interação entre objetos.

Diferencie uma classe de um objeto e forneça exemplos práticos.

Sugestão de FacilitaçãoNa modelação da biblioteca em pequenos grupos, forneça exemplos de entidades como 'Livro' e 'Leitor' mas incentive-os a adicionar pelo menos uma relação entre elas, como 'livros emprestados'.

O que observarApresente uma lista de termos: 'Classe', 'Objeto', 'Atributo', 'Método'. Peça aos alunos para, em pares, definirem cada termo com as suas próprias palavras e darem um exemplo prático para cada um, relacionado com um jogo de computador.

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Atividade 03

Mapeamento Concetual25 min · Turma inteira

Whole Class: Debug de Código POO

Projete um código com erros comuns em classes e objetos. A turma identifica e corrige coletivamente, votando em soluções. Discutam impactos nos atributos e métodos.

Analise os benefícios de organizar o código em classes e objetos.

Sugestão de FacilitaçãoNo debug em turma, selecione um erro comum, como um método que não altera um atributo, e guie-os passo a passo para identificar a causa usando impressão de valores no console.

O que observarColoque a seguinte questão ao grupo: 'Como é que a abstração, ao permitir-nos focar nos aspetos essenciais de um objeto, nos ajuda a gerir a complexidade no desenvolvimento de software?' Incentive os alunos a partilharem exemplos de como simplificaram um problema real ao criar uma classe.

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Atividade 04

Mapeamento Concetual35 min · Individual

Individual: Estender Classe Veículo

Cada aluno estende uma classe base Veículo com herança, adicionando atributos e métodos específicos para Carro ou Moto. Testem e submetam o código para revisão.

Como é que a abstração nos permite modelar objetos do mundo real em código?

Sugestão de FacilitaçãoNa extensão da classe Veículo, peça aos alunos para documentarem as suas decisões em comentários no código, explicando porque escolheram determinados atributos e métodos.

O que observarEntregue a cada aluno um pequeno cartão. Peça-lhes para escreverem o nome de um objeto do mundo real (ex: um livro, um telemóvel) e, em seguida, listarem 2 atributos e 1 método que esse objeto poderia ter se fosse representado numa classe em POO.

CompreenderAnalisarCriarAutoconsciênciaAutogestão
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

Comece por relacionar classes e objetos com objetos físicos concretos, como uma caneta ou um telemóvel, para ancorar a abstração. Evite apresentar todas as regras de POO de uma vez; introduza conceitos gradualmente, permitindo que os alunos pratiquem cada um antes de avançar. Pesquisas mostram que a aprendizagem ativa melhora a retenção, especialmente quando os alunos constroem, testam e corrigem os seus próprios exemplos.

No final, espera-se que os alunos consigam definir uma classe com atributos relevantes, criar objetos a partir dela e implementar métodos que alterem o estado desses objetos. Os alunos demonstram compreensão ao explicar como a classe serve de modelo e os objetos como instâncias específicas, usando exemplos do mundo real durante as discussões.


Atenção a estes erros comuns

  • Durante a atividade de Pair Programming: Criar Classe Animal, watch for alunos que confundam classe com objeto ao falarem sobre 'o cão' como uma classe em vez de uma instância.

    Peça aos pares para criarem três objetos diferentes da mesma classe (ex: Cachorro, Gato, Leão) e compararem os seus atributos. Solicite-lhes que expliquem por que razão a classe Animal não tem valores específicos mas serve como modelo para todos os animais.

  • Durante a atividade em Small Groups: Modelar Biblioteca, watch for alunos que assumam que atributos só podem ser números ou texto, ignorando estruturas mais complexas.

    Guie o grupo a incluir um atributo do tipo lista (ex: uma lista de livros emprestados por um leitor) ou um objeto aninhado (ex: um endereço como parte da classe Leitor). Discuta como estes tipos de atributos permitem representar relações mais ricas.

  • Durante a atividade Whole Class: Debug de Código POO, watch for alunos que não percebam que métodos podem e devem alterar atributos.

    Apresente um código com um método 'emprestarLivro' que não atualiza o atributo 'livrosEmprestados'. Solicite aos alunos que identifiquem o problema, sugiram uma correção e testem a nova implementação com diferentes cenários.


Metodologias usadas neste resumo