BNCC: [EF08MA10]
Plano de Aula: Introdução à Computação com Listas e Recursão
Objetivo: Identificar a regularidade de uma sequência numérica ou figural não recursiva e construir um algoritmo por meio de um fluxograma que permita indicar os números ou as figuras seguintes, utilizando listas e recursão em uma linguagem de programação.
Duração: 50 minutos
Metodologia: Metodologia Ativa (Aprendizagem Baseada em Problemas)
Recursos:
- Computadores com acesso a uma linguagem de programação (Python, Scratch, etc.)
- Projetor para demonstrações
- Lousa ou quadro branco
- Materiais para fluxogramas (papel, canetas, etc.)
Estrutura da Aula:
-
Introdução (5 minutos)
- Comece a aula relembrando o conceito de sequências numéricas e padrões. Pergunte aos alunos se eles se lembram de exemplos de sequências que viram em aulas anteriores.
- Apresente o conceito de algoritmo como uma sequência de passos lógicos para resolver um problema.
- Motive os alunos mostrando como a computação pode automatizar a identificação de padrões e a geração de sequências.
-
Explicação Teórica (15 minutos)
-
Listas:
-
Explique o que são listas em programação, como estruturas de dados que armazenam coleções de itens.
-
Demonstre como criar e manipular listas em Python (ou na linguagem escolhida). Por exemplo:
lista = [1, 2, 3, 4, 5] print(lista[0]) # Imprime o primeiro elemento (1) -
Mostre como adicionar, remover e acessar elementos de uma lista.
-
-
Recursão:
-
Introduza o conceito de recursão como uma técnica de programação onde uma função chama a si mesma para resolver um problema menor.
-
Explique que a recursão envolve um caso base (condição de parada) e um caso recursivo (chamada da função a si mesma).
-
Use um exemplo simples, como o cálculo do fatorial de um número, para ilustrar a recursão:
def fatorial(n): if n == 0: return 1 # Caso base else: return n * fatorial(n-1) # Caso recursivo print(fatorial(5)) # Imprime 120
-
-

-
-
Atividade Prática (25 minutos)
-
Problema: Apresente o seguinte problema: "Crie um programa que gere os primeiros termos da sequência de Fibonacci usando listas e recursão."
-
Fluxograma: Peça aos alunos para, em grupos, criarem um fluxograma que represente o algoritmo para resolver o problema. O fluxograma deve incluir os passos para:
- Inicializar a lista com os dois primeiros termos da sequência (0 e 1).
- Calcular os termos seguintes somando os dois últimos termos da lista.
- Adicionar o novo termo à lista.
- Repetir o processo até atingir o número de termos desejado ().

-
Implementação: Após a criação do fluxograma, os alunos devem implementar o algoritmo em Python (ou na linguagem escolhida). Ajude-os com a sintaxe e a lógica, se necessário. Uma possível solução seria:
def fibonacci_recursivo(n): if n <= 1: return n else: return fibonacci_recursivo(n-1) + fibonacci_recursivo(n-2) def fibonacci_lista(n): lista_fib = [] for i in range(n): lista_fib.append(fibonacci_recursivo(i)) return lista_fib n = 10 # Número de termos desejados fib_lista = fibonacci_lista(n) print(fib_lista) # Imprime a lista com os primeiros 10 termos -
Incentive os alunos a testarem o programa com diferentes valores de e a observarem a sequência gerada.
-
-
Discussão e Conclusão (5 minutos)
- Promova uma discussão sobre as vantagens e desvantagens de usar listas e recursão para resolver o problema.
- Pergunte aos alunos como eles poderiam modificar o programa para gerar outras sequências numéricas.
- Conclua reforçando a importância da computação para a resolução de problemas matemáticos e a identificação de padrões.
Avaliação:
- Avalie a participação dos alunos na discussão e na criação do fluxograma.
- Verifique se os alunos conseguiram implementar o algoritmo corretamente e gerar a sequência de Fibonacci.
- Proponha exercícios adicionais para consolidar o aprendizado, como gerar outras sequências ou resolver problemas similares usando listas e recursão.
Observações:
- Adapte a complexidade do problema e da implementação à experiência dos alunos com programação.
- Incentive a colaboração e a troca de ideias entre os alunos.
- Utilize recursos visuais, como diagramas e animações, para facilitar a compreensão dos conceitos.
Esta aula busca integrar a habilidade da BNCC [EF08MA10] ao contexto da programação, permitindo aos alunos aplicar conceitos matemáticos na criação de soluções computacionais. Ao utilizar listas e recursão, eles desenvolvem o pensamento algorítmico e a capacidade de identificar padrões, habilidades essenciais para a resolução de problemas complexos.