Plano de Curso: Lógica de Programação com Portugol Studio

Público-alvo: Estudantes dos Cursos Técnicos em Administração, Logística, Desenvolvimento de Sistemas e iniciantes em Engenharia de Software.
Carga Horária: 20 Capítulos (40 a 60 horas-aula).
Metodologia: Aprendizagem Baseada em Problemas (PBL) com estudos de caso corporativos da transportadora fictícia FastLog, contextualização prática e desenvolvimento de software estruturado no ambiente Portugol Studio.


🎯 Visão Geral e Competências Desenvolvidas

O Portugol Studio foi projetado para aproximar o estudante da sintaxe moderna das linguagens de mercado (C, Java, C#, PHP e JavaScript), utilizando chaves { }, operadores relacionais modernos (==, !=) e indexação de vetores baseada em zero (0..N-1).

Ao final do curso, o aluno será capaz de:

  1. Declarar e manipular variáveis e constantes com tipagem estática (inteiro, real, cadeia, caracter, logico).
  2. Implementar fluxos de decisão simples, encadeados e de múltipla escolha (se-senao, escolha-caso).
  3. Construir laços de repetição determinísticos e condicionais (enquanto, faca-enquanto, para).
  4. Armazenar e pesquisar conjuntos de dados estruturados em vetores e matrizes bidimensionais com indexação base 0.
  5. Modularizar programas complexos utilizando funções com e sem retorno (funcao vazio vs funcao tipo), com passagem de parâmetros por valor.
  6. Desenvolver um sistema completo de gestão logística integrando todas as camadas de software em modo console.

📚 Estrutura Programática Detalhada

Módulo 1: Fundamentos da Computação e Entrada/Saída

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

  • Teoria: O que é lógica de programação e pensamento computacional? O que são algoritmos? A estrutura formal do Portugol Studio (programa { funcao inicio() { } }). O interpretador Portugol Studio e atalhos de execução (Shift + F6).
  • Prática (Atividade 01): Construção do primeiro programa funcional, saída de mensagens formatadas com caracteres de escape (\n e \t) e crachá digital da empresa FastLog.

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

  • Teoria: Como a memória RAM armazena dados. Os cinco tipos de dados fundamentais: inteiro, real, cadeia (strings), caracter (char isolado) e logico (verdadeiro/falso). Regras de nomenclatura de identificadores (CamelCase e snake_case).
  • Prática (Atividade 02): Mapeamento de variáveis para cadastro de veículos da frota e cálculo manual de tributos.

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

  • Teoria: O operador de atribuição (=). Operadores aritméticos: soma (+), subtração (-), multiplicação (*), divisão (/) e módulo/resto (%). Operadores unários de incremento e decremento (++, --, +=). Ordem de precedência matemática.
  • Prática (Atividade 03): Calculadora de consumo médio de combustível (KM/L) e simulador de custos de frete por tonelada.

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

  • Teoria: Comandos de entrada leia() e saída escreva(). Concatenação de variáveis e textos com vírgulas. Formatação de casas decimais com a biblioteca Matematica.arredondar().
  • Prática (Atividade 04): Construção de um formulário de cadastro de cargas e emissor automático de recibos de expedição.

Módulo 2: Controle de Fluxo e Estruturas de Decisão

Capítulo 05: Condicionais Simples (se)

  • Teoria: Lógica condicional e desvios de rota. A estrutura se (condicao) { ... }. Operadores relacionais modernos (==, !=, >, <, >=, <=).
  • Prática (Atividade 05): Sistema de alerta de excesso de peso e bloqueio de balança rodoviária.

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

  • Teoria: A bifurcação completa se ... senao (If / Else). Aninhamento de condições para tomada de decisões com múltiplos caminhos (se ... senao se ... senao).
  • Prática (Atividade 06): Classificador de risco de transporte e apólice de seguro de cargas valiosas.

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

  • Teoria: Álgebra Booleana e tabelas-verdade. A conjunção e (AND), a disjunção ou (OR) e a negação nao (NOT).
  • Prática (Atividade 07): Triagem de fornecedores qualificados para obtenção do Selo Ouro baseado em prazo e taxa de avarias.

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

  • Teoria: A estrutura escolha (variavel) { caso 1: ... pare caso contrario: ... } (Switch/Case). A importância mandatória do comando pare (break).
  • Prática (Atividade 08): Menu interativo da URA do SAC da transportadora e tarifador de frete por modal de transporte.

Módulo 3: Estruturas de Repetição e Automação

Capítulo 09: Laço Pré-Testado enquanto (While Loop)

  • Teoria: Estruturas de repetição condicionais com teste no início (enquanto (condicao) { ... }). Variáveis contadoras (cont++) e acumuladoras (soma += valor). Parada por valor sentinela.
  • Prática (Atividade 09): Leitor de volumes descarregados com parada por sentinela (valor zero).

Capítulo 10: Laço Pós-Testado faca-enquanto (Do-While Loop)

  • Teoria: Estrutura de repetição com teste no final (faca { ... } enquanto (condicao)). Condição de permanência no Portugol (continua rodando ENQUANTO for verdadeiro). Ideal para menus de navegação.
  • Prática (Atividade 10): Validação de senha de operador com limite de tentativas e menu principal interativo.

Capítulo 11: Laço Determinístico para (For Loop)

  • Teoria: A estrutura de contagem fixa para (inicializacao; condicao; incremento) { ... }. Contagem progressiva (i++) e regressiva (i--).
  • Prática (Atividade 11): Gerador automático de tabela progressiva de fretes e cronômetro de contagem regressiva de embarque.

Capítulo 12: Laços de Repetição Aninhados e Varredura

  • Teoria: Laços dentro de laços (para dentro de para). Complexidade de tempo quadrática ($O(N^2)$). Varredura de coordenadas bidimensionais.
  • Prática (Atividade 12): Mapeamento de posições de prateleiras em um galpão logístico (Andares $\times$ Prateleiras).

Módulo 4: Estruturas de Dados Homogêneas (Vetores e Matrizes)

Capítulo 13: Vetores I: Arrays Unidimensionais (Indexação Base Zero)

  • Teoria: O que são vetores (Arrays 1D). Declaração tipo nome[N]. A regra de ouro da indexação base 0 (0 até N-1). Acesso por índice vetor[i].
  • Prática (Atividade 13): Registro de ocupação de vagas de caminhões no pátio e cálculo de faturamento trimestral.

Capítulo 14: Vetores II: Algoritmos de Pesquisa e Filtros

  • Teoria: Algoritmo de Busca Linear (Linear Search). Encontrando o Maior e Menor elemento. Acumulação e cálculo de médias estatísticas em vetores.
  • Prática (Atividade 14): Localizador de SKUs no estoque e auditoria do motorista com maior quilometragem rodada.

Capítulo 15: Matrizes I: Arrays Bidimensionais (Tabelas em Memória)

  • Teoria: O que são matrizes (Arrays 2D). Declaração tipo nome[Linhas][Colunas]. Coordenadas cartesianas matriz[l][c]. Preenchimento com laços aninhados.
  • Prática (Atividade 15): Grade de ocupação de posições em galpão logístico (3×3) e controle de estoque por filial.

Capítulo 16: Matrizes II: Processamento e Cálculos Complexos

  • Teoria: Somatório de linhas, somatório de colunas, cálculo da Diagonal Principal (l == c) e matriz transposta.
  • Prática (Atividade 16): Matriz de custos de fretes cruzados entre 4 capitais brasileiras (Origem $\times$ Destino) e consolidação de faturamento semestral.

Módulo 5: Modularização, Funções e Projeto Integrador

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

  • Teoria: O que é modularização? Princípio DRY (Don’t Repeat Yourself). A estrutura funcao vazio Nome(parametros) { ... }. Variáveis Locais vs Variáveis Globais. Passagem de parâmetros por valor.
  • Prática (Atividade 17): Criação de sub-rotinas para cabeçalho visual, molduras de interface e rotina de cálculo de ICMS.

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

  • Teoria: Funções com retorno tipado (funcao tipo Nome(params) { retorne x }) e passagem de parâmetros por valor, incluindo parâmetros do tipo cadeia.
  • Prática (Atividade 18): Biblioteca modular de funções de frete: cálculo de pedágio, seguro de carga e conversor de moedas.

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

  • Teoria: Como projetar sistemas antes de codificar. Refatoração de código, tratamento de entradas inválidas e criação de menus de navegação robustos.
  • Prática (Atividade 19): Construção de um módulo de controle de estoque com operações de inserção, busca e listagem em memória.

Capítulo 20: Projeto Integrador Final - FastLog TMS Enterprise

  • Teoria: Arquitetura de Software em Camadas (Interface, Processamento e Dados). Consolidação de variáveis, loops, matrizes, procedimentos e funções em um único sistema executável.
  • Prática (Atividade 20): Desenvolvimento, teste e apresentação do sistema completo de gestão de frota e estoque da FastLog, com menu interativo, relatórios estatísticos e pesquisa dinâmica.