Skip to content
Aplicações Informáticas B · 12.º Ano

Ideias de aprendizagem ativa

Funções e Procedimentos

A aprendizagem ativa é especialmente eficaz neste tópico porque os alunos precisam de vivenciar a diferença entre passagem por valor e por referência através de manipulação prática de código. Ao trabalharem em equipa, os alunos experimentam diretamente como a modularização melhora a clareza e a manutenção do código.

Aprendizagens EssenciaisDGE: Secundário - Algoritmia e Programação
20–50 minPares → Turma inteira4 atividades

Atividade 01

Método Jigsaw30 min · Pares

Pair Programming: Criar Função Modular

Os pares definem uma função para calcular estatísticas de uma lista, passando parâmetros por valor. Testam com dados variados e refatoram para incluir referência. Discutem melhorias na legibilidade.

Analise como a modularização do código melhora a sua manutenção e legibilidade.

Sugestão de FacilitaçãoDurante a Pair Programming, peça aos alunos que alternem entre o papel de condutor e observador a cada 10 minutos para garantir participação equitativa.

O que observarEntregue a cada aluno um pequeno trecho de código com uma função. Peça-lhes para escreverem: 1) Uma frase explicando o que a função faz. 2) Uma frase comparando a passagem por valor e por referência no contexto dessa função específica, assumindo que os parâmetros poderiam ser passados de ambas as formas. 3) Uma sugestão de melhoria na documentação, se aplicável.

CompreenderAnalisarAvaliarCompetências RelacionaisAutogestão
Gerar Aula Completa

Atividade 02

Método Jigsaw45 min · Pequenos grupos

Small Groups: Refatorar Código Existente

Grupos recebem código monolítico e o dividem em funções e procedimentos documentados. Comparar versões antes/depois em termos de manutenção. Apresentam alterações à turma.

Compare a passagem de parâmetros por valor e por referência em diferentes contextos.

Sugestão de FacilitaçãoNa atividade de Refatorar Código Existente, forneça um código com pelo menos três funções não modularizadas para que os alunos pratiquem a divisão em blocos reutilizáveis.

O que observarApresente aos alunos dois exemplos de funções que realizam a mesma tarefa: uma bem documentada e outra sem documentação. Coloque as seguintes questões para discussão em pequenos grupos: 'Qual função é mais fácil de entender e reutilizar? Porquê? Que informações adicionais seriam úteis na função menos documentada para facilitar a colaboração?'

CompreenderAnalisarAvaliarCompetências RelacionaisAutogestão
Gerar Aula Completa

Atividade 03

Método Jigsaw50 min · Turma inteira

Whole Class: Desafio de Colaboração

Turma constrói um programa coletivo: cada grupo cria uma função documentada e partilha. Integram num script principal, testando passagem por referência. Debatem erros comuns.

Explique a importância de documentar funções para facilitar a colaboração em equipa.

Sugestão de FacilitaçãoNo Desafio de Colaboração, atribua funções com parâmetros por valor e por referência a diferentes grupos para que possam comparar resultados e discutir implicações.

O que observarDurante a aula, apresente um problema simples que pode ser resolvido com uma função. Peça aos alunos para, individualmente, escreverem o protótipo da função (nome, parâmetros, tipo de retorno) e uma breve descrição do seu propósito. Em seguida, peça a alguns alunos para partilharem as suas respostas e justificar as suas escolhas de design.

CompreenderAnalisarAvaliarCompetências RelacionaisAutogestão
Gerar Aula Completa

Atividade 04

Método Jigsaw20 min · Individual

Individual: Documentar e Testar

Cada aluno documenta funções existentes e cria testes unitários. Partilham repositórios para revisão por pares, focando em legibilidade.

Analise como a modularização do código melhora a sua manutenção e legibilidade.

Sugestão de FacilitaçãoNa atividade Individual de Documentar e Testar, peça aos alunos que usem a ferramenta de comentários do editor de código para praticar formatação profissional.

O que observarEntregue a cada aluno um pequeno trecho de código com uma função. Peça-lhes para escreverem: 1) Uma frase explicando o que a função faz. 2) Uma frase comparando a passagem por valor e por referência no contexto dessa função específica, assumindo que os parâmetros poderiam ser passados de ambas as formas. 3) Uma sugestão de melhoria na documentação, se aplicável.

CompreenderAnalisarAvaliarCompetências RelacionaisAutogestão
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

Ensine este tópico com foco em exemplos do mundo real, como manipulação de listas ou cálculo de médias, onde a passagem de parâmetros faz diferença visível. Evite começar com teoria abstrata; use analogias simples, como 'passar uma fotocópia (valor) vs. passar o original (referência)', mas não se prolongue nelas. Pesquisas mostram que alunos aprendem melhor quando manipulam código e observam resultados em tempo real, por isso privilegie a experimentação em detrimento de explicações longas.

Os alunos demonstram compreensão ao criar funções bem estruturadas, documentar parâmetros e justificar escolhas de design. Espera-se que colaborem eficazmente, identifiquem problemas de passagem de parâmetros e comuniquem soluções de forma clara.


Atenção a estes erros comuns

  • Durante a Pair Programming: Criar Função Modular, alguns alunos podem assumir que funções e procedimentos são iguais por não terem ainda observado o retorno de valores.

    Sugira que os pares criem uma função que calcula o máximo de dois números e devolva o resultado, e outro procedimento que apenas imprima o máximo. Peça-lhes que comparem os outputs e discutam quando usar cada um.

  • Durante a Small Groups: Refatorar Código Existente, os alunos podem não notar a diferença entre passagem por valor e referência ao trabalharem com tipos simples como inteiros.

    Inclua no código uma lista ou vetor e peça aos alunos que testem passar a estrutura por valor e por referência, observando mutações inesperadas e ajustando o código em conjunto.

  • Durante o Whole Class: Desafio de Colaboração, os alunos podem subestimar a importância da documentação por acharem que o código é autoexplicativo.

    Forneça dois exemplos de funções que realizam a mesma tarefa, um com documentação clara e outro sem. Peça aos grupos que discutam como cada versão facilita ou dificulta a colaboração e a manutenção futura.


Metodologias usadas neste resumo