Prévia do material em texto
1 Pensamento Computacional UNIVERSIDADE DE VASSOURAS Curso de Graduação em Engenharia de Software Aula 2 Prof. Sidney Loyola de Sá Mestre em Computação Analista Judiciário – Assessoria de Inteligência Artificial - TJRJ 2 Cronograma Tópicos Engenharia de Software Pensamento Computacional • Aula 1: Apresentação da Disciplina • Aula 2: Introdução ao Pensamento Computacional • Aula 3: Fundamentos de Lógica de Programação • Aula 4: Introdução a Algoritmos e Estruturas de Dados • Aula 5: Fluxo de Controle e Tomada de Decisão • Aula 6: Fluxo de Controle e Tomada de Decisão • Aula 7: Estruturas de Repetição e Laços de Loop • Aula 8: Estruturas de Repetição e Laços de Loop • Aula 9: Aplicação do Pensamento Computacional em Planilhas Eletrônicas • Aula 10: Integração Prática do Pensamento Computacional • Aula 11: Avaliação e Síntese do Pensamento computacional 3 Objetivos Tópicos Engenharia de Software Pensamento Computacional ●Pensar e resolver problemas utilizando quatro características principais: ○ Decomposição (dividir a questão em problemas menores) ○ Padrões (identificar o padrão que gera o problema) ○ Abstração (entender como soluções podem ser reutilizadas em múltiplos cenários) ○ Algoritmo (definir ordem ou sequência de passos para solução de problema). 4 Tópicos Engenharia de Software Pensamento Computacional 5 Motivação Tópicos Engenharia de Software Pensamento Computacional ● Profissional do futuro - as dez habilidades essenciais (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 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 6 Motivação Tópicos Engenharia de Software Pensamento Computacional • TI não é exclusividade de Engenheiro de Software • Jornalistas, Designers, Advogados e Médicos utilizam pequenos trechos de programas . • Cada vez mais pessoas querem aprender a programa • Criar programas não é trivial 7 Pensamento Computacional Tópicos Engenharia de Software Pensamento Computacional • O pensamento computacional é a capacidade de formular um problema e de encontrar uma solução. • Exige: • Abstração • Raciocínio Lógico • Criatividade • Imaginação 8 Pensamento Computacional Tópicos Engenharia de Software Pensamento Computacional • Nessa disciplina você vai ter contato com uma das linguagens e ambientes de programação mais utilizados atualmente. 9 Pilares do Pensamento Computacional Tópicos Engenharia de Software Pensamento Computacional 10 Decomposição Tópicos Engenharia de Software Pensamento Computacional ● 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 11 Decomposição Tópicos Engenharia de Software Pensamento Computacional • A decomposição pode ser aplicada no planejamento de uma aula, e as seguintes partes propostas: ○ identificação de conteúdos ○ definição de objetivos educacionais ○ levantamento do conhecimento prévio dos alunos ○ proposta de atividades individuais ou grupo ○ definição do plano de mediação ○ seleção de recursos materiais ○ planejamento da avaliação das aprendizagens 12 Decomposição Tópicos Engenharia de Software Pensamento Computacional 13 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 Tópicos Engenharia de Software Pensamento Computacional 14 Reconhecimento de Padrões ● Escolher uma fruta pela cor de sua casca ● Diagnosticar uma doença com base em sintomas, aparências e comportamentos ● Perceber a chegada de uma pessoa pelo ritmo do som de sua pisada ● Identificar uma música pelo padrão de notas músicas de seu início (popularmente conhecido por jogo das sete notas) Tópicos Engenharia de Software Pensamento Computacional 15 Reconhecimento de Padrões ● A sequência de padrões e cores pode ser decomposta em subpadrões. Tópicos Engenharia de Software Pensamento Computacional 16 Reconhecimento de Padrões ● A sequência de padrões e cores pode ser decomposta em subpadrões. Tópicos Engenharia de Software Pensamento Computacional 17 Abstração Tópicos Engenharia de Software Pensamento Computacional 18 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) Tópicos Engenharia de Software Pensamento Computacional 19 Algoritmo ● As instruções podem ser escritas em formato de diagrama, pseudocódigo (linguagem humana) ou em linguagem de programação (códigos) ● Programa: é uma sequência de instruções escritas em uma determinada linguagem de programação Tópicos Engenharia de Software Pensamento Computacional 20 Início enquanto (Condição 1) faça realizar Ação 1 Fim Begin While (x <> 0) do Var := random(10); End; Algoritmo Tópicos Engenharia de Software Pensamento Computacional 21 Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 22 • Acionar o interruptor Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 23 • Acionar o interruptor • Se a lâmpada não acender, então: Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 24 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 25 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 26 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 27 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 28 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada • Inserir a lâmpada nova Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 29 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada • Inserir a lâmpadanova • Enquanto a lâmpada não acender, faça: Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 30 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada • Inserir a lâmpada nova • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 31 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada • Inserir a lâmpada nova • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada • Colocar uma lâmpada nova Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 32 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada • Inserir a lâmpada nova • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada • Colocar uma lâmpada nova • Descer da escada; Trocar uma lâmpada com teste Tópicos Engenharia de Software Pensamento Computacional 33 • Acionar o interruptor • Se a lâmpada não acender, então: • Buscar uma escada • Posicionar a escada embaixo da lâmpada • Subir na escada • Retirar a lâmpada queimada • Inserir a lâmpada nova • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada • Colocar uma lâmpada nova • Descer da escada; • Guardar a escada; Problema Tópicos Engenharia de Software Pensamento Computacional 34 • Um homem precisa atravessar um rio com um barco que possui capacidade de transportar apenas ele mesmo e mais uma de suas três cargas, que são: um lobo, um bode e uma caixa de alfafa • Quais as ações necessárias para que o homem consiga atravessar o rio sem perder suas cargas. • O lobo não pode ficar sozinho com o bode, senão ele o come • O bode não pode ficar sozinho com a alfafa, senão a come Lógica Tópicos Engenharia de Software Pensamento Computacional 35 • 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 Lógica Tópicos Engenharia de Software Pensamento Computacional 36 Todo mamífero é um animal. (Premissa) Todo cavalo é um mamífero. (Premissa) Portanto, todo cavalo é um animal. (Conclusão) O crocodilo é um animal. Podemos concluir que o crocodilo é um mamífero? Lógica Tópicos Engenharia de Software Pensamento Computacional 37 Enzo é mais velho que Murilo (Premissa) Murilo é mais velho que Henrique (Premissa) Portanto, Enzo é mais velho que Henrique (Conclusão) Lógica de Programação Tópicos Engenharia de Software Pensamento Computacional 38 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 Calcular Média Tópicos Engenharia de Software Pensamento Computacional 39 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 Contato Professor: Sidney Loyola de Sá, MSc E-mail: sidney.sa@univassouras.edu.br Engenharia de Software Pensamento Computacional 40 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40