Guia do Instrutor: Portugol Studio

Este guia oferece suporte pedagógico e técnico para o professor na condução das aulas no laboratório de informática, oferecendo estratégias de nivelamento para turmas heterogêneas, diagnóstico de erros frequentes na sintaxe do Portugol Studio e rubricas claras para avaliação das tarefas no Microsoft Teams.

Sobre as “Atividades Bônus” deste guia
Cada capítulo já traz, na seção “🔥 Desafio de Fixação”, a atividade extra oficial do curso — a mesma que aparece resumida em desafios_de_fixacao.md e que o Questionário de 10 perguntas pode cobrar. As sugestões de "🎓 Atividade Bônus" listadas abaixo, capítulo a capítulo, são ideias adicionais e informais para o professor propor de improviso a alunos avançados que terminem tudo (Prática 1, Prática 2 e o Desafio oficial) antes do restante da turma — não substituem o Desafio oficial e não têm gabarito publicado nos materiais do aluno.


⏱️ Gestão do Tempo de Aula (Bloco de 50 minutos)

Para manter os alunos altamente engajados e garantir o aprendizado prático:

graph LR
    A["1. Contexto & Teoria<br/>(10 - 15 min)<br/>Estudo de Caso FastLog"] --> B["2. Live Coding no Projetor<br/>(20 min)<br/>Construção Passo a Passo"]
    B --> C["3. Prática 2 & Desafio<br/>(15 - 20 min)<br/>Autonomia / Monitoria"]
    
    style A fill:#2980b9,stroke:#fff,stroke-width:2px,color:#fff
    style B fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
    style C fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
  • 10 a 15 min: Apresente o problema corporativo da FastLog. Conecte o conceito de programação à sua aplicação no mundo dos negócios e da tecnologia.
  • 20 min: Abra o Portugol Studio no projetor e execute a Prática Obrigatória 1 com a turma, explicando as chaves { }, os tipos de dados e rodando com o atalho Shift + F6.
  • 15 a 20 min: Libere os estudantes para desenvolverem a Prática Obrigatória 2 e o Desafio de Fixação individualmente ou em duplas.

🚀 Orientações Pedagógicas por Capítulo

🟢 Módulo 1: Fundamentos e Entrada/Saída (Cap. 01 a 04)

Capítulo 01: Introdução à Lógica, Algoritmos e Setup

  • Ponto de Atenção: Alunos costumam apagar acidentalmente as chaves { } do bloco programa ou da função inicio().
  • Dica Didática: Ensine o atalho de autoformatação/indentação no Portugol Studio (Ctrl + Shift + F). Explique que as chaves { } são como os parênteses de um texto: tudo o que abre precisa ser fechado.
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar um programa que imprima uma mensagem formatada utilizando caracteres de escape \n (quebra de linha) e \t (tabulação horizontal).

Capítulo 02: Memória, Declaração de Variáveis e Tipos de Dados

  • Ponto de Atenção: Confusão entre cadeia (texto entre aspas duplas "texto") e caracter (um único caractere entre aspas simples 'A').
  • Dica Didática: Use a analogia das gavetas etiquetadas com divisórias rígidas. Reforce que nomes de variáveis não podem ter espaços nem acentos.
  • 🎓 Atividade Bônus (além do Desafio oficial): Declarar variáveis para cadastrar uma carga completa (Código SKU, Peso em KG, Quantidade de Caixas, Valor Assegurado e Status de Vistoria).

Capítulo 03: Operadores Matemáticos, Expressões e Atribuição (=)

  • Ponto de Atenção: Confundir o operador de atribuição = (gravação de valor) com a comparação de igualdade == (teste lógico).
  • Dica Didática: Mostre o operador de resto da divisão % (módulo) e os operadores de incremento ++ e +=.
  • 🎓 Atividade Bônus (além do Desafio oficial): Calcular o troco de uma fatura de frete decompondo o valor em cédulas de R$ 50, R$ 20 e R$ 10 utilizando divisões e %.

Capítulo 04: Interação com o Usuário (leia e escreva)

  • Ponto de Atenção: Esquecer a vírgula para separar textos e variáveis no comando escreva("Nome: ", nome, "\n").
  • Dica Didática: Demonstre como o \n no final do escreva organiza a tela do console e melhora a experiência do usuário (UX).
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar um gerador de nota fiscal de transporte formatando saídas numéricas com a biblioteca Matematica.arredondar().

🟡 Módulo 2: Controle de Fluxo e Decisão (Cap. 05 a 08)

Capítulo 05: Condicionais Simples (se)

  • Ponto de Atenção: Usar um único sinal de igual no teste condicional: se (x = 10) gera erro de sintaxe! O correto é se (x == 10).
  • Dica Didática: Enfatize na lousa: == faz uma pergunta (“x é igual a 10?”); = dá uma ordem (“guarde 10 em x”).
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar uma trava de segurança que bloqueie caminhões com velocidade acima de 80 km/h.

Capítulo 06: Condicionais Compostas e Encadeadas (se / senao)

  • Ponto de Atenção: Colocar parênteses ou condições na palavra senao (ex: senao (x < 5) é inválido; deve ser senao se (x < 5)).
  • Dica Didática: Mostre que o senao é a saída padrão para quando nenhum teste anterior foi verdadeiro.
  • 🎓 Atividade Bônus (além do Desafio oficial): Construir um calculador de alíquota progressiva de frete com 4 faixas de peso.

Capítulo 07: Operadores Lógicos e Portas Booleanas (e, ou, nao)

  • Ponto de Atenção: Omissão de parênteses em condições complexas compostas: se ((peso > 500) e (urgente == verdadeiro)).
  • Dica Didática: Desenhe as Tabelas-Verdade na lousa e compare com sistemas de alarme predial.
  • 🎓 Atividade Bônus (além do Desafio oficial): Validar se um caminhoneiro possui exame toxicológico em dia E seguro de carga ativo para liberar a viagem.

Capítulo 08: Seleção Múltipla (escolha-caso-pare)

  • Ponto de Atenção: Esquecer o comando pare ao final de cada caso. No Portugol Studio, a falta do pare faz o código “vazar” e executar os casos seguintes!
  • Dica Didática: Enfatize: “No Portugol Studio, cada caso precisa do seu freio de mão: o comando pare!”.
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar um menu de cotação por modal (1-Rodoviário, 2-Aéreo, 3-Marítimo, 4-Ferroviário).

🟠 Módulo 3: Laços de Repetição e Automação (Cap. 09 a 12)

Capítulo 09: Laço Pré-Testado enquanto

  • Ponto de Atenção: Esquecer de atualizar a variável de controle dentro das chaves, causando Loop Infinito.
  • Dica Didática: Mostre o botão vermelho de “Parar Execução” do Portugol Studio e ensine o uso de contadores i++.
  • 🎓 Atividade Bônus (além do Desafio oficial): Acumular valores digitados até o usuário digitar o valor sentinela 0.

Capítulo 10: Laço Pós-Testado faca-enquanto

  • Ponto de Atenção: Achar que o faca-enquanto do Portugol funciona como o repita-ate do VisuAlg. No Portugol, ele roda ENQUANTO FOR VERDADEIRO (padrão C/Java)!
  • Dica Didática: Mostre que faca-enquanto é perfeito para menus que devem rodar até que a opção seja diferente de sair (op != 0).
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar um validador de senha de cofre com limite de 3 tentativas.

Capítulo 11: Laço Determinístico para

  • Ponto de Atenção: Erro na sintaxe dos três blocos separados por ponto e vírgula: para (inteiro i = 0; i < N; i++).
  • Dica Didática: Explique os 3 passos do cabeçalho: 1. Onde começa, 2. Até onde vai, 3. Como caminha.
  • 🎓 Atividade Bônus (além do Desafio oficial): Gerar uma tabela de fretes com salto de 50 em 50 km utilizando i += 50.

Capítulo 12: Laços Aninhados e Varredura

  • Ponto de Atenção: Usar a mesma variável i para os dois laços.
  • Dica Didática: Padronize i para linhas (laço externo) e j para colunas (laço interno).
  • 🎓 Atividade Bônus (além do Desafio oficial): Desenhar um mapa de assentos de ônibus ou posições de estantes no console.

🔴 Módulo 4: Estruturas de Dados Homogêneas (Cap. 13 a 16)

Capítulo 13: Vetores I: Arrays Unidimensionais

  • Ponto de Atenção: A Regra do Zero! No Portugol Studio, o primeiro elemento é o índice 0 e o último é tamanho - 1. Acessar vetor[5] em um vetor de tamanho 5 causa erro de estouro de memória (Array Index Out of Bounds).
  • Dica Didática: Desenhe o vetor na lousa com os índices 0, 1, 2, 3, 4 destacados em cores diferentes.
  • 🎓 Atividade Bônus (além do Desafio oficial): Armazenar 5 notas e exibir a lista na ordem inversa de digitação.

Capítulo 14: Vetores II: Pesquisa e Filtros

  • Ponto de Atenção: Exibir “Item não encontrado” dentro do laço para a cada iteração.
  • Dica Didática: Ensine a técnica da Flag Booleana (logico achou = falso).
  • 🎓 Atividade Bônus (além do Desafio oficial): Encontrar o maior e o menor valor de uma lista e suas respectivas posições.

Capítulo 15: Matrizes I: Arrays Bidimensionais

  • Ponto de Atenção: Declarar ou acessar as coordenadas invertidas matriz[coluna][linha] em vez de matriz[linha][coluna].
  • Dica Didática: Mantenha a regra clássica LC (Linha primeiro, Coluna depois).
  • 🎓 Atividade Bônus (além do Desafio oficial): Preencher e exibir uma matriz identidade $3 \times 3$ com laços aninhados.

Capítulo 16: Matrizes II: Processamento Complexo

  • Ponto de Atenção: Não zerar o acumulador de linha antes de iniciar o laço interno j.
  • Dica Didática: Mostre visualmente o fluxo: zere o total, varra as colunas daquela linha, imprima o resultado, pule para a próxima linha.
  • 🎓 Atividade Bônus (além do Desafio oficial): Calcular o faturamento anual de 3 filiais em uma matriz $3 \times 4$.

🔵 Módulo 5: Modularização e Projeto Final (Cap. 17 a 20)

Capítulo 17: Funções I: Procedimentos sem Retorno (funcao vazio)

  • Ponto de Atenção: Tentar declarar funções dentro de outras funções (no Portugol Studio, todas as funções devem ficar dentro do bloco programa { }, mas no mesmo nível de funcao inicio()).
  • Dica Didática: Explique que a palavra vazio significa que a função executa uma tarefa e não devolve valor de resposta.
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar uma função de moldura visual personalizada.

Capítulo 18: Funções II: Parâmetros e Retorno Tipado

  • Ponto de Atenção: Esquecer o comando retorne em funções que possuem tipo de retorno (ex: funcao real).
  • Dica Didática: Diferença-chave: Função vazio faz e esquece; Função tipada faz e te entrega o resultado na mão.
  • 🎓 Atividade Bônus (além do Desafio oficial): Criar uma função que calcule o valor de frete com desconto e retorne o valor líquido.

Capítulo 19: Engenharia de Software e Decomposição

  • Ponto de Atenção: Agrupar código em funções gigantescas (God Functions).
  • Dica Didática: Ensine o princípio da Responsabilidade Única (SRP): cada função deve fazer apenas uma coisa bem feita.
  • 🎓 Atividade Bônus (além do Desafio oficial): Modularizar um sistema completo de inventário com funções de cadastro, busca e relatório.

Capítulo 20: Projeto Integrador Final (FastLog TMS)

  • Ponto de Atenção: Falta de integração entre os módulos do menu e a persistência nos vetores.
  • Dica Didática: Conduza os alunos na validação dos testes funcionais.
  • 🎓 Atividade Bônus (além do Desafio oficial): Adicionar funcionalidade de busca por placa do caminhão.

📋 Rubrica de Avaliação de Algoritmos no Microsoft Teams

Critério de AvaliaçãoExcelente (100%)Satisfatório (70%)Insuficiente (30%)
1. Correção Lógica e ExecuçãoO código roda sem erros (Shift + F6) e atende a todos os casos de teste.O código compila, mas falha em casos extremos ou limites de dados.O código apresenta erros de sintaxe ou chaves { } desbalanceadas.
2. Tipagem e NomenclaturaVariáveis tipadas com precisão e nomes significativos em CamelCase ou snake_case.Variáveis funcionam, mas com nomes genéricos (x, a, aux).Incompatibilidade de tipos de dados ou variáveis não declaradas.
3. Indentação e OrganizaçãoCódigo perfeitamente identado com blocos delimitados por chaves e comentários explicativos.Código funcional, mas com identação irregular.Código desorganizado sem recuo visual nos laços e condicionais.
4. Interface e Experiência (UX)Mensagens no console limpas, com uso de \n, menus organizados e validações.Mensagens de saída básicas sem quebras de linha adequadas.Console poluído sem orientação clara ao usuário.
5. Autonomia e Desafio de FixaçãoConcluiu o Desafio de Fixação com autonomia e raciocínio lógico avançado.Tentou realizar o desafio com pequenas falhas lógicas.Não realizou o desafio opcional.

💡 Dica de Ouro: A Metodologia Peer Instruction

Sempre que um aluno avançado terminar as atividades antes do tempo previsto, designe-o como Monitor de Bancada. Ensinar um colega consolida o conhecimento de quem explica e acelera o aprendizado de quem recebe a ajuda.