Prévia do material em texto
PENSAMENTO COMPUTACIONAL Facilitadores: Túlio Sérgio de Almeida e Rubens Takeji Aoki Araújo Martins Introdução ao Pensamento Computacional • Motivação • As dez habilidades essenciais do profissional do futuro (Fórum Econômico Mundial) 1. Resolução de problemas complexos 2. Pensamento crítico 3. Criatividade 4. Gestão de pessoas 5. Coordenação PENSAMENTO COMPUTACIONAL 2 6. Inteligência Emocional 7. Capacidade de julgamento e de tomada de decisões 8. Orientação para servir 9. Negociação 10. Flexibilidade cognitiva Introdução ao Pensamento Computacional • Motivação • Inclusão: para exercer cidadania, as pessoas saber lidar com soluções computacionais, presentes em todas as áreas + Química - propriedades das diferentes matérias, e reações química - entender melhor o mundo ao seu redor + Física - conhecer e entender melhor os fenômenos da natureza • Produtividade + Agilidade e velocidade na execução das tarefas + Solução de problemas de forma muito mais rápida e até mesmo aumentando a escala do problema com demandas mais complexas PENSAMENTO COMPUTACIONAL 3 Introdução ao Pensamento Computacional • Motivação PENSAMENTO COMPUTACIONAL 4 Introdução ao Pensamento Computacional • Origens do Pensamento Computacional PENSAMENTO COMPUTACIONAL 5 Seymour Papert (1972) destaca os benefícios do uso do computador na educação (LOGO) O termo Pensamento Computacional (Computational Thinking) foi apresentado por Seymour Papert em 1980 O termo ganhou repercussão e disseminação com o artigo de Jeannette Wing (2006) “Pensamento Computacional é uma habilidade fundamental para todos, não somente para os cientistas da computação” “São os processos de pensamento envolvidos na formulação de um problema e que expressam sua solução ou soluções eficazmente, de tal forma que uma máquina ou uma pessoa possa realizar” Introdução ao Pensamento Computacional • Outras Definições de Pensamento Computacional + “É saber usar o computador como um instrumento de aumento do poder cognitivo e operacional humano” (BLIKSTEIN, 2008) + “É o processo de reconhecer aspectos da computação em um mundo que nos cerca e, aplicar ferramentas e técnicas da Ciência da Computação para entender e argumentar sobre sistemas e processos naturais e artificiais” (FURBER, 2012) + “É uma abordagem usada para solução de problemas utilizando o que se sabe sobre Computação.” (GOOGLE FOR EDUCATION, 2015) + “Mesmo após diversos estudos e quase uma década de esforços para definir o PC, ainda existem críticas que sugerem que não sabemos o que o PC significa ou sua forma de medir” (KURSHAN, 2016) PENSAMENTO COMPUTACIONAL 6 Introdução ao Pensamento Computacional • O que não é Pensamento Computacional 1. Pensamento Computacional NÃO é saber navegar na internet, enviar e-mail, publicar um blog, operar um processador de texto ou planilha eletrônica 2. Pensamento Computacional pressupõe a UTILIZAÇÃO DO COMPUTADOR como um instrumento capaz de aumentar o poder cognitivo e operacional humano 3. NÃO envolve apenas conceitos de Computação para solução de problemas em suas raízes, pois também agrega práticas de projetar sistemas, entender o comportamento humano e o pensamento crítico (WING, 2010) 4. NÃO é apenas uma atividade de programação de computadores (Computação Desplugada) PENSAMENTO COMPUTACIONAL 7 Introdução ao Pensamento Computacional • Habilidades do Pensamento Computacional • Tais habilidades visam: + Pensamento Algorítmico + Aprendizagem Colaborativa + Resolução de Problemas + Criatividade + Raciocínio Lógico + Interpretação Textual PENSAMENTO COMPUTACIONAL 8 Pensamento Computacional Coleta de Dados Análise de Dados Representação Decomposição AbstraçãoAlgoritmos Automação Paralelização Simulação Pilares do Pensamento Computacional • O PC identifica um problema e o decompõe em elementos menores, que são analisados individualmente, focando apenas em detalhes importantes, e assim criar soluções PENSAMENTO COMPUTACIONAL 9 Reconhecimento de Padrões Decomposição Abstração Algoritmo Pilares do Pensamento Computacional • Decomposição + Processo que divide os problemas em partes menores para facilitar a resolução, desenvolvimento e gerenciamento + Análise dos problemas para identificar as partes que podem ser separadas e formas como podem ser reconstituídas para solucionar o problema como um todo + Possibilita resolver problemas complexos de forma mais simples, facilita a compreensão de novas situações e possibilita projetar sistemas de grande porte PENSAMENTO COMPUTACIONAL 10 Pilares do Pensamento Computacional • Reconhecimento de Padrões + Os padrões são similaridades ou características que alguns problemas compartilham + O hábito de identificar padrões nos acompanha desde a infância, é uma construção continuada e o nosso repertório de padrões não para de crescer e de se reconstruir + No reconhecimento de padrões ao encontrar similaridades ou padrões entre pequenos problemas decompostos + Quanto mais padrões encontrarmos, mais fácil e rápida será a nossa tarefa geral de solução de problemas PENSAMENTO COMPUTACIONAL 11 Pilares do Pensamento Computacional • Abstração + Filtragem e classificação dos dados, criando mecanismos que permitam separar apenas os elementos essenciais em determinado problema, ignorando detalhes irrelevantes + Permite criar uma representação (ideia) do que está se tentando resolver + Essencial é escolher o detalhe a ser ignorado para que o problema seja mais fácil de ser compreendido sem perder nenhuma informação que seja importante para tal PENSAMENTO COMPUTACIONAL 12 É o conceito mais importante do Pensamento Computacional, pois o processo de abstrair é utilizado em diversos momentos (WING, 2006) Pilares do Pensamento Computacional • Algoritmo + É uma sequência finita de etapas (passos), cada qual executável em um tempo finito, por um agente computacional, natural (humano) ou sintético (computador) + Um algoritmo é um plano, uma estratégia ou um conjunto de instruções ordenadas para a solução de um problema ou execução de uma tarefa + A formulação de um algoritmo passa pelo processo de decomposição, reconhecimento de padrões e abstração + Na execução seguirão os passos pré-definidos, não havendo a necessidade de criar um novo algoritmo para cada uma de suas execuções posteriores + É o pilar que agrega os demais pilares (WING, 2014) PENSAMENTO COMPUTACIONAL 13 Algoritmo e Lógica de Programação • Algoritmo + Um algoritmo é um conjunto de INSTRUÇÕES e procedimentos LÓGICOS para a solução de um PROBLEMA ou execução de uma TAREFA + A implementação do algoritmo pode ser feita por um computador, por outro tipo de autômato ou mesmo por um ser humano + A formulação de um algoritmo passa pelo processo de decomposição, reconhecimento de padrões e abstração PENSAMENTO COMPUTACIONAL 14 Algoritmo e Lógica de Programação • Algoritmo + As instruções podem ser escritas em formato de diagrama (fluxograma ou blocos), pseudocódigo (linguagem humana) ou em linguagem de programação (códigos) PENSAMENTO COMPUTACIONAL 15 Problema Decomposição Reconhecimento de Padrões Abstração Algoritmo Desenvolvimento de uma lógica para a solução do problema Algoritmo e Lógica de Programação • Problema + É um Tema ou Questão, em qualquer área do conhecimento, cuja solução ou resposta requer considerável pesquisa, estudo, reflexão e grande esforço para ser solucionado (MICHAELIS) • Faz parte do nosso cotidiano + Buscar o procedimento para solucionar o problema PENSAMENTO COMPUTACIONAL 16 Algoritmo e Lógica de Programação • Lógica + Para resolver um problema é necessário raciocinar de maneira lógica + A lógica é a arte do “bem pensar”, é a ciência que trata das formas do pensamento em termos de racionalidade e coerência + A lógica trata da correção do pensamento - faz distinção entre raciocínios válidose não válidos, determinando o processo que leva ao conhecimento verdadeiro PENSAMENTO COMPUTACIONAL 17 Algoritmo e Lógica de Programação • Lógica • Partes Fundamentais + PROPOSIÇÃO: Afirma que algo é verdadeiro ou que algo é falso. As frases que afirmam alguma coisa + PREMISSAS: São as proposições (frases afirmativas) que se usa para provar alguma coisa, para defender uma ideia + CONCLUSÃO: É a proposição que é obrigatória, caso você tenha concordado com as premissas PENSAMENTO COMPUTACIONAL 18 Algoritmo e Lógica de Programação • Lógica • Exemplos de Proposição + O Brasil está localizado na América do Sul. (proposição verdadeira). + A Terra é um dos planetas do sistema solar. (proposição verdadeira). + Τ1 2 = 0,5 . (proposição verdadeira). + A Terra é plana. (proposição falsa). + 2 = 1. (proposição falsa) PENSAMENTO COMPUTACIONAL 19 Algoritmo e Lógica de Programação • Lógica PENSAMENTO COMPUTACIONAL 20 Operador Nome da proposição Símbolo Tabela-verdade não negação ∼ 𝐩 Terá valor falso quando o proposição for verdadeira e vice-versa. e conjunção 𝐩 ∧ 𝐪 Só será verdadeiro quando ambos “p” e “q” forem V ao mesmo tempo. ou disjunção 𝐩 ∨ 𝐪 Se pelo menos um, “p” ou “q”, for V então será verdadeiro. se ... então condicional 𝐩 → 𝐪 Só será falso quando o “p” for V e “q” for F. se e somente se bicondicional 𝐩 ⟷ 𝐪 Só será verdadeiro quando “p” e “q” forem V ao mesmo tempo ou quando forem F ao mesmo tempo. ou ... ou ... disjunção exclusiva 𝐩 ∨ 𝐪 Para ser verdadeiro quando um for V ou outro terá de ser F. Algoritmo e Lógica de Programação • Lógica de Programação • Técnica de encadear pensamentos para atingir determinado objetivo • Permite definir a Sequência Lógica para a solução de um problema • Sequência Lógica: + Passos executados até se atingir um objetivo ou solução de um problema + Pensamentos descritos como uma Sequência de INSTRUÇÕES que devem ser seguidas para cumprir uma determinada tarefa PENSAMENTO COMPUTACIONAL 21 Conjunto de regras ou normas definidas para a realização ou emprego de algo Algoritmo e Lógica de Programação • Linguagem de Programação • O algoritmo deve ser “escrito” em uma linguagem de programação para que o computador saiba executá-lo • É uma linguagem escrita e formal que especifica um conjunto de instruções e regras usadas para gerar programas (softwares) PENSAMENTO COMPUTACIONAL 22 Representação dos Algoritmos • Descrição Narrativa • Os algoritmos são expressos na linguagem que usamos naturalmente para se comunicar – linguagem natural • Desvantagem: pode causar ambiguidade e imprecisões PENSAMENTO COMPUTACIONAL 23 Trocar um lâmpada: 1. Pegar a escada 2. Posicionar a escada embaixo da lâmpada 3. Buscar uma lâmpada nova 4. Subir a escada 5. Retirar a lâmpada antiga 6. Colocar a lâmpada nova Representação dos Algoritmos • Pseudocódigo + Não é uma Linguagem de Programação, é uma maneira simples de descrever um conjunto de instruções que não precisa usar sintaxe específica + Semelhante a escrever em uma linguagem de programação + Conhecido também como Português Estruturado ou Portugol + Normalmente, as instruções são escritas em maiúsculas, as variáveis em minúsculas e as mensagens em maiúsculas PENSAMENTO COMPUTACIONAL 24 Representação dos Algoritmos • Pseudocódigo • Vantagens + Usa o português como base + Pode-se definir quais e como os dados vão estar estruturados + Passagem quase imediata do algoritmo para uma linguagem de programação • Desvantagens + Exige a definição de uma linguagem não real para trabalho; + Não padronizado. PENSAMENTO COMPUTACIONAL 25 Representação dos Algoritmos • Pseudocódigo • Regras para escrita do pseudocódigo 1. Usar somente um verbo por frase e no imperativo 2. Usar sentenças fáceis de serem entendidas por pessoas leigas no assunto 3. Usar frases simples e curtas 4. Ser direto e objetivo 5. Usar palavras que não tenham sentido duplo. PENSAMENTO COMPUTACIONAL 26 Representação dos Algoritmos • Pseudocódigo PENSAMENTO COMPUTACIONAL 27 Programa Calcular_Media Início ESCREVA "Digite a nota1:“ LEIA nota1 ESCREVA "Digite a nota2:“ LEIA nota2 media = (nota1 + nota2)/2 ESCREVA "Sua média foi:" ESCREVA media SE media >= 7 ENTÃO ESCREVA "APROVADO“ Senão ESCREVA "REPROVADO" Fim O texto entre aspas é escrito na tela. O usuário digita a nota1 O algoritmo armazena o valor digitado como a variável nota1 O texto entre aspas é escrito na tela O usuário digita a nota2 O algoritmo armazena o valor digitado como a variável nota2 A variável media é calculada e armazenada a partir das variáveis nota1 e nota2. O texto entre aspas é escrito na tela. O valor armazenado pela variável media é escrito na tela. Lógica condicional. A condição é media > = 7.0 Se a condição for satisfeita (VERDADEIRO), escreve-se APROVADO na tela Se a condição não for satisfeita (FALSO), escreve-se REPROVADO na tela Representação dos Algoritmos • Fluxograma ou Diagrama de Blocos + É um diagrama que representa um conjunto de instruções + É uma representação gráfica onde os símbolos (formas geométricas) representam as diferentes ações (instruções, comandos) + Facilita o entendimento dos algoritmos e a visualização dos passos + Podem ser divididos em várias etapas para fornecer mais detalhes sobre exatamente o que está acontecendo + Podem ser simplificados para que várias etapas ocorram em apenas uma etapa PENSAMENTO COMPUTACIONAL 28 Representação dos Algoritmos PENSAMENTO COMPUTACIONAL 29 Início Dados Públicos Verificar dados públicos Enviar informação para abertura do edital Há necessidade de compra? Abrir edital de compra 1 Aguardar propostas de fornecedores Há uma proposta vencedora? Solicitar documentação para a verba Documentação de solicitação de verba Haverá financiamento? Documentação de compra e capital Realizar a compra Solicitar nota fiscal Aguardar a chegada do item Inspecionar o item O item está OK? Fim 1Devolver o item Solicitar a troca do item Sim Não Sim Sim Não Não Preparação Corte Perfuração Vinco Acabamento Inspeção da Qualidade Embalagem Estoque Slide 1: PENSAMENTO COMPUTACIONAL Slide 2: Introdução ao Pensamento Computacional Slide 3: Introdução ao Pensamento Computacional Slide 4: Introdução ao Pensamento Computacional Slide 5: Introdução ao Pensamento Computacional Slide 6: Introdução ao Pensamento Computacional Slide 7: Introdução ao Pensamento Computacional Slide 8: Introdução ao Pensamento Computacional Slide 9: Pilares do Pensamento Computacional Slide 10: Pilares do Pensamento Computacional Slide 11: Pilares do Pensamento Computacional Slide 12: Pilares do Pensamento Computacional Slide 13: Pilares do Pensamento Computacional Slide 14: Algoritmo e Lógica de Programação Slide 15: Algoritmo e Lógica de Programação Slide 16: Algoritmo e Lógica de Programação Slide 17: Algoritmo e Lógica de Programação Slide 18: Algoritmo e Lógica de Programação Slide 19: Algoritmo e Lógica de Programação Slide 20: Algoritmo e Lógica de Programação Slide 21: Algoritmo e Lógica de Programação Slide 22: Algoritmo e Lógica de Programação Slide 23: Representação dos Algoritmos Slide 24: Representação dos Algoritmos Slide 25: Representação dos Algoritmos Slide 26: Representação dos Algoritmos Slide 27: Representação dos Algoritmos Slide 28: Representação dos Algoritmos Slide 29: Representação dos Algoritmos