Mind map
Pensamento Computacional

Map content
Pensamento Computacional
Pilares do Pensamento Computacional
- Decomposição
- Consiste em dividir um problema complexo em partes menores e mais fáceis de resolver. Esse processo facilita a análise e a resolução, permitindo que cada componente seja tratado separadamente.
- Algoritmos
- Refere-se à definição de uma sequência estruturada de passos para solucionar um problema. Um algoritmo deve apresentar instruções claras e organizadas para que sua execução ocorra de forma eficiente e sem ambiguidades.
- Algoritmos são a materialização do pensamento computacional
- Eles representam o passo a passo detalhado que leva à resolução de um problema específico, funcionando como uma receita de bolo: se cada instrução for seguida corretamente, o resultado será consistente, independentemente de quem esteja executando as etapas.
- Formas de Representação de Algoritmos
- Descrição Narrativa
- Consiste na exposição dos passos necessários para a execução de uma tarefa utilizando linguagem natural. Essa abordagem é intuitiva e facilita o entendimento inicial de algoritmos, sendo especialmente útil para iniciantes.
- Fluxograma
- O fluxograma, também chamado de diagrama de blocos, é uma representação gráfica do algoritmo que utiliza símbolos padronizados para ilustrar o fluxo de execução das operações. Esse modelo facilita a visualização da lógica do programa, sendo amplamente utilizado na fase de planejamento e documentação de sistemas.
- Pseudocódigo
- O pseudocódigo é uma forma intermediária entre a linguagem natural e a programação. Ele utiliza uma sintaxe estruturada semelhante à das linguagens de programação, mas sem seguir regras rígidas.
- Descrição Narrativa
- Reconhecimento de Padrões
- refere-se à identificação de semelhanças e regularidades em dados ou situações, possibilitando a formulação de soluções eficientes. No trânsito, por exemplo, a análise de padrões permite prever horários de pico e otimizar rotas.
- Abstração
- Envolve a seleção dos elementos essenciais de um problema, ignorando informações irrelevantes. Um exemplo claro é um mapa: ele omite detalhes como a vegetação ou a cor das construções, focando apenas nos elementos essenciais para navegação.
- Decomposição
Introdução a Desenvolvimento de Software
- Hardware e Software
- O hardware refere-se à parte física do computador, ou seja, os componentes tangíveis, como processador, memória, disco rígido, teclado e monitor. Já o software representa a parte lógica do sistema, composta pelos programas e instruções que fazem o hardware funcionar.
- Manipulação de Dados e Execução de Instruções
- Os dados são informações brutas inseridas no sistema, como números, textos ou imagens, enquanto as instruções são comandos que o processador segue para processar esses dados e convertê-los em informação, ou seja, um conjunto de dados organizados e interpretados para gerar conhecimento ou apoiar decisões.
- Entrada
- O sistema recebe informações externas, por exemplo, do usuário do sistema
- Processamento
- O processador interpreta as instruções fornecidas pelo software e manipula os dados de acordo com regras predefinidas.
- Saída
- O resultado do processamento é apresentado ao usuário.
- Organização Básica de um Computador
- Memoria Principal
- A memória principal, também chamada de memória RAM (random access memory – memória de acesso aleatório), armazena temporariamente os dados e instruções que estão sendo processados. Trata-se de uma memória volátil, ou seja, seus dados são perdidos assim que o computador é desligado ou o programa em execução é encerrado.
- Unidade Central de Processamento
- A CPU (central processing unit, em português unidade central de processamento) é o “cérebro” do computador, responsável pelo processamento e execução das instruções dos programas. Ela pode ser subdividida em três partes principais:
- Unidade Lógica e Aritmética
- executa operações matemáticas e lógicas.
- Registradores
- Pequenos espaços de memória de alta velocidade usados para armazenar temporariamente dados e instruções.
- Unidade de Controle
- interpreta instruções e gerencia o fluxo de dados dentro da CPU.
- Dispositivos de Entrada e Saída
- Os dispositivos de entrada e saída (I/O – input/output) permitem a comunicação do computador com o usuário e outros sistemas. Os dispositivos de entrada enviam informações para o sistema, enquanto os de saída apresentam os resultados do processamento. Exemplos incluem: Entrada: teclado, mouse, scanner, sensores, câmeras, microfones. Saída: monitor, impressora, alto-falantes.
- Memoria Principal
- Hardware e Software
Linguagem de Programação
- As linguagens de programação permitem que os algoritmos sejam traduzidos para um formato executável pelo computador. Cada linguagem possui sua própria sintaxe e características, mas todas compartilham conceitos fundamentais, como variáveis, estruturas condicionais e laços de repetição.
- Processo Simples de Desenvolvimento de Software
- Compilação
- Em linguagens compiladas, como C, C# e Java, o código-fonte é convertido em um arquivo executável antes de ser executado no computador.
- Interpretação
- Em linguagens interpretadas, como Python e JavaScript, o código é executado linha por linha por um interpretador.
- Python
- Entre as diversas linguagens de programação disponíveis, Python se destaca por sua simplicidade e versatilidade, sendo amplamente utilizada tanto por iniciantes quanto por profissionais experientes.
- Sintaxe simples e legível:
- A estrutura sintática de Python é intuitiva, facilitando a escrita e manutenção de código.
- Interpretada
- Python executa o código em tempo real, dispensando a necessidade de compilação prévia.
- Tipagem dinâmica
- O tipo das variáveis é determinado automaticamente pelo interpretador.
- Multiparadigma
- Suporta programação orientada a objetos, funcional e imperativa, oferecendo flexibilidade ao desenvolvedor.
- Versatilidade
- Utilizada em diversas áreas, como análise de dados, desenvolvimento web, aprendizado de máquina e automação.
- Biblioteca padrão extensa:
- Possui inúmeros módulos nativos que facilitam o desenvolvimento de soluções diversas.
- Comunidade Ativa
- Conta com um vasto suporte de desenvolvedores e materiais de estudo disponíveis on-line.
- Tipos de Dados
- Cada linguagem de programação tem seu próprio conjunto de tipos de dados, mas algumas categorias fundamentais são comuns à maioria delas.
- Inteiro (int)
- Representa números inteiros: positivos, negativos ou zero.
- Real (float)
- Representa números decimais (reais): positivos, negativos ou zero. Exemplos: -2.5, 0, 3.14.
- Lógico (bool)
- Representa valores lógicos (booleanos) que podem ser “verdadeiro” ou “falso”.
- Texto (str)
- Representa sequências de caracteres. Esse tipo é chamado de string. Exemplo: “Olá, Mundo!”.
- Variáveis
- A noção de variáveis é um dos pilares da programação. Uma variável pode ser entendida como um “armazenador” de valores que o programa manipula ao longo de sua execução. Em outras palavras, uma variável permite que o programador nomeie e guarde dados que poderão ser lidos ou modificados conforme a necessidade.
- Identificador
- É o nome único dado à variável, utilizado para referenciá-la no código. Segue regras específicas (como não usar espaços ou começar com números) e deve ser claro e descritivo (ex: idade, nomeUsuario, saldoTotal).
- Valor
- É a informação (o dado em si) que está armazenada na variável em um determinado momento. Este dado pertence a um tipo específico, como: int (inteiro): 10, -5, 0 float (ponto flutuante): 3.14, -0.5, 2.0 boolean (lógico): true ou false string (texto): "Olá", "123", "true"
- Atribuição
- É o ato de armazenar um valor em uma variável (em seu identificador) usando um operador (comumente o =). É a instrução que associa o valor ao identificador. Ex: idade = 25 (atribui o valor 25 à variável idade).
- Constante
- Uma constante é um valor que permanece inalterado desde o início até o fim de um programa (ou de um trecho de código) e, inclusive, ao longo de sucessivas execuções desse mesmo programa
- Numéricas: 1 ou 1.0
- É um valor fixo representado diretamente por números. Não possui um identificador e seu valor é imutável. Pode ser do tipo inteiro ou de ponto flutuante. Exemplos: 42 (inteiro) -7 (inteiro negativo) 3.14 (ponto flutuante) -0.5 (ponto flutuante negativo)
- Texto (String): "Olá"
- É uma sequência de caracteres imutável, delimitada por aspas simples (' ') ou duplas (" "). Representa texto de forma literal no código. Exemplos:"Olá, mundo!"'Python'"123" (é um texto, não um número)"true" (é um texto, não um valor booleano)
- Lógicas (booleanas): True, False.
- É um valor de verdade imutável, que possui apenas duas possibilidades: verdadeiro ou falso. São palavras-chave reservadas da linguagem.
- Observação
- Observação importante: Em muitas linguagens, é uma boa prática criar constantes nomeadas usando um identificador (em caixa alta, por convenção) para representar valores fixos, tornando o código mais legível e maintainable. No entanto, o conceito fundamental de constante se refere ao valor literal em si, que é imutável.
- Operadores de Atribuição
- Os operadores de atribuição permitem que valores sejam armazenados em variáveis, estabelecendo uma forma de guardar dados ao longo da execução do programa. Em outras palavras, por meio de operadores de atribuição, podemos associar um valor a um identificador que será utilizado posteriormente.
- Variável
- É o identificador (nome) que armazenará o valor.
- Expressão
- Pode ser um número, um texto, um cálculo matemático, uma chamada de função ou qualquer outra operação que retorne um resultado.
- Operador de atribuição é o sinal de igual (=)
- Possibilidades de Atribuições
- Python também permite que se faça atribuições múltiplas em uma única linha. Outra variação comum é a “troca” de valores entre duas variáveis sem a necessidade de uma variável temporária. Além disso, é possível atribuir o mesmo valor a várias variáveis simultaneamente, isto é denominado de atribuição encadeada.
- Estrutura Sequêncial
- Comandos de saída de dados
- A saída de dados em programação é o mecanismo pelo qual um programa exibe informações para o usuário. Essa comunicação pode ocorrer por diferentes meios, como o terminal do sistema operacional, arquivos ou interfaces gráficas. Em Python, o comando primário para exibição de informações no console é print().
- Comandos de entrada de dados
- Os comandos de entrada são fundamentais na comunicação entre o usuário e um programa de computador. Eles são instruções que solicitam dados ao usuário, permitindo que os programas recebam informações externas durante a execução. Em Python, a principal forma de capturar dados via teclado é através da função input().
- Comandos de saída de dados
- Operadores Aritméticos
- s operadores aritméticos são componentes fundamentais na programação, responsáveis por viabilizar a manipulação de valores numéricos e a construção de expressões matemáticas. Em Python, esses operadores permitem a realização de operações básicas, como soma e subtração, bem como cálculos mais sofisticados, incluindo exponenciação e divisões inteiras.
- Adição (+)
- Soma dois valores numéricos.
- Subtração (-)
- Subtrai o valor direito do valor esquerdo.
- Multiplicação (*)
- Multiplica dois valores numéricos.
- Divisão(/)
- Divide o valor esquerdo pelo direito, retornando resultado decimal.
- Divisão Inteiros (//)
- Divide o valor esquerdo pelo direito, retornando apenas a parte inteira.
- Módulo - Resto da Divisão (%)
- Retorna o resto da divisão entre o valor esquerdo e o direito.
- Exponenciação (**)
- Eleva o valor esquerdo à potência do valor direito.
- Expressões Aritméticas
- Uma expressão aritmética é uma combinação de operandos (valores ou variáveis) e operadores que, quando avaliada, produz um resultado numérico (Xavier, 2018). Em Python, as expressões aritméticas seguem regras de precedência semelhantes às da matemática convencional
- 1. Parênteses ( )
- Têm a mais alta prioridade e definem explicita- mente a ordem de execução das operações.
- 2. Exponenciação **
- é avaliada antes de qualquer outra operação.
- 3. Multiplicação *, divisão /, divisão inteira // e módulo %
- Possuem prioridade intermediária.
- 4. Adição + e subtração -
- São avaliadas por último.
- Funções Matemáticas
- A linguagem Python é amplamente utilizada em diversos campos da ciência e da engenharia devido à sua simplicidade e versatilidade. Uma das razões para essa popularidade é a robusta biblioteca padrão que Python oferece, incluindo o módulo math, que fornece um conjunto abrangente de funções matemáticas.
- Operadores de Atribuição com Operação
- Adição com Atribuição (+=)
- Soma e atribui o resultado à variável esquerda.
- Subtração com Atribuição (-=)
- Subtrai e atribui o resultado à variável esquerda.
- Multiplicação com Atribuição (*=)
- Multiplica e atribui o resultado à variável esquerda.
- Divisão com Atribuição (/=)
- Divide e atribui o resultado à variável esquerda.
- Divisão Inteira com Atribuição (//=)
- Divide inteiramente e atribui o resultado à variável esquerda.
- Módulo com Atribuição (%=)
- Calcula o módulo e atribui o resultado à variável esquerda.
- Exponenciação com Atribuição (**=)
- Calcula a potência e atribui o resultado à variável esquerda.
- Adição com Atribuição (+=)
- Operadores Relacionais e Lógicos
- Os operadores relacionais e lógicos são componentes essenciais em qualquer linguagem de programação. Eles constituem a base para a maioria das decisões que um programa precisa tomar, permitindo comparar valores, testar condições e definir o rumo da execução com base nos resultados dessas comparações.
- Operadores Relacionais
- Operadores relacionais, também conhecidos como operadores de comparação, são utilizados para comparar dois valores ou expressões do mesmo tipo de dado. O resultado dessa comparação é sempre um valor lógico (booleano): True (verdadeiro) ou False (falso).
- Igual a (==)
- verifica se dois valores são iguais;
- Diferente de (!=)
- verifica se dois valores são diferentes;
- Maior que (>)
- verifica se o valor à esquerda é maior que o valor à direita;
- Menor que (<)
- verifica se o valor à esquerda é menor que o valor à direita;
- Maior ou igual a (>=)
- verifica se o valor à esquerda é maior ou igual ao valor à direita;
- Menor ou igual a (<=)
- verifica se o valor à esquerda é menor ou igual ao valor à direita.
- Operadores Lógicos
- Operadores lógicos são utilizados para combinar expressões booleanas, permitindo a construção de condições mais complexas.
- and (E lógico)
- Retorna True se ambas as expressões forem verdadeiras;
- or (OU lógico)
- Retorna True se pelo menos uma das expressões for verdadeira;
- not (NÃO lógico)
- Inverte o valor lógico da expressão; retorna True se a expressão for falsa e vice-versa.
- Expressões Lógicas
- Uma expressão lógica combina operadores relacionais e lógicos, e seu resultado é sempre um valor booleano (True ou False) (Xavier, 2018). A figura 5 apresenta um exemplo em Python que utiliza and, or e not na mesma expressão.
- Operadores relacionais (==, !=, <, >, etc)
- Os operadores relacionais (<, >, ==, !=, <=, >=) são avaliados primeiro
- Operadores Lógicos (and, or e not)
- O operador not tem precedência maior que and, que por sua vez tem precedência maior que or.
- Parênteses ( )
- Parênteses podem (e devem) ser usados para tornar a ordem de avaliação mais explícita — nesse caso, o Python respeita totalmente a hierarquia imposta por eles.
- Estruturas Condicionais
- A programação, é comum que um algoritmo precise tomar decisões para adaptar seu comportamento a diferentes situações. Isso significa escolher entre caminhos distintos de execução com base em condições definidas pelo problema. Para implementar essa lógica, utilizamos as chamadas estruturas condicionais — também conhecidas como estruturas de seleção. Em Python, essas decisões são expressas por meio das palavras-chave if, elif e else.
- Estrutura Condicional Simples
- A estrutura condicional simples é a forma mais básica de decisão em um algoritmo. Ela permite que um determinado bloco de código seja executado apenas se uma condição for verdadeira (Forbellone; Eberspächer, 2022). Caso contrário, nada acontece: o programa simplesmente segue sua execução normalmente, ignorando o bloco condicional.
- Instrução if
- Em Python, a estrutura condicional simples é representada pela instrução if (se). Esta instrução permite executar um bloco de instruções apenas se uma condição for verdadeira.
- Estrutura Condicional Composta
- A estrutura condicional composta permite que o programa execute um bloco de instruções quando a condição for verdadeira e outro bloco quando a condição for falsa. É uma extensão natural da estrutura condicional simples, que permite ao programa tomar decisões mais completas, prevendo dois caminhos possíveis.
- Instrução if else
- Em Python, a estrutura condicional composta é representada pela instrução if...else. Essa construção permite que o programa execute um bloco de instruções quando uma condição for verdadeira, e outro bloco quando a condição for falsa.
- Indentação
- Em programação, indentação é o deslocamento de uma linha de código para a direita, feito com espaços ou tabulações, para indicar blocos de código ou níveis hierárquicos. Em muitas linguagens de programação, a indentação serve apenas para tornar o código mais legível. No entanto, em Python, ela é obrigatória e faz parte da estrutura sintática da linguagem.
- Regras da Identação
- Cada nível de indentação deve ter a mesma quantidade de espaços; A convenção oficial do Python recomenda o uso de 4 espaços por nível; É possível usar tabulação, mas o ideal é usar espaços (ou configurar o editor para converter tabs em espaços); Não misture espaços e tabulações no mesmo código — isso pode causar erros difíceis de identificar; Após uma instrução que define um bloco (if, else, def, for, etc.), a próxima linha deve estar indentada corretamente.
- Estrutura Condicional Aninhada e Encadeada
- À medida que os programas se tornam mais complexos, cresce também a necessidade de tomar decisões mais refinadas, que envolvam várias condições. Em situações em que uma única verificação lógica não é suficiente, o programador precisa lidar com múltiplos testes (Guedes, 2014), organizando-os de forma clara e coerente.
- Aninhamento
- Tome decisões em camadas, testando uma condição somente após outra (aninhamento); A estrutura condicional aninhada ocorre quando uma condição está dentro de outra. Isso permite criar decisões em etapas, onde a segunda condição só será avaliada se a primeira for verdadeira.
- Encadeamento
- Avalie diversas alternativas mutuamente exclusivas em sequência (encadeamento). A estrutura condicional encadeada é especialmente útil quando se quer classificar uma informação em diferentes categorias, aplicar regras alternativas ou definir ações distintas para diferentes valores. A estrutura condicional encadeada é uma das formas mais eficientes e organizadas de lidar com decisões múltiplas e exclusivas em um programa. Ela permite ao código seguir um fluxo lógico único, escolhendo uma entre várias possibilidades, sem repetições ou ambiguidade.
- if, elif, else
- if (se) elif (senão se) else (senão) A estrutura começa obrigatoriamente com um if;você pode ter quantos eli f quiser, testando diferentes condições;O else é opcional, e é executado apenas se nenhuma das condições anteriores for satisfeita;Apenas o primeiro bloco com condição verdadeira será executado.
- Estruturas de Repetição
- Na programação, frequentemente surgem situações em que é necessário executar um determinado bloco de instruções repetidamente. Exemplos incluem cálculos de médias, validação contínua de entradas de usuários, processamento sistemático de dados e iterações sobre coleções. Para solucionar tais problemas com eficiência e clareza, as linguagens de programação fornecem recursos específicos denominados estruturas de repetição
- Estrutura de repetição while
- A estrutura de repetição while (enquanto) permite que um bloco de instruções seja executado repetidamente enquanto uma condição booleana permanecer verdadeira.
- Estrutura de repetição for
- Em muitas situações na programação, precisamos repetir uma determinada ação um número conhecido e controlado de vezes. Seja para imprimir uma sequência de números, realizar uma determinada operação para cada item de um conjunto de valores, ou simplesmente executar um bloco de código um número fixo de vezes, é comum nos depararmos com repetições previsíveis e bem definidas. Para esses casos, a linguagem Python oferece a estrutura de repetição for (para), que permite percorrer sequências de forma eficiente, legível e controlada.
- Controle de Fluxo
- Durante a execução de um laço de repetição, pode haver situações em que seja necessário interromper a repetição antes do previsto ou pular uma determinada iteração sem encerrar o laço por completo. Para esses casos, a linguagem Python oferece duas instruções muito úteis: break e continue. Ambas permitem controlar o fluxo interno dos laços (while ou for), oferecendo mais flexibilidade ao programador.
- Break
- A instrução break serve para encerrar imediatamente a execução de um laço, mesmo que a condição de repetição ainda seja verdadeira. Isso é útil, por exemplo, quando o programa encontra um resultado esperado ou detecta uma condição que torna desnecessário continuar repetindo o bloco de código.
- Continue
- A instrução continue tem a função de interromper apenas a iteração atual do laço, fazendo com que o fluxo de execução retorne ao início do laço para avaliar novamente a condição de repetição (no caso do while) ou passar para o próximo valor (no caso do for).


























