• Tedre, Denning; The Long Quest for Computational Thinking;
Koli Calling 2016, november 24 – 27, 2016, Koli, Finland. • DOI: http://dx.doi.org/10.1145/2999541.2999542 Pensamento computacional – Como começou
• Alan Perlis – Década de 50 destacou o valor da codificação
como uma ferramenta mental ferramenta para entender todos os tipos de problemas. • 1960: Argumentou que o valor dos computadores está menos relacionado ao seu uso como instrumentos e mais sobre como cultivar um certo estilo de raciocinar sobre problemas e projetar soluções. • Algoritmização: Conceito que quantifica a computação. • Análise criativa da maneira como as coisas são feitas e todos deveriam aprender cedo ou tarde. • Década de 70: Pesquisadores de computação trabalharam para criar um campo único, separado da matemática. Rigoroso o suficiente para garantir um lugar na Universidade (evitavam assuntos tecnológicos, dando preferência para disciplinas teóricas). Mais história - Edsger W. Dijkstra (1930-2002)
• Singularidade da computação vem do pensamento
algorítmico que foi caracterizado por: • Domínio da linguagem natural, a fim de preencher a lacuna entre problemas expressos informalmente e soluções formais, • Capacidade de inventar seus próprios formalismos e conceitos ao resolver problemas • Agilidade para alternar entre níveis semânticos – uma espécie de “lente” de zoom mental Mais história - Knuth
• Procurou a essência do pensamento algorítmico em textos de
matemática que discutiam “tipos de pensamento” e comparou aqueles com padrões de raciocínio usados por computadores. • Ele descobriu que a representação da realidade, redução a problemas mais simples, raciocínio abstrato, informações estruturas de informação e atenção aos algoritmos eram comuns no pensamento algorítmico, mas incomum em matemática. • Encontrou dois padrões de pensamento usados pela ciência da computação cientistas que não foram empregados por matemáticos: complexos qualidade e causalidade - considerando a complexidade ou economia de processar e projetar procedimentos imperativos que criam ação no mundo. Final dos anos 70
• Algoritmos são o assunto central da ciência da computação.
• Programar ou projetar algoritmos são os pontos centrais e tornaram-se populares. • As pessoas da área tinham interesses diferentes, desde programação e algoritmos para sistemas e experimentação. • “Brain Drain” ou dreno cerebral → Pesquisadores que poderiam projetar e construir sistemas de computação migraram das universidades para as indústrias. • Feldman report – Relatório concluiu que esta migração era real e havia a necessidade de reverter a deterioração dos departamentos de computação pela criação de programas específicos de experimentação de sistemas. Década de 80
• Departamentos de computação dos EUA elaboraram o seu
próprio relatório sobre o problema e sobre quanto custaria equipar o experimento laboratórios mentais de um departamento de CC. • Projeto CSNET: Transferir a tecnologia da internet do projeto ARPANET para uma rede de pesquisa em ciência da computação. • 1989 – Relatório da ACM e IEEE: Computação como uma disciplina - Argumentou que a computação era um campo que englobava teoria, abstração e design – tudo computacional, desde algoritmos até arquitetura estruturas, design e redes. Parte 2 - Jeanette M. Wing – 2006 – Computational Thinking
• Artigo: Computational Thinking
• Revista: Communcations of ACM • Data: Março, 2006. • Editora: Association for Computing Machinery • Resumo: “Pensamento computacional: Representa uma atitude e um conjunto de habilidades universalmente aplicáveis que todos, não apenas os cientistas da computação, estariam ansiosos para aprender e usar.” Questões iniciais
• O pensamento computacional baseia-se no poder e
limites dos processos computacionais, com humanos ou máquinas executando. • Os métodos computacionais e modelos nos dão a coragem para resolver problemas e projetar sistema que ninguém seria capaz de desenvolver por si só. • Confronta o enigma da inteligência da máquina: • O que os humanos podem fazer melhor do que dos computadores? • No que as máquinas são melhores que os humanos? • O que é computável? Sobre o pensamento computacional
• É uma habilidade fundamental para todos, não apenas para
cientistas de computação. • É imprescindível que adicionemos o pensamento computacional como um conteúdo a ser apresentado para as crianças. • A computação e os computadores facilitam a disseminação do pensamento computacional. • Envolve resolver problemas, projetar sistemas e compreender o comportamento, recorrendo aos conceitos fundamentais para ciência da computação. • Inclui uma gama de ferramentas mentais que mostram a amplitude do campo da ciência da computação. Mais perguntas
• Tendo um problema específico, nos perguntamos:
• Quão difícil é resolver? • Qual a melhor maneira de resolver? • A ciência da computação tem bases teóricas sólidas para responder a essas questões com precisão. Sobre o pensamento computacional
• Permite reformular um problema aparentemente
difícil em um que se saiba resolver, usando a redução, incorporação, transformação ou simulação. • É pensar de forma recursiva. • Processamento paralelo. • É interpretar o código como se fossem dados e vice versa. • Reconhecer o custo e o poder do endereçamento e a chamada de procedimento. • Avaliar um programa não apenas pela correção e eficiência, mas também pela estética e design de sistema para simplicidade e elegância. Sobre o pensamento computacional
• Usar a abstração e a decomposição para atacar um
problema ou projetar um sistema complexo. • É sobre escolher uma representação apropriada para um problema ou modelar relevantes aspectos de um problema para torna-lo mais tratável. • Envolve a descrição de um sistema de forma sucinta e declarativa, baseando-se em propriedades que permanecem constantes. • É ter a confiança que podemos usar, modificar e influenciar de forma segura sistemas complexos sem entender cada detalhe. ... E muito mais! ... Exemplos práticos
• Quando você prepara a mochila do seu filho: prefetching e
caching. • Quando seu filho perde um brinquedo. Você sugere para ele refazer os passos: backtracking. • Quando você faz uma receita de bolo: Algoritmos. • A fila do supermercado: modelagem de desempenho para sistemas multi-servidor. • Quando você vai separar as roupas para lavar: ordenação. • No final das contas, o pensamento computacional está no seu dia a dia, sem que você perceba. Influência em outras áreas
• Machine learning transformou a estatística.
• Aprendizagem estatística está sendo usada para problemas em escala em tamanhos inimagináveis. • Departamentos de estatística estão contratando cientistas de computação. • A biologia tem na computação uma ferramenta cada vez mais presente: Não só na busca de sequencias genéticas, mas também na classificação de bactérias e muitas outras funções.