Registro de Aula S14A3 — Semana 14 · Aula 3 – Aplicação em módulos: interface e lógica
Unidade 2 – Modularização e separação de responsabilidadesBase: Capítulos 32 a 40 — funções, parâmetros, return e módulosTempo: 50 minEntrega: AVA (documento com as respostas)Arquivo: NOME_TURMA_S14A3
ATIVIDADE PROPOSTA
O que vocês vão resolver
Vocês vão construir um gerenciador de tarefas dividido em dois arquivos: main.py, o módulo de interface, que exibe o menu e conversa com o usuário; e tarefas.py, o módulo de lógica, que guarda e manipula os dados. A aplicação cresce em três partes: primeiro a fundação (menu), depois adicionar e listar, e por fim concluir e remover.
Observação: o card desta atividade no AVA vem intitulado “Do caos à ação: priorizando melhorias”, com um texto de abertura sobre retrospectiva de Sprint — mas o procedimento do roteiro e as perguntas de consolidação são todos sobre esta aplicação em Python. Os blocos de código também não vieram no arquivo do roteiro; o código de referência desta página foi escrito para preencher essa lacuna.
OBJETIVOS
O que vocês vão aprender aqui
✓Separar uma aplicação em módulo de interface e módulo de lógica.
✓Importar funções de um módulo para outro com from … import ….
✓Implementar funções para adicionar, listar, concluir e remover itens de uma lista.
✓Usar enumerate para numerar itens e converter a numeração do usuário em índice de lista.
SOLUÇÃO DIGITAL
Ferramenta usada nesta aula
PY
Python 3 + terminal
Os dois arquivos ficam na mesma pasta e o programa é executado pelo terminal com python3 main.py. O relatório é preenchido nesta página e exportado em PDF pelo navegador.
ENTENDA
Dois arquivos, duas responsabilidades
A ideia central da semana: quem <b>fala com o usuário</b> não é quem <b>mexe nos dados</b>. Essa separação é o que permite trocar o menu sem tocar na lógica — e vice-versa.
Como preencher este relatório
1Leia o cenário e observe os diagramas — eles mostram o conceito que a sua resposta precisa usar.
2Preencha a identificação do grupo no Passo 0.
3Responda um passo de cada vez, na ordem. Cada passo traz uma dica de como pensar logo abaixo do enunciado.
4Confira o checklist no final — ele verifica se não ficou nada faltando.
5Clique em Gerar PDF da resposta. Na janela de impressão, escolha Destino: Salvar como PDF e salve como NOME_TURMA_S14A3.
6Envie esse PDF no AVA. O que vocês digitarem fica salvo neste computador sozinho — dá para fechar a página e voltar depois.
PASSO 0
Identificação
Estes dados montam a capa e a folha de rosto do relatório em PDF.
PROCEDIMENTOS
Construam a aplicação em três partes
Os códigos de referência abaixo de cada passo foram escritos para esta página, já que o roteiro original veio sem os blocos de código.
1
Parte 1 — Criem os dois arquivos e expliquem a responsabilidade de cada um.
Como pensar: Os dois ficam na mesma pasta. Em tarefas.py, comecem com a lista vazia que vai guardar tudo.
# tarefas.py — módulo de lógica
lista_de_tarefas = []
2
Parte 1 — Montem o menu em main.py e testem a fundação.
Como pensar: Neste momento as opções ainda mostram mensagens temporárias. Rodem python3 main.py e testem as opções 1, 2 e 3 antes de seguir.
# main.py — módulo de interface (versão da Parte 1)while True:
print("\n=== GERENCIADOR DE TAREFAS ===")
print("1. Adicionar tarefa")
print("2. Listar tarefas")
print("3. Sair")
opcao = input("Escolha uma opção: ")
if opcao == "1":
print("[em breve] adicionar")
elif opcao == "2":
print("[em breve] listar")
elif opcao == "3":
print("Até logo!")
breakelse:
print("Opção inválida.")
3
Parte 2 — Escrevam adicionar_tarefa e listar_tarefas em tarefas.py.
Como pensar: Cada tarefa guarda duas informações: o nome e se já foi concluída. Na listagem, o enumerate com start=1 numera para o usuário.
# tarefas.py
lista_de_tarefas = []
def adicionar_tarefa(nome_tarefa):
lista_de_tarefas.append({"nome": nome_tarefa, "concluida": False})
print(f'Tarefa "{nome_tarefa}" adicionada.')
def listar_tarefas():
if len(lista_de_tarefas) == 0:
print("Nenhuma tarefa cadastrada.")
return
print("\nSuas tarefas:")
for indice, tarefa in enumerate(lista_de_tarefas, start=1):
status = "[x]" if tarefa["concluida"] else "[ ]"
print(f"{indice}. {status} {tarefa['nome']}")
4
Parte 2 — Conectem as funções ao menu e testem.
Como pensar: Em main.py, importem as funções na primeira linha e troquem as mensagens temporárias pelas chamadas. Adicionem duas ou três tarefas e listem.
# main.py — primeira linhafrom tarefas import adicionar_tarefa, listar_tarefas
# dentro do if/elifif opcao == "1":
nome = input("Nome da tarefa: ")
adicionar_tarefa(nome)
elif opcao == "2":
listar_tarefas()
O que fizemos
Saída obtida
Funcionou?
Adicionamos 3 tarefas
Listamos as tarefas
5
Parte 3 — Escrevam marcar_concluida e remover_tarefa.
Como pensar: As duas recebem o número que o usuário vê e precisam converter para índice. Validem o intervalo antes de mexer na lista — senão o programa quebra com um número fora da faixa.
def marcar_concluida(numero):
indice = numero - 1
if 0 <= indice < len(lista_de_tarefas):
lista_de_tarefas[indice]["concluida"] = True
print("Tarefa marcada como concluída.")
else:
print("Número inválido.")
def remover_tarefa(numero):
indice = numero - 1
if 0 <= indice < len(lista_de_tarefas):
removida = lista_de_tarefas.pop(indice)
print(f'Tarefa "{removida["nome"]}" removida.')
else:
print("Número inválido.")
6
Parte 3 — Atualizem o menu e façam o teste final.
Como pensar: O menu passa a ter 5 opções. Testem a sequência completa: adicionar, listar, marcar uma como concluída, listar de novo para ver o [x], e remover.
from tarefas import adicionar_tarefa, listar_tarefas, marcar_concluida, remover_tarefa
# novas opçõeselif opcao == "3":
numero = int(input("Número da tarefa: "))
marcar_concluida(numero)
elif opcao == "4":
numero = int(input("Número da tarefa: "))
remover_tarefa(numero)
Passo do teste
Saída obtida
Funcionou?
Adicionar tarefas
Listar
Marcar uma como concluída
Listar de novo (aparece o [x]?)
Remover uma tarefa
7
Colem a versão final dos dois arquivos.
Como pensar: É o resultado da aplicação completa, com separação de responsabilidades.
8
Perguntas de consolidação.
Como pensar: As três do roteiro. A terceira é a mais importante: ela liga uma decisão de código a uma decisão de experiência do usuário.
CONFIRA
Checklist antes de gerar o PDF
Ao clicar em “Gerar PDF da resposta”, o navegador monta o relatório completo no padrão de
roteiro de aula prática — com capa, folha de rosto, objetivos, procedimentos, as respostas do grupo e
as referências. Na janela de impressão, escolha Destino: Salvar como PDF, salve como
NOME_TURMA_S14A3 e envie no AVA.
AVALIAÇÃO
Como esta atividade será avaliada
Critério
Pontos
Separação correta entre módulo de interface e módulo de lógica
3,0
As quatro funções implementadas e funcionando
3,0
Uso de enumerate e conversão correta de numeração para índice
2,0
Respostas de consolidação
2,0
REFERÊNCIAS
De onde veio o conteúdo desta aula
SEDUC-SP — Roteiro de Atividade Prática SISANO1C1B2S14A3AP (Partes 1 a 3 e perguntas de consolidação).
Apostila da disciplina — Capítulos 32 a 40: funções, parâmetros, return, módulos e pacotes.
Documentação oficial do Python — Built-in Functions: enumerate().
Documentação oficial do Python — Tutorial, seção 6: módulos e import.
Curso Técnico em Desenvolvimento de Sistemas
Roteiro de Aula Prática
Lógica e Linguagem de Programação
Gerenciador de tarefas em dois módulos
São Paulo - SP
2026
Roteiro de Aula Prática
Gerenciador de tarefas em dois módulos
Roteiro de Aula Prática apresentado ao componente curricular Lógica e Linguagem de Programação, como requisito parcial de avaliação do 2º bimestre.
São Paulo - SP
2026
Roteiro de Aula Prática
Nome da disciplina: LÓGICA E LINGUAGEM DE PROGRAMAÇÃO
Unidade: 2 – Modularização e separação de responsabilidades
Aula: 3 – Aplicação em módulos: interface e lógica
Base teórica: Capítulos 32 a 40 — funções, parâmetros, return e módulos
Objetivos
Separar uma aplicação em módulo de interface e módulo de lógica.
Importar funções de um módulo para outro com from … import ….
Implementar funções para adicionar, listar, concluir e remover itens de uma lista.
Usar enumerate para numerar itens e converter a numeração do usuário em índice de lista.
Solução digital
Python 3 + terminal.
Os dois arquivos ficam na mesma pasta e o programa é executado pelo terminal com python3 main.py. O relatório é preenchido nesta página e exportado em PDF pelo navegador.
Procedimento / Atividade
Atividade proposta: Vocês vão construir um gerenciador de tarefas dividido em dois arquivos: main.py, o módulo de interface, que exibe o menu e conversa com o usuário; e tarefas.py, o módulo de lógica, que guarda e manipula os dados. A aplicação cresce em três partes: primeiro a fundação (menu), depois adicionar e listar, e por fim concluir e remover.
Observação: o card desta atividade no AVA vem intitulado “Do caos à ação: priorizando melhorias”, com um texto de abertura sobre retrospectiva de Sprint — mas o procedimento do roteiro e as perguntas de consolidação são todos sobre esta aplicação em Python. Os blocos de código também não vieram no arquivo do roteiro; o código de referência desta página foi escrito para preencher essa lacuna.
Procedimentos para a realização da atividade
Checklist de entrega
Critérios de avaliação
Critério
Pontos
Separação correta entre módulo de interface e módulo de lógica
3,0
As quatro funções implementadas e funcionando
3,0
Uso de enumerate e conversão correta de numeração para índice
2,0
Respostas de consolidação
2,0
Referências
SEDUC-SP — Roteiro de Atividade Prática SISANO1C1B2S14A3AP (Partes 1 a 3 e perguntas de consolidação).
Apostila da disciplina — Capítulos 32 a 40: funções, parâmetros, return, módulos e pacotes.
Documentação oficial do Python — Built-in Functions: enumerate().
Documentação oficial do Python — Tutorial, seção 6: módulos e import.