Skip to content
Informática · 10.º Ano

Ideias de aprendizagem ativa

Introdução a Estruturas de Dados Simples (Listas)

Listas são estruturas abstratas que os alunos muitas vezes confundem com conceitos matemáticos simples. Atividades práticas transformam esta abstração em algo tangível, mostrando como índices, ordem e operações básicas se aplicam diretamente em problemas do mundo real. Quando manipulam listas em contextos concretos, os alunos constroem uma base sólida para algoritmos mais avançados no futuro.

Aprendizagens EssenciaisDGE: Secundário - ProgramaçãoDGE: Secundário - Dados e Informação
30–50 minPares → Turma inteira4 atividades

Atividade 01

Pair Programming: Lista de Notas Escolares

Os pares criam uma lista para armazenar notas de alunos, adicionam elementos com append(), acedem por índice e calculam a média com um ciclo for. Testam alterando valores e depuram erros juntos. Registam o código final num documento partilhado.

Analise como as listas permitem gerir múltiplos valores sob um único nome.

Sugestão de FacilitaçãoDurante a Pair Programming, circule entre os pares e peça-lhes para explicarem em voz alta cada linha de código antes de executarem, especialmente quando lidam com índices.

O que observarEntregue a cada aluno um pequeno excerto de código Python que cria uma lista e realiza uma operação simples (ex: adicionar um item). Peça-lhes para escreverem o que será impresso no ecrã e qual o índice do último elemento adicionado.

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 02

Aprendizagem Baseada em Problemas45 min · Pequenos grupos

Small Groups: Simulação Física de Listas

Cada grupo usa cartões numerados para representar índices e valores numa lista física. Realizam operações de inserção e remoção, cronometrando o tempo para posições iniciais e finais. Discutem depois a eficiência num quadro partilhado.

Compare a eficiência de acesso a elementos em diferentes posições de uma lista.

Sugestão de FacilitaçãoNa simulação física de listas, distribua cartões numerados e peça aos grupos para demonstrarem operações de remoção em diferentes posições, registando o tempo gasto.

O que observarApresente uma lista de números (ex: [10, 25, 5, 40, 15]). Pergunte aos alunos: 'Qual é o valor no índice 2?' e 'Se removermos o elemento no índice 0, qual será o novo valor no índice 1?'

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 03

Aprendizagem Baseada em Problemas50 min · Turma inteira

Whole Class: Desafio de Processamento de Dados

A turma recebe dados de utilizadores fictícios; constroem coletivamente uma lista no quadro interativo, implementam um programa para filtrar e ordenar. Votam na solução mais eficiente e codificam em Python.

Projete um programa que utilize uma lista para armazenar e processar dados de utilizadores.

Sugestão de FacilitaçãoNo desafio de processamento de dados, forneça dados reais mas pequenos para que todos consigam acompanhar e incentive a discussão de estratégias antes de implementarem soluções.

O que observarColoque a seguinte questão: 'Imaginem que têm uma lista de 1000 nomes de utilizadores. Qual seria a forma mais eficiente de encontrar um nome específico e porquê?' Incentive a discussão sobre a diferença entre procurar sequencialmente e outras abordagens (que podem ser introduzidas posteriormente).

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 04

Individual: Projeto de Lista de Utilizadores

Cada aluno projeta uma lista para registos de utilizadores, incluindo adição, pesquisa por nome e remoção. Executam o programa com dados de teste e submetem o código com relatório de eficiência.

Analise como as listas permitem gerir múltiplos valores sob um único nome.

Sugestão de FacilitaçãoNo projeto individual de listas de utilizadores, forneça um template com operações básicas para evitar bloqueios e foque-se em ajudar os alunos a expandirem o projeto com funcionalidades adicionais.

O que observarEntregue a cada aluno um pequeno excerto de código Python que cria uma lista e realiza uma operação simples (ex: adicionar um item). Peça-lhes para escreverem o que será impresso no ecrã e qual o índice do último elemento adicionado.

AnalisarAvaliarCriarTomada de DecisãoAutogestãoCompetências Relacionais
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

Comece com manipulação física de listas para construir intuição sobre ordem e índices, pois os alunos precisam de ver a estrutura antes de transporem para o código. Evite introduzir todas as operações de uma vez, focando antes em padrões claros como 'adicionar no fim é rápido, no início é lento'. Pesquisas mostram que erros de índice persistem porque os alunos não conectam o código ao modelo mental que construíram durante as simulações.

No final destas atividades, os alunos devem conseguir explicar o papel do índice zero, descrever como adicionar e remover elementos altera a lista, e justificar escolhas entre diferentes operações com base na eficiência. O sucesso é visível quando os alunos antecipam outputs de código e corrigem erros comuns sem ajuda do professor.


Atenção a estes erros comuns

  • Durante a Pair Programming, watch for students assuming the first index is 1 when accessing list elements.

    Peça aos pares para escreverem manualmente os índices esperados num papel antes de executarem o código e compararem com o output real, registando as discrepâncias para discussão em grupo.

  • During Small Groups: Simulação Física de Listas, watch for students treating the list as an unordered collection.

    Distribua cartões com números e peça aos grupos para simular remoções em diferentes posições, cronometrando cada operação para revelar a importância da posição e da ordem.

  • During Whole Class: Desafio de Processamento de Dados, watch for students believing all insertions take equal time.

    Crie uma tabela comparativa durante a atividade onde os alunos registem tempos de inserção no início, meio e fim, usando listas de diferentes tamanhos para validar as suas hipóteses.


Metodologias usadas neste resumo