Aquiles Rodrigues
Aquiles Rodrigues27/05/2022 02:34
Compartilhe

"Notebook" sobre Pensamento Computacional

    Hi guys,

    Estou compartilhando minhas anotações do

    Curso Introdução à Programação e Pensamento computacional". Baseado na abordagem feita pela Mestra JULIANA MASCARENHAS

    ==============================================

    INTRODUÇÃO:

    --------------------------------------------------------------------------------

    Pensamento computacional é?

    Processo de pensamento envolvido na expressão de soluções em passos computacionais ou algoritmos que possa ser implementados por computador

    Não é uma disciplina acadêmica, é uma habilidade generalista que utiliza a matemática, leitura, escrita com base em 4 PILARES:

     

    Decomposição --> Dividir um problema complexo em subproblemas

    Padrões, reconhecimento de --> Identificar similaridades e diferenças entre os problemas

    Abstração --> Extrapolar o conceito do problema para uma forma generalista

     (pegar do mundo concreto para o idealistas)

    Algoritmos, design de --> Automatizar - definir passo a passo a solução do problema

    As habilidades inerente ao processo são:

    Raciocínio Lógico

    Decomposição

    Padrões

    Refinamentos

    Exemplos:

    Na Biologia - Modelagem e mapeamento do genoma humano

    Computação: Simulação de problemas de alta ordem em supercomputadores (matemática)

    Competências geradas no processo: 

    Pensamento sistemático

    colaboração dentro da equipe

    criatividade e design

    facilitador

    ------------------------------------------------------------------------------

    Habilidades complementares

    ------------------------------------------------------------------------------

    Raciocínio lógico

    Pensamento estruturado, ou raciocínio, que permite encontrar a conclusão ou determinar a resolução de um problema. Você adquiri esta habilidade através do TREINAMENTO

    Ele é estruturado(classificado) da seguinte forma:

    INDUÇÃO - dado um fenômeno que estou observando, pego a particularidade do cenário e extrapolo para os campos das ideias e determinar Leis e teorias = ciências experimentais (tentativas e erros, observação)

    DEDUÇÃO - Inversão da Indução - dada uma lei e teoria vou realizar uma dedução e realizar previsões e explicações baseadas em uma Lei.

    ABDUÇÃO - utiliza a conclusão para chegar a premissa "A grama está molhada, logo choveu". (Utilizada em áreas investigativas, diagnósticos)

    Para segmentar e entender a classificação do raciocínio lógico, devemos utilizar a inferência:

    INFERÊNCIA:

    SINTÉTICAS (Abdução, indução)

    ANALÍTICA (Dedução)

    Aperfeiçoamento (A partir de uma solução, determinar pontos de melhorias e refinamentos):

    Melhor uso de recursos:

    Encontrar solução eficiente

    Otimizar processos

    Melhorar códigos e algoritmos:

    Simplificar linhas de códigos

    Funções bem definidas

    ******************************************************************

    Vamos agora compreender cada ETAPA de um

    pensamento computacional

    ******************************************************************

    --------------------------------------------------------------------------------

    • Decomposição "By yourself"

    ==============================================

    "Se você tem um problema que não consegue resolver, existe um problema mais fácil que você pode resolver: Encontre-o!" George Polya - Prof. Matemático

    Primeiro passo da resolução de problemas dentro do conceito de pensamento computacional:

    "Dado um problema complexo, devemos quebra-lo em problemas menores. Portanto, problemas mais fáceis e gerenciáveis"

    Processos:

    Análise - Processo de quebrar e determinar partes menores e gerenciável

    Você precisa estudar e explorar o seu contexto, tentando decompor os elementos constituintes daquele seu problema de forma a realizar um exame bem detalhado do que você precisa resolver

    Síntese - Combinar elementos recompondo o problema original

    É um processo passo a passo, quebrar o contexto para fazer a análise e recompõem o problema original de forma que faça sentido.

    Consiste em reunir elementos distintos de um único grande elemento dentro de um processo de reconstrução e daí você fundir os elementos de maneira coerente dando sentido a sua solução.

    Quebrando em problemas menores

    Ordem de execução de tarefas menores:

    SEQUENCIAL - Existirá dependências entre as tarefas ou problemas separados que foi determinada uma ordem para serem resolvidos

    PARALELO - Tarefas podem ser executadas concomitantemente de maneira que elas são isoladas independentes e depois que estas tarefas são resolvidas serão agregadas de maneira que façam sentidos para resolver o problema

    Você precisa treinar maneiras distintas de decompor o mesmo problema.

    Como decompor?

    Entenda o problema - identifique ou colete dados

    Agregue os dados - recompor com coerência

    Entregue Funcionalidade - resolução do problema

    --------------------------------------------------------------------------------

    • Reconhecimento de Padrões:

    ==============================================

    Modelo de referencia que determina uma estrutura invariante e que pode gerar repetição

    Modelo base

    Estrutura invariante

    Repetição

    É através da detecção de similaridades e diferenças entre os contextos e objetos que reconhecemos um padrão.

    A detecção de padrão ela aborda a ideia de você extrair características a fim de classificar seus dados utilizando-se de diferentes métodos e aplicá-los em diferentes contextos.

    Ex.: 

    No modelo de armazenamento de uma rede social, as fotos estão associadas por METADATA e utiliza-se uma técnica de "COMPRESSÃO(padrão)" para salvamento no servidor de dados.

    Os seres vivos utilizam o padrão de Similaridade para identificar seus alimentos

    Por que determinar padrões? 

    Para poder Generalizar. Com objetivo de obter resolução para problemas diferentes 

    Como fazer um padrão?

    Através de Classes e categorias:

    Ex.:

    Grau de similaridade, 

    Grupos conhecidos x objeto desconhecido

    Como o computador reconhece padrões?

    No computador precisamos 

    Fornecer atributos

    Aprender por associação

    Armazenar estes dados

    e por fim Regras de decisão.

    Onde utilizamos esses padrões?

    Classificação de dados

    Reconhecimento de imagem

    Reconhecimento de fala

    Análise de cenas

    Classificação de documentos

    Algumas áreas do reconhecimento que utilizam o reconhecimento de padrões:

    Machine Learning

    Redes Neurais

    Inteligência Artificial

    Ciência de dados

    --------------------------------------------------------------------------------

    * Abstração: Generalização / Abstração

    ==============================================

    Abstrair é observar um ou mais elementos, avaliando características e propriedades em separado

    Abstração é um Processo intelectual de isolamento de um objeto da realidade

    Abstrair X Abstração:

    Detectar característica X Extrapolar o objeto do mundo concreto para o mundo das ideias

    Generalização - Tornar-se geral, mais amplo, extenso.

    Nesse processo precisamos pegar os elementos principais de um determinado objeto extrapolá-lo para um mundo abstrato de maneira que você o torne geral

    Abstrair é generalizar!

    Na lógica a generalização é a operação intelectual que consiste em reunir numa classe geral, um conjunto de seres ou fenômenos similares.

    Como classificar esses dados? 

    Avaliando suas características e separá-los por suas propriedades

    Identificar os pontos essenciais(peculiaridades. ex. Nome completo, matrícula, endereço) 

    Generalizar em detrimento dos detalhes

    Exemplo:

    Limpar o terreno:

    1 - Preciso classificar? Não

    2 - Preciso verificar a distância? sim

    3 - Preciso identificar áreas preservadas? sim

    --------------------------------------------------------------------------------

    * Algoritmo "step by step"

    ==============================================

    Principal pilar para o pensamento computacional:

    Uma sequência de passos com objetivo definido para

    Execução de tarefas específicas através de um

    Conjunto de operações que resultam em uma sucessão finita de ações

    Algoritmo é o processo de resolução de problemas "step by step" utilizando instruções. Que precisa ser entendido pela máquina e pelo humano.

    Onde se aplica um algoritmo:

    Ao preparar um sanduiche, trocar uma lâmpada, traçar o trajeto ao trabalho, desenvolver um sistema, entre outros. 

    Todas essas tarefas envolvem instruções executadas passo a passo para concluir uma tarefa.

    O Algoritmo descreve o problema por meio de ferramentas narrativas, fluxograma, ou pseudocódigo

    Como construir?

    Compreender o problema

    Definir dados de entrada

    Definir processamento

    Definir dados de saída

    Utilizar um método de construção(refinamento), 

    Realizar teste e diagnóstico

    Os métodos de algoritmos: 

    Narrativa(Linguagem natural) - Pode ser ambígua e fornecer diversas interpretações


    Fluxograma(símbolos pré-definidos) - conhecimento prévio da estrutura e símbolos


    Pseudocódigo(Portugol) - Passos a serem seguidos, próximo a uma linguagem de programação

    Codificação:

    O algoritmo é codificado de acordo com a linguagem de programação escolhida

    --------------------------------------------------------------------------------

    Estudo de caso conceitual: perdido

    ==============================================

    Como maximizar as chances de sobrevivência para uma pessoa que está perdida na floresta!

    Como resolver um problema utilizando o pensamento computacional?

    Identificar mecanismos, os recursos comuns e detalhes mais importantes.

    RESOLVENDO:

    Decomposição do problema original

    Reconhecimento de padrões (Verificar REPETIÇÃO)

    Abstração (observando os detalhes cruciais a situação, sem detalhamento)

    Determinar instruções passo a passo

    --------------------------------------------------------------------------------

    Estudo de caso conceitual: soma de intervalo

    ==============================================

    Decomposição do problema original

    Reconhecimento de padrões (Verificar REPETIÇÃO)

    Abstração (estrutura de repetição, variáveis)

    Estruturar em algoritmo.

    =============================================

    A parte de Lógica, algoritmo e programação ficarão para outros artigos.

    Espero que ajude nos estudos!

    Compartilhe
    Comentários (2)

    MS

    Mauricio Souza - 03/06/2022 18:25

    Também gostei das suas anotações, estou achando que deu um pouco de trabalho mais valeu muito a pena! Parabéns.

    V

    Valderi - 27/05/2022 06:55

    Muito bom Aquilo, parabéns 👏🏻