Professor Muniz Educação & Programação

Trilha: Portugol Studio

Voltar aos conteúdos
Apostila de Apoio Didático

Pensamento Computacional e Algoritmos

Aprenda a decompor problemas, identificar padrões, abstrair informações e formular instruções lógicas e sequenciais.

MÓDULO 1

Introdução ao Pensamento Computacional

O Pensamento Computacional (PC) é um conjunto de habilidades originadas na ciência da computação que podem ser amplamente aplicadas para a formulação e resolução de problemas em diversas áreas do conhecimento [1].

O conceito foi cunhado inicialmente por Seymour Papert na década de 80, que o definiu como as habilidades para solucionar problemas multidisciplinares [1]. Mais tarde, por volta de 2006, o termo foi popularizado pela pesquisadora Jeannette Wing, ao defender que o pensamento computacional representa uma "habilidade fundamental para todos, não somente para os cientistas da computação" [1]. Segundo a definição da UNIVESP (2023), o PC consiste na "capacidade de sistematizar, representar, analisar e resolver problemas" [1].

Computação Desplugada:

É importante ressaltar que o desenvolvimento do pensamento computacional não exige obrigatoriamente o uso de computadores ou tecnologias digitais [2]. Essa abordagem prática e teórica que utiliza jogos lúdicos, tabuleiros, dinâmicas em grupo ou atividades manuais para fixar conceitos de lógica e algoritmo é chamada de Computação Desplugada [2].

MÓDULO 2

Os 4 Pilares do Pensamento Computacional

Para construir soluções de forma lógica e estruturada, dividimos o Pensamento Computacional em quatro pilares essenciais [3]:

  • Decomposição: Considerada a primeira etapa do processo, consiste em dividir um problema complexo e desafiador em partes menores e mais fáceis de serem gerenciadas e resolvidas separadamente [4].
  • Reconhecimento de Padrões: Envolve a identificação de semelhanças ou características comuns compartilhadas entre problemas [5]. Ao identificar similaridades com "problemas parecidos que já foram solucionados anteriormente", gera-se uma grande economia de tempo e esforços [5].
  • Abstração: É a habilidade de identificar e focar apenas nos aspectos e informações essenciais de um problema, ignorando propositalmente os detalhes irrelevantes para a solução [6].
  • Algoritmo: A última etapa, que consiste na criação de uma solução passo a passo estruturada e lógica para resolver o problema mapeado [3].
MÓDULO 3

O que é um Algoritmo?

A grosso modo, um algoritmo serve de ponte ordenada e lógica para guiar o processo de resolução de um problema até a sua respectiva solução final [7, 8]. Tecnicamente, as definições clássicas o consolidam como:

  • "Conjunto de regras [...] definidos e ordenados usados na solução de um problema [...] em um número finito de etapas" (Dicionário Michaelis, 2018) [9].
  • "Descrição de uma sequência de passos [finitos] que deve ser seguida para a realização de uma tarefa" (Lopes & Garcia / Ascencio, 1999) [9, 10].

Em suma, trata-se de um passo a passo finito, ordenado e lógico usado na solução de um problema de qualquer natureza [7, 9]. Uma das principais vantagens é que, uma vez projetada e consolidada uma boa solução algorítmica, ela pode ser facilmente traduzida e implementada em qualquer linguagem de programação disponível no mercado [11].

Exemplo Clássico: O Algoritmo para Trocar o Pneu de um Carro

Diferentes níveis de detalhamento podem ser aplicados ao mesmo problema, dependendo do público ou da necessidade da solução [12, 13]:

Versão A: Simplificada [14]
  1. Pegar o estepe;
  2. Levantar o carro;
  3. Tirar o pneu furado;
  4. Colocar o estepe;
  5. Descer o carro.
Versão B: Detalhada [15]
  1. Abrir a mala do carro e pegar o estepe;
  2. Posicionar o macaco e destravar os parafusos;
  3. Levantar o carro e soltar totalmente os parafusos;
  4. Retirar a roda com o pneu furado;
  5. Colocar o estepe no local e prender os parafusos;
  6. Descer o carro e travar firmemente os parafusos.
"Ambos os algoritmos resolvem o mesmo problema perfeitamente. Isso nos prova que podem existir múltiplos algoritmos diferentes para solucionar um único problema." [13]
MÓDULO 4

Formas de Representação de Algoritmos

Existem três formas clássicas de representar a lógica de nossos algoritmos antes de codificá-los para valer [8, 16]:

Forma de Representação Vantagens Desvantagens
Descrição Narrativa [16]
(Texto livre em linguagem natural)
É uma forma amplamente conhecida, estruturada diretamente na forma como a mente humana já executa os pensamentos lógicos [17]. A linguagem natural traz imprecisão e ambiguidade, o que pode gerar instruções que não são matematicamente bem definidas (ex: "uma pitada de sal") [17].
Fluxograma [16]
(Representação gráfica)
Os símbolos visuais são mais intuitivos e simples de compreender do que blocos densos de texto corrido [17, 18]. É uma forma recomendada na BNCC [13, 19]. Problemas muito complexos resultam em desenhos gráficos gigantescos e cheios de ramificações, dificultando a visualização geral da lógica [17, 18].
Pseudocódigo [16]
(Ex: Portugol)
Como simula uma estrutura de programação formal, a passagem para qualquer linguagem real é quase imediata [20]. Exige que o estudante aprenda as regras e o padrão de escrita do pseudocódigo utilizado [20].
MÓDULO 5

Introdução ao Portugol

O Portugol é um pseudocódigo que utiliza palavras-chave em português, minimizando a barreira do idioma inglês no início dos estudos e permitindo que o aluno foque exclusivamente na lógica de programação [19]. Para programar em Portugol, utilizamos o software Portugol Studio, que pode ser acessado de duas maneiras [21-23]:

Estrutura Padrão de um Programa:

Todo algoritmo no Portugol Studio deve respeitar a delimitação do escopo principal programa e possuir a função inicial funcao inicio(), que indica onde a execução começará [20]:

programa {
  funcao inicio() {
    // Seu algoritmo e instruções devem ser escritos aqui
  }
}

A Função escreva() e a quebra de linha:

A função escreva() é responsável por exibir informações de texto ou resultados numéricos na tela do computador [24]. Podemos passar um ou múltiplos parâmetros para ela, contanto que eles sejam devidamente separados por uma vírgula [24]. O caractere especial \n serve para realizar uma quebra de linha ("pular de linha") na saída da tela [24]. Veja o exemplo:

escreva("Bom dia")               // Exibe: Bom dia
escreva("Bom ", "Dia")           // Exibe: Bom Dia (parâmetros separados)
escreva("Bom \n Dia")            // Exibe "Bom", quebra a linha, e escreve "Dia"
MÓDULO 6

Variáveis, Memória e Atribuição

As variáveis são "espaços" temporários na memória do computador reservados para armazenar dados que podem sofrer modificações ao longo da execução do nosso programa [25]. Para cada variável que declaramos, o sistema operacional reserva e separa fisicamente uma área da memória RAM, identificando essa posição pelo "apelido" (nome) que escolhemos [26].

Os 4 Tipos de Variáveis Suportados:

No Portugol, toda variável deve ter seu tipo explicitamente declarado antes de ser utilizada [27]:

  • inteiro: Armazena números inteiros positivos ou negativos (ex: 3, 42, -15) [28].
  • real: Armazena números reais que possuem casas decimais/fracionários (ex: 3.1415, 65.5, 1200.50) [29].
  • caracter: Guarda apenas um único caractere envolto por aspas simples (ex: 'A', '7', '*', '#') [30].
  • cadeia: Guarda um conjunto de caracteres, ou seja, textos completos (ex: "São Paulo", "Olá Mundo!") [31].

Sintaxe de Declaração e Atribuição:

A definição de um valor para uma variável é chamada de atribuição e utiliza o operador de igualdade (=) [32].

// Exemplos de declaração de variáveis
real salario
inteiro idade
cadeia nome

// Atribuindo valores
idade = 50
salario = 3300.00
nome = "Rafael"

// Declaração e atribuição na mesma linha
inteiro quantidade = 10
MÓDULO 7

Operadores Aritméticos e Precedência

Utilizamos operadores aritméticos para processar dados numéricos dentro do programa [33]:

  • Soma: +
  • Subtração: -
  • Multiplicação: *
  • Divisão: /
  • Resto da Divisão (Módulo): %

A ordem de precedência matemática obrigatória que o Portugol segue é: primeiro o conteúdo dentro de parênteses (), seguido por multiplicação *, divisão /, resto %, e por último, adições + e subtrações - [33].

As 3 Perguntas de Ouro para Criar Qualquer Algoritmo:

Sempre que for resolver um problema computacional, faça a si mesmo as seguintes perguntas antes de codificar [34]:

  1. Quais são os dados de entrada? (O que o algoritmo precisa receber ou ler) [34]
  2. Qual será o processamento necessário? (Quais cálculos ou operações devem ser realizados) [34]
  3. Quais serão os dados de saída? (Qual resultado deve ser exibido na tela) [34]
MÓDULO 8

Exercícios de Fixação Propostos

Aplique os conceitos vistos programando os exercícios práticos propostos abaixo diretamente no Portugol Studio [35-37]:

Exercício 1

Olá Mundo

Construa um algoritmo que apresente na tela a mensagem: "Boa noite turma !!!" [35].

programa {
  funcao inicio() {
    escreva("Boa noite turma !!!")
  }
}
Exercício 2

Cálculo Direto

Construa um algoritmo que mostre na tela diretamente o resultado da soma de dois números (ex: 10 + 5 = 15) [35].

programa {
  funcao inicio() {
    escreva(10 + 5)
  }
}
Exercício 3

Variáveis de Apoio

Altere o Exercício 2 para que os números 10 e 5 sejam obrigatoriamente armazenados em variáveis (ex: numero1 e numero2) antes de calcular e exibir a soma [36].

programa {
  funcao inicio() {
    inteiro numero1 = 10
    inteiro numero2 = 5
    inteiro soma = numero1 + numero2
    
    escreva("A soma é: ", soma)
  }
}
Exercício 4

Previsão do Futuro (Idade)

Construa um algoritmo que possua uma variável chamada nascimento contendo o ano de nascimento de uma pessoa. Em seguida, calcule e apresente na tela quantos anos essa pessoa fará no ano de 2035 (desconsidere o mês de aniversário para esta conta) [36].

programa {
  funcao inicio() {
    inteiro nascimento = 2000
    inteiro idadeEm2035 = 2035 - nascimento
    
    escreva("Em 2035 a pessoa terá ", idadeEm2035, " anos.")
  }
}

Materiais Complementares de Apoio

Slides: Pensamento Computacional

Acesse o slide de apoio técnico para fixar os conceitos visuais e os 4 pilares básicos do Pensamento Computacional.

Baixar Slides
Videoaula: Pensamento Computacional

Assista à explicação detalhada com exemplos práticos, os conceitos de algoritmos e as técnicas de resolução lógica.

Assistir Vídeo
Repositório de Código Fonte

Explore, acesse e faça o download de todos os códigos-fonte de exemplo e exercícios estruturados nesta trilha.

Abrir Repositório
Voltar aos conteúdos